1# SPDX-License-Identifier: GPL-2.0 2 3config EARLY_PRINTK_USB 4 bool 5 6config X86_VERBOSE_BOOTUP 7 bool "Enable verbose x86 bootup info messages" 8 default y 9 help 10 Enables the informational output from the decompression stage 11 (e.g. bzImage) of the boot. If you disable this you will still 12 see errors. Disable this if you want silent bootup. 13 14config EARLY_PRINTK 15 bool "Early printk" if EXPERT 16 default y 17 help 18 Write kernel log output directly into the VGA buffer or to a serial 19 port. 20 21 This is useful for kernel debugging when your machine crashes very 22 early before the console code is initialized. For normal operation 23 it is not recommended because it looks ugly and doesn't cooperate 24 with klogd/syslogd or the X server. You should normally say N here, 25 unless you want to debug such a crash. 26 27config EARLY_PRINTK_DBGP 28 bool "Early printk via EHCI debug port" 29 depends on EARLY_PRINTK && PCI 30 select EARLY_PRINTK_USB 31 help 32 Write kernel log output directly into the EHCI debug port. 33 34 This is useful for kernel debugging when your machine crashes very 35 early before the console code is initialized. For normal operation 36 it is not recommended because it looks ugly and doesn't cooperate 37 with klogd/syslogd or the X server. You should normally say N here, 38 unless you want to debug such a crash. You need usb debug device. 39 40config EARLY_PRINTK_USB_XDBC 41 bool "Early printk via the xHCI debug port" 42 depends on EARLY_PRINTK && PCI 43 select EARLY_PRINTK_USB 44 help 45 Write kernel log output directly into the xHCI debug port. 46 47 One use for this feature is kernel debugging, for example when your 48 machine crashes very early before the regular console code is 49 initialized. Other uses include simpler, lockless logging instead of 50 a full-blown printk console driver + klogd. 51 52 For normal production environments this is normally not recommended, 53 because it doesn't feed events into klogd/syslogd and doesn't try to 54 print anything on the screen. 55 56 You should normally say N here, unless you want to debug early 57 crashes or need a very simple printk logging facility. 58 59config EFI_PGT_DUMP 60 bool "Dump the EFI pagetable" 61 depends on EFI 62 select PTDUMP_CORE 63 help 64 Enable this if you want to dump the EFI page table before 65 enabling virtual mode. This can be used to debug miscellaneous 66 issues with the mapping of the EFI runtime regions into that 67 table. 68 69config DEBUG_TLBFLUSH 70 bool "Set upper limit of TLB entries to flush one-by-one" 71 depends on DEBUG_KERNEL 72 help 73 X86-only for now. 74 75 This option allows the user to tune the amount of TLB entries the 76 kernel flushes one-by-one instead of doing a full TLB flush. In 77 certain situations, the former is cheaper. This is controlled by the 78 tlb_flushall_shift knob under /sys/kernel/debug/x86. If you set it 79 to -1, the code flushes the whole TLB unconditionally. Otherwise, 80 for positive values of it, the kernel will use single TLB entry 81 invalidating instructions according to the following formula: 82 83 flush_entries <= active_tlb_entries / 2^tlb_flushall_shift 84 85 If in doubt, say "N". 86 87config IOMMU_DEBUG 88 bool "Enable IOMMU debugging" 89 depends on GART_IOMMU && DEBUG_KERNEL 90 depends on X86_64 91 help 92 Force the IOMMU to on even when you have less than 4GB of 93 memory and add debugging code. On overflow always panic. And 94 allow to enable IOMMU leak tracing. Can be disabled at boot 95 time with iommu=noforce. This will also enable scatter gather 96 list merging. Currently not recommended for production 97 code. When you use it make sure you have a big enough 98 IOMMU/AGP aperture. Most of the options enabled by this can 99 be set more finegrained using the iommu= command line 100 options. See Documentation/arch/x86/x86_64/boot-options.rst for more 101 details. 102 103config IOMMU_LEAK 104 bool "IOMMU leak tracing" 105 depends on IOMMU_DEBUG && DMA_API_DEBUG 106 help 107 Add a simple leak tracer to the IOMMU code. This is useful when you 108 are debugging a buggy device driver that leaks IOMMU mappings. 109 110config HAVE_MMIOTRACE_SUPPORT 111 def_bool y 112 113config X86_DECODER_SELFTEST 114 bool "x86 instruction decoder selftest" 115 depends on DEBUG_KERNEL && INSTRUCTION_DECODER 116 depends on !COMPILE_TEST 117 help 118 Perform x86 instruction decoder selftests at build time. 119 This option is useful for checking the sanity of x86 instruction 120 decoder code. 121 If unsure, say "N". 122 123choice 124 prompt "IO delay type" 125 default IO_DELAY_0X80 126 127config IO_DELAY_0X80 128 bool "port 0x80 based port-IO delay [recommended]" 129 help 130 This is the traditional Linux IO delay used for in/out_p. 131 It is the most tested hence safest selection here. 132 133config IO_DELAY_0XED 134 bool "port 0xed based port-IO delay" 135 help 136 Use port 0xed as the IO delay. This frees up port 0x80 which is 137 often used as a hardware-debug port. 138 139config IO_DELAY_UDELAY 140 bool "udelay based port-IO delay" 141 help 142 Use udelay(2) as the IO delay method. This provides the delay 143 while not having any side-effect on the IO port space. 144 145config IO_DELAY_NONE 146 bool "no port-IO delay" 147 help 148 No port-IO delay. Will break on old boxes that require port-IO 149 delay for certain operations. Should work on most new machines. 150 151endchoice 152 153config DEBUG_BOOT_PARAMS 154 bool "Debug boot parameters" 155 depends on DEBUG_KERNEL 156 depends on DEBUG_FS 157 help 158 This option will cause struct boot_params to be exported via debugfs. 159 160config CPA_DEBUG 161 bool "CPA self-test code" 162 depends on DEBUG_KERNEL 163 help 164 Do change_page_attr() self-tests every 30 seconds. 165 166config DEBUG_ENTRY 167 bool "Debug low-level entry code" 168 depends on DEBUG_KERNEL 169 help 170 This option enables sanity checks in x86's low-level entry code. 171 Some of these sanity checks may slow down kernel entries and 172 exits or otherwise impact performance. 173 174 If unsure, say N. 175 176config DEBUG_NMI_SELFTEST 177 bool "NMI Selftest" 178 depends on DEBUG_KERNEL && X86_LOCAL_APIC 179 help 180 Enabling this option turns on a quick NMI selftest to verify 181 that the NMI behaves correctly. 182 183 This might help diagnose strange hangs that rely on NMI to 184 function properly. 185 186 If unsure, say N. 187 188config DEBUG_IMR_SELFTEST 189 bool "Isolated Memory Region self test" 190 depends on INTEL_IMR 191 help 192 This option enables automated sanity testing of the IMR code. 193 Some simple tests are run to verify IMR bounds checking, alignment 194 and overlapping. This option is really only useful if you are 195 debugging an IMR memory map or are modifying the IMR code and want to 196 test your changes. 197 198 If unsure say N here. 199 200config X86_DEBUG_FPU 201 bool "Debug the x86 FPU code" 202 depends on DEBUG_KERNEL 203 default y 204 help 205 If this option is enabled then there will be extra sanity 206 checks and (boot time) debug printouts added to the kernel. 207 This debugging adds some small amount of runtime overhead 208 to the kernel. 209 210 If unsure, say N. 211 212config PUNIT_ATOM_DEBUG 213 tristate "ATOM Punit debug driver" 214 depends on PCI 215 select DEBUG_FS 216 select IOSF_MBI 217 help 218 This is a debug driver, which gets the power states 219 of all Punit North Complex devices. The power states of 220 each device is exposed as part of the debugfs interface. 221 The current power state can be read from 222 /sys/kernel/debug/punit_atom/dev_power_state 223 224choice 225 prompt "Choose kernel unwinder" 226 default UNWINDER_ORC if X86_64 227 default UNWINDER_FRAME_POINTER if X86_32 228 help 229 This determines which method will be used for unwinding kernel stack 230 traces for panics, oopses, bugs, warnings, perf, /proc/<pid>/stack, 231 livepatch, lockdep, and more. 232 233config UNWINDER_ORC 234 bool "ORC unwinder" 235 depends on X86_64 236 select OBJTOOL 237 help 238 This option enables the ORC (Oops Rewind Capability) unwinder for 239 unwinding kernel stack traces. It uses a custom data format which is 240 a simplified version of the DWARF Call Frame Information standard. 241 242 This unwinder is more accurate across interrupt entry frames than the 243 frame pointer unwinder. It also enables a 5-10% performance 244 improvement across the entire kernel compared to frame pointers. 245 246 Enabling this option will increase the kernel's runtime memory usage 247 by roughly 2-4MB, depending on your kernel config. 248 249config UNWINDER_FRAME_POINTER 250 bool "Frame pointer unwinder" 251 select ARCH_WANT_FRAME_POINTERS 252 select FRAME_POINTER 253 help 254 This option enables the frame pointer unwinder for unwinding kernel 255 stack traces. 256 257 The unwinder itself is fast and it uses less RAM than the ORC 258 unwinder, but the kernel text size will grow by ~3% and the kernel's 259 overall performance will degrade by roughly 5-10%. 260 261config UNWINDER_GUESS 262 bool "Guess unwinder" 263 depends on EXPERT 264 depends on !STACKDEPOT 265 help 266 This option enables the "guess" unwinder for unwinding kernel stack 267 traces. It scans the stack and reports every kernel text address it 268 finds. Some of the addresses it reports may be incorrect. 269 270 While this option often produces false positives, it can still be 271 useful in many cases. Unlike the other unwinders, it has no runtime 272 overhead. 273 274endchoice 275