Merge tag 'tags/bcm2835-defconfig-next-2020-03-27' into defconfig/next
[platform/kernel/linux-rpi.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 endif # KGDB