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