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