Merge v5.8-rc1 into drm-misc-fixes
[linux-2.6-microblaze.git] / lib / Kconfig.kgdb
1 # SPDX-License-Identifier: GPL-2.0-only
2
3 config HAVE_ARCH_KGDB
4         bool
5
6 menuconfig KGDB
7         bool "KGDB: kernel debugger"
8         depends on HAVE_ARCH_KGDB
9         depends on DEBUG_KERNEL
10         help
11           If you say Y here, it will be possible to remotely debug the
12           kernel using gdb.  It is recommended but not required, that
13           you also turn on the kernel config option
14           CONFIG_FRAME_POINTER to aid in producing more reliable stack
15           backtraces in the external debugger.  Documentation of
16           kernel debugger is available at http://kgdb.sourceforge.net
17           as well as in Documentation/dev-tools/kgdb.rst.  If
18           unsure, say N.
19
20 if KGDB
21
22 config KGDB_SERIAL_CONSOLE
23         tristate "KGDB: use kgdb over the serial console"
24         select CONSOLE_POLL
25         select MAGIC_SYSRQ
26         depends on TTY && HW_CONSOLE
27         default y
28         help
29           Share a serial console with kgdb. Sysrq-g must be used
30           to break in initially.
31
32 config KGDB_TESTS
33         bool "KGDB: internal test suite"
34         default n
35         help
36           This is a kgdb I/O module specifically designed to test
37           kgdb's internal functions.  This kgdb I/O module is
38           intended to for the development of new kgdb stubs
39           as well as regression testing the kgdb internals.
40           See the drivers/misc/kgdbts.c for the details about
41           the tests.  The most basic of this I/O module is to boot
42           a kernel boot arguments "kgdbwait kgdbts=V1F100"
43
44 config KGDB_TESTS_ON_BOOT
45         bool "KGDB: Run tests on boot"
46         depends on KGDB_TESTS
47         default n
48         help
49           Run the kgdb tests on boot up automatically without the need
50           to pass in a kernel parameter
51
52 config KGDB_TESTS_BOOT_STRING
53         string "KGDB: which internal kgdb tests to run"
54         depends on KGDB_TESTS_ON_BOOT
55         default "V1F100"
56         help
57           This is the command string to send the kgdb test suite on
58           boot.  See the drivers/misc/kgdbts.c for detailed
59           information about other strings you could use beyond the
60           default of V1F100.
61
62 config KGDB_LOW_LEVEL_TRAP
63        bool "KGDB: Allow debugging with traps in notifiers"
64        depends on X86 || MIPS
65        default n
66        help
67          This will add an extra call back to kgdb for the breakpoint
68          exception handler which will allow kgdb to step through a
69          notify handler.
70
71 config KGDB_KDB
72         bool "KGDB_KDB: include kdb frontend for kgdb"
73         default n
74         help
75           KDB frontend for kernel
76
77 config KDB_DEFAULT_ENABLE
78         hex "KDB: Select kdb command functions to be enabled by default"
79         depends on KGDB_KDB
80         default 0x1
81         help
82           Specifiers which kdb commands are enabled by default. This may
83           be set to 1 or 0 to enable all commands or disable almost all
84           commands.
85
86           Alternatively the following bitmask applies:
87
88             0x0002 - allow arbitrary reads from memory and symbol lookup
89             0x0004 - allow arbitrary writes to memory
90             0x0008 - allow current register state to be inspected
91             0x0010 - allow current register state to be modified
92             0x0020 - allow passive inspection (backtrace, process list, lsmod)
93             0x0040 - allow flow control management (breakpoint, single step)
94             0x0080 - enable signalling of processes
95             0x0100 - allow machine to be rebooted
96
97           The config option merely sets the default at boot time. Both
98           issuing 'echo X > /sys/module/kdb/parameters/cmd_enable' or
99           setting with kdb.cmd_enable=X kernel command line option will
100           override the default settings.
101
102 config KDB_KEYBOARD
103         bool "KGDB_KDB: keyboard as input device"
104         depends on VT && KGDB_KDB
105         default n
106         help
107           KDB can use a PS/2 type keyboard for an input device
108
109 config KDB_CONTINUE_CATASTROPHIC
110         int "KDB: continue after catastrophic errors"
111         depends on KGDB_KDB
112         default "0"
113         help
114           This integer controls the behaviour of kdb when the kernel gets a
115           catastrophic error, i.e. for a panic or oops.
116           When KDB is active and a catastrophic error occurs, nothing extra
117           will happen until you type 'go'.
118           CONFIG_KDB_CONTINUE_CATASTROPHIC == 0 (default). The first time
119           you type 'go', you will be warned by kdb. The secend time you type
120           'go', KDB tries to continue. No guarantees that the
121           kernel is still usable in this situation.
122           CONFIG_KDB_CONTINUE_CATASTROPHIC == 1. KDB tries to continue.
123           No guarantees that the kernel is still usable in this situation.
124           CONFIG_KDB_CONTINUE_CATASTROPHIC == 2. KDB forces a reboot.
125           If you are not sure, say 0.
126
127 config ARCH_HAS_EARLY_DEBUG
128         bool
129         default n
130         help
131           If an architecture can definitely handle entering the debugger
132           when early_param's are parsed then it select this config.
133           Otherwise, if "kgdbwait" is passed on the kernel command line it
134           won't actually be processed until dbg_late_init() just after the
135           call to kgdb_arch_late() is made.
136
137           NOTE: Even if this isn't selected by an architecture we will
138           still try to register kgdb to handle breakpoints and crashes
139           when early_param's are parsed, we just won't act on the
140           "kgdbwait" parameter until dbg_late_init().  If you get a
141           crash and try to drop into kgdb somewhere between these two
142           places you might or might not end up being able to use kgdb
143           depending on exactly how far along the architecture has initted.
144
145 endif # KGDB