xref: /linux/arch/powerpc/Kconfig.debug (revision 7f4f3b14e8079ecde096bd734af10e30d40c27b7)
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 GUEST_STATE_BUFFER_TEST
86	def_tristate n
87	prompt "Enable Guest State Buffer unit tests"
88	depends on KUNIT
89	depends on KVM_BOOK3S_HV_POSSIBLE
90	default KUNIT_ALL_TESTS
91	help
92	  The Guest State Buffer is a data format specified in the PAPR.
93	  It is by hcalls to communicate the state of L2 guests between
94	  the L1 and L0 hypervisors. Enable unit tests for the library
95	  used to create and use guest state buffers.
96
97config PPC_IRQ_SOFT_MASK_DEBUG
98	bool "Include extra checks for powerpc irq soft masking"
99	depends on PPC64
100
101config PPC_RFI_SRR_DEBUG
102	bool "Include extra checks for RFI SRR register validity"
103	depends on PPC_BOOK3S_64
104
105config XMON
106	bool "Include xmon kernel debugger"
107	depends on DEBUG_KERNEL
108	select CONSOLE_POLL if SERIAL_CPM_CONSOLE
109	help
110	  Include in-kernel hooks for the xmon kernel monitor/debugger.
111	  Unless you are intending to debug the kernel, say N here.
112	  Make sure to enable also CONFIG_BOOTX_TEXT on Macs. Otherwise
113	  nothing will appear on the screen (xmon writes directly to the
114	  framebuffer memory).
115	  The cmdline option 'xmon' or 'xmon=early' will drop into xmon
116	  very early during boot. 'xmon=on' will just enable the xmon
117	  debugger hooks.  'xmon=off' will disable the debugger hooks
118	  if CONFIG_XMON_DEFAULT is set.
119	  xmon will print a backtrace on the very first invocation.
120	  'xmon=nobt' will disable this autobacktrace.
121
122config XMON_DEFAULT
123	bool "Enable xmon by default"
124	depends on XMON
125	help
126	  xmon is normally disabled unless booted with 'xmon=on'.
127	  Use 'xmon=off' to disable xmon init during runtime.
128
129config XMON_DISASSEMBLY
130	bool "Include disassembly support in xmon"
131	depends on XMON
132	default y
133	help
134	  Include support for disassembling in xmon. You probably want
135	  to say Y here, unless you're building for a memory-constrained
136	  system.
137
138config XMON_DEFAULT_RO_MODE
139	bool "Restrict xmon to read-only operations by default"
140	depends on XMON
141	default y
142	help
143	  Operate xmon in read-only mode. The cmdline options 'xmon=rw' and
144	  'xmon=ro' override this default.
145
146config DEBUGGER
147	bool
148	depends on KGDB || XMON
149	default y
150
151config BDI_SWITCH
152	bool "Include BDI-2000 user context switcher"
153	depends on DEBUG_KERNEL && PPC32
154	help
155	  Include in-kernel support for the Abatron BDI2000 debugger.
156	  Unless you are intending to debug the kernel with one of these
157	  machines, say N here.
158
159config BOOTX_TEXT
160	bool "Support for early boot text console (BootX or OpenFirmware only)"
161	depends on PPC_BOOK3S
162	select FONT_SUN8x16
163	select FONT_SUPPORT
164	help
165	  Say Y here to see progress messages from the boot firmware in text
166	  mode. Requires either BootX or Open Firmware.
167
168config PPC_EARLY_DEBUG
169	bool "Early debugging (dangerous)"
170	help
171	  Say Y to enable some early debugging facilities that may be available
172	  for your processor/board combination. Those facilities are hacks
173	  intended to debug problems early during boot, this should not be
174	  enabled in a production kernel.
175	  Note that enabling this will also cause the kernel default log level
176	  to be pushed to max automatically very early during boot
177
178choice
179	prompt "Early debugging console"
180	depends on PPC_EARLY_DEBUG
181	help
182	  Use the selected console for early debugging. Careful, if you
183	  enable debugging for the wrong type of machine your kernel
184	  _will not boot_.
185
186config PPC_EARLY_DEBUG_BOOTX
187	bool "BootX or OpenFirmware"
188	depends on BOOTX_TEXT
189	help
190	  Select this to enable early debugging for a machine using BootX
191	  or OpenFirmware.
192
193config PPC_EARLY_DEBUG_LPAR
194	bool "LPAR HV Console"
195	depends on PPC_PSERIES && HVC_CONSOLE
196	help
197	  Select this to enable early debugging for a machine with a HVC
198	  console on vterm 0.
199
200config PPC_EARLY_DEBUG_LPAR_HVSI
201	bool "LPAR HVSI Console"
202	depends on PPC_PSERIES && HVC_CONSOLE
203	help
204	  Select this to enable early debugging for a machine with a HVSI
205	  console on a specified vterm.
206
207config PPC_EARLY_DEBUG_G5
208	bool "Apple G5"
209	depends on PPC_PMAC64
210	help
211	  Select this to enable early debugging for Apple G5 machines.
212
213config PPC_EARLY_DEBUG_RTAS_PANEL
214	bool "RTAS Panel"
215	depends on PPC_RTAS
216	help
217	  Select this to enable early debugging via the RTAS panel.
218
219config PPC_EARLY_DEBUG_RTAS_CONSOLE
220	bool "RTAS Console"
221	depends on PPC_RTAS
222	select UDBG_RTAS_CONSOLE
223	help
224	  Select this to enable early debugging via the RTAS console.
225
226config PPC_EARLY_DEBUG_PAS_REALMODE
227	bool "PA Semi real mode"
228	depends on PPC_PASEMI
229	help
230	  Select this to enable early debugging for PA Semi.
231	  Output will be on UART0.
232
233config PPC_EARLY_DEBUG_44x
234	bool "Early serial debugging for IBM/AMCC 44x CPUs"
235	depends on 44x
236	help
237	  Select this to enable early debugging for IBM 44x chips via the
238	  inbuilt serial port.  If you enable this, ensure you set
239	  PPC_EARLY_DEBUG_44x_PHYSLOW below to suit your target board.
240
241config PPC_EARLY_DEBUG_CPM
242	bool "Early serial debugging for Freescale CPM-based serial ports"
243	depends on SERIAL_CPM=y
244	help
245	  Select this to enable early debugging for Freescale chips
246	  using a CPM-based serial port.  This assumes that the bootwrapper
247	  has run, and set up the CPM in a particular way.
248
249config PPC_EARLY_DEBUG_USBGECKO
250	bool "Early debugging through the USB Gecko adapter"
251	depends on GAMECUBE_COMMON
252	select USBGECKO_UDBG
253	help
254	  Select this to enable early debugging for Nintendo GameCube/Wii
255	  consoles via an external USB Gecko adapter.
256
257config PPC_EARLY_DEBUG_PS3GELIC
258	bool "Early debugging through the PS3 Ethernet port"
259	depends on PPC_PS3
260	help
261	  Select this to enable early debugging for the PlayStation3 via
262	  UDP broadcasts sent out through the Ethernet port.
263
264config PPC_EARLY_DEBUG_OPAL_RAW
265	bool "OPAL raw console"
266	depends on HVC_OPAL
267	help
268	  Select this to enable early debugging for the PowerNV platform
269	  using a "raw" console
270
271config PPC_EARLY_DEBUG_OPAL_HVSI
272	bool "OPAL hvsi console"
273	depends on HVC_OPAL
274	help
275	  Select this to enable early debugging for the PowerNV platform
276	  using an "hvsi" console
277
278config PPC_EARLY_DEBUG_MEMCONS
279	bool "In memory console"
280	help
281	  Select this to enable early debugging using an in memory console.
282	  This console provides input and output buffers stored within the
283	  kernel BSS and should be safe to select on any system. A debugger
284	  can then be used to read kernel output or send input to the console.
285
286config PPC_EARLY_DEBUG_16550
287	bool "Serial 16550"
288	depends on PPC_UDBG_16550
289	help
290	  Select this to enable early debugging via Serial 16550 console
291endchoice
292
293config PPC_MEMCONS_OUTPUT_SIZE
294	int "In memory console output buffer size"
295	depends on PPC_EARLY_DEBUG_MEMCONS
296	default 4096
297	help
298	  Selects the size of the output buffer (in bytes) of the in memory
299	  console.
300
301config PPC_MEMCONS_INPUT_SIZE
302	int "In memory console input buffer size"
303	depends on PPC_EARLY_DEBUG_MEMCONS
304	default 128
305	help
306	  Selects the size of the input buffer (in bytes) of the in memory
307	  console.
308
309config PPC_EARLY_DEBUG_OPAL
310	def_bool y
311	depends on PPC_EARLY_DEBUG_OPAL_RAW || PPC_EARLY_DEBUG_OPAL_HVSI
312
313config PPC_EARLY_DEBUG_HVSI_VTERMNO
314	hex "vterm number to use with early debug HVSI"
315	depends on PPC_EARLY_DEBUG_LPAR_HVSI
316	default "0x30000000"
317	help
318	  You probably want 0x30000000 for your first serial port and
319	  0x30000001 for your second one
320
321config PPC_EARLY_DEBUG_OPAL_VTERMNO
322	hex "vterm number to use with OPAL early debug"
323	depends on PPC_EARLY_DEBUG_OPAL
324	default "0"
325	help
326	  This correspond to which /dev/hvcN you want to use for early
327	  debug.
328
329	  On OPAL v2, this will be 0 for network console and 1 or 2 for
330	  the machine built-in serial ports.
331
332config PPC_EARLY_DEBUG_44x_PHYSLOW
333	hex "Low 32 bits of early debug UART physical address"
334	depends on PPC_EARLY_DEBUG_44x
335	default "0x40000200"
336	help
337	  You probably want 0x40000200 for ebony boards and
338	  0x40000300 for taishan
339
340config PPC_EARLY_DEBUG_44x_PHYSHIGH
341	hex "EPRN of early debug UART physical address"
342	depends on PPC_EARLY_DEBUG_44x
343	default "0x1"
344
345config PPC_EARLY_DEBUG_CPM_ADDR
346	hex "CPM UART early debug transmit descriptor address"
347	depends on PPC_EARLY_DEBUG_CPM
348	default "0xfa202008" if PPC_EP88XC
349	default "0xf0001ff8" if CPM2
350	default "0xff002008" if CPM1
351	help
352	  This specifies the address of the transmit descriptor
353	  used for early debug output.  Because it is needed before
354	  platform probing is done, all platforms selected must
355	  share the same address.
356
357config PPC_EARLY_DEBUG_16550_PHYSADDR
358	hex "Early debug Serial 16550 physical address"
359	depends on PPC_EARLY_DEBUG_16550
360
361config PPC_EARLY_DEBUG_16550_STRIDE
362	int "Early debug Serial 16550 stride"
363	depends on PPC_EARLY_DEBUG_16550
364	default 1
365
366config FAIL_IOMMU
367	bool "Fault-injection capability for IOMMU"
368	depends on FAULT_INJECTION
369	depends on PCI || IBMVIO
370	help
371	  Provide fault-injection capability for IOMMU. Each device can
372	  be selectively enabled via the fail_iommu property.
373
374	  If you are unsure, say N.
375
376config KASAN_SHADOW_OFFSET
377	hex
378	depends on KASAN
379	default 0xe0000000 if PPC32
380	default 0xa80e000000000000 if PPC_BOOK3S_64
381	default 0xa8001c0000000000 if PPC_BOOK3E_64
382