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_MAPLE
227	bool "Maple real mode"
228	depends on PPC_MAPLE
229	help
230	  Select this to enable early debugging for Maple.
231
232config PPC_EARLY_DEBUG_PAS_REALMODE
233	bool "PA Semi real mode"
234	depends on PPC_PASEMI
235	help
236	  Select this to enable early debugging for PA Semi.
237	  Output will be on UART0.
238
239config PPC_EARLY_DEBUG_44x
240	bool "Early serial debugging for IBM/AMCC 44x CPUs"
241	depends on 44x
242	help
243	  Select this to enable early debugging for IBM 44x chips via the
244	  inbuilt serial port.  If you enable this, ensure you set
245	  PPC_EARLY_DEBUG_44x_PHYSLOW below to suit your target board.
246
247config PPC_EARLY_DEBUG_CPM
248	bool "Early serial debugging for Freescale CPM-based serial ports"
249	depends on SERIAL_CPM=y
250	help
251	  Select this to enable early debugging for Freescale chips
252	  using a CPM-based serial port.  This assumes that the bootwrapper
253	  has run, and set up the CPM in a particular way.
254
255config PPC_EARLY_DEBUG_USBGECKO
256	bool "Early debugging through the USB Gecko adapter"
257	depends on GAMECUBE_COMMON
258	select USBGECKO_UDBG
259	help
260	  Select this to enable early debugging for Nintendo GameCube/Wii
261	  consoles via an external USB Gecko adapter.
262
263config PPC_EARLY_DEBUG_PS3GELIC
264	bool "Early debugging through the PS3 Ethernet port"
265	depends on PPC_PS3
266	help
267	  Select this to enable early debugging for the PlayStation3 via
268	  UDP broadcasts sent out through the Ethernet port.
269
270config PPC_EARLY_DEBUG_OPAL_RAW
271	bool "OPAL raw console"
272	depends on HVC_OPAL
273	help
274	  Select this to enable early debugging for the PowerNV platform
275	  using a "raw" console
276
277config PPC_EARLY_DEBUG_OPAL_HVSI
278	bool "OPAL hvsi console"
279	depends on HVC_OPAL
280	help
281	  Select this to enable early debugging for the PowerNV platform
282	  using an "hvsi" console
283
284config PPC_EARLY_DEBUG_MEMCONS
285	bool "In memory console"
286	help
287	  Select this to enable early debugging using an in memory console.
288	  This console provides input and output buffers stored within the
289	  kernel BSS and should be safe to select on any system. A debugger
290	  can then be used to read kernel output or send input to the console.
291
292config PPC_EARLY_DEBUG_16550
293	bool "Serial 16550"
294	depends on PPC_UDBG_16550
295	help
296	  Select this to enable early debugging via Serial 16550 console
297endchoice
298
299config PPC_MEMCONS_OUTPUT_SIZE
300	int "In memory console output buffer size"
301	depends on PPC_EARLY_DEBUG_MEMCONS
302	default 4096
303	help
304	  Selects the size of the output buffer (in bytes) of the in memory
305	  console.
306
307config PPC_MEMCONS_INPUT_SIZE
308	int "In memory console input buffer size"
309	depends on PPC_EARLY_DEBUG_MEMCONS
310	default 128
311	help
312	  Selects the size of the input buffer (in bytes) of the in memory
313	  console.
314
315config PPC_EARLY_DEBUG_OPAL
316	def_bool y
317	depends on PPC_EARLY_DEBUG_OPAL_RAW || PPC_EARLY_DEBUG_OPAL_HVSI
318
319config PPC_EARLY_DEBUG_HVSI_VTERMNO
320	hex "vterm number to use with early debug HVSI"
321	depends on PPC_EARLY_DEBUG_LPAR_HVSI
322	default "0x30000000"
323	help
324	  You probably want 0x30000000 for your first serial port and
325	  0x30000001 for your second one
326
327config PPC_EARLY_DEBUG_OPAL_VTERMNO
328	hex "vterm number to use with OPAL early debug"
329	depends on PPC_EARLY_DEBUG_OPAL
330	default "0"
331	help
332	  This correspond to which /dev/hvcN you want to use for early
333	  debug.
334
335	  On OPAL v2, this will be 0 for network console and 1 or 2 for
336	  the machine built-in serial ports.
337
338config PPC_EARLY_DEBUG_44x_PHYSLOW
339	hex "Low 32 bits of early debug UART physical address"
340	depends on PPC_EARLY_DEBUG_44x
341	default "0x40000200"
342	help
343	  You probably want 0x40000200 for ebony boards and
344	  0x40000300 for taishan
345
346config PPC_EARLY_DEBUG_44x_PHYSHIGH
347	hex "EPRN of early debug UART physical address"
348	depends on PPC_EARLY_DEBUG_44x
349	default "0x1"
350
351config PPC_EARLY_DEBUG_CPM_ADDR
352	hex "CPM UART early debug transmit descriptor address"
353	depends on PPC_EARLY_DEBUG_CPM
354	default "0xfa202008" if PPC_EP88XC
355	default "0xf0001ff8" if CPM2
356	default "0xff002008" if CPM1
357	help
358	  This specifies the address of the transmit descriptor
359	  used for early debug output.  Because it is needed before
360	  platform probing is done, all platforms selected must
361	  share the same address.
362
363config PPC_EARLY_DEBUG_16550_PHYSADDR
364	hex "Early debug Serial 16550 physical address"
365	depends on PPC_EARLY_DEBUG_16550
366
367config PPC_EARLY_DEBUG_16550_STRIDE
368	int "Early debug Serial 16550 stride"
369	depends on PPC_EARLY_DEBUG_16550
370	default 1
371
372config FAIL_IOMMU
373	bool "Fault-injection capability for IOMMU"
374	depends on FAULT_INJECTION
375	depends on PCI || IBMVIO
376	help
377	  Provide fault-injection capability for IOMMU. Each device can
378	  be selectively enabled via the fail_iommu property.
379
380	  If you are unsure, say N.
381
382config KASAN_SHADOW_OFFSET
383	hex
384	depends on KASAN
385	default 0xe0000000 if PPC32
386	default 0xa80e000000000000 if PPC_BOOK3S_64
387	default 0xa8001c0000000000 if PPC_BOOK3E_64
388