1# SPDX-License-Identifier: GPL-2.0 2menu "Kernel hacking" 3 4source "lib/Kconfig.debug" 5 6config PPC_DISABLE_WERROR 7 bool "Don't build arch/powerpc code with -Werror" 8 default n 9 help 10 This option tells the compiler NOT to build the code under 11 arch/powerpc with the -Werror flag (which means warnings 12 are treated as errors). 13 14 Only enable this if you are hitting a build failure in the 15 arch/powerpc code caused by a warning, and you don't feel 16 inclined to fix it. 17 18config PPC_WERROR 19 bool 20 depends on !PPC_DISABLE_WERROR 21 default y 22 23config PRINT_STACK_DEPTH 24 int "Stack depth to print" if DEBUG_KERNEL 25 default 64 26 help 27 This option allows you to set the stack depth that the kernel 28 prints in stack traces. This can be useful if your display is 29 too small and stack traces cause important information to 30 scroll off the screen. 31 32config HCALL_STATS 33 bool "Hypervisor call instrumentation" 34 depends on PPC_PSERIES && DEBUG_FS && TRACEPOINTS 35 help 36 Adds code to keep track of the number of hypervisor calls made and 37 the amount of time spent in hypervisor calls. Wall time spent in 38 each call is always calculated, and if available CPU cycles spent 39 are also calculated. A directory named hcall_inst is added at the 40 root of the debugfs filesystem. Within the hcall_inst directory 41 are files that contain CPU specific call statistics. 42 43 This option will add a small amount of overhead to all hypervisor 44 calls. 45 46config PPC_EMULATED_STATS 47 bool "Emulated instructions tracking" 48 depends on DEBUG_FS 49 help 50 Adds code to keep track of the number of instructions that are 51 emulated by the in-kernel emulator. Counters for the various classes 52 of emulated instructions are available under 53 powerpc/emulated_instructions/ in the root of the debugfs file 54 system. Optionally (controlled by 55 powerpc/emulated_instructions/do_warn in debugfs), rate-limited 56 warnings can be printed to the console when instructions are 57 emulated. 58 59config CODE_PATCHING_SELFTEST 60 bool "Run self-tests of the code-patching code" 61 depends on DEBUG_KERNEL 62 default n 63 64config JUMP_LABEL_FEATURE_CHECKS 65 bool "Enable use of jump label for cpu/mmu_has_feature()" 66 depends on JUMP_LABEL 67 default y 68 help 69 Selecting this options enables use of jump labels for some internal 70 feature checks. This should generate more optimal code for those 71 checks. 72 73config JUMP_LABEL_FEATURE_CHECK_DEBUG 74 bool "Do extra check on feature fixup calls" 75 depends on DEBUG_KERNEL && JUMP_LABEL_FEATURE_CHECKS 76 default n 77 help 78 This tries to catch incorrect usage of cpu_has_feature() and 79 mmu_has_feature() in the code. 80 81 If you don't know what this means, say N. 82 83config FTR_FIXUP_SELFTEST 84 bool "Run self-tests of the feature-fixup code" 85 depends on DEBUG_KERNEL 86 default n 87 88config MSI_BITMAP_SELFTEST 89 bool "Run self-tests of the MSI bitmap code" 90 depends on DEBUG_KERNEL 91 default n 92 93config PPC_IRQ_SOFT_MASK_DEBUG 94 bool "Include extra checks for powerpc irq soft masking" 95 default n 96 97config XMON 98 bool "Include xmon kernel debugger" 99 depends on DEBUG_KERNEL 100 help 101 Include in-kernel hooks for the xmon kernel monitor/debugger. 102 Unless you are intending to debug the kernel, say N here. 103 Make sure to enable also CONFIG_BOOTX_TEXT on Macs. Otherwise 104 nothing will appear on the screen (xmon writes directly to the 105 framebuffer memory). 106 The cmdline option 'xmon' or 'xmon=early' will drop into xmon 107 very early during boot. 'xmon=on' will just enable the xmon 108 debugger hooks. 'xmon=off' will disable the debugger hooks 109 if CONFIG_XMON_DEFAULT is set. 110 xmon will print a backtrace on the very first invocation. 111 'xmon=nobt' will disable this autobacktrace. 112 113config XMON_DEFAULT 114 bool "Enable xmon by default" 115 depends on XMON 116 help 117 xmon is normally disabled unless booted with 'xmon=on'. 118 Use 'xmon=off' to disable xmon init during runtime. 119 120config XMON_DISASSEMBLY 121 bool "Include disassembly support in xmon" 122 depends on XMON 123 default y 124 help 125 Include support for disassembling in xmon. You probably want 126 to say Y here, unless you're building for a memory-constrained 127 system. 128 129config DEBUGGER 130 bool 131 depends on KGDB || XMON 132 default y 133 134config BDI_SWITCH 135 bool "Include BDI-2000 user context switcher" 136 depends on DEBUG_KERNEL && PPC32 137 help 138 Include in-kernel support for the Abatron BDI2000 debugger. 139 Unless you are intending to debug the kernel with one of these 140 machines, say N here. 141 142config BOOTX_TEXT 143 bool "Support for early boot text console (BootX or OpenFirmware only)" 144 depends on PPC_BOOK3S 145 help 146 Say Y here to see progress messages from the boot firmware in text 147 mode. Requires either BootX or Open Firmware. 148 149config PPC_EARLY_DEBUG 150 bool "Early debugging (dangerous)" 151 help 152 Say Y to enable some early debugging facilities that may be available 153 for your processor/board combination. Those facilities are hacks 154 intended to debug problems early during boot, this should not be 155 enabled in a production kernel. 156 Note that enabling this will also cause the kernel default log level 157 to be pushed to max automatically very early during boot 158 159choice 160 prompt "Early debugging console" 161 depends on PPC_EARLY_DEBUG 162 help 163 Use the selected console for early debugging. Careful, if you 164 enable debugging for the wrong type of machine your kernel 165 _will not boot_. 166 167config PPC_EARLY_DEBUG_BOOTX 168 bool "BootX or OpenFirmware" 169 depends on BOOTX_TEXT 170 help 171 Select this to enable early debugging for a machine using BootX 172 or OpenFirmware. 173 174config PPC_EARLY_DEBUG_LPAR 175 bool "LPAR HV Console" 176 depends on PPC_PSERIES && HVC_CONSOLE 177 help 178 Select this to enable early debugging for a machine with a HVC 179 console on vterm 0. 180 181config PPC_EARLY_DEBUG_LPAR_HVSI 182 bool "LPAR HVSI Console" 183 depends on PPC_PSERIES && HVC_CONSOLE 184 help 185 Select this to enable early debugging for a machine with a HVSI 186 console on a specified vterm. 187 188config PPC_EARLY_DEBUG_G5 189 bool "Apple G5" 190 depends on PPC_PMAC64 191 help 192 Select this to enable early debugging for Apple G5 machines. 193 194config PPC_EARLY_DEBUG_RTAS_PANEL 195 bool "RTAS Panel" 196 depends on PPC_RTAS 197 help 198 Select this to enable early debugging via the RTAS panel. 199 200config PPC_EARLY_DEBUG_RTAS_CONSOLE 201 bool "RTAS Console" 202 depends on PPC_RTAS 203 select UDBG_RTAS_CONSOLE 204 help 205 Select this to enable early debugging via the RTAS console. 206 207config PPC_EARLY_DEBUG_MAPLE 208 bool "Maple real mode" 209 depends on PPC_MAPLE 210 help 211 Select this to enable early debugging for Maple. 212 213config PPC_EARLY_DEBUG_PAS_REALMODE 214 bool "PA Semi real mode" 215 depends on PPC_PASEMI 216 help 217 Select this to enable early debugging for PA Semi. 218 Output will be on UART0. 219 220config PPC_EARLY_DEBUG_44x 221 bool "Early serial debugging for IBM/AMCC 44x CPUs" 222 depends on 44x 223 help 224 Select this to enable early debugging for IBM 44x chips via the 225 inbuilt serial port. If you enable this, ensure you set 226 PPC_EARLY_DEBUG_44x_PHYSLOW below to suit your target board. 227 228config PPC_EARLY_DEBUG_40x 229 bool "Early serial debugging for IBM/AMCC 40x CPUs" 230 depends on 40x 231 help 232 Select this to enable early debugging for IBM 40x chips via the 233 inbuilt serial port. This works on chips with a 16550 compatible 234 UART. Xilinx chips with uartlite cannot use this option. 235 236config PPC_EARLY_DEBUG_CPM 237 bool "Early serial debugging for Freescale CPM-based serial ports" 238 depends on SERIAL_CPM 239 help 240 Select this to enable early debugging for Freescale chips 241 using a CPM-based serial port. This assumes that the bootwrapper 242 has run, and set up the CPM in a particular way. 243 244config PPC_EARLY_DEBUG_USBGECKO 245 bool "Early debugging through the USB Gecko adapter" 246 depends on GAMECUBE_COMMON 247 select USBGECKO_UDBG 248 help 249 Select this to enable early debugging for Nintendo GameCube/Wii 250 consoles via an external USB Gecko adapter. 251 252config PPC_EARLY_DEBUG_PS3GELIC 253 bool "Early debugging through the PS3 Ethernet port" 254 depends on PPC_PS3 255 select PS3GELIC_UDBG 256 help 257 Select this to enable early debugging for the PlayStation3 via 258 UDP broadcasts sent out through the Ethernet port. 259 260config PPC_EARLY_DEBUG_OPAL_RAW 261 bool "OPAL raw console" 262 depends on HVC_OPAL 263 help 264 Select this to enable early debugging for the PowerNV platform 265 using a "raw" console 266 267config PPC_EARLY_DEBUG_OPAL_HVSI 268 bool "OPAL hvsi console" 269 depends on HVC_OPAL 270 help 271 Select this to enable early debugging for the PowerNV platform 272 using an "hvsi" console 273 274config PPC_EARLY_DEBUG_MEMCONS 275 bool "In memory console" 276 help 277 Select this to enable early debugging using an in memory console. 278 This console provides input and output buffers stored within the 279 kernel BSS and should be safe to select on any system. A debugger 280 can then be used to read kernel output or send input to the console. 281endchoice 282 283config PPC_MEMCONS_OUTPUT_SIZE 284 int "In memory console output buffer size" 285 depends on PPC_EARLY_DEBUG_MEMCONS 286 default 4096 287 help 288 Selects the size of the output buffer (in bytes) of the in memory 289 console. 290 291config PPC_MEMCONS_INPUT_SIZE 292 int "In memory console input buffer size" 293 depends on PPC_EARLY_DEBUG_MEMCONS 294 default 128 295 help 296 Selects the size of the input buffer (in bytes) of the in memory 297 console. 298 299config PPC_EARLY_DEBUG_OPAL 300 def_bool y 301 depends on PPC_EARLY_DEBUG_OPAL_RAW || PPC_EARLY_DEBUG_OPAL_HVSI 302 303 304config PPC_EARLY_DEBUG_HVSI_VTERMNO 305 hex "vterm number to use with early debug HVSI" 306 depends on PPC_EARLY_DEBUG_LPAR_HVSI 307 default "0x30000000" 308 help 309 You probably want 0x30000000 for your first serial port and 310 0x30000001 for your second one 311 312config PPC_EARLY_DEBUG_OPAL_VTERMNO 313 hex "vterm number to use with OPAL early debug" 314 depends on PPC_EARLY_DEBUG_OPAL 315 default "0" 316 help 317 This correspond to which /dev/hvcN you want to use for early 318 debug. 319 320 On OPAL v2, this will be 0 for network console and 1 or 2 for 321 the machine built-in serial ports. 322 323config PPC_EARLY_DEBUG_44x_PHYSLOW 324 hex "Low 32 bits of early debug UART physical address" 325 depends on PPC_EARLY_DEBUG_44x 326 default "0x40000200" 327 help 328 You probably want 0x40000200 for ebony boards and 329 0x40000300 for taishan 330 331config PPC_EARLY_DEBUG_44x_PHYSHIGH 332 hex "EPRN of early debug UART physical address" 333 depends on PPC_EARLY_DEBUG_44x 334 default "0x1" 335 336config PPC_EARLY_DEBUG_40x_PHYSADDR 337 hex "Early debug UART physical address" 338 depends on PPC_EARLY_DEBUG_40x 339 default "0xef600300" 340 341config PPC_EARLY_DEBUG_CPM_ADDR 342 hex "CPM UART early debug transmit descriptor address" 343 depends on PPC_EARLY_DEBUG_CPM 344 default "0xfa202008" if PPC_EP88XC 345 default "0xf0001ff8" if CPM2 346 default "0xff002008" if CPM1 347 help 348 This specifies the address of the transmit descriptor 349 used for early debug output. Because it is needed before 350 platform probing is done, all platforms selected must 351 share the same address. 352 353config FAIL_IOMMU 354 bool "Fault-injection capability for IOMMU" 355 depends on FAULT_INJECTION 356 help 357 Provide fault-injection capability for IOMMU. Each device can 358 be selectively enabled via the fail_iommu property. 359 360 If you are unsure, say N. 361 362config PPC_PTDUMP 363 bool "Export kernel pagetable layout to userspace via debugfs" 364 depends on DEBUG_KERNEL && DEBUG_FS 365 help 366 This option exports the state of the kernel pagetables to a 367 debugfs file. This is only useful for kernel developers who are 368 working in architecture specific areas of the kernel - probably 369 not a good idea to enable this feature in a production kernel. 370 371 If you are unsure, say N. 372 373config PPC_HTDUMP 374 def_bool y 375 depends on PPC_PTDUMP && PPC_BOOK3S_64 376 377config PPC_FAST_ENDIAN_SWITCH 378 bool "Deprecated fast endian-switch syscall" 379 depends on DEBUG_KERNEL && PPC_BOOK3S_64 380 help 381 If you're unsure what this is, say N. 382 383endmenu 384