1menu "Kernel hacking" 2 3source "lib/Kconfig.debug" 4 5config PRINT_STACK_DEPTH 6 int "Stack depth to print" if DEBUG_KERNEL 7 default 64 8 help 9 This option allows you to set the stack depth that the kernel 10 prints in stack traces. This can be useful if your display is 11 too small and stack traces cause important information to 12 scroll off the screen. 13 14config DEBUG_STACKOVERFLOW 15 bool "Check for stack overflows" 16 depends on DEBUG_KERNEL 17 help 18 This option will cause messages to be printed if free stack space 19 drops below a certain limit. 20 21config DEBUG_STACK_USAGE 22 bool "Stack utilization instrumentation" 23 depends on DEBUG_KERNEL 24 help 25 Enables the display of the minimum amount of free stack which each 26 task has ever had available in the sysrq-T and sysrq-P debug output. 27 28 This option will slow down process creation somewhat. 29 30config HCALL_STATS 31 bool "Hypervisor call instrumentation" 32 depends on PPC_PSERIES && DEBUG_FS 33 help 34 Adds code to keep track of the number of hypervisor calls made and 35 the amount of time spent in hypervisor calls. Wall time spent in 36 each call is always calculated, and if available CPU cycles spent 37 are also calculated. A directory named hcall_inst is added at the 38 root of the debugfs filesystem. Within the hcall_inst directory 39 are files that contain CPU specific call statistics. 40 41 This option will add a small amount of overhead to all hypervisor 42 calls. 43 44config PPC_EMULATED_STATS 45 bool "Emulated instructions tracking" 46 depends on DEBUG_FS 47 help 48 Adds code to keep track of the number of instructions that are 49 emulated by the in-kernel emulator. Counters for the various classes 50 of emulated instructions are available under 51 powerpc/emulated_instructions/ in the root of the debugfs file 52 system. Optionally (controlled by 53 powerpc/emulated_instructions/do_warn in debugfs), rate-limited 54 warnings can be printed to the console when instructions are 55 emulated. 56 57config CODE_PATCHING_SELFTEST 58 bool "Run self-tests of the code-patching code." 59 depends on DEBUG_KERNEL 60 default n 61 62config FTR_FIXUP_SELFTEST 63 bool "Run self-tests of the feature-fixup code." 64 depends on DEBUG_KERNEL 65 default n 66 67config MSI_BITMAP_SELFTEST 68 bool "Run self-tests of the MSI bitmap code." 69 depends on DEBUG_KERNEL 70 default n 71 72config XMON 73 bool "Include xmon kernel debugger" 74 depends on DEBUG_KERNEL 75 help 76 Include in-kernel hooks for the xmon kernel monitor/debugger. 77 Unless you are intending to debug the kernel, say N here. 78 Make sure to enable also CONFIG_BOOTX_TEXT on Macs. Otherwise 79 nothing will appear on the screen (xmon writes directly to the 80 framebuffer memory). 81 The cmdline option 'xmon' or 'xmon=early' will drop into xmon 82 very early during boot. 'xmon=on' will just enable the xmon 83 debugger hooks. 'xmon=off' will disable the debugger hooks 84 if CONFIG_XMON_DEFAULT is set. 85 xmon will print a backtrace on the very first invocation. 86 'xmon=nobt' will disable this autobacktrace. 87 88config XMON_DEFAULT 89 bool "Enable xmon by default" 90 depends on XMON 91 help 92 xmon is normally disabled unless booted with 'xmon=on'. 93 Use 'xmon=off' to disable xmon init during runtime. 94 95config XMON_DISASSEMBLY 96 bool "Include disassembly support in xmon" 97 depends on XMON 98 default y 99 help 100 Include support for disassembling in xmon. You probably want 101 to say Y here, unless you're building for a memory-constrained 102 system. 103 104config DEBUGGER 105 bool 106 depends on KGDB || XMON 107 default y 108 109config IRQSTACKS 110 bool "Use separate kernel stacks when processing interrupts" 111 help 112 If you say Y here the kernel will use separate kernel stacks 113 for handling hard and soft interrupts. This can help avoid 114 overflowing the process kernel stacks. 115 116config VIRQ_DEBUG 117 bool "Expose hardware/virtual IRQ mapping via debugfs" 118 depends on DEBUG_FS 119 help 120 This option will show the mapping relationship between hardware irq 121 numbers and virtual irq numbers. The mapping is exposed via debugfs 122 in the file powerpc/virq_mapping. 123 124 If you don't know what this means you don't need it. 125 126config BDI_SWITCH 127 bool "Include BDI-2000 user context switcher" 128 depends on DEBUG_KERNEL && PPC32 129 help 130 Include in-kernel support for the Abatron BDI2000 debugger. 131 Unless you are intending to debug the kernel with one of these 132 machines, say N here. 133 134config BOOTX_TEXT 135 bool "Support for early boot text console (BootX or OpenFirmware only)" 136 depends on PPC_OF && PPC_BOOK3S 137 help 138 Say Y here to see progress messages from the boot firmware in text 139 mode. Requires either BootX or Open Firmware. 140 141config PPC_EARLY_DEBUG 142 bool "Early debugging (dangerous)" 143 # PPC_EARLY_DEBUG on 440 leaves AS=1 mappings above the TLB high water 144 # mark, which doesn't work with current 440 KVM. 145 depends on !KVM 146 help 147 Say Y to enable some early debugging facilities that may be available 148 for your processor/board combination. Those facilities are hacks 149 intended to debug problems early during boot, this should not be 150 enabled in a production kernel. 151 Note that enabling this will also cause the kernel default log level 152 to be pushed to max automatically very early during boot 153 154choice 155 prompt "Early debugging console" 156 depends on PPC_EARLY_DEBUG 157 help 158 Use the selected console for early debugging. Careful, if you 159 enable debugging for the wrong type of machine your kernel 160 _will not boot_. 161 162config PPC_EARLY_DEBUG_LPAR 163 bool "LPAR HV Console" 164 depends on PPC_PSERIES 165 help 166 Select this to enable early debugging for a machine with a HVC 167 console on vterm 0. 168 169config PPC_EARLY_DEBUG_G5 170 bool "Apple G5" 171 depends on PPC_PMAC64 172 help 173 Select this to enable early debugging for Apple G5 machines. 174 175config PPC_EARLY_DEBUG_RTAS_PANEL 176 bool "RTAS Panel" 177 depends on PPC_RTAS 178 help 179 Select this to enable early debugging via the RTAS panel. 180 181config PPC_EARLY_DEBUG_RTAS_CONSOLE 182 bool "RTAS Console" 183 depends on PPC_RTAS 184 select UDBG_RTAS_CONSOLE 185 help 186 Select this to enable early debugging via the RTAS console. 187 188config PPC_EARLY_DEBUG_MAPLE 189 bool "Maple real mode" 190 depends on PPC_MAPLE 191 help 192 Select this to enable early debugging for Maple. 193 194config PPC_EARLY_DEBUG_ISERIES 195 bool "iSeries HV Console" 196 depends on PPC_ISERIES 197 help 198 Select this to enable early debugging for legacy iSeries. You need 199 to hit "Ctrl-x Ctrl-x" to see the messages on the console. 200 201config PPC_EARLY_DEBUG_PAS_REALMODE 202 bool "PA Semi real mode" 203 depends on PPC_PASEMI 204 help 205 Select this to enable early debugging for PA Semi. 206 Output will be on UART0. 207 208config PPC_EARLY_DEBUG_BEAT 209 bool "Beat HV Console" 210 depends on PPC_CELLEB 211 select PPC_UDBG_BEAT 212 help 213 Select this to enable early debugging for Celleb with Beat. 214 215config PPC_EARLY_DEBUG_44x 216 bool "Early serial debugging for IBM/AMCC 44x CPUs" 217 depends on 44x 218 help 219 Select this to enable early debugging for IBM 44x chips via the 220 inbuilt serial port. If you enable this, ensure you set 221 PPC_EARLY_DEBUG_44x_PHYSLOW below to suit your target board. 222 223config PPC_EARLY_DEBUG_40x 224 bool "Early serial debugging for IBM/AMCC 40x CPUs" 225 depends on 40x 226 help 227 Select this to enable early debugging for IBM 40x chips via the 228 inbuilt serial port. This works on chips with a 16550 compatible 229 UART. Xilinx chips with uartlite cannot use this option. 230 231config PPC_EARLY_DEBUG_CPM 232 bool "Early serial debugging for Freescale CPM-based serial ports" 233 depends on SERIAL_CPM 234 select PIN_TLB if PPC_8xx 235 help 236 Select this to enable early debugging for Freescale chips 237 using a CPM-based serial port. This assumes that the bootwrapper 238 has run, and set up the CPM in a particular way. 239 240endchoice 241 242config PPC_EARLY_DEBUG_44x_PHYSLOW 243 hex "Low 32 bits of early debug UART physical address" 244 depends on PPC_EARLY_DEBUG_44x 245 default "0x40000200" 246 help 247 You probably want 0x40000200 for ebony boards and 248 0x40000300 for taishan 249 250config PPC_EARLY_DEBUG_44x_PHYSHIGH 251 hex "EPRN of early debug UART physical address" 252 depends on PPC_EARLY_DEBUG_44x 253 default "0x1" 254 255config PPC_EARLY_DEBUG_40x_PHYSADDR 256 hex "Early debug UART physical address" 257 depends on PPC_EARLY_DEBUG_40x 258 default "0xef600300" 259 260config PPC_EARLY_DEBUG_CPM_ADDR 261 hex "CPM UART early debug transmit descriptor address" 262 depends on PPC_EARLY_DEBUG_CPM 263 default "0xfa202008" if PPC_EP88XC 264 default "0xf0001ff8" if CPM2 265 default "0xff002008" if CPM1 266 help 267 This specifies the address of the transmit descriptor 268 used for early debug output. Because it is needed before 269 platform probing is done, all platforms selected must 270 share the same address. 271 272endmenu 273