| menu "Kernel hacking" |
| |
| source "lib/Kconfig.debug" |
| |
| config PRINT_STACK_DEPTH |
| int "Stack depth to print" if DEBUG_KERNEL |
| default 64 |
| help |
| This option allows you to set the stack depth that the kernel |
| prints in stack traces. This can be useful if your display is |
| too small and stack traces cause important information to |
| scroll off the screen. |
| |
| config DEBUG_STACKOVERFLOW |
| bool "Check for stack overflows" |
| depends on DEBUG_KERNEL |
| help |
| This option will cause messages to be printed if free stack space |
| drops below a certain limit. |
| |
| config DEBUG_STACK_USAGE |
| bool "Stack utilization instrumentation" |
| depends on DEBUG_KERNEL |
| help |
| Enables the display of the minimum amount of free stack which each |
| task has ever had available in the sysrq-T and sysrq-P debug output. |
| |
| This option will slow down process creation somewhat. |
| |
| config HCALL_STATS |
| bool "Hypervisor call instrumentation" |
| depends on PPC_PSERIES && DEBUG_FS |
| help |
| Adds code to keep track of the number of hypervisor calls made and |
| the amount of time spent in hypervisor calls. Wall time spent in |
| each call is always calculated, and if available CPU cycles spent |
| are also calculated. A directory named hcall_inst is added at the |
| root of the debugfs filesystem. Within the hcall_inst directory |
| are files that contain CPU specific call statistics. |
| |
| This option will add a small amount of overhead to all hypervisor |
| calls. |
| |
| config PPC_EMULATED_STATS |
| bool "Emulated instructions tracking" |
| depends on DEBUG_FS |
| help |
| Adds code to keep track of the number of instructions that are |
| emulated by the in-kernel emulator. Counters for the various classes |
| of emulated instructions are available under |
| powerpc/emulated_instructions/ in the root of the debugfs file |
| system. Optionally (controlled by |
| powerpc/emulated_instructions/do_warn in debugfs), rate-limited |
| warnings can be printed to the console when instructions are |
| emulated. |
| |
| config CODE_PATCHING_SELFTEST |
| bool "Run self-tests of the code-patching code." |
| depends on DEBUG_KERNEL |
| default n |
| |
| config FTR_FIXUP_SELFTEST |
| bool "Run self-tests of the feature-fixup code." |
| depends on DEBUG_KERNEL |
| default n |
| |
| config MSI_BITMAP_SELFTEST |
| bool "Run self-tests of the MSI bitmap code." |
| depends on DEBUG_KERNEL |
| default n |
| |
| config XMON |
| bool "Include xmon kernel debugger" |
| depends on DEBUG_KERNEL |
| help |
| Include in-kernel hooks for the xmon kernel monitor/debugger. |
| Unless you are intending to debug the kernel, say N here. |
| Make sure to enable also CONFIG_BOOTX_TEXT on Macs. Otherwise |
| nothing will appear on the screen (xmon writes directly to the |
| framebuffer memory). |
| The cmdline option 'xmon' or 'xmon=early' will drop into xmon |
| very early during boot. 'xmon=on' will just enable the xmon |
| debugger hooks. 'xmon=off' will disable the debugger hooks |
| if CONFIG_XMON_DEFAULT is set. |
| xmon will print a backtrace on the very first invocation. |
| 'xmon=nobt' will disable this autobacktrace. |
| |
| config XMON_DEFAULT |
| bool "Enable xmon by default" |
| depends on XMON |
| help |
| xmon is normally disabled unless booted with 'xmon=on'. |
| Use 'xmon=off' to disable xmon init during runtime. |
| |
| config XMON_DISASSEMBLY |
| bool "Include disassembly support in xmon" |
| depends on XMON |
| default y |
| help |
| Include support for disassembling in xmon. You probably want |
| to say Y here, unless you're building for a memory-constrained |
| system. |
| |
| config DEBUGGER |
| bool |
| depends on KGDB || XMON |
| default y |
| |
| config IRQSTACKS |
| bool "Use separate kernel stacks when processing interrupts" |
| help |
| If you say Y here the kernel will use separate kernel stacks |
| for handling hard and soft interrupts. This can help avoid |
| overflowing the process kernel stacks. |
| |
| config VIRQ_DEBUG |
| bool "Expose hardware/virtual IRQ mapping via debugfs" |
| depends on DEBUG_FS |
| help |
| This option will show the mapping relationship between hardware irq |
| numbers and virtual irq numbers. The mapping is exposed via debugfs |
| in the file powerpc/virq_mapping. |
| |
| If you don't know what this means you don't need it. |
| |
| config BDI_SWITCH |
| bool "Include BDI-2000 user context switcher" |
| depends on DEBUG_KERNEL && PPC32 |
| help |
| Include in-kernel support for the Abatron BDI2000 debugger. |
| Unless you are intending to debug the kernel with one of these |
| machines, say N here. |
| |
| config BOOTX_TEXT |
| bool "Support for early boot text console (BootX or OpenFirmware only)" |
| depends on PPC_OF && PPC_BOOK3S |
| help |
| Say Y here to see progress messages from the boot firmware in text |
| mode. Requires either BootX or Open Firmware. |
| |
| config PPC_EARLY_DEBUG |
| bool "Early debugging (dangerous)" |
| # PPC_EARLY_DEBUG on 440 leaves AS=1 mappings above the TLB high water |
| # mark, which doesn't work with current 440 KVM. |
| depends on !KVM |
| help |
| Say Y to enable some early debugging facilities that may be available |
| for your processor/board combination. Those facilities are hacks |
| intended to debug problems early during boot, this should not be |
| enabled in a production kernel. |
| Note that enabling this will also cause the kernel default log level |
| to be pushed to max automatically very early during boot |
| |
| choice |
| prompt "Early debugging console" |
| depends on PPC_EARLY_DEBUG |
| help |
| Use the selected console for early debugging. Careful, if you |
| enable debugging for the wrong type of machine your kernel |
| _will not boot_. |
| |
| config PPC_EARLY_DEBUG_LPAR |
| bool "LPAR HV Console" |
| depends on PPC_PSERIES |
| help |
| Select this to enable early debugging for a machine with a HVC |
| console on vterm 0. |
| |
| config PPC_EARLY_DEBUG_G5 |
| bool "Apple G5" |
| depends on PPC_PMAC64 |
| help |
| Select this to enable early debugging for Apple G5 machines. |
| |
| config PPC_EARLY_DEBUG_RTAS_PANEL |
| bool "RTAS Panel" |
| depends on PPC_RTAS |
| help |
| Select this to enable early debugging via the RTAS panel. |
| |
| config PPC_EARLY_DEBUG_RTAS_CONSOLE |
| bool "RTAS Console" |
| depends on PPC_RTAS |
| select UDBG_RTAS_CONSOLE |
| help |
| Select this to enable early debugging via the RTAS console. |
| |
| config PPC_EARLY_DEBUG_MAPLE |
| bool "Maple real mode" |
| depends on PPC_MAPLE |
| help |
| Select this to enable early debugging for Maple. |
| |
| config PPC_EARLY_DEBUG_ISERIES |
| bool "iSeries HV Console" |
| depends on PPC_ISERIES |
| help |
| Select this to enable early debugging for legacy iSeries. You need |
| to hit "Ctrl-x Ctrl-x" to see the messages on the console. |
| |
| config PPC_EARLY_DEBUG_PAS_REALMODE |
| bool "PA Semi real mode" |
| depends on PPC_PASEMI |
| help |
| Select this to enable early debugging for PA Semi. |
| Output will be on UART0. |
| |
| config PPC_EARLY_DEBUG_BEAT |
| bool "Beat HV Console" |
| depends on PPC_CELLEB |
| select PPC_UDBG_BEAT |
| help |
| Select this to enable early debugging for Celleb with Beat. |
| |
| config PPC_EARLY_DEBUG_44x |
| bool "Early serial debugging for IBM/AMCC 44x CPUs" |
| depends on 44x |
| help |
| Select this to enable early debugging for IBM 44x chips via the |
| inbuilt serial port. If you enable this, ensure you set |
| PPC_EARLY_DEBUG_44x_PHYSLOW below to suit your target board. |
| |
| config PPC_EARLY_DEBUG_40x |
| bool "Early serial debugging for IBM/AMCC 40x CPUs" |
| depends on 40x |
| help |
| Select this to enable early debugging for IBM 40x chips via the |
| inbuilt serial port. This works on chips with a 16550 compatible |
| UART. Xilinx chips with uartlite cannot use this option. |
| |
| config PPC_EARLY_DEBUG_CPM |
| bool "Early serial debugging for Freescale CPM-based serial ports" |
| depends on SERIAL_CPM |
| select PIN_TLB if PPC_8xx |
| help |
| Select this to enable early debugging for Freescale chips |
| using a CPM-based serial port. This assumes that the bootwrapper |
| has run, and set up the CPM in a particular way. |
| |
| endchoice |
| |
| config PPC_EARLY_DEBUG_44x_PHYSLOW |
| hex "Low 32 bits of early debug UART physical address" |
| depends on PPC_EARLY_DEBUG_44x |
| default "0x40000200" |
| help |
| You probably want 0x40000200 for ebony boards and |
| 0x40000300 for taishan |
| |
| config PPC_EARLY_DEBUG_44x_PHYSHIGH |
| hex "EPRN of early debug UART physical address" |
| depends on PPC_EARLY_DEBUG_44x |
| default "0x1" |
| |
| config PPC_EARLY_DEBUG_40x_PHYSADDR |
| hex "Early debug UART physical address" |
| depends on PPC_EARLY_DEBUG_40x |
| default "0xef600300" |
| |
| config PPC_EARLY_DEBUG_CPM_ADDR |
| hex "CPM UART early debug transmit descriptor address" |
| depends on PPC_EARLY_DEBUG_CPM |
| default "0xfa202008" if PPC_EP88XC |
| default "0xf0001ff8" if CPM2 |
| default "0xff002008" if CPM1 |
| help |
| This specifies the address of the transmit descriptor |
| used for early debug output. Because it is needed before |
| platform probing is done, all platforms selected must |
| share the same address. |
| |
| endmenu |