1menu "Kernel hacking" 2 3source "lib/Kconfig.debug" 4 5config STRICT_DEVMEM 6 bool "Filter access to /dev/mem" 7 depends on MMU 8 ---help--- 9 If this option is disabled, you allow userspace (root) access to all 10 of memory, including kernel and userspace memory. Accidental 11 access to this is obviously disastrous, but specific access can 12 be used by people debugging the kernel. 13 14 If this option is switched on, the /dev/mem file only allows 15 userspace access to memory mapped peripherals. 16 17 If in doubt, say Y. 18 19# RMK wants arm kernels compiled with frame pointers or stack unwinding. 20# If you know what you are doing and are willing to live without stack 21# traces, you can get a slightly smaller kernel by setting this option to 22# n, but then RMK will have to kill you ;). 23config FRAME_POINTER 24 bool 25 depends on !THUMB2_KERNEL 26 default y if !ARM_UNWIND || FUNCTION_GRAPH_TRACER 27 help 28 If you say N here, the resulting kernel will be slightly smaller and 29 faster. However, if neither FRAME_POINTER nor ARM_UNWIND are enabled, 30 when a problem occurs with the kernel, the information that is 31 reported is severely limited. 32 33config ARM_UNWIND 34 bool "Enable stack unwinding support (EXPERIMENTAL)" 35 depends on AEABI && EXPERIMENTAL 36 default y 37 help 38 This option enables stack unwinding support in the kernel 39 using the information automatically generated by the 40 compiler. The resulting kernel image is slightly bigger but 41 the performance is not affected. Currently, this feature 42 only works with EABI compilers. If unsure say Y. 43 44config OLD_MCOUNT 45 bool 46 depends on FUNCTION_TRACER && FRAME_POINTER 47 default y 48 49config DEBUG_USER 50 bool "Verbose user fault messages" 51 help 52 When a user program crashes due to an exception, the kernel can 53 print a brief message explaining what the problem was. This is 54 sometimes helpful for debugging but serves no purpose on a 55 production system. Most people should say N here. 56 57 In addition, you need to pass user_debug=N on the kernel command 58 line to enable this feature. N consists of the sum of: 59 60 1 - undefined instruction events 61 2 - system calls 62 4 - invalid data aborts 63 8 - SIGSEGV faults 64 16 - SIGBUS faults 65 66# These options are only for real kernel hackers who want to get their hands dirty. 67config DEBUG_LL 68 bool "Kernel low-level debugging functions (read help!)" 69 depends on DEBUG_KERNEL 70 help 71 Say Y here to include definitions of printascii, printch, printhex 72 in the kernel. This is helpful if you are debugging code that 73 executes before the console is initialized. 74 75 Note that selecting this option will limit the kernel to a single 76 UART definition, as specified below. Attempting to boot the kernel 77 image on a different platform *will not work*, so this option should 78 not be enabled for kernels that are intended to be portable. 79 80choice 81 prompt "Kernel low-level debugging port" 82 depends on DEBUG_LL 83 84 config DEBUG_LL_UART_NONE 85 bool "No low-level debugging UART" 86 help 87 Say Y here if your platform doesn't provide a UART option 88 below. This relies on your platform choosing the right UART 89 definition internally in order for low-level debugging to 90 work. 91 92 config DEBUG_ICEDCC 93 bool "Kernel low-level debugging via EmbeddedICE DCC channel" 94 help 95 Say Y here if you want the debug print routines to direct 96 their output to the EmbeddedICE macrocell's DCC channel using 97 co-processor 14. This is known to work on the ARM9 style ICE 98 channel and on the XScale with the PEEDI. 99 100 Note that the system will appear to hang during boot if there 101 is nothing connected to read from the DCC. 102 103 config AT91_DEBUG_LL_DBGU0 104 bool "Kernel low-level debugging on rm9200, 9260/9g20, 9261/9g10 and 9rl" 105 depends on HAVE_AT91_DBGU0 106 107 config AT91_DEBUG_LL_DBGU1 108 bool "Kernel low-level debugging on 9263, 9g45 and cap9" 109 depends on HAVE_AT91_DBGU1 110 111 config DEBUG_FOOTBRIDGE_COM1 112 bool "Kernel low-level debugging messages via footbridge 8250 at PCI COM1" 113 depends on FOOTBRIDGE 114 help 115 Say Y here if you want the debug print routines to direct 116 their output to the 8250 at PCI COM1. 117 118 config DEBUG_DC21285_PORT 119 bool "Kernel low-level debugging messages via footbridge serial port" 120 depends on FOOTBRIDGE 121 help 122 Say Y here if you want the debug print routines to direct 123 their output to the serial port in the DC21285 (Footbridge). 124 125 config DEBUG_CLPS711X_UART1 126 bool "Kernel low-level debugging messages via UART1" 127 depends on ARCH_CLPS711X 128 help 129 Say Y here if you want the debug print routines to direct 130 their output to the first serial port on these devices. 131 132 config DEBUG_CLPS711X_UART2 133 bool "Kernel low-level debugging messages via UART2" 134 depends on ARCH_CLPS711X 135 help 136 Say Y here if you want the debug print routines to direct 137 their output to the second serial port on these devices. 138 139 config DEBUG_HIGHBANK_UART 140 bool "Kernel low-level debugging messages via Highbank UART" 141 depends on ARCH_HIGHBANK 142 help 143 Say Y here if you want the debug print routines to direct 144 their output to the UART on Highbank based devices. 145 146 config DEBUG_IMX1_UART 147 bool "i.MX1 Debug UART" 148 depends on SOC_IMX1 149 help 150 Say Y here if you want kernel low-level debugging support 151 on i.MX1. 152 153 config DEBUG_IMX23_UART 154 bool "i.MX23 Debug UART" 155 depends on SOC_IMX23 156 help 157 Say Y here if you want kernel low-level debugging support 158 on i.MX23. 159 160 config DEBUG_IMX25_UART 161 bool "i.MX25 Debug UART" 162 depends on SOC_IMX25 163 help 164 Say Y here if you want kernel low-level debugging support 165 on i.MX25. 166 167 config DEBUG_IMX21_IMX27_UART 168 bool "i.MX21 and i.MX27 Debug UART" 169 depends on SOC_IMX21 || SOC_IMX27 170 help 171 Say Y here if you want kernel low-level debugging support 172 on i.MX21 or i.MX27. 173 174 config DEBUG_IMX28_UART 175 bool "i.MX28 Debug UART" 176 depends on SOC_IMX28 177 help 178 Say Y here if you want kernel low-level debugging support 179 on i.MX28. 180 181 config DEBUG_IMX31_IMX35_UART 182 bool "i.MX31 and i.MX35 Debug UART" 183 depends on SOC_IMX31 || SOC_IMX35 184 help 185 Say Y here if you want kernel low-level debugging support 186 on i.MX31 or i.MX35. 187 188 config DEBUG_IMX51_UART 189 bool "i.MX51 Debug UART" 190 depends on SOC_IMX51 191 help 192 Say Y here if you want kernel low-level debugging support 193 on i.MX51. 194 195 config DEBUG_IMX50_IMX53_UART 196 bool "i.MX50 and i.MX53 Debug UART" 197 depends on SOC_IMX50 || SOC_IMX53 198 help 199 Say Y here if you want kernel low-level debugging support 200 on i.MX50 or i.MX53. 201 202 config DEBUG_IMX6Q_UART 203 bool "i.MX6Q Debug UART" 204 depends on SOC_IMX6Q 205 help 206 Say Y here if you want kernel low-level debugging support 207 on i.MX6Q. 208 209 config DEBUG_S3C_UART0 210 depends on PLAT_SAMSUNG 211 bool "Use S3C UART 0 for low-level debug" 212 help 213 Say Y here if you want the debug print routines to direct 214 their output to UART 0. The port must have been initialised 215 by the boot-loader before use. 216 217 The uncompressor code port configuration is now handled 218 by CONFIG_S3C_LOWLEVEL_UART_PORT. 219 220 config DEBUG_S3C_UART1 221 depends on PLAT_SAMSUNG 222 bool "Use S3C UART 1 for low-level debug" 223 help 224 Say Y here if you want the debug print routines to direct 225 their output to UART 1. The port must have been initialised 226 by the boot-loader before use. 227 228 The uncompressor code port configuration is now handled 229 by CONFIG_S3C_LOWLEVEL_UART_PORT. 230 231 config DEBUG_S3C_UART2 232 depends on PLAT_SAMSUNG 233 bool "Use S3C UART 2 for low-level debug" 234 help 235 Say Y here if you want the debug print routines to direct 236 their output to UART 2. The port must have been initialised 237 by the boot-loader before use. 238 239 The uncompressor code port configuration is now handled 240 by CONFIG_S3C_LOWLEVEL_UART_PORT. 241 242 config DEBUG_REALVIEW_STD_PORT 243 bool "RealView Default UART" 244 depends on ARCH_REALVIEW 245 help 246 Say Y here if you want the debug print routines to direct 247 their output to the serial port on RealView EB, PB11MP, PBA8 248 and PBX platforms. 249 250 config DEBUG_REALVIEW_PB1176_PORT 251 bool "RealView PB1176 UART" 252 depends on MACH_REALVIEW_PB1176 253 help 254 Say Y here if you want the debug print routines to direct 255 their output to the standard serial port on the RealView 256 PB1176 platform. 257 258 config DEBUG_MSM_UART1 259 bool "Kernel low-level debugging messages via MSM UART1" 260 depends on ARCH_MSM7X00A || ARCH_MSM7X30 || ARCH_QSD8X50 261 help 262 Say Y here if you want the debug print routines to direct 263 their output to the first serial port on MSM devices. 264 265 config DEBUG_MSM_UART2 266 bool "Kernel low-level debugging messages via MSM UART2" 267 depends on ARCH_MSM7X00A || ARCH_MSM7X30 || ARCH_QSD8X50 268 help 269 Say Y here if you want the debug print routines to direct 270 their output to the second serial port on MSM devices. 271 272 config DEBUG_MSM_UART3 273 bool "Kernel low-level debugging messages via MSM UART3" 274 depends on ARCH_MSM7X00A || ARCH_MSM7X30 || ARCH_QSD8X50 275 help 276 Say Y here if you want the debug print routines to direct 277 their output to the third serial port on MSM devices. 278 279 config DEBUG_MSM8660_UART 280 bool "Kernel low-level debugging messages via MSM 8660 UART" 281 depends on ARCH_MSM8X60 282 select MSM_HAS_DEBUG_UART_HS 283 help 284 Say Y here if you want the debug print routines to direct 285 their output to the serial port on MSM 8660 devices. 286 287 config DEBUG_MSM8960_UART 288 bool "Kernel low-level debugging messages via MSM 8960 UART" 289 depends on ARCH_MSM8960 290 select MSM_HAS_DEBUG_UART_HS 291 help 292 Say Y here if you want the debug print routines to direct 293 their output to the serial port on MSM 8960 devices. 294 295endchoice 296 297config EARLY_PRINTK 298 bool "Early printk" 299 depends on DEBUG_LL 300 help 301 Say Y here if you want to have an early console using the 302 kernel low-level debugging functions. Add earlyprintk to your 303 kernel parameters to enable this console. 304 305config OC_ETM 306 bool "On-chip ETM and ETB" 307 depends on ARM_AMBA 308 help 309 Enables the on-chip embedded trace macrocell and embedded trace 310 buffer driver that will allow you to collect traces of the 311 kernel code. 312 313config ARM_KPROBES_TEST 314 tristate "Kprobes test module" 315 depends on KPROBES && MODULES 316 help 317 Perform tests of kprobes API and instruction set simulation. 318 319endmenu 320