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