0001 # SPDX-License-Identifier: GPL-2.0
0002
0003 config PPC_DISABLE_WERROR
0004 bool "Don't build arch/powerpc code with -Werror"
0005 help
0006 This option tells the compiler NOT to build the code under
0007 arch/powerpc with the -Werror flag (which means warnings
0008 are treated as errors).
0009
0010 Only enable this if you are hitting a build failure in the
0011 arch/powerpc code caused by a warning, and you don't feel
0012 inclined to fix it.
0013
0014 config PPC_WERROR
0015 bool
0016 depends on !PPC_DISABLE_WERROR
0017 default y
0018
0019 config PRINT_STACK_DEPTH
0020 int "Stack depth to print" if DEBUG_KERNEL
0021 default 64
0022 help
0023 This option allows you to set the stack depth that the kernel
0024 prints in stack traces. This can be useful if your display is
0025 too small and stack traces cause important information to
0026 scroll off the screen.
0027
0028 config HCALL_STATS
0029 bool "Hypervisor call instrumentation"
0030 depends on PPC_PSERIES && DEBUG_FS && TRACEPOINTS
0031 help
0032 Adds code to keep track of the number of hypervisor calls made and
0033 the amount of time spent in hypervisor calls. Wall time spent in
0034 each call is always calculated, and if available CPU cycles spent
0035 are also calculated. A directory named hcall_inst is added at the
0036 root of the debugfs filesystem. Within the hcall_inst directory
0037 are files that contain CPU specific call statistics.
0038
0039 This option will add a small amount of overhead to all hypervisor
0040 calls.
0041
0042 config PPC_EMULATED_STATS
0043 bool "Emulated instructions tracking"
0044 depends on DEBUG_FS
0045 help
0046 Adds code to keep track of the number of instructions that are
0047 emulated by the in-kernel emulator. Counters for the various classes
0048 of emulated instructions are available under
0049 powerpc/emulated_instructions/ in the root of the debugfs file
0050 system. Optionally (controlled by
0051 powerpc/emulated_instructions/do_warn in debugfs), rate-limited
0052 warnings can be printed to the console when instructions are
0053 emulated.
0054
0055 config CODE_PATCHING_SELFTEST
0056 bool "Run self-tests of the code-patching code"
0057 depends on DEBUG_KERNEL
0058
0059 config JUMP_LABEL_FEATURE_CHECKS
0060 bool "Enable use of jump label for cpu/mmu_has_feature()"
0061 depends on JUMP_LABEL
0062 default y
0063 help
0064 Selecting this options enables use of jump labels for some internal
0065 feature checks. This should generate more optimal code for those
0066 checks.
0067
0068 config JUMP_LABEL_FEATURE_CHECK_DEBUG
0069 bool "Do extra check on feature fixup calls"
0070 depends on DEBUG_KERNEL && JUMP_LABEL_FEATURE_CHECKS
0071 help
0072 This tries to catch incorrect usage of cpu_has_feature() and
0073 mmu_has_feature() in the code.
0074
0075 If you don't know what this means, say N.
0076
0077 config FTR_FIXUP_SELFTEST
0078 bool "Run self-tests of the feature-fixup code"
0079 depends on DEBUG_KERNEL
0080
0081 config MSI_BITMAP_SELFTEST
0082 bool "Run self-tests of the MSI bitmap code"
0083 depends on DEBUG_KERNEL
0084
0085 config PPC_IRQ_SOFT_MASK_DEBUG
0086 bool "Include extra checks for powerpc irq soft masking"
0087 depends on PPC64
0088
0089 config PPC_RFI_SRR_DEBUG
0090 bool "Include extra checks for RFI SRR register validity"
0091 depends on PPC_BOOK3S_64
0092
0093 config XMON
0094 bool "Include xmon kernel debugger"
0095 depends on DEBUG_KERNEL
0096 select CONSOLE_POLL if SERIAL_CPM_CONSOLE
0097 help
0098 Include in-kernel hooks for the xmon kernel monitor/debugger.
0099 Unless you are intending to debug the kernel, say N here.
0100 Make sure to enable also CONFIG_BOOTX_TEXT on Macs. Otherwise
0101 nothing will appear on the screen (xmon writes directly to the
0102 framebuffer memory).
0103 The cmdline option 'xmon' or 'xmon=early' will drop into xmon
0104 very early during boot. 'xmon=on' will just enable the xmon
0105 debugger hooks. 'xmon=off' will disable the debugger hooks
0106 if CONFIG_XMON_DEFAULT is set.
0107 xmon will print a backtrace on the very first invocation.
0108 'xmon=nobt' will disable this autobacktrace.
0109
0110 config XMON_DEFAULT
0111 bool "Enable xmon by default"
0112 depends on XMON
0113 help
0114 xmon is normally disabled unless booted with 'xmon=on'.
0115 Use 'xmon=off' to disable xmon init during runtime.
0116
0117 config XMON_DISASSEMBLY
0118 bool "Include disassembly support in xmon"
0119 depends on XMON
0120 default y
0121 help
0122 Include support for disassembling in xmon. You probably want
0123 to say Y here, unless you're building for a memory-constrained
0124 system.
0125
0126 config XMON_DEFAULT_RO_MODE
0127 bool "Restrict xmon to read-only operations by default"
0128 depends on XMON
0129 default y
0130 help
0131 Operate xmon in read-only mode. The cmdline options 'xmon=rw' and
0132 'xmon=ro' override this default.
0133
0134 config DEBUGGER
0135 bool
0136 depends on KGDB || XMON
0137 default y
0138
0139 config BDI_SWITCH
0140 bool "Include BDI-2000 user context switcher"
0141 depends on DEBUG_KERNEL && PPC32
0142 help
0143 Include in-kernel support for the Abatron BDI2000 debugger.
0144 Unless you are intending to debug the kernel with one of these
0145 machines, say N here.
0146
0147 config BOOTX_TEXT
0148 bool "Support for early boot text console (BootX or OpenFirmware only)"
0149 depends on PPC_BOOK3S
0150 help
0151 Say Y here to see progress messages from the boot firmware in text
0152 mode. Requires either BootX or Open Firmware.
0153
0154 config PPC_EARLY_DEBUG
0155 bool "Early debugging (dangerous)"
0156 help
0157 Say Y to enable some early debugging facilities that may be available
0158 for your processor/board combination. Those facilities are hacks
0159 intended to debug problems early during boot, this should not be
0160 enabled in a production kernel.
0161 Note that enabling this will also cause the kernel default log level
0162 to be pushed to max automatically very early during boot
0163
0164 choice
0165 prompt "Early debugging console"
0166 depends on PPC_EARLY_DEBUG
0167 help
0168 Use the selected console for early debugging. Careful, if you
0169 enable debugging for the wrong type of machine your kernel
0170 _will not boot_.
0171
0172 config PPC_EARLY_DEBUG_BOOTX
0173 bool "BootX or OpenFirmware"
0174 depends on BOOTX_TEXT
0175 help
0176 Select this to enable early debugging for a machine using BootX
0177 or OpenFirmware.
0178
0179 config PPC_EARLY_DEBUG_LPAR
0180 bool "LPAR HV Console"
0181 depends on PPC_PSERIES && HVC_CONSOLE
0182 help
0183 Select this to enable early debugging for a machine with a HVC
0184 console on vterm 0.
0185
0186 config PPC_EARLY_DEBUG_LPAR_HVSI
0187 bool "LPAR HVSI Console"
0188 depends on PPC_PSERIES && HVC_CONSOLE
0189 help
0190 Select this to enable early debugging for a machine with a HVSI
0191 console on a specified vterm.
0192
0193 config PPC_EARLY_DEBUG_G5
0194 bool "Apple G5"
0195 depends on PPC_PMAC64
0196 help
0197 Select this to enable early debugging for Apple G5 machines.
0198
0199 config PPC_EARLY_DEBUG_RTAS_PANEL
0200 bool "RTAS Panel"
0201 depends on PPC_RTAS
0202 help
0203 Select this to enable early debugging via the RTAS panel.
0204
0205 config PPC_EARLY_DEBUG_RTAS_CONSOLE
0206 bool "RTAS Console"
0207 depends on PPC_RTAS
0208 select UDBG_RTAS_CONSOLE
0209 help
0210 Select this to enable early debugging via the RTAS console.
0211
0212 config PPC_EARLY_DEBUG_MAPLE
0213 bool "Maple real mode"
0214 depends on PPC_MAPLE
0215 help
0216 Select this to enable early debugging for Maple.
0217
0218 config PPC_EARLY_DEBUG_PAS_REALMODE
0219 bool "PA Semi real mode"
0220 depends on PPC_PASEMI
0221 help
0222 Select this to enable early debugging for PA Semi.
0223 Output will be on UART0.
0224
0225 config PPC_EARLY_DEBUG_44x
0226 bool "Early serial debugging for IBM/AMCC 44x CPUs"
0227 depends on 44x
0228 help
0229 Select this to enable early debugging for IBM 44x chips via the
0230 inbuilt serial port. If you enable this, ensure you set
0231 PPC_EARLY_DEBUG_44x_PHYSLOW below to suit your target board.
0232
0233 config PPC_EARLY_DEBUG_40x
0234 bool "Early serial debugging for IBM/AMCC 40x CPUs"
0235 depends on 40x
0236 help
0237 Select this to enable early debugging for IBM 40x chips via the
0238 inbuilt serial port. This works on chips with a 16550 compatible
0239 UART.
0240
0241 config PPC_EARLY_DEBUG_CPM
0242 bool "Early serial debugging for Freescale CPM-based serial ports"
0243 depends on SERIAL_CPM
0244 help
0245 Select this to enable early debugging for Freescale chips
0246 using a CPM-based serial port. This assumes that the bootwrapper
0247 has run, and set up the CPM in a particular way.
0248
0249 config PPC_EARLY_DEBUG_USBGECKO
0250 bool "Early debugging through the USB Gecko adapter"
0251 depends on GAMECUBE_COMMON
0252 select USBGECKO_UDBG
0253 help
0254 Select this to enable early debugging for Nintendo GameCube/Wii
0255 consoles via an external USB Gecko adapter.
0256
0257 config PPC_EARLY_DEBUG_PS3GELIC
0258 bool "Early debugging through the PS3 Ethernet port"
0259 depends on PPC_PS3
0260 select PS3GELIC_UDBG
0261 help
0262 Select this to enable early debugging for the PlayStation3 via
0263 UDP broadcasts sent out through the Ethernet port.
0264
0265 config PPC_EARLY_DEBUG_OPAL_RAW
0266 bool "OPAL raw console"
0267 depends on HVC_OPAL
0268 help
0269 Select this to enable early debugging for the PowerNV platform
0270 using a "raw" console
0271
0272 config PPC_EARLY_DEBUG_OPAL_HVSI
0273 bool "OPAL hvsi console"
0274 depends on HVC_OPAL
0275 help
0276 Select this to enable early debugging for the PowerNV platform
0277 using an "hvsi" console
0278
0279 config PPC_EARLY_DEBUG_MEMCONS
0280 bool "In memory console"
0281 help
0282 Select this to enable early debugging using an in memory console.
0283 This console provides input and output buffers stored within the
0284 kernel BSS and should be safe to select on any system. A debugger
0285 can then be used to read kernel output or send input to the console.
0286 endchoice
0287
0288 config PPC_MEMCONS_OUTPUT_SIZE
0289 int "In memory console output buffer size"
0290 depends on PPC_EARLY_DEBUG_MEMCONS
0291 default 4096
0292 help
0293 Selects the size of the output buffer (in bytes) of the in memory
0294 console.
0295
0296 config PPC_MEMCONS_INPUT_SIZE
0297 int "In memory console input buffer size"
0298 depends on PPC_EARLY_DEBUG_MEMCONS
0299 default 128
0300 help
0301 Selects the size of the input buffer (in bytes) of the in memory
0302 console.
0303
0304 config PPC_EARLY_DEBUG_OPAL
0305 def_bool y
0306 depends on PPC_EARLY_DEBUG_OPAL_RAW || PPC_EARLY_DEBUG_OPAL_HVSI
0307
0308 config PPC_EARLY_DEBUG_HVSI_VTERMNO
0309 hex "vterm number to use with early debug HVSI"
0310 depends on PPC_EARLY_DEBUG_LPAR_HVSI
0311 default "0x30000000"
0312 help
0313 You probably want 0x30000000 for your first serial port and
0314 0x30000001 for your second one
0315
0316 config PPC_EARLY_DEBUG_OPAL_VTERMNO
0317 hex "vterm number to use with OPAL early debug"
0318 depends on PPC_EARLY_DEBUG_OPAL
0319 default "0"
0320 help
0321 This correspond to which /dev/hvcN you want to use for early
0322 debug.
0323
0324 On OPAL v2, this will be 0 for network console and 1 or 2 for
0325 the machine built-in serial ports.
0326
0327 config PPC_EARLY_DEBUG_44x_PHYSLOW
0328 hex "Low 32 bits of early debug UART physical address"
0329 depends on PPC_EARLY_DEBUG_44x
0330 default "0x40000200"
0331 help
0332 You probably want 0x40000200 for ebony boards and
0333 0x40000300 for taishan
0334
0335 config PPC_EARLY_DEBUG_44x_PHYSHIGH
0336 hex "EPRN of early debug UART physical address"
0337 depends on PPC_EARLY_DEBUG_44x
0338 default "0x1"
0339
0340 config PPC_EARLY_DEBUG_40x_PHYSADDR
0341 hex "Early debug UART physical address"
0342 depends on PPC_EARLY_DEBUG_40x
0343 default "0xef600300"
0344
0345 config PPC_EARLY_DEBUG_CPM_ADDR
0346 hex "CPM UART early debug transmit descriptor address"
0347 depends on PPC_EARLY_DEBUG_CPM
0348 default "0xfa202008" if PPC_EP88XC
0349 default "0xf0001ff8" if CPM2
0350 default "0xff002008" if CPM1
0351 help
0352 This specifies the address of the transmit descriptor
0353 used for early debug output. Because it is needed before
0354 platform probing is done, all platforms selected must
0355 share the same address.
0356
0357 config FAIL_IOMMU
0358 bool "Fault-injection capability for IOMMU"
0359 depends on FAULT_INJECTION
0360 depends on PCI || IBMVIO
0361 help
0362 Provide fault-injection capability for IOMMU. Each device can
0363 be selectively enabled via the fail_iommu property.
0364
0365 If you are unsure, say N.
0366
0367 config PPC_FAST_ENDIAN_SWITCH
0368 bool "Deprecated fast endian-switch syscall"
0369 depends on DEBUG_KERNEL && PPC_BOOK3S_64
0370 help
0371 If you're unsure what this is, say N.
0372
0373 config KASAN_SHADOW_OFFSET
0374 hex
0375 depends on KASAN
0376 default 0xe0000000 if PPC32
0377 default 0xa80e000000000000 if PPC_BOOK3S_64
0378 default 0xa8001c0000000000 if PPC_BOOK3E_64