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