Merge branch 'upstream-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jgarzi...
[linux-2.6] / arch / blackfin / Kconfig.debug
1 menu "Kernel hacking"
2
3 source "lib/Kconfig.debug"
4
5 config DEBUG_MMRS
6         bool "Generate Blackfin MMR tree"
7         select DEBUG_FS
8         help
9           Create a tree of Blackfin MMRs via the debugfs tree.  If
10           you enable this, you will find all MMRs laid out in the
11           /sys/kernel/debug/blackfin/ directory where you can read/write
12           MMRs directly from userspace.  This is obviously just a debug
13           feature.
14
15 config DEBUG_HWERR
16         bool "Hardware error interrupt debugging"
17         depends on DEBUG_KERNEL
18         help
19           When enabled, the hardware error interrupt is never disabled, and
20           will happen immediately when an error condition occurs.  This comes
21           at a slight cost in code size, but is necessary if you are getting
22           hardware error interrupts and need to know where they are coming
23           from.
24
25 config DEBUG_ICACHE_CHECK
26         bool "Check Instruction cache coherency"
27         depends on DEBUG_KERNEL
28         depends on DEBUG_HWERR
29         help
30           Say Y here if you are getting weird unexplained errors. This will
31           ensure that icache is what SDRAM says it should be by doing a
32           byte wise comparison between SDRAM and instruction cache. This
33           also relocates the irq_panic() function to L1 memory, (which is
34           un-cached).
35
36 config DEBUG_HUNT_FOR_ZERO
37         bool "Catch NULL pointer reads/writes"
38         default y
39         help
40           Say Y here to catch reads/writes to anywhere in the memory range
41           from 0x0000 - 0x0FFF (the first 4k) of memory.  This is useful in
42           catching common programming errors such as NULL pointer dereferences.
43
44           Misbehaving applications will be killed (generate a SEGV) while the
45           kernel will trigger a panic.
46
47           Enabling this option will take up an extra entry in CPLB table.
48           Otherwise, there is no extra overhead.
49
50 config DEBUG_BFIN_HWTRACE_ON
51         bool "Turn on Blackfin's Hardware Trace"
52         default y
53         help
54           All Blackfins include a Trace Unit which stores a history of the last
55           16 changes in program flow taken by the program sequencer. The history
56           allows the user to recreate the program sequencer’s recent path. This
57           can be handy when an application dies - we print out the execution
58           path of how it got to the offending instruction.
59
60           By turning this off, you may save a tiny amount of power.
61
62 choice
63         prompt "Omit loop Tracing"
64         default DEBUG_BFIN_HWTRACE_COMPRESSION_OFF
65         depends on DEBUG_BFIN_HWTRACE_ON
66         help
67           The trace buffer can be configured to omit recording of changes in
68           program flow that match either the last entry or one of the last
69           two entries. Omitting one of these entries from the record prevents
70           the trace buffer from overflowing because of any sort of loop (for, do
71           while, etc) in the program.
72
73           Because zero-overhead Hardware loops are not recorded in the trace buffer,
74           this feature can be used to prevent trace overflow from loops that
75           are nested four deep.
76
77 config DEBUG_BFIN_HWTRACE_COMPRESSION_OFF
78         bool "Trace all Loops"
79         help
80           The trace buffer records all changes of flow 
81
82 config DEBUG_BFIN_HWTRACE_COMPRESSION_ONE
83         bool "Compress single-level loops"
84         help
85           The trace buffer does not record single loops - helpful if trace 
86           is spinning on a while or do loop.
87
88 config DEBUG_BFIN_HWTRACE_COMPRESSION_TWO
89         bool "Compress two-level loops"
90         help
91           The trace buffer does not record loops two levels deep. Helpful if
92           the trace is spinning in a nested loop
93
94 endchoice
95
96 config DEBUG_BFIN_HWTRACE_COMPRESSION
97         int
98         depends on DEBUG_BFIN_HWTRACE_ON
99         default 0 if DEBUG_BFIN_HWTRACE_COMPRESSION_OFF
100         default 1 if DEBUG_BFIN_HWTRACE_COMPRESSION_ONE
101         default 2 if DEBUG_BFIN_HWTRACE_COMPRESSION_TWO
102
103
104 config DEBUG_BFIN_HWTRACE_EXPAND
105         bool "Expand Trace Buffer greater than 16 entries"
106         depends on DEBUG_BFIN_HWTRACE_ON
107         default n
108         help
109           By selecting this option, every time the 16 hardware entries in
110           the Blackfin's HW Trace buffer are full, the kernel will move them
111           into a software buffer, for dumping when there is an issue. This 
112           has a great impact on performance, (an interrupt every 16 change of 
113           flows) and should normally be turned off, except in those nasty
114           debugging sessions
115
116 config DEBUG_BFIN_HWTRACE_EXPAND_LEN
117         int "Size of Trace buffer (in power of 2k)"
118         range 0 4
119         depends on DEBUG_BFIN_HWTRACE_EXPAND
120         default 1
121         help
122           This sets the size of the software buffer that the trace information
123           is kept in.
124           0 for (2^0)  1k, or 256 entries,
125           1 for (2^1)  2k, or 512 entries,
126           2 for (2^2)  4k, or 1024 entries,
127           3 for (2^3)  8k, or 2048 entries,
128           4 for (2^4) 16k, or 4096 entries
129
130 config DEBUG_BFIN_NO_KERN_HWTRACE
131         bool "Trace user apps (turn off hwtrace in kernel)"
132         depends on DEBUG_BFIN_HWTRACE_ON
133         default n
134         help
135           Some pieces of the kernel contain a lot of flow changes which can
136           quickly fill up the hardware trace buffer.  When debugging crashes,
137           the hardware trace may indicate that the problem lies in kernel
138           space when in reality an application is buggy.
139
140           Say Y here to disable hardware tracing in some known "jumpy" pieces
141           of code so that the trace buffer will extend further back.
142
143 config EARLY_PRINTK
144         bool "Early printk" 
145         default n
146         help
147           This option enables special console drivers which allow the kernel
148           to print messages very early in the bootup process.
149
150           This is useful for kernel debugging when your machine crashes very
151           early before the console code is initialized. After enabling this
152           feature, you must add "earlyprintk=serial,uart0,57600" to the
153           command line (bootargs). It is safe to say Y here in all cases, as
154           all of this lives in the init section and is thrown away after the
155           kernel boots completely.
156
157 config DUAL_CORE_TEST_MODULE
158         tristate "Dual Core Test Module"
159         depends on (BF561)
160         default n
161         help
162           Say Y here to build-in dual core test module for dual core test.
163
164 config CPLB_INFO
165         bool "Display the CPLB information"
166         help
167           Display the CPLB information via /proc/cplbinfo.
168
169 config ACCESS_CHECK
170         bool "Check the user pointer address"
171         default y
172         help
173           Usually the pointer transfer from user space is checked to see if its
174           address is in the kernel space.
175
176           Say N here to disable that check to improve the performance.
177
178 endmenu