11da177e4SLinus Torvaldsmenu "Kernel hacking" 21da177e4SLinus Torvalds 31da177e4SLinus Torvaldssource "lib/Kconfig.debug" 41da177e4SLinus Torvalds 5087aaffcSNicolas Pitreconfig STRICT_DEVMEM 6087aaffcSNicolas Pitre bool "Filter access to /dev/mem" 7087aaffcSNicolas Pitre depends on MMU 8087aaffcSNicolas Pitre ---help--- 9087aaffcSNicolas Pitre If this option is disabled, you allow userspace (root) access to all 10087aaffcSNicolas Pitre of memory, including kernel and userspace memory. Accidental 11087aaffcSNicolas Pitre access to this is obviously disastrous, but specific access can 12087aaffcSNicolas Pitre be used by people debugging the kernel. 13087aaffcSNicolas Pitre 14087aaffcSNicolas Pitre If this option is switched on, the /dev/mem file only allows 15087aaffcSNicolas Pitre userspace access to memory mapped peripherals. 16087aaffcSNicolas Pitre 17087aaffcSNicolas Pitre If in doubt, say Y. 18087aaffcSNicolas Pitre 19adf8b37bSCatalin Marinas# RMK wants arm kernels compiled with frame pointers or stack unwinding. 201da177e4SLinus Torvalds# If you know what you are doing and are willing to live without stack 211da177e4SLinus Torvalds# traces, you can get a slightly smaller kernel by setting this option to 221da177e4SLinus Torvalds# n, but then RMK will have to kill you ;). 231da177e4SLinus Torvaldsconfig FRAME_POINTER 241da177e4SLinus Torvalds bool 2516c79651SCatalin Marinas depends on !THUMB2_KERNEL 260e341af8SRabin Vincent default y if !ARM_UNWIND || FUNCTION_GRAPH_TRACER 271da177e4SLinus Torvalds help 281da177e4SLinus Torvalds If you say N here, the resulting kernel will be slightly smaller and 29adf8b37bSCatalin Marinas faster. However, if neither FRAME_POINTER nor ARM_UNWIND are enabled, 30adf8b37bSCatalin Marinas when a problem occurs with the kernel, the information that is 31adf8b37bSCatalin Marinas reported is severely limited. 32adf8b37bSCatalin Marinas 33adf8b37bSCatalin Marinasconfig ARM_UNWIND 344a50bfe3SRussell King bool "Enable stack unwinding support (EXPERIMENTAL)" 35adf8b37bSCatalin Marinas depends on AEABI && EXPERIMENTAL 36adf8b37bSCatalin Marinas default y 37adf8b37bSCatalin Marinas help 38adf8b37bSCatalin Marinas This option enables stack unwinding support in the kernel 39adf8b37bSCatalin Marinas using the information automatically generated by the 40adf8b37bSCatalin Marinas compiler. The resulting kernel image is slightly bigger but 41adf8b37bSCatalin Marinas the performance is not affected. Currently, this feature 42adf8b37bSCatalin Marinas only works with EABI compilers. If unsure say Y. 431da177e4SLinus Torvalds 4409bfafacSRabin Vincentconfig OLD_MCOUNT 4509bfafacSRabin Vincent bool 4609bfafacSRabin Vincent depends on FUNCTION_TRACER && FRAME_POINTER 4709bfafacSRabin Vincent default y 4809bfafacSRabin Vincent 491da177e4SLinus Torvaldsconfig DEBUG_USER 501da177e4SLinus Torvalds bool "Verbose user fault messages" 511da177e4SLinus Torvalds help 521da177e4SLinus Torvalds When a user program crashes due to an exception, the kernel can 531da177e4SLinus Torvalds print a brief message explaining what the problem was. This is 541da177e4SLinus Torvalds sometimes helpful for debugging but serves no purpose on a 551da177e4SLinus Torvalds production system. Most people should say N here. 561da177e4SLinus Torvalds 571da177e4SLinus Torvalds In addition, you need to pass user_debug=N on the kernel command 581da177e4SLinus Torvalds line to enable this feature. N consists of the sum of: 591da177e4SLinus Torvalds 601da177e4SLinus Torvalds 1 - undefined instruction events 611da177e4SLinus Torvalds 2 - system calls 621da177e4SLinus Torvalds 4 - invalid data aborts 631da177e4SLinus Torvalds 8 - SIGSEGV faults 641da177e4SLinus Torvalds 16 - SIGBUS faults 651da177e4SLinus Torvalds 661da177e4SLinus Torvalds# These options are only for real kernel hackers who want to get their hands dirty. 671da177e4SLinus Torvaldsconfig DEBUG_LL 684f5ef922SWill Deacon bool "Kernel low-level debugging functions (read help!)" 691da177e4SLinus Torvalds depends on DEBUG_KERNEL 701da177e4SLinus Torvalds help 7135efb606SRussell King Say Y here to include definitions of printascii, printch, printhex 721da177e4SLinus Torvalds in the kernel. This is helpful if you are debugging code that 731da177e4SLinus Torvalds executes before the console is initialized. 741da177e4SLinus Torvalds 754f5ef922SWill Deacon Note that selecting this option will limit the kernel to a single 764f5ef922SWill Deacon UART definition, as specified below. Attempting to boot the kernel 774f5ef922SWill Deacon image on a different platform *will not work*, so this option should 784f5ef922SWill Deacon not be enabled for kernels that are intended to be portable. 794f5ef922SWill Deacon 8017916b28SWill Deaconchoice 8117916b28SWill Deacon prompt "Kernel low-level debugging port" 8217916b28SWill Deacon depends on DEBUG_LL 8317916b28SWill Deacon 8413079a73SJean-Christophe PLAGNIOL-VILLARD config AT91_DEBUG_LL_DBGU0 8513079a73SJean-Christophe PLAGNIOL-VILLARD bool "Kernel low-level debugging on rm9200, 9260/9g20, 9261/9g10 and 9rl" 8613079a73SJean-Christophe PLAGNIOL-VILLARD depends on HAVE_AT91_DBGU0 8713079a73SJean-Christophe PLAGNIOL-VILLARD 8813079a73SJean-Christophe PLAGNIOL-VILLARD config AT91_DEBUG_LL_DBGU1 899918ceafSJean-Christophe PLAGNIOL-VILLARD bool "Kernel low-level debugging on 9263 and 9g45" 9013079a73SJean-Christophe PLAGNIOL-VILLARD depends on HAVE_AT91_DBGU1 9113079a73SJean-Christophe PLAGNIOL-VILLARD 92164acf96SStephen Boyd config DEBUG_CLPS711X_UART1 93164acf96SStephen Boyd bool "Kernel low-level debugging messages via UART1" 94164acf96SStephen Boyd depends on ARCH_CLPS711X 95164acf96SStephen Boyd help 96164acf96SStephen Boyd Say Y here if you want the debug print routines to direct 97164acf96SStephen Boyd their output to the first serial port on these devices. 9817916b28SWill Deacon 9917916b28SWill Deacon config DEBUG_CLPS711X_UART2 10017916b28SWill Deacon bool "Kernel low-level debugging messages via UART2" 10117916b28SWill Deacon depends on ARCH_CLPS711X 10217916b28SWill Deacon help 10317916b28SWill Deacon Say Y here if you want the debug print routines to direct 10417916b28SWill Deacon their output to the second serial port on these devices. 10517916b28SWill Deacon 106477099f1SUwe Kleine-König config DEBUG_DAVINCI_DA8XX_UART1 107477099f1SUwe Kleine-König bool "Kernel low-level debugging on DaVinci DA8XX using UART1" 108477099f1SUwe Kleine-König depends on ARCH_DAVINCI_DA8XX 109477099f1SUwe Kleine-König help 110477099f1SUwe Kleine-König Say Y here if you want the debug print routines to direct 111477099f1SUwe Kleine-König their output to UART1 serial port on DaVinci DA8XX devices. 112477099f1SUwe Kleine-König 113477099f1SUwe Kleine-König config DEBUG_DAVINCI_DA8XX_UART2 114477099f1SUwe Kleine-König bool "Kernel low-level debugging on DaVinci DA8XX using UART2" 115477099f1SUwe Kleine-König depends on ARCH_DAVINCI_DA8XX 116477099f1SUwe Kleine-König help 117477099f1SUwe Kleine-König Say Y here if you want the debug print routines to direct 118477099f1SUwe Kleine-König their output to UART2 serial port on DaVinci DA8XX devices. 119477099f1SUwe Kleine-König 120477099f1SUwe Kleine-König config DEBUG_DAVINCI_DMx_UART0 121477099f1SUwe Kleine-König bool "Kernel low-level debugging on DaVinci DMx using UART0" 122477099f1SUwe Kleine-König depends on ARCH_DAVINCI_DMx 123477099f1SUwe Kleine-König help 124477099f1SUwe Kleine-König Say Y here if you want the debug print routines to direct 125477099f1SUwe Kleine-König their output to UART0 serial port on DaVinci DMx devices. 126477099f1SUwe Kleine-König 127477099f1SUwe Kleine-König config DEBUG_DAVINCI_TNETV107X_UART1 128477099f1SUwe Kleine-König bool "Kernel low-level debugging on DaVinci TNETV107x using UART1" 129477099f1SUwe Kleine-König depends on ARCH_DAVINCI_TNETV107X 130477099f1SUwe Kleine-König help 131477099f1SUwe Kleine-König Say Y here if you want the debug print routines to direct 132477099f1SUwe Kleine-König their output to UART1 serial port on DaVinci TNETV107X 133477099f1SUwe Kleine-König devices. 134477099f1SUwe Kleine-König 135aaf5e0beSNick Bowler config DEBUG_ZYNQ_UART0 136aaf5e0beSNick Bowler bool "Kernel low-level debugging on Xilinx Zynq using UART0" 137aaf5e0beSNick Bowler depends on ARCH_ZYNQ 138aaf5e0beSNick Bowler help 139aaf5e0beSNick Bowler Say Y here if you want the debug print routines to direct 140aaf5e0beSNick Bowler their output to UART0 on the Zynq platform. 141aaf5e0beSNick Bowler 142aaf5e0beSNick Bowler config DEBUG_ZYNQ_UART1 143aaf5e0beSNick Bowler bool "Kernel low-level debugging on Xilinx Zynq using UART1" 144aaf5e0beSNick Bowler depends on ARCH_ZYNQ 145aaf5e0beSNick Bowler help 146aaf5e0beSNick Bowler Say Y here if you want the debug print routines to direct 147aaf5e0beSNick Bowler their output to UART1 on the Zynq platform. 148aaf5e0beSNick Bowler 149aaf5e0beSNick Bowler If you have a ZC702 board and want early boot messages to 150aaf5e0beSNick Bowler appear on the USB serial adaptor, select this option. 151aaf5e0beSNick Bowler 152e76f4750SRussell King config DEBUG_DC21285_PORT 153e76f4750SRussell King bool "Kernel low-level debugging messages via footbridge serial port" 154e76f4750SRussell King depends on FOOTBRIDGE 155e76f4750SRussell King help 156e76f4750SRussell King Say Y here if you want the debug print routines to direct 157e76f4750SRussell King their output to the serial port in the DC21285 (Footbridge). 158e76f4750SRussell King 159e76f4750SRussell King config DEBUG_FOOTBRIDGE_COM1 160e76f4750SRussell King bool "Kernel low-level debugging messages via footbridge 8250 at PCI COM1" 161e76f4750SRussell King depends on FOOTBRIDGE 162e76f4750SRussell King help 163e76f4750SRussell King Say Y here if you want the debug print routines to direct 164e76f4750SRussell King their output to the 8250 at PCI COM1. 165e76f4750SRussell King 166220e6cf7SRob Herring config DEBUG_HIGHBANK_UART 167220e6cf7SRob Herring bool "Kernel low-level debugging messages via Highbank UART" 168220e6cf7SRob Herring depends on ARCH_HIGHBANK 169220e6cf7SRob Herring help 170220e6cf7SRob Herring Say Y here if you want the debug print routines to direct 171220e6cf7SRob Herring their output to the UART on Highbank based devices. 172220e6cf7SRob Herring 173f350b861SShawn Guo config DEBUG_IMX1_UART 174f350b861SShawn Guo bool "i.MX1 Debug UART" 175f350b861SShawn Guo depends on SOC_IMX1 176f350b861SShawn Guo help 177f350b861SShawn Guo Say Y here if you want kernel low-level debugging support 178f350b861SShawn Guo on i.MX1. 179f350b861SShawn Guo 180f350b861SShawn Guo config DEBUG_IMX23_UART 181f350b861SShawn Guo bool "i.MX23 Debug UART" 182f350b861SShawn Guo depends on SOC_IMX23 183f350b861SShawn Guo help 184f350b861SShawn Guo Say Y here if you want kernel low-level debugging support 185f350b861SShawn Guo on i.MX23. 186f350b861SShawn Guo 187f350b861SShawn Guo config DEBUG_IMX25_UART 188f350b861SShawn Guo bool "i.MX25 Debug UART" 189f350b861SShawn Guo depends on SOC_IMX25 190f350b861SShawn Guo help 191f350b861SShawn Guo Say Y here if you want kernel low-level debugging support 192f350b861SShawn Guo on i.MX25. 193f350b861SShawn Guo 194f350b861SShawn Guo config DEBUG_IMX21_IMX27_UART 195f350b861SShawn Guo bool "i.MX21 and i.MX27 Debug UART" 196f350b861SShawn Guo depends on SOC_IMX21 || SOC_IMX27 197f350b861SShawn Guo help 198f350b861SShawn Guo Say Y here if you want kernel low-level debugging support 199f350b861SShawn Guo on i.MX21 or i.MX27. 200f350b861SShawn Guo 201f350b861SShawn Guo config DEBUG_IMX28_UART 202f350b861SShawn Guo bool "i.MX28 Debug UART" 203f350b861SShawn Guo depends on SOC_IMX28 204f350b861SShawn Guo help 205f350b861SShawn Guo Say Y here if you want kernel low-level debugging support 206f350b861SShawn Guo on i.MX28. 207f350b861SShawn Guo 208f350b861SShawn Guo config DEBUG_IMX31_IMX35_UART 209f350b861SShawn Guo bool "i.MX31 and i.MX35 Debug UART" 210f350b861SShawn Guo depends on SOC_IMX31 || SOC_IMX35 211f350b861SShawn Guo help 212f350b861SShawn Guo Say Y here if you want kernel low-level debugging support 213f350b861SShawn Guo on i.MX31 or i.MX35. 214f350b861SShawn Guo 215f350b861SShawn Guo config DEBUG_IMX51_UART 216f350b861SShawn Guo bool "i.MX51 Debug UART" 217f350b861SShawn Guo depends on SOC_IMX51 218f350b861SShawn Guo help 219f350b861SShawn Guo Say Y here if you want kernel low-level debugging support 220f350b861SShawn Guo on i.MX51. 221f350b861SShawn Guo 222f350b861SShawn Guo config DEBUG_IMX50_IMX53_UART 223f350b861SShawn Guo bool "i.MX50 and i.MX53 Debug UART" 224f350b861SShawn Guo depends on SOC_IMX50 || SOC_IMX53 225f350b861SShawn Guo help 226f350b861SShawn Guo Say Y here if you want kernel low-level debugging support 227f350b861SShawn Guo on i.MX50 or i.MX53. 228f350b861SShawn Guo 22949c9e60eSShawn Guo config DEBUG_IMX6Q_UART 23049c9e60eSShawn Guo bool "i.MX6Q Debug UART" 231785d7fabSDirk Behme depends on SOC_IMX6Q 232785d7fabSDirk Behme help 233785d7fabSDirk Behme Say Y here if you want kernel low-level debugging support 23449c9e60eSShawn Guo on i.MX6Q. 235bac89d75SShawn Guo 236fa4cd2a8SHaojian Zhuang config DEBUG_MMP_UART2 237fa4cd2a8SHaojian Zhuang bool "Kernel low-level debugging message via MMP UART2" 238fa4cd2a8SHaojian Zhuang depends on ARCH_MMP 239fa4cd2a8SHaojian Zhuang help 240fa4cd2a8SHaojian Zhuang Say Y here if you want kernel low-level debugging support 241fa4cd2a8SHaojian Zhuang on MMP UART2. 242fa4cd2a8SHaojian Zhuang 243fa4cd2a8SHaojian Zhuang config DEBUG_MMP_UART3 244fa4cd2a8SHaojian Zhuang bool "Kernel low-level debugging message via MMP UART3" 245fa4cd2a8SHaojian Zhuang depends on ARCH_MMP 246fa4cd2a8SHaojian Zhuang help 247fa4cd2a8SHaojian Zhuang Say Y here if you want kernel low-level debugging support 248fa4cd2a8SHaojian Zhuang on MMP UART3. 249fa4cd2a8SHaojian Zhuang 250650e3f0dSStephen Boyd config DEBUG_MSM_UART1 251650e3f0dSStephen Boyd bool "Kernel low-level debugging messages via MSM UART1" 252650e3f0dSStephen Boyd depends on ARCH_MSM7X00A || ARCH_MSM7X30 || ARCH_QSD8X50 253650e3f0dSStephen Boyd help 254650e3f0dSStephen Boyd Say Y here if you want the debug print routines to direct 255650e3f0dSStephen Boyd their output to the first serial port on MSM devices. 256650e3f0dSStephen Boyd 257650e3f0dSStephen Boyd config DEBUG_MSM_UART2 258650e3f0dSStephen Boyd bool "Kernel low-level debugging messages via MSM UART2" 259650e3f0dSStephen Boyd depends on ARCH_MSM7X00A || ARCH_MSM7X30 || ARCH_QSD8X50 260650e3f0dSStephen Boyd help 261650e3f0dSStephen Boyd Say Y here if you want the debug print routines to direct 262650e3f0dSStephen Boyd their output to the second serial port on MSM devices. 263650e3f0dSStephen Boyd 264650e3f0dSStephen Boyd config DEBUG_MSM_UART3 265650e3f0dSStephen Boyd bool "Kernel low-level debugging messages via MSM UART3" 266650e3f0dSStephen Boyd depends on ARCH_MSM7X00A || ARCH_MSM7X30 || ARCH_QSD8X50 267650e3f0dSStephen Boyd help 268650e3f0dSStephen Boyd Say Y here if you want the debug print routines to direct 269650e3f0dSStephen Boyd their output to the third serial port on MSM devices. 270650e3f0dSStephen Boyd 271a3d3ef9dSStephen Boyd config DEBUG_MSM8660_UART 272a3d3ef9dSStephen Boyd bool "Kernel low-level debugging messages via MSM 8660 UART" 273a3d3ef9dSStephen Boyd depends on ARCH_MSM8X60 274a3d3ef9dSStephen Boyd select MSM_HAS_DEBUG_UART_HS 275a3d3ef9dSStephen Boyd help 276a3d3ef9dSStephen Boyd Say Y here if you want the debug print routines to direct 277a3d3ef9dSStephen Boyd their output to the serial port on MSM 8660 devices. 278a3d3ef9dSStephen Boyd 279a3d3ef9dSStephen Boyd config DEBUG_MSM8960_UART 280a3d3ef9dSStephen Boyd bool "Kernel low-level debugging messages via MSM 8960 UART" 281a3d3ef9dSStephen Boyd depends on ARCH_MSM8960 282a3d3ef9dSStephen Boyd select MSM_HAS_DEBUG_UART_HS 283a3d3ef9dSStephen Boyd help 284a3d3ef9dSStephen Boyd Say Y here if you want the debug print routines to direct 285a3d3ef9dSStephen Boyd their output to the serial port on MSM 8960 devices. 286a3d3ef9dSStephen Boyd 287bfd5af99SRob Herring config DEBUG_MVEBU_UART 288bfd5af99SRob Herring bool "Kernel low-level debugging messages via MVEBU UART" 289bfd5af99SRob Herring depends on ARCH_MVEBU 290bfd5af99SRob Herring help 291bfd5af99SRob Herring Say Y here if you want kernel low-level debugging support 292bfd5af99SRob Herring on MVEBU based platforms. 293bfd5af99SRob Herring 29459bba2a9SRob Herring config DEBUG_PICOXCELL_UART 29559bba2a9SRob Herring depends on ARCH_PICOXCELL 29659bba2a9SRob Herring bool "Use PicoXcell UART for low-level debug" 29759bba2a9SRob Herring help 29859bba2a9SRob Herring Say Y here if you want kernel low-level debugging support 29959bba2a9SRob Herring on PicoXcell based platforms. 30059bba2a9SRob Herring 301e76f4750SRussell King config DEBUG_REALVIEW_STD_PORT 302e76f4750SRussell King bool "RealView Default UART" 303e76f4750SRussell King depends on ARCH_REALVIEW 304e76f4750SRussell King help 305e76f4750SRussell King Say Y here if you want the debug print routines to direct 306e76f4750SRussell King their output to the serial port on RealView EB, PB11MP, PBA8 307e76f4750SRussell King and PBX platforms. 308e76f4750SRussell King 309e76f4750SRussell King config DEBUG_REALVIEW_PB1176_PORT 310e76f4750SRussell King bool "RealView PB1176 UART" 311e76f4750SRussell King depends on MACH_REALVIEW_PB1176 312e76f4750SRussell King help 313e76f4750SRussell King Say Y here if you want the debug print routines to direct 314e76f4750SRussell King their output to the standard serial port on the RealView 315e76f4750SRussell King PB1176 platform. 316e76f4750SRussell King 317e76f4750SRussell King config DEBUG_S3C_UART0 318e76f4750SRussell King depends on PLAT_SAMSUNG 319e76f4750SRussell King bool "Use S3C UART 0 for low-level debug" 320e76f4750SRussell King help 321e76f4750SRussell King Say Y here if you want the debug print routines to direct 322e76f4750SRussell King their output to UART 0. The port must have been initialised 323e76f4750SRussell King by the boot-loader before use. 324e76f4750SRussell King 325e76f4750SRussell King The uncompressor code port configuration is now handled 326e76f4750SRussell King by CONFIG_S3C_LOWLEVEL_UART_PORT. 327e76f4750SRussell King 328e76f4750SRussell King config DEBUG_S3C_UART1 329e76f4750SRussell King depends on PLAT_SAMSUNG 330e76f4750SRussell King bool "Use S3C UART 1 for low-level debug" 331e76f4750SRussell King help 332e76f4750SRussell King Say Y here if you want the debug print routines to direct 333e76f4750SRussell King their output to UART 1. The port must have been initialised 334e76f4750SRussell King by the boot-loader before use. 335e76f4750SRussell King 336e76f4750SRussell King The uncompressor code port configuration is now handled 337e76f4750SRussell King by CONFIG_S3C_LOWLEVEL_UART_PORT. 338e76f4750SRussell King 339e76f4750SRussell King config DEBUG_S3C_UART2 340e76f4750SRussell King depends on PLAT_SAMSUNG 341e76f4750SRussell King bool "Use S3C UART 2 for low-level debug" 342e76f4750SRussell King help 343e76f4750SRussell King Say Y here if you want the debug print routines to direct 344e76f4750SRussell King their output to UART 2. The port must have been initialised 345e76f4750SRussell King by the boot-loader before use. 346e76f4750SRussell King 347e76f4750SRussell King The uncompressor code port configuration is now handled 348e76f4750SRussell King by CONFIG_S3C_LOWLEVEL_UART_PORT. 349e76f4750SRussell King 3505fa23ddeSOlof Johansson config DEBUG_S3C_UART3 3515fa23ddeSOlof Johansson depends on PLAT_SAMSUNG && ARCH_EXYNOS 3525fa23ddeSOlof Johansson bool "Use S3C UART 3 for low-level debug" 3535fa23ddeSOlof Johansson help 3545fa23ddeSOlof Johansson Say Y here if you want the debug print routines to direct 3555fa23ddeSOlof Johansson their output to UART 3. The port must have been initialised 3565fa23ddeSOlof Johansson by the boot-loader before use. 3575fa23ddeSOlof Johansson 3585fa23ddeSOlof Johansson The uncompressor code port configuration is now handled 3595fa23ddeSOlof Johansson by CONFIG_S3C_LOWLEVEL_UART_PORT. 3605fa23ddeSOlof Johansson 3616111bf7cSRob Herring config DEBUG_SOCFPGA_UART 3626111bf7cSRob Herring depends on ARCH_SOCFPGA 3636111bf7cSRob Herring bool "Use SOCFPGA UART for low-level debug" 3646111bf7cSRob Herring help 3656111bf7cSRob Herring Say Y here if you want kernel low-level debugging support 3666111bf7cSRob Herring on SOCFPGA based platforms. 3676111bf7cSRob Herring 368aa25115aSStefan Roese config DEBUG_SUNXI_UART0 369aa25115aSStefan Roese bool "Kernel low-level debugging messages via sunXi UART0" 370aa25115aSStefan Roese depends on ARCH_SUNXI 371aa25115aSStefan Roese help 372aa25115aSStefan Roese Say Y here if you want kernel low-level debugging support 373aa25115aSStefan Roese on Allwinner A1X based platforms on the UART0. 374aa25115aSStefan Roese 375cb84fa18SMaxime Ripard config DEBUG_SUNXI_UART1 376cb84fa18SMaxime Ripard bool "Kernel low-level debugging messages via sunXi UART1" 377cb84fa18SMaxime Ripard depends on ARCH_SUNXI 378cb84fa18SMaxime Ripard help 379cb84fa18SMaxime Ripard Say Y here if you want kernel low-level debugging support 380cb84fa18SMaxime Ripard on Allwinner A1X based platforms on the UART1. 381cb84fa18SMaxime Ripard 38246067803SStephen Warren config DEBUG_TEGRA_UART 38346067803SStephen Warren depends on ARCH_TEGRA 38446067803SStephen Warren bool "Use Tegra UART for low-level debug" 38546067803SStephen Warren help 38646067803SStephen Warren Say Y here if you want kernel low-level debugging support 38746067803SStephen Warren on Tegra based platforms. 38846067803SStephen Warren 389*7f46a107SBarry Song config DEBUG_SIRFPRIMA2_UART1 390*7f46a107SBarry Song bool "Kernel low-level debugging messages via SiRFprimaII UART1" 391*7f46a107SBarry Song depends on ARCH_PRIMA2 392*7f46a107SBarry Song help 393*7f46a107SBarry Song Say Y here if you want the debug print routines to direct 394*7f46a107SBarry Song their output to the uart1 port on SiRFprimaII devices. 395*7f46a107SBarry Song 396*7f46a107SBarry Song config DEBUG_SIRFMARCO_UART1 397*7f46a107SBarry Song bool "Kernel low-level debugging messages via SiRFmarco UART1" 398*7f46a107SBarry Song depends on ARCH_MARCO 399*7f46a107SBarry Song help 400*7f46a107SBarry Song Say Y here if you want the debug print routines to direct 401*7f46a107SBarry Song their output to the uart1 port on SiRFmarco devices. 402*7f46a107SBarry Song 4031b820eafSPawel Moll config DEBUG_VEXPRESS_UART0_DETECT 4041b820eafSPawel Moll bool "Autodetect UART0 on Versatile Express Cortex-A core tiles" 4051b820eafSPawel Moll depends on ARCH_VEXPRESS && CPU_CP15_MMU 4061b820eafSPawel Moll help 4071b820eafSPawel Moll This option enables a simple heuristic which tries to determine 4081b820eafSPawel Moll the motherboard's memory map variant (original or RS1) and then 4091b820eafSPawel Moll choose the relevant UART0 base address. 4101b820eafSPawel Moll 4111b820eafSPawel Moll Note that this will only work with standard A-class core tiles, 4121b820eafSPawel Moll and may fail with non-standard SMM or custom software models. 4131b820eafSPawel Moll 4141b820eafSPawel Moll config DEBUG_VEXPRESS_UART0_CA9 4151b820eafSPawel Moll bool "Use PL011 UART0 at 0x10009000 (V2P-CA9 core tile)" 4161b820eafSPawel Moll depends on ARCH_VEXPRESS 4171b820eafSPawel Moll help 4181b820eafSPawel Moll This option selects UART0 at 0x10009000. Except for custom models, 4191b820eafSPawel Moll this applies only to the V2P-CA9 tile. 4201b820eafSPawel Moll 4211b820eafSPawel Moll config DEBUG_VEXPRESS_UART0_RS1 4221b820eafSPawel Moll bool "Use PL011 UART0 at 0x1c090000 (RS1 complaint tiles)" 4231b820eafSPawel Moll depends on ARCH_VEXPRESS 4241b820eafSPawel Moll help 4251b820eafSPawel Moll This option selects UART0 at 0x1c090000. This applies to most 4261b820eafSPawel Moll of the tiles using the RS1 memory map, including all new A-class 4271b820eafSPawel Moll core tiles, FPGA-based SMMs and software models. 4281b820eafSPawel Moll 429e76f4750SRussell King config DEBUG_LL_UART_NONE 430e76f4750SRussell King bool "No low-level debugging UART" 431387798b3SRob Herring depends on !ARCH_MULTIPLATFORM 432e76f4750SRussell King help 433e76f4750SRussell King Say Y here if your platform doesn't provide a UART option 434e76f4750SRussell King below. This relies on your platform choosing the right UART 435e76f4750SRussell King definition internally in order for low-level debugging to 436e76f4750SRussell King work. 437e76f4750SRussell King 438e76f4750SRussell King config DEBUG_ICEDCC 439e76f4750SRussell King bool "Kernel low-level debugging via EmbeddedICE DCC channel" 440e76f4750SRussell King help 441e76f4750SRussell King Say Y here if you want the debug print routines to direct 442e76f4750SRussell King their output to the EmbeddedICE macrocell's DCC channel using 443e76f4750SRussell King co-processor 14. This is known to work on the ARM9 style ICE 444e76f4750SRussell King channel and on the XScale with the PEEDI. 445e76f4750SRussell King 446e76f4750SRussell King Note that the system will appear to hang during boot if there 447e76f4750SRussell King is nothing connected to read from the DCC. 448e76f4750SRussell King 449b0df8986SRussell King config DEBUG_SEMIHOSTING 45062194bdaSStephen Boyd bool "Kernel low-level debug output via semihosting I/O" 451b0df8986SRussell King help 452b0df8986SRussell King Semihosting enables code running on an ARM target to use 453b0df8986SRussell King the I/O facilities on a host debugger/emulator through a 45462194bdaSStephen Boyd simple SVC call. The host debugger or emulator must have 455b0df8986SRussell King semihosting enabled for the special svc call to be trapped 456b0df8986SRussell King otherwise the kernel will crash. 457b0df8986SRussell King 458b0df8986SRussell King This is known to work with OpenOCD, as well as 459b0df8986SRussell King ARM's Fast Models, or any other controlling environment 460b0df8986SRussell King that implements semihosting. 461b0df8986SRussell King 462b0df8986SRussell King For more details about semihosting, please see 463b0df8986SRussell King chapter 8 of DUI0203I_rvct_developer_guide.pdf from ARM Ltd. 464b0df8986SRussell King 46517916b28SWill Deaconendchoice 46617916b28SWill Deacon 46749c9e60eSShawn Guoconfig DEBUG_IMX6Q_UART_PORT 46849c9e60eSShawn Guo int "i.MX6Q Debug UART Port (1-5)" if DEBUG_IMX6Q_UART 46949c9e60eSShawn Guo range 1 5 47049c9e60eSShawn Guo default 1 47149c9e60eSShawn Guo depends on SOC_IMX6Q 47249c9e60eSShawn Guo help 47349c9e60eSShawn Guo Choose UART port on which kernel low-level debug messages 47449c9e60eSShawn Guo should be output. 47549c9e60eSShawn Guo 47646067803SStephen Warrenchoice 47746067803SStephen Warren prompt "Low-level debug console UART" 47846067803SStephen Warren depends on DEBUG_LL && DEBUG_TEGRA_UART 47946067803SStephen Warren 48046067803SStephen Warren config TEGRA_DEBUG_UART_AUTO_ODMDATA 48146067803SStephen Warren bool "Via ODMDATA" 48246067803SStephen Warren help 48346067803SStephen Warren Automatically determines which UART to use for low-level debug based 48446067803SStephen Warren on the ODMDATA value. This value is part of the BCT, and is written 48546067803SStephen Warren to the boot memory device using nvflash, or other flashing tool. 48646067803SStephen Warren When bits 19:18 are 3, then bits 17:15 indicate which UART to use; 48746067803SStephen Warren 0/1/2/3/4 are UART A/B/C/D/E. 48846067803SStephen Warren 48946067803SStephen Warren config TEGRA_DEBUG_UARTA 49046067803SStephen Warren bool "UART A" 49146067803SStephen Warren 49246067803SStephen Warren config TEGRA_DEBUG_UARTB 49346067803SStephen Warren bool "UART B" 49446067803SStephen Warren 49546067803SStephen Warren config TEGRA_DEBUG_UARTC 49646067803SStephen Warren bool "UART C" 49746067803SStephen Warren 49846067803SStephen Warren config TEGRA_DEBUG_UARTD 49946067803SStephen Warren bool "UART D" 50046067803SStephen Warren 50146067803SStephen Warren config TEGRA_DEBUG_UARTE 50246067803SStephen Warren bool "UART E" 50346067803SStephen Warren 50446067803SStephen Warrenendchoice 50546067803SStephen Warren 50691a9fec0SRob Herringconfig DEBUG_LL_INCLUDE 50791a9fec0SRob Herring string 50891a9fec0SRob Herring default "debug/icedcc.S" if DEBUG_ICEDCC 5096dde5ac5SShawn Guo default "debug/imx.S" if DEBUG_IMX1_UART || \ 5106dde5ac5SShawn Guo DEBUG_IMX25_UART || \ 5116dde5ac5SShawn Guo DEBUG_IMX21_IMX27_UART || \ 5126dde5ac5SShawn Guo DEBUG_IMX31_IMX35_UART || \ 5136dde5ac5SShawn Guo DEBUG_IMX51_UART || \ 5146dde5ac5SShawn Guo DEBUG_IMX50_IMX53_UART ||\ 51549c9e60eSShawn Guo DEBUG_IMX6Q_UART 5162e9bb084SRob Herring default "debug/highbank.S" if DEBUG_HIGHBANK_UART 517bfd5af99SRob Herring default "debug/mvebu.S" if DEBUG_MVEBU_UART 51859bba2a9SRob Herring default "debug/picoxcell.S" if DEBUG_PICOXCELL_UART 5196111bf7cSRob Herring default "debug/socfpga.S" if DEBUG_SOCFPGA_UART 520aa25115aSStefan Roese default "debug/sunxi.S" if DEBUG_SUNXI_UART0 || DEBUG_SUNXI_UART1 521fa04e4dbSRob Herring default "debug/vexpress.S" if DEBUG_VEXPRESS_UART0_DETECT || \ 522fa04e4dbSRob Herring DEBUG_VEXPRESS_UART0_CA9 || DEBUG_VEXPRESS_UART0_RS1 52346067803SStephen Warren default "debug/tegra.S" if DEBUG_TEGRA_UART 524385f02b1SJosh Cartwright default "debug/zynq.S" if DEBUG_ZYNQ_UART0 || DEBUG_ZYNQ_UART1 52591a9fec0SRob Herring default "mach/debug-macro.S" 52691a9fec0SRob Herring 52793fd03a8SCatalin Marinasconfig EARLY_PRINTK 52893fd03a8SCatalin Marinas bool "Early printk" 52993fd03a8SCatalin Marinas depends on DEBUG_LL 53093fd03a8SCatalin Marinas help 53193fd03a8SCatalin Marinas Say Y here if you want to have an early console using the 53293fd03a8SCatalin Marinas kernel low-level debugging functions. Add earlyprintk to your 53393fd03a8SCatalin Marinas kernel parameters to enable this console. 53493fd03a8SCatalin Marinas 535c5d6c770SAlexander Shishkinconfig OC_ETM 536c5d6c770SAlexander Shishkin bool "On-chip ETM and ETB" 53753eebb0dSArnd Bergmann depends on ARM_AMBA 538c5d6c770SAlexander Shishkin help 539c5d6c770SAlexander Shishkin Enables the on-chip embedded trace macrocell and embedded trace 540c5d6c770SAlexander Shishkin buffer driver that will allow you to collect traces of the 541c5d6c770SAlexander Shishkin kernel code. 542c5d6c770SAlexander Shishkin 5434189bc71SJon Medhurstconfig ARM_KPROBES_TEST 5444189bc71SJon Medhurst tristate "Kprobes test module" 5454189bc71SJon Medhurst depends on KPROBES && MODULES 5464189bc71SJon Medhurst help 5474189bc71SJon Medhurst Perform tests of kprobes API and instruction set simulation. 5484189bc71SJon Medhurst 549575320d6SWill Deaconconfig PID_IN_CONTEXTIDR 550575320d6SWill Deacon bool "Write the current PID to the CONTEXTIDR register" 551575320d6SWill Deacon depends on CPU_COPY_V6 552575320d6SWill Deacon help 553575320d6SWill Deacon Enabling this option causes the kernel to write the current PID to 554575320d6SWill Deacon the PROCID field of the CONTEXTIDR register, at the expense of some 555575320d6SWill Deacon additional instructions during context switch. Say Y here only if you 556575320d6SWill Deacon are planning to use hardware trace tools with this kernel. 557575320d6SWill Deacon 5581da177e4SLinus Torvaldsendmenu 559