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