22091bbfdc9b8dd0919dea550aeb9aeb6178bf77
[linux-3.10.git] / arch / powerpc / Kconfig.debug
1 menu "Kernel hacking"
2
3 source "lib/Kconfig.debug"
4
5 config PRINT_STACK_DEPTH
6         int "Stack depth to print" if DEBUG_KERNEL
7         default 64
8         help
9           This option allows you to set the stack depth that the kernel
10           prints in stack traces. This can be useful if your display is
11           too small and stack traces cause important information to
12           scroll off the screen.
13
14 config DEBUG_STACKOVERFLOW
15         bool "Check for stack overflows"
16         depends on DEBUG_KERNEL
17         help
18           This option will cause messages to be printed if free stack space
19           drops below a certain limit.
20
21 config DEBUG_STACK_USAGE
22         bool "Stack utilization instrumentation"
23         depends on DEBUG_KERNEL
24         help
25           Enables the display of the minimum amount of free stack which each
26           task has ever had available in the sysrq-T and sysrq-P debug output.
27
28           This option will slow down process creation somewhat.
29
30 config DEBUG_PAGEALLOC
31         bool "Debug page memory allocations"
32         depends on DEBUG_KERNEL && !HIBERNATION
33         help
34           Unmap pages from the kernel linear mapping after free_pages().
35           This results in a large slowdown, but helps to find certain types
36           of memory corruptions.
37
38
39 config HCALL_STATS
40         bool "Hypervisor call instrumentation"
41         depends on PPC_PSERIES && DEBUG_FS
42         help
43           Adds code to keep track of the number of hypervisor calls made and
44           the amount of time spent in hypervisor calls.  Wall time spent in
45           each call is always calculated, and if available CPU cycles spent
46           are also calculated.  A directory named hcall_inst is added at the
47           root of the debugfs filesystem.  Within the hcall_inst directory
48           are files that contain CPU specific call statistics.
49
50           This option will add a small amount of overhead to all hypervisor
51           calls.
52
53 config CODE_PATCHING_SELFTEST
54         bool "Run self-tests of the code-patching code."
55         depends on DEBUG_KERNEL
56         default n
57
58 config FTR_FIXUP_SELFTEST
59         bool "Run self-tests of the feature-fixup code."
60         depends on DEBUG_KERNEL
61         default n
62
63 config MSI_BITMAP_SELFTEST
64         bool "Run self-tests of the MSI bitmap code."
65         depends on DEBUG_KERNEL
66         default n
67
68 config XMON
69         bool "Include xmon kernel debugger"
70         depends on DEBUG_KERNEL
71         help
72           Include in-kernel hooks for the xmon kernel monitor/debugger.
73           Unless you are intending to debug the kernel, say N here.
74           Make sure to enable also CONFIG_BOOTX_TEXT on Macs. Otherwise
75           nothing will appear on the screen (xmon writes directly to the
76           framebuffer memory).
77           The cmdline option 'xmon' or 'xmon=early' will drop into xmon
78           very early during boot. 'xmon=on' will just enable the xmon
79           debugger hooks.  'xmon=off' will disable the debugger hooks
80           if CONFIG_XMON_DEFAULT is set.
81           xmon will print a backtrace on the very first invocation.
82           'xmon=nobt' will disable this autobacktrace.
83
84 config XMON_DEFAULT
85         bool "Enable xmon by default"
86         depends on XMON
87         help
88           xmon is normally disabled unless booted with 'xmon=on'.
89           Use 'xmon=off' to disable xmon init during runtime.
90
91 config XMON_DISASSEMBLY
92         bool "Include disassembly support in xmon"
93         depends on XMON
94         default y
95         help
96           Include support for disassembling in xmon. You probably want
97           to say Y here, unless you're building for a memory-constrained
98           system.
99
100 config DEBUGGER
101         bool
102         depends on KGDB || XMON
103         default y
104
105 config IRQSTACKS
106         bool "Use separate kernel stacks when processing interrupts"
107         help
108           If you say Y here the kernel will use separate kernel stacks
109           for handling hard and soft interrupts.  This can help avoid
110           overflowing the process kernel stacks.
111
112 config VIRQ_DEBUG
113         bool "Expose hardware/virtual IRQ mapping via debugfs"
114         depends on DEBUG_FS
115         help
116           This option will show the mapping relationship between hardware irq
117           numbers and virtual irq numbers. The mapping is exposed via debugfs
118           in the file powerpc/virq_mapping.
119
120           If you don't know what this means you don't need it.
121
122 config BDI_SWITCH
123         bool "Include BDI-2000 user context switcher"
124         depends on DEBUG_KERNEL && PPC32
125         help
126           Include in-kernel support for the Abatron BDI2000 debugger.
127           Unless you are intending to debug the kernel with one of these
128           machines, say N here.
129
130 config BOOTX_TEXT
131         bool "Support for early boot text console (BootX or OpenFirmware only)"
132         depends on PPC_OF && PPC_BOOK3S
133         help
134           Say Y here to see progress messages from the boot firmware in text
135           mode. Requires either BootX or Open Firmware.
136
137 config PPC_EARLY_DEBUG
138         bool "Early debugging (dangerous)"
139         # PPC_EARLY_DEBUG on 440 leaves AS=1 mappings above the TLB high water
140         # mark, which doesn't work with current 440 KVM.
141         depends on !KVM
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
150 choice
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
158 config PPC_EARLY_DEBUG_LPAR
159         bool "LPAR HV Console"
160         depends on PPC_PSERIES
161         help
162           Select this to enable early debugging for a machine with a HVC
163           console on vterm 0.
164
165 config PPC_EARLY_DEBUG_G5
166         bool "Apple G5"
167         depends on PPC_PMAC64
168         help
169           Select this to enable early debugging for Apple G5 machines.
170
171 config PPC_EARLY_DEBUG_RTAS_PANEL
172         bool "RTAS Panel"
173         depends on PPC_RTAS
174         help
175           Select this to enable early debugging via the RTAS panel.
176
177 config PPC_EARLY_DEBUG_RTAS_CONSOLE
178         bool "RTAS Console"
179         depends on PPC_RTAS
180         select UDBG_RTAS_CONSOLE
181         help
182           Select this to enable early debugging via the RTAS console.
183
184 config PPC_EARLY_DEBUG_MAPLE
185         bool "Maple real mode"
186         depends on PPC_MAPLE
187         help
188           Select this to enable early debugging for Maple.
189
190 config PPC_EARLY_DEBUG_ISERIES
191         bool "iSeries HV Console"
192         depends on PPC_ISERIES
193         help
194           Select this to enable early debugging for legacy iSeries. You need
195           to hit "Ctrl-x Ctrl-x" to see the messages on the console.
196
197 config PPC_EARLY_DEBUG_PAS_REALMODE
198         bool "PA Semi real mode"
199         depends on PPC_PASEMI
200         help
201           Select this to enable early debugging for PA Semi.
202           Output will be on UART0.
203
204 config PPC_EARLY_DEBUG_BEAT
205         bool "Beat HV Console"
206         depends on PPC_CELLEB
207         select PPC_UDBG_BEAT
208         help
209           Select this to enable early debugging for Celleb with Beat.
210
211 config 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
219 config 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
227 config PPC_EARLY_DEBUG_CPM
228         bool "Early serial debugging for Freescale CPM-based serial ports"
229         depends on SERIAL_CPM
230         select PIN_TLB if PPC_8xx
231         help
232           Select this to enable early debugging for Freescale chips
233           using a CPM-based serial port.  This assumes that the bootwrapper
234           has run, and set up the CPM in a particular way.
235
236 endchoice
237
238 config PPC_EARLY_DEBUG_44x_PHYSLOW
239         hex "Low 32 bits of early debug UART physical address"
240         depends on PPC_EARLY_DEBUG_44x
241         default "0x40000200"
242         help
243           You probably want 0x40000200 for ebony boards and
244           0x40000300 for taishan
245
246 config PPC_EARLY_DEBUG_44x_PHYSHIGH
247         hex "EPRN of early debug UART physical address"
248         depends on PPC_EARLY_DEBUG_44x
249         default "0x1"
250
251 config PPC_EARLY_DEBUG_40x_PHYSADDR
252         hex "Early debug UART physical address"
253         depends on PPC_EARLY_DEBUG_40x
254         default "0xef600300"
255
256 config PPC_EARLY_DEBUG_CPM_ADDR
257         hex "CPM UART early debug transmit descriptor address"
258         depends on PPC_EARLY_DEBUG_CPM
259         default "0xfa202008" if PPC_EP88XC
260         default "0xf0001ff8" if CPM2
261         default "0xff002008" if CPM1
262         help
263           This specifies the address of the transmit descriptor
264           used for early debug output.  Because it is needed before
265           platform probing is done, all platforms selected must
266           share the same address.
267
268 endmenu