18c2ecf20Sopenharmony_ci# SPDX-License-Identifier: GPL-2.0 28c2ecf20Sopenharmony_ci 38c2ecf20Sopenharmony_ciconfig TRACE_IRQFLAGS_SUPPORT 48c2ecf20Sopenharmony_ci def_bool y 58c2ecf20Sopenharmony_ci 68c2ecf20Sopenharmony_ciconfig TRACE_IRQFLAGS_NMI_SUPPORT 78c2ecf20Sopenharmony_ci def_bool y 88c2ecf20Sopenharmony_ci 98c2ecf20Sopenharmony_ciconfig EARLY_PRINTK_USB 108c2ecf20Sopenharmony_ci bool 118c2ecf20Sopenharmony_ci 128c2ecf20Sopenharmony_ciconfig X86_VERBOSE_BOOTUP 138c2ecf20Sopenharmony_ci bool "Enable verbose x86 bootup info messages" 148c2ecf20Sopenharmony_ci default y 158c2ecf20Sopenharmony_ci help 168c2ecf20Sopenharmony_ci Enables the informational output from the decompression stage 178c2ecf20Sopenharmony_ci (e.g. bzImage) of the boot. If you disable this you will still 188c2ecf20Sopenharmony_ci see errors. Disable this if you want silent bootup. 198c2ecf20Sopenharmony_ci 208c2ecf20Sopenharmony_ciconfig EARLY_PRINTK 218c2ecf20Sopenharmony_ci bool "Early printk" if EXPERT 228c2ecf20Sopenharmony_ci default y 238c2ecf20Sopenharmony_ci help 248c2ecf20Sopenharmony_ci Write kernel log output directly into the VGA buffer or to a serial 258c2ecf20Sopenharmony_ci port. 268c2ecf20Sopenharmony_ci 278c2ecf20Sopenharmony_ci This is useful for kernel debugging when your machine crashes very 288c2ecf20Sopenharmony_ci early before the console code is initialized. For normal operation 298c2ecf20Sopenharmony_ci it is not recommended because it looks ugly and doesn't cooperate 308c2ecf20Sopenharmony_ci with klogd/syslogd or the X server. You should normally say N here, 318c2ecf20Sopenharmony_ci unless you want to debug such a crash. 328c2ecf20Sopenharmony_ci 338c2ecf20Sopenharmony_ciconfig EARLY_PRINTK_DBGP 348c2ecf20Sopenharmony_ci bool "Early printk via EHCI debug port" 358c2ecf20Sopenharmony_ci depends on EARLY_PRINTK && PCI 368c2ecf20Sopenharmony_ci select EARLY_PRINTK_USB 378c2ecf20Sopenharmony_ci help 388c2ecf20Sopenharmony_ci Write kernel log output directly into the EHCI debug port. 398c2ecf20Sopenharmony_ci 408c2ecf20Sopenharmony_ci This is useful for kernel debugging when your machine crashes very 418c2ecf20Sopenharmony_ci early before the console code is initialized. For normal operation 428c2ecf20Sopenharmony_ci it is not recommended because it looks ugly and doesn't cooperate 438c2ecf20Sopenharmony_ci with klogd/syslogd or the X server. You should normally say N here, 448c2ecf20Sopenharmony_ci unless you want to debug such a crash. You need usb debug device. 458c2ecf20Sopenharmony_ci 468c2ecf20Sopenharmony_ciconfig EARLY_PRINTK_USB_XDBC 478c2ecf20Sopenharmony_ci bool "Early printk via the xHCI debug port" 488c2ecf20Sopenharmony_ci depends on EARLY_PRINTK && PCI 498c2ecf20Sopenharmony_ci select EARLY_PRINTK_USB 508c2ecf20Sopenharmony_ci help 518c2ecf20Sopenharmony_ci Write kernel log output directly into the xHCI debug port. 528c2ecf20Sopenharmony_ci 538c2ecf20Sopenharmony_ci One use for this feature is kernel debugging, for example when your 548c2ecf20Sopenharmony_ci machine crashes very early before the regular console code is 558c2ecf20Sopenharmony_ci initialized. Other uses include simpler, lockless logging instead of 568c2ecf20Sopenharmony_ci a full-blown printk console driver + klogd. 578c2ecf20Sopenharmony_ci 588c2ecf20Sopenharmony_ci For normal production environments this is normally not recommended, 598c2ecf20Sopenharmony_ci because it doesn't feed events into klogd/syslogd and doesn't try to 608c2ecf20Sopenharmony_ci print anything on the screen. 618c2ecf20Sopenharmony_ci 628c2ecf20Sopenharmony_ci You should normally say N here, unless you want to debug early 638c2ecf20Sopenharmony_ci crashes or need a very simple printk logging facility. 648c2ecf20Sopenharmony_ci 658c2ecf20Sopenharmony_ciconfig COPY_MC_TEST 668c2ecf20Sopenharmony_ci def_bool n 678c2ecf20Sopenharmony_ci 688c2ecf20Sopenharmony_ciconfig EFI_PGT_DUMP 698c2ecf20Sopenharmony_ci bool "Dump the EFI pagetable" 708c2ecf20Sopenharmony_ci depends on EFI 718c2ecf20Sopenharmony_ci select PTDUMP_CORE 728c2ecf20Sopenharmony_ci help 738c2ecf20Sopenharmony_ci Enable this if you want to dump the EFI page table before 748c2ecf20Sopenharmony_ci enabling virtual mode. This can be used to debug miscellaneous 758c2ecf20Sopenharmony_ci issues with the mapping of the EFI runtime regions into that 768c2ecf20Sopenharmony_ci table. 778c2ecf20Sopenharmony_ci 788c2ecf20Sopenharmony_ciconfig DEBUG_TLBFLUSH 798c2ecf20Sopenharmony_ci bool "Set upper limit of TLB entries to flush one-by-one" 808c2ecf20Sopenharmony_ci depends on DEBUG_KERNEL 818c2ecf20Sopenharmony_ci help 828c2ecf20Sopenharmony_ci 838c2ecf20Sopenharmony_ci X86-only for now. 848c2ecf20Sopenharmony_ci 858c2ecf20Sopenharmony_ci This option allows the user to tune the amount of TLB entries the 868c2ecf20Sopenharmony_ci kernel flushes one-by-one instead of doing a full TLB flush. In 878c2ecf20Sopenharmony_ci certain situations, the former is cheaper. This is controlled by the 888c2ecf20Sopenharmony_ci tlb_flushall_shift knob under /sys/kernel/debug/x86. If you set it 898c2ecf20Sopenharmony_ci to -1, the code flushes the whole TLB unconditionally. Otherwise, 908c2ecf20Sopenharmony_ci for positive values of it, the kernel will use single TLB entry 918c2ecf20Sopenharmony_ci invalidating instructions according to the following formula: 928c2ecf20Sopenharmony_ci 938c2ecf20Sopenharmony_ci flush_entries <= active_tlb_entries / 2^tlb_flushall_shift 948c2ecf20Sopenharmony_ci 958c2ecf20Sopenharmony_ci If in doubt, say "N". 968c2ecf20Sopenharmony_ci 978c2ecf20Sopenharmony_ciconfig IOMMU_DEBUG 988c2ecf20Sopenharmony_ci bool "Enable IOMMU debugging" 998c2ecf20Sopenharmony_ci depends on GART_IOMMU && DEBUG_KERNEL 1008c2ecf20Sopenharmony_ci depends on X86_64 1018c2ecf20Sopenharmony_ci help 1028c2ecf20Sopenharmony_ci Force the IOMMU to on even when you have less than 4GB of 1038c2ecf20Sopenharmony_ci memory and add debugging code. On overflow always panic. And 1048c2ecf20Sopenharmony_ci allow to enable IOMMU leak tracing. Can be disabled at boot 1058c2ecf20Sopenharmony_ci time with iommu=noforce. This will also enable scatter gather 1068c2ecf20Sopenharmony_ci list merging. Currently not recommended for production 1078c2ecf20Sopenharmony_ci code. When you use it make sure you have a big enough 1088c2ecf20Sopenharmony_ci IOMMU/AGP aperture. Most of the options enabled by this can 1098c2ecf20Sopenharmony_ci be set more finegrained using the iommu= command line 1108c2ecf20Sopenharmony_ci options. See Documentation/x86/x86_64/boot-options.rst for more 1118c2ecf20Sopenharmony_ci details. 1128c2ecf20Sopenharmony_ci 1138c2ecf20Sopenharmony_ciconfig IOMMU_LEAK 1148c2ecf20Sopenharmony_ci bool "IOMMU leak tracing" 1158c2ecf20Sopenharmony_ci depends on IOMMU_DEBUG && DMA_API_DEBUG 1168c2ecf20Sopenharmony_ci help 1178c2ecf20Sopenharmony_ci Add a simple leak tracer to the IOMMU code. This is useful when you 1188c2ecf20Sopenharmony_ci are debugging a buggy device driver that leaks IOMMU mappings. 1198c2ecf20Sopenharmony_ci 1208c2ecf20Sopenharmony_ciconfig HAVE_MMIOTRACE_SUPPORT 1218c2ecf20Sopenharmony_ci def_bool y 1228c2ecf20Sopenharmony_ci 1238c2ecf20Sopenharmony_ciconfig X86_DECODER_SELFTEST 1248c2ecf20Sopenharmony_ci bool "x86 instruction decoder selftest" 1258c2ecf20Sopenharmony_ci depends on DEBUG_KERNEL && INSTRUCTION_DECODER 1268c2ecf20Sopenharmony_ci depends on !COMPILE_TEST 1278c2ecf20Sopenharmony_ci help 1288c2ecf20Sopenharmony_ci Perform x86 instruction decoder selftests at build time. 1298c2ecf20Sopenharmony_ci This option is useful for checking the sanity of x86 instruction 1308c2ecf20Sopenharmony_ci decoder code. 1318c2ecf20Sopenharmony_ci If unsure, say "N". 1328c2ecf20Sopenharmony_ci 1338c2ecf20Sopenharmony_cichoice 1348c2ecf20Sopenharmony_ci prompt "IO delay type" 1358c2ecf20Sopenharmony_ci default IO_DELAY_0X80 1368c2ecf20Sopenharmony_ci 1378c2ecf20Sopenharmony_ciconfig IO_DELAY_0X80 1388c2ecf20Sopenharmony_ci bool "port 0x80 based port-IO delay [recommended]" 1398c2ecf20Sopenharmony_ci help 1408c2ecf20Sopenharmony_ci This is the traditional Linux IO delay used for in/out_p. 1418c2ecf20Sopenharmony_ci It is the most tested hence safest selection here. 1428c2ecf20Sopenharmony_ci 1438c2ecf20Sopenharmony_ciconfig IO_DELAY_0XED 1448c2ecf20Sopenharmony_ci bool "port 0xed based port-IO delay" 1458c2ecf20Sopenharmony_ci help 1468c2ecf20Sopenharmony_ci Use port 0xed as the IO delay. This frees up port 0x80 which is 1478c2ecf20Sopenharmony_ci often used as a hardware-debug port. 1488c2ecf20Sopenharmony_ci 1498c2ecf20Sopenharmony_ciconfig IO_DELAY_UDELAY 1508c2ecf20Sopenharmony_ci bool "udelay based port-IO delay" 1518c2ecf20Sopenharmony_ci help 1528c2ecf20Sopenharmony_ci Use udelay(2) as the IO delay method. This provides the delay 1538c2ecf20Sopenharmony_ci while not having any side-effect on the IO port space. 1548c2ecf20Sopenharmony_ci 1558c2ecf20Sopenharmony_ciconfig IO_DELAY_NONE 1568c2ecf20Sopenharmony_ci bool "no port-IO delay" 1578c2ecf20Sopenharmony_ci help 1588c2ecf20Sopenharmony_ci No port-IO delay. Will break on old boxes that require port-IO 1598c2ecf20Sopenharmony_ci delay for certain operations. Should work on most new machines. 1608c2ecf20Sopenharmony_ci 1618c2ecf20Sopenharmony_ciendchoice 1628c2ecf20Sopenharmony_ci 1638c2ecf20Sopenharmony_ciconfig DEBUG_BOOT_PARAMS 1648c2ecf20Sopenharmony_ci bool "Debug boot parameters" 1658c2ecf20Sopenharmony_ci depends on DEBUG_KERNEL 1668c2ecf20Sopenharmony_ci depends on DEBUG_FS 1678c2ecf20Sopenharmony_ci help 1688c2ecf20Sopenharmony_ci This option will cause struct boot_params to be exported via debugfs. 1698c2ecf20Sopenharmony_ci 1708c2ecf20Sopenharmony_ciconfig CPA_DEBUG 1718c2ecf20Sopenharmony_ci bool "CPA self-test code" 1728c2ecf20Sopenharmony_ci depends on DEBUG_KERNEL 1738c2ecf20Sopenharmony_ci help 1748c2ecf20Sopenharmony_ci Do change_page_attr() self-tests every 30 seconds. 1758c2ecf20Sopenharmony_ci 1768c2ecf20Sopenharmony_ciconfig DEBUG_ENTRY 1778c2ecf20Sopenharmony_ci bool "Debug low-level entry code" 1788c2ecf20Sopenharmony_ci depends on DEBUG_KERNEL 1798c2ecf20Sopenharmony_ci help 1808c2ecf20Sopenharmony_ci This option enables sanity checks in x86's low-level entry code. 1818c2ecf20Sopenharmony_ci Some of these sanity checks may slow down kernel entries and 1828c2ecf20Sopenharmony_ci exits or otherwise impact performance. 1838c2ecf20Sopenharmony_ci 1848c2ecf20Sopenharmony_ci If unsure, say N. 1858c2ecf20Sopenharmony_ci 1868c2ecf20Sopenharmony_ciconfig DEBUG_NMI_SELFTEST 1878c2ecf20Sopenharmony_ci bool "NMI Selftest" 1888c2ecf20Sopenharmony_ci depends on DEBUG_KERNEL && X86_LOCAL_APIC 1898c2ecf20Sopenharmony_ci help 1908c2ecf20Sopenharmony_ci Enabling this option turns on a quick NMI selftest to verify 1918c2ecf20Sopenharmony_ci that the NMI behaves correctly. 1928c2ecf20Sopenharmony_ci 1938c2ecf20Sopenharmony_ci This might help diagnose strange hangs that rely on NMI to 1948c2ecf20Sopenharmony_ci function properly. 1958c2ecf20Sopenharmony_ci 1968c2ecf20Sopenharmony_ci If unsure, say N. 1978c2ecf20Sopenharmony_ci 1988c2ecf20Sopenharmony_ciconfig DEBUG_IMR_SELFTEST 1998c2ecf20Sopenharmony_ci bool "Isolated Memory Region self test" 2008c2ecf20Sopenharmony_ci depends on INTEL_IMR 2018c2ecf20Sopenharmony_ci help 2028c2ecf20Sopenharmony_ci This option enables automated sanity testing of the IMR code. 2038c2ecf20Sopenharmony_ci Some simple tests are run to verify IMR bounds checking, alignment 2048c2ecf20Sopenharmony_ci and overlapping. This option is really only useful if you are 2058c2ecf20Sopenharmony_ci debugging an IMR memory map or are modifying the IMR code and want to 2068c2ecf20Sopenharmony_ci test your changes. 2078c2ecf20Sopenharmony_ci 2088c2ecf20Sopenharmony_ci If unsure say N here. 2098c2ecf20Sopenharmony_ci 2108c2ecf20Sopenharmony_ciconfig X86_DEBUG_FPU 2118c2ecf20Sopenharmony_ci bool "Debug the x86 FPU code" 2128c2ecf20Sopenharmony_ci depends on DEBUG_KERNEL 2138c2ecf20Sopenharmony_ci default y 2148c2ecf20Sopenharmony_ci help 2158c2ecf20Sopenharmony_ci If this option is enabled then there will be extra sanity 2168c2ecf20Sopenharmony_ci checks and (boot time) debug printouts added to the kernel. 2178c2ecf20Sopenharmony_ci This debugging adds some small amount of runtime overhead 2188c2ecf20Sopenharmony_ci to the kernel. 2198c2ecf20Sopenharmony_ci 2208c2ecf20Sopenharmony_ci If unsure, say N. 2218c2ecf20Sopenharmony_ci 2228c2ecf20Sopenharmony_ciconfig PUNIT_ATOM_DEBUG 2238c2ecf20Sopenharmony_ci tristate "ATOM Punit debug driver" 2248c2ecf20Sopenharmony_ci depends on PCI 2258c2ecf20Sopenharmony_ci select DEBUG_FS 2268c2ecf20Sopenharmony_ci select IOSF_MBI 2278c2ecf20Sopenharmony_ci help 2288c2ecf20Sopenharmony_ci This is a debug driver, which gets the power states 2298c2ecf20Sopenharmony_ci of all Punit North Complex devices. The power states of 2308c2ecf20Sopenharmony_ci each device is exposed as part of the debugfs interface. 2318c2ecf20Sopenharmony_ci The current power state can be read from 2328c2ecf20Sopenharmony_ci /sys/kernel/debug/punit_atom/dev_power_state 2338c2ecf20Sopenharmony_ci 2348c2ecf20Sopenharmony_cichoice 2358c2ecf20Sopenharmony_ci prompt "Choose kernel unwinder" 2368c2ecf20Sopenharmony_ci default UNWINDER_ORC if X86_64 2378c2ecf20Sopenharmony_ci default UNWINDER_FRAME_POINTER if X86_32 2388c2ecf20Sopenharmony_ci help 2398c2ecf20Sopenharmony_ci This determines which method will be used for unwinding kernel stack 2408c2ecf20Sopenharmony_ci traces for panics, oopses, bugs, warnings, perf, /proc/<pid>/stack, 2418c2ecf20Sopenharmony_ci livepatch, lockdep, and more. 2428c2ecf20Sopenharmony_ci 2438c2ecf20Sopenharmony_ciconfig UNWINDER_ORC 2448c2ecf20Sopenharmony_ci bool "ORC unwinder" 2458c2ecf20Sopenharmony_ci depends on X86_64 2468c2ecf20Sopenharmony_ci select STACK_VALIDATION 2478c2ecf20Sopenharmony_ci help 2488c2ecf20Sopenharmony_ci This option enables the ORC (Oops Rewind Capability) unwinder for 2498c2ecf20Sopenharmony_ci unwinding kernel stack traces. It uses a custom data format which is 2508c2ecf20Sopenharmony_ci a simplified version of the DWARF Call Frame Information standard. 2518c2ecf20Sopenharmony_ci 2528c2ecf20Sopenharmony_ci This unwinder is more accurate across interrupt entry frames than the 2538c2ecf20Sopenharmony_ci frame pointer unwinder. It also enables a 5-10% performance 2548c2ecf20Sopenharmony_ci improvement across the entire kernel compared to frame pointers. 2558c2ecf20Sopenharmony_ci 2568c2ecf20Sopenharmony_ci Enabling this option will increase the kernel's runtime memory usage 2578c2ecf20Sopenharmony_ci by roughly 2-4MB, depending on your kernel config. 2588c2ecf20Sopenharmony_ci 2598c2ecf20Sopenharmony_ciconfig UNWINDER_FRAME_POINTER 2608c2ecf20Sopenharmony_ci bool "Frame pointer unwinder" 2618c2ecf20Sopenharmony_ci select FRAME_POINTER 2628c2ecf20Sopenharmony_ci help 2638c2ecf20Sopenharmony_ci This option enables the frame pointer unwinder for unwinding kernel 2648c2ecf20Sopenharmony_ci stack traces. 2658c2ecf20Sopenharmony_ci 2668c2ecf20Sopenharmony_ci The unwinder itself is fast and it uses less RAM than the ORC 2678c2ecf20Sopenharmony_ci unwinder, but the kernel text size will grow by ~3% and the kernel's 2688c2ecf20Sopenharmony_ci overall performance will degrade by roughly 5-10%. 2698c2ecf20Sopenharmony_ci 2708c2ecf20Sopenharmony_ciconfig UNWINDER_GUESS 2718c2ecf20Sopenharmony_ci bool "Guess unwinder" 2728c2ecf20Sopenharmony_ci depends on EXPERT 2738c2ecf20Sopenharmony_ci depends on !STACKDEPOT 2748c2ecf20Sopenharmony_ci help 2758c2ecf20Sopenharmony_ci This option enables the "guess" unwinder for unwinding kernel stack 2768c2ecf20Sopenharmony_ci traces. It scans the stack and reports every kernel text address it 2778c2ecf20Sopenharmony_ci finds. Some of the addresses it reports may be incorrect. 2788c2ecf20Sopenharmony_ci 2798c2ecf20Sopenharmony_ci While this option often produces false positives, it can still be 2808c2ecf20Sopenharmony_ci useful in many cases. Unlike the other unwinders, it has no runtime 2818c2ecf20Sopenharmony_ci overhead. 2828c2ecf20Sopenharmony_ci 2838c2ecf20Sopenharmony_ciendchoice 2848c2ecf20Sopenharmony_ci 2858c2ecf20Sopenharmony_ciconfig FRAME_POINTER 2868c2ecf20Sopenharmony_ci depends on !UNWINDER_ORC && !UNWINDER_GUESS 2878c2ecf20Sopenharmony_ci bool 288