Lines Matching +full:can +full:- +full:clock +full:- +full:select

1 # SPDX-License-Identifier: GPL-2.0
2 # Select 32 or 64 bit
4 bool "64-bit kernel" if "$(ARCH)" = "x86"
7 Say yes to build a 64-bit kernel - formerly known as x86_64
8 Say no to build a 32-bit kernel - formerly known as i386
13 # Options that are inherently 32-bit kernel only:
14 select ARCH_WANT_IPC_PARSE_VERSION
15 select CLKSRC_I8253
16 select CLONE_BACKWARDS
17 select HAVE_DEBUG_STACKOVERFLOW
18 select KMAP_LOCAL
19 select MODULES_USE_ELF_REL
20 select OLD_SIGACTION
21 select ARCH_SPLIT_ARG64
26 # Options that are inherently 64-bit kernel only:
27 select ARCH_HAS_GIGANTIC_PAGE
28 select ARCH_SUPPORTS_MSEAL_SYSTEM_MAPPINGS
29 select ARCH_SUPPORTS_INT128 if CC_HAS_INT128
30 select ARCH_SUPPORTS_PER_VMA_LOCK
31 select ARCH_SUPPORTS_HUGE_PFNMAP if TRANSPARENT_HUGEPAGE
32 select HAVE_ARCH_SOFT_DIRTY
33 select MODULES_USE_ELF_RELA
34 select NEED_DMA_MAP_STATE
35 select SWIOTLB
36 select ARCH_HAS_ELFCORE_COMPAT
37 select ZONE_DMA32
38 select EXECMEM if DYNAMIC_FTRACE
39 select ACPI_MRRM if ACPI
45 select DYNAMIC_FTRACE
56 # ported to 32-bit as well. )
63 select ACPI_LEGACY_TABLES_LOOKUP if ACPI
64 select ACPI_SYSTEM_POWER_STATES_SUPPORT if ACPI
65 select ACPI_HOTPLUG_CPU if ACPI_PROCESSOR && HOTPLUG_CPU
66 select ARCH_32BIT_OFF_T if X86_32
67 select ARCH_CLOCKSOURCE_INIT
68 select ARCH_CONFIGURES_CPU_MITIGATIONS
69 select ARCH_CORRECT_STACKTRACE_ON_KRETPROBE
70 select ARCH_ENABLE_HUGEPAGE_MIGRATION if X86_64 && HUGETLB_PAGE && MIGRATION
71 select ARCH_ENABLE_MEMORY_HOTPLUG if X86_64
72 select ARCH_ENABLE_MEMORY_HOTREMOVE if MEMORY_HOTPLUG
73 select ARCH_ENABLE_SPLIT_PMD_PTLOCK if (PGTABLE_LEVELS > 2) && (X86_64 || X86_PAE)
74 select ARCH_ENABLE_THP_MIGRATION if X86_64 && TRANSPARENT_HUGEPAGE
75 select ARCH_HAS_ACPI_TABLE_UPGRADE if ACPI
76 select ARCH_HAS_CPU_ATTACK_VECTORS if CPU_MITIGATIONS
77 select ARCH_HAS_CACHE_LINE_SIZE
78 select ARCH_HAS_CPU_CACHE_INVALIDATE_MEMREGION
79 select ARCH_HAS_CPU_FINALIZE_INIT
80 select ARCH_HAS_CPU_PASID if IOMMU_SVA
81 select ARCH_HAS_CURRENT_STACK_POINTER
82 select ARCH_HAS_DEBUG_VIRTUAL
83 select ARCH_HAS_DEBUG_VM_PGTABLE if !X86_PAE
84 select ARCH_HAS_DEVMEM_IS_ALLOWED
85 select ARCH_HAS_DMA_OPS if GART_IOMMU || XEN
86 select ARCH_HAS_EARLY_DEBUG if KGDB
87 select ARCH_HAS_ELF_RANDOMIZE
88 select ARCH_HAS_EXECMEM_ROX if X86_64 && STRICT_MODULE_RWX
89 select ARCH_HAS_FAST_MULTIPLIER
90 select ARCH_HAS_FORTIFY_SOURCE
91 select ARCH_HAS_GCOV_PROFILE_ALL
92 select ARCH_HAS_KCOV if X86_64
93 select ARCH_HAS_KERNEL_FPU_SUPPORT
94 select ARCH_HAS_MEM_ENCRYPT
95 select ARCH_HAS_MEMBARRIER_SYNC_CORE
96 select ARCH_HAS_NMI_SAFE_THIS_CPU_OPS
97 select ARCH_HAS_NON_OVERLAPPING_ADDRESS_SPACE
98 select ARCH_HAS_PMEM_API if X86_64
99 select ARCH_HAS_PREEMPT_LAZY
100 select ARCH_HAS_PTDUMP
101 select ARCH_HAS_PTE_SPECIAL
102 select ARCH_HAS_HW_PTE_YOUNG
103 select ARCH_HAS_NONLEAF_PMD_YOUNG if PGTABLE_LEVELS > 2
104 select ARCH_HAS_UACCESS_FLUSHCACHE if X86_64
105 select ARCH_HAS_COPY_MC if X86_64
106 select ARCH_HAS_SET_MEMORY
107 select ARCH_HAS_SET_DIRECT_MAP
108 select ARCH_HAS_STRICT_KERNEL_RWX
109 select ARCH_HAS_STRICT_MODULE_RWX
110 select ARCH_HAS_SYNC_CORE_BEFORE_USERMODE
111 select ARCH_HAS_SYSCALL_WRAPPER
112 select ARCH_HAS_UBSAN
113 select ARCH_HAS_DEBUG_WX
114 select ARCH_HAS_ZONE_DMA_SET if EXPERT
115 select ARCH_HAVE_NMI_SAFE_CMPXCHG
116 select ARCH_HAVE_EXTRA_ELF_NOTES
117 select ARCH_MHP_MEMMAP_ON_MEMORY_ENABLE
118 select ARCH_MIGHT_HAVE_ACPI_PDC if ACPI
119 select ARCH_MIGHT_HAVE_PC_PARPORT
120 select ARCH_MIGHT_HAVE_PC_SERIO
121 select ARCH_STACKWALK
122 select ARCH_SUPPORTS_ACPI
123 select ARCH_SUPPORTS_ATOMIC_RMW
124 select ARCH_SUPPORTS_DEBUG_PAGEALLOC
125 select ARCH_SUPPORTS_HUGETLBFS
126 select ARCH_SUPPORTS_PAGE_TABLE_CHECK if X86_64
127 select ARCH_SUPPORTS_NUMA_BALANCING if X86_64
128 select ARCH_SUPPORTS_KMAP_LOCAL_FORCE_MAP if NR_CPUS <= 4096
129 select ARCH_SUPPORTS_CFI if X86_64
130 select ARCH_USES_CFI_TRAPS if X86_64 && CFI
131 select ARCH_SUPPORTS_LTO_CLANG
132 select ARCH_SUPPORTS_LTO_CLANG_THIN
133 select ARCH_SUPPORTS_RT
134 select ARCH_SUPPORTS_AUTOFDO_CLANG
135 select ARCH_SUPPORTS_PROPELLER_CLANG if X86_64
136 select ARCH_USE_BUILTIN_BSWAP
137 select ARCH_USE_CMPXCHG_LOCKREF if X86_CX8
138 select ARCH_USE_MEMTEST
139 select ARCH_USE_QUEUED_RWLOCKS
140 select ARCH_USE_QUEUED_SPINLOCKS
141 select ARCH_USE_SYM_ANNOTATIONS
142 select ARCH_WANT_BATCHED_UNMAP_TLB_FLUSH
143 select ARCH_WANT_DEFAULT_BPF_JIT if X86_64
144 select ARCH_WANTS_DYNAMIC_TASK_STRUCT
145 select ARCH_WANTS_NO_INSTR
146 select ARCH_WANT_GENERAL_HUGETLB
147 select ARCH_WANT_HUGE_PMD_SHARE if X86_64
148 select ARCH_WANT_LD_ORPHAN_WARN
149 select ARCH_WANT_OPTIMIZE_DAX_VMEMMAP if X86_64
150 select ARCH_WANT_OPTIMIZE_HUGETLB_VMEMMAP if X86_64
151 select ARCH_WANT_HUGETLB_VMEMMAP_PREINIT if X86_64
152 select ARCH_WANTS_THP_SWAP if X86_64
153 select ARCH_HAS_PARANOID_L1D_FLUSH
154 select ARCH_WANT_IRQS_OFF_ACTIVATE_MM
155 select BUILDTIME_TABLE_SORT
156 select CLKEVT_I8253
157 select CLOCKSOURCE_WATCHDOG
158 # Word-size accesses may read uninitialized data past the trailing \0
160 select DCACHE_WORD_ACCESS if !KMSAN
161 select DYNAMIC_SIGFRAME
162 select EDAC_ATOMIC_SCRUB
163 select EDAC_SUPPORT
164 select GENERIC_CLOCKEVENTS_BROADCAST if X86_64 || (X86_32 && X86_LOCAL_APIC)
165 select GENERIC_CLOCKEVENTS_BROADCAST_IDLE if GENERIC_CLOCKEVENTS_BROADCAST
166 select GENERIC_CLOCKEVENTS_MIN_ADJUST
167 select GENERIC_CMOS_UPDATE
168 select GENERIC_CPU_AUTOPROBE
169 select GENERIC_CPU_DEVICES
170 select GENERIC_CPU_VULNERABILITIES
171 select GENERIC_EARLY_IOREMAP
172 select GENERIC_ENTRY
173 select GENERIC_IOMAP
174 select GENERIC_IRQ_EFFECTIVE_AFF_MASK if SMP
175 select GENERIC_IRQ_MATRIX_ALLOCATOR if X86_LOCAL_APIC
176 select GENERIC_IRQ_MIGRATION if SMP
177 select GENERIC_IRQ_PROBE
178 select GENERIC_IRQ_RESERVATION_MODE
179 select GENERIC_IRQ_SHOW
180 select GENERIC_PENDING_IRQ if SMP
181 select GENERIC_SMP_IDLE_THREAD
182 select GENERIC_TIME_VSYSCALL
183 select GENERIC_GETTIMEOFDAY
184 select GENERIC_VDSO_OVERFLOW_PROTECT
185 select GUP_GET_PXX_LOW_HIGH if X86_PAE
186 select HARDIRQS_SW_RESEND
187 select HARDLOCKUP_CHECK_TIMESTAMP if X86_64
188 select HAS_IOPORT
189 select HAVE_ACPI_APEI if ACPI
190 select HAVE_ACPI_APEI_NMI if ACPI
191 select HAVE_ALIGNED_STRUCT_PAGE
192 select HAVE_ARCH_AUDITSYSCALL
193 select HAVE_ARCH_HUGE_VMAP if X86_64 || X86_PAE
194 select HAVE_ARCH_HUGE_VMALLOC if X86_64
195 select HAVE_ARCH_JUMP_LABEL
196 select HAVE_ARCH_JUMP_LABEL_RELATIVE
197 select HAVE_ARCH_KASAN if X86_64
198 select HAVE_ARCH_KASAN_VMALLOC if X86_64
199 select HAVE_ARCH_KFENCE
200 select HAVE_ARCH_KMSAN if X86_64
201 select HAVE_ARCH_KGDB
202 select HAVE_ARCH_KSTACK_ERASE
203 select HAVE_ARCH_MMAP_RND_BITS if MMU
204 select HAVE_ARCH_MMAP_RND_COMPAT_BITS if MMU && COMPAT
205 select HAVE_ARCH_COMPAT_MMAP_BASES if MMU && COMPAT
206 select HAVE_ARCH_PREL32_RELOCATIONS
207 select HAVE_ARCH_SECCOMP_FILTER
208 select HAVE_ARCH_THREAD_STRUCT_WHITELIST
209 select HAVE_ARCH_TRACEHOOK
210 select HAVE_ARCH_TRANSPARENT_HUGEPAGE
211 select HAVE_ARCH_TRANSPARENT_HUGEPAGE_PUD if X86_64
212 select HAVE_ARCH_USERFAULTFD_WP if X86_64 && USERFAULTFD
213 select HAVE_ARCH_USERFAULTFD_MINOR if X86_64 && USERFAULTFD
214 select HAVE_ARCH_VMAP_STACK if X86_64
215 select HAVE_ARCH_RANDOMIZE_KSTACK_OFFSET
216 select HAVE_ARCH_WITHIN_STACK_FRAMES
217 select HAVE_ASM_MODVERSIONS
218 select HAVE_CMPXCHG_DOUBLE
219 select HAVE_CMPXCHG_LOCAL
220 select HAVE_CONTEXT_TRACKING_USER if X86_64
221 select HAVE_CONTEXT_TRACKING_USER_OFFSTACK if HAVE_CONTEXT_TRACKING_USER
222 select HAVE_C_RECORDMCOUNT
223 select HAVE_OBJTOOL_MCOUNT if HAVE_OBJTOOL
224 select HAVE_OBJTOOL_NOP_MCOUNT if HAVE_OBJTOOL_MCOUNT
225 select HAVE_BUILDTIME_MCOUNT_SORT
226 select HAVE_DEBUG_KMEMLEAK
227 select HAVE_DMA_CONTIGUOUS
228 select HAVE_DYNAMIC_FTRACE
229 select HAVE_DYNAMIC_FTRACE_WITH_REGS
230 select HAVE_DYNAMIC_FTRACE_WITH_ARGS if X86_64
231 select HAVE_FTRACE_REGS_HAVING_PT_REGS if X86_64
232 select HAVE_DYNAMIC_FTRACE_WITH_DIRECT_CALLS
233 select HAVE_DYNAMIC_FTRACE_WITH_JMP if X86_64
234 select HAVE_SAMPLE_FTRACE_DIRECT if X86_64
235 select HAVE_SAMPLE_FTRACE_DIRECT_MULTI if X86_64
236 select HAVE_EBPF_JIT
237 select HAVE_EFFICIENT_UNALIGNED_ACCESS
238 select HAVE_EISA if X86_32
239 select HAVE_EXIT_THREAD
240 select HAVE_GENERIC_TIF_BITS
241 select HAVE_GUP_FAST
242 select HAVE_FENTRY if X86_64 || DYNAMIC_FTRACE
243 select HAVE_FTRACE_GRAPH_FUNC if HAVE_FUNCTION_GRAPH_TRACER
244 select HAVE_FUNCTION_GRAPH_FREGS if HAVE_FUNCTION_GRAPH_TRACER
245 select HAVE_FUNCTION_GRAPH_TRACER if X86_32 || (X86_64 && DYNAMIC_FTRACE)
246 select HAVE_FUNCTION_TRACER
247 select HAVE_GCC_PLUGINS
248 select HAVE_HW_BREAKPOINT
249 select HAVE_IOREMAP_PROT
250 select HAVE_IRQ_EXIT_ON_IRQ_STACK if X86_64
251 select HAVE_IRQ_TIME_ACCOUNTING
252 select HAVE_JUMP_LABEL_HACK if HAVE_OBJTOOL
253 select HAVE_KERNEL_BZIP2
254 select HAVE_KERNEL_GZIP
255 select HAVE_KERNEL_LZ4
256 select HAVE_KERNEL_LZMA
257 select HAVE_KERNEL_LZO
258 select HAVE_KERNEL_XZ
259 select HAVE_KERNEL_ZSTD
260 select HAVE_KPROBES
261 select HAVE_KPROBES_ON_FTRACE
262 select HAVE_FUNCTION_ERROR_INJECTION
263 select HAVE_KRETPROBES
264 select HAVE_RETHOOK
265 select HAVE_KLP_BUILD if X86_64
266 select HAVE_LIVEPATCH if X86_64
267 select HAVE_MIXED_BREAKPOINTS_REGS
268 select HAVE_MOD_ARCH_SPECIFIC
269 select HAVE_MOVE_PMD
270 select HAVE_MOVE_PUD
271 select HAVE_NOINSTR_HACK if HAVE_OBJTOOL
272 select HAVE_NMI
273 select HAVE_NOINSTR_VALIDATION if HAVE_OBJTOOL
274 select HAVE_OBJTOOL if X86_64
275 select HAVE_OPTPROBES
276 select HAVE_PAGE_SIZE_4KB
277 select HAVE_PCSPKR_PLATFORM
278 select HAVE_PERF_EVENTS
279 select HAVE_PERF_EVENTS_NMI
280 select HAVE_HARDLOCKUP_DETECTOR_PERF if PERF_EVENTS && HAVE_PERF_EVENTS_NMI
281 select HAVE_PCI
282 select HAVE_PERF_REGS
283 select HAVE_PERF_USER_STACK_DUMP
284 select ASYNC_KERNEL_PGTABLE_FREE if IOMMU_SVA
285 select MMU_GATHER_RCU_TABLE_FREE
286 select MMU_GATHER_MERGE_VMAS
287 select HAVE_POSIX_CPU_TIMERS_TASK_WORK
288 select HAVE_REGS_AND_STACK_ACCESS_API
289 select HAVE_RELIABLE_STACKTRACE if UNWINDER_ORC || STACK_VALIDATION
290 select HAVE_FUNCTION_ARG_ACCESS_API
291 select HAVE_SETUP_PER_CPU_AREA
292 select HAVE_SOFTIRQ_ON_OWN_STACK
293 select HAVE_STACKPROTECTOR
294 select HAVE_STACK_VALIDATION if HAVE_OBJTOOL
295 select HAVE_STATIC_CALL
296 select HAVE_STATIC_CALL_INLINE if HAVE_OBJTOOL
297 select HAVE_PREEMPT_DYNAMIC_CALL
298 select HAVE_RSEQ
299 select HAVE_RUST if X86_64
300 select HAVE_SYSCALL_TRACEPOINTS
301 select HAVE_UACCESS_VALIDATION if HAVE_OBJTOOL
302 select HAVE_UNSTABLE_SCHED_CLOCK
303 select HAVE_UNWIND_USER_FP if X86_64
304 select HAVE_USER_RETURN_NOTIFIER
305 select HAVE_GENERIC_VDSO
306 select VDSO_GETRANDOM if X86_64
307 select HOTPLUG_PARALLEL if SMP && X86_64
308 select HOTPLUG_SMT if SMP
309 select HOTPLUG_SPLIT_STARTUP if SMP && X86_32
310 select IRQ_FORCED_THREADING
311 select LOCK_MM_AND_FIND_VMA
312 select NEED_PER_CPU_EMBED_FIRST_CHUNK
313 select NEED_PER_CPU_PAGE_FIRST_CHUNK
314 select NEED_SG_DMA_LENGTH
315 select NUMA_MEMBLKS if NUMA
316 select PCI_DOMAINS if PCI
317 select PCI_LOCKLESS_CONFIG if PCI
318 select PERF_EVENTS
319 select RTC_LIB
320 select RTC_MC146818_LIB
321 select SPARSE_IRQ
322 select SYSCTL_EXCEPTION_TRACE
323 select THREAD_INFO_IN_TASK
324 select TRACE_IRQFLAGS_SUPPORT
325 select TRACE_IRQFLAGS_NMI_SUPPORT
326 select USER_STACKTRACE_SUPPORT
327 select HAVE_ARCH_KCSAN if X86_64
328 select PROC_PID_ARCH_STATUS if PROC_FS
329 select HAVE_ARCH_NODE_DEV_GROUP if X86_SGX
330 select FUNCTION_ALIGNMENT_16B if X86_64 || X86_ALIGNMENT_16
331 select FUNCTION_ALIGNMENT_4B
333 select HAVE_DYNAMIC_FTRACE_NO_PATCHABLE
334 select ARCH_SUPPORTS_PT_RECLAIM if X86_64
335 select ARCH_SUPPORTS_SCHED_SMT if SMP
336 select SCHED_SMT if SMP
337 select ARCH_SUPPORTS_SCHED_CLUSTER if SMP
338 select ARCH_SUPPORTS_SCHED_MC if SMP
346 default "elf32-i386" if X86_32
347 default "elf64-x86-64" if X86_64
386 select GENERIC_BUG_RELATIVE_POINTERS
437 bool "Symmetric multi-processing support"
443 If you say N here, the kernel will run on uni- and multiprocessor
455 Y to "Enhanced Real Time Clock Support", below. The "Advanced Power
458 See also <file:Documentation/arch/x86/i386/IO-APIC.rst>,
459 <file:Documentation/admin-guide/lockup-watchdogs.rst> and the SMP-HOWTO available at
475 in 2019, but it can be disabled by the BIOS. It is also frequently
477 it. Support in the CPU can be checked by executing
495 APIC accesses and support for managing guest owned APIC state for SEV-SNP
502 bool "Enable MSI and MSI-x delivery by posted interrupts"
506 posted interrupts to the host kernel. Interrupt throughput can
524 select ARCH_HAS_CPU_RESCTRL
525 select RESCTRL_FS
526 select RESCTRL_FS_PSEUDO_LOCK
534 (Intel(R) RDT). More information about RDT can be found in the
538 More information about AMD QoS can be found in the AMD64 Technology
553 bool "Support for extended (non-PC) x86 platforms"
560 If you enable this option then you'll be able to select support
561 for the following non-PC x86 platforms, depending on the value of
564 32-bit platforms (CONFIG_64BIT=n):
568 RDC R-321x SoC
570 64-bit platforms (CONFIG_64BIT=y):
578 generic distribution kernel, say Y here - otherwise say N.
591 Adds support for Numascale NumaChip large-SMP systems. Needed to
597 select HYPERVISOR_GUEST
598 select PARAVIRT
604 supposed to run on these EM64T-based machines. Only choose this option
627 select I2C
628 select DW_APB_TIMER
629 select INTEL_SCU_PCI
631 Select to build a kernel capable of supporting 64-bit Intel MID
640 If you are building for a PC class system or non-MID tablet
664 select X86_REBOOTFIXUPS
665 select OF
666 select OF_EARLY_FLATTREE
668 Select for the Intel CE media processor (CE4100) SOC.
681 select IOSF_MBI
682 select INTEL_IMR
683 select COMMON_CLK
685 Select to include support for Quark X1000 SoC.
690 bool "RDC R-321x SoC"
693 select M486
694 select X86_REBOOTFIXUPS
696 This option is needed for RDC R-321x system-on-chip, also known
697 as R-8610-(G).
703 select COMMON_CLK
704 select PINCTRL
705 select IOSF_MBI
707 Select to build support for Intel Low Power Subsystem such as
709 things like clock tree (common clock framework) and pincontrol
715 select COMMON_CLK
716 select PINCTRL
718 Select to interpret AMD specific ACPI device to platform device
720 I2C and UART depend on COMMON_CLK to set clock. GPIO driver is
734 - BayTrail
735 - Braswell
736 - Quark
744 Select this option to expose the IOSF sideband access registers (MCR,
757 # On 32-bit this adds too big of NODES_SHIFT and we run out of page flags:
758 # On 32-bit SPARSEMEM adds too big of SECTIONS_WIDTH:
760 select ARCH_SUPPORTS_MEMORY_FAILURE
777 prompt "Single-depth WCHAN output"
790 Say Y here to enable options for running Linux under various hyper-
803 This changes the kernel so it can modify itself when it is run
813 bool "paravirt-ops debugging"
824 spinlock implementation with something virtualization-friendly
840 select PARAVIRT_CLOCK
841 select ARCH_CPUIDLE_HALTPOLL
842 select X86_HV_CALLBACK_VECTOR
846 hypervisor. It includes a paravirtualized clock, so that instead
867 Select this option to enable fine granularity task steal time
870 that, there can be a small performance impact.
878 bool "Jailhouse non-root cell support"
880 select X86_PM_TIMER
882 This option allows to run Linux as guest in a Jailhouse non-root
883 cell. You can leave this option disabled if you only want to start
889 select X86_HV_CALLBACK_VECTOR
892 a flexible, lightweight reference open-source hypervisor, built with
893 real-time and safety-criticality in mind. It is built for embedded
894 IOT with small footprint and real-time features. More details can be
903 when doing so. More details about Bhyve can be found at https://bhyve.org
907 bool "Intel TDX (Trust Domain Extensions) - Guest Support"
912 select ARCH_HAS_CC_PLATFORM
913 select X86_MEM_ENCRYPT
914 select X86_MCE
915 select UNACCEPTED_MEMORY
918 the guest kernel can not boot or run under TDX.
932 Use the IA-PC HPET (High Precision Event Timer) to manage
938 as it is off-chip. The interface used is documented
941 You can safely choose Y here. However, HPET will only be
955 select DMI_SCAN_MACHINE_NON_EFI_FALLBACK
965 select IOMMU_HELPER
966 select SWIOTLB
972 The GART supports full DMA access for devices with 32-bit access
981 32-bit limited device.
988 If true, at least one selected framebuffer driver can take advantage
994 select CPUMASK_OFFSTACK
1003 # and which can be configured interactively in the
1006 # The ranges are different on 32-bit and 64-bit kernels, depending on
1061 select X86_INTEL_PSTATE if CPU_SUP_INTEL
1062 select X86_AMD_PSTATE if CPU_SUP_AMD && ACPI
1063 select CPU_FREQ
1074 overall system performance can be achieved.
1090 integrated interrupt controller in the CPU. If you have a single-CPU
1091 system which has a processor with a local APIC, you can say Y here to
1094 all. The local APIC supports CPU-generated self-interrupts (timer,
1099 bool "IO-APIC support on uniprocessors"
1102 An IO-APIC (I/O Advanced Programmable Interrupt Controller) is an
1103 SMP-capable replacement for PC-style interrupt controllers. Most
1106 If you have a single-CPU system with an IO-APIC, you can say Y here
1108 an IO-APIC, then the kernel will still run with no slowdown at all.
1113 select IRQ_DOMAIN_HIERARCHY
1136 entry in the chipset's IO-APIC is masked (as, e.g. the RT
1151 select GENERIC_ALLOCATOR
1210 mode, which is an 80286-era approximation of 16-bit real mode.
1218 a 16-bit DOS program where 16-bit performance matters, vm86
1222 Note that any app that works on a 64-bit kernel is unlikely to
1223 need this option, as 64-bit kernels don't, and can't, support
1224 V8086 mode. This option is also unrelated to 16-bit protected
1225 mode and is not needed to run most 16-bit programs under Wine.
1237 bool "Enable support for 16-bit segments" if EXPERT
1241 This option is required by programs like Wine to run 16-bit
1244 plus 16K runtime memory on x86-64,
1317 CS5530A and CS5536 chipsets and the RDC R-321x SoC.
1326 select CRYPTO_LIB_SHA256 if CPU_SUP_AMD
1343 minimal revision check. This minimal revision check can be enforced on
1359 This minimal revision check can also be controlled via the
1377 tristate "/dev/cpu/*/msr - Model-specific register support"
1380 Model-Specific Registers (MSRs). It is a character device with
1382 MSR accesses are directed to a specific CPU on multi-processor
1386 tristate "/dev/cpu/*/cpuid - CPU information support"
1397 Linux can use up to 4 Gigabytes of physical memory on x86 systems.
1398 However, the address space of 32-bit x86 processors is only 4
1400 physical memory, not all of it can be "permanently mapped" by the
1422 Select the desired split between kernel and user memory.
1431 will also likely make your kernel incompatible with binary-only
1466 select PHYS_ADDR_T_64BIT
1469 larger swapspace support for non-overcommit purposes. It
1491 select ARCH_HAS_FORCE_DMA_UNENCRYPTED
1492 select DYNAMIC_PHYSICAL_MASK
1499 select DMA_COHERENT_POOL
1500 select ARCH_USE_MEMREMAP_PROT
1501 select INSTRUCTION_DECODER
1502 select ARCH_HAS_CC_PLATFORM
1503 select X86_MEM_ENCRYPT
1504 select UNACCEPTED_MEMORY
1505 select CRYPTO_LIB_AESGCM
1516 select USE_PERCPU_NUMA_NODE_ID
1517 select OF_NUMA if OF
1519 Enable NUMA (Non-Uniform Memory Access) support.
1525 For 64-bit this is recommended if the system is Intel Core i7
1545 select ACPI_NUMA
1566 select SPARSEMEM_STATIC if X86_32
1567 select SPARSEMEM_VMEMMAP_ENABLE if X86_64
1581 See Documentation/admin-guide/mm/memory-hotplug.rst for more information.
1597 tristate "Support non-standard NVDIMMs and ADR protected memory"
1600 select X86_PMEM_LEGACY_DEVICE
1601 select NUMA_KEEP_MEMINFO if NUMA
1602 select LIBNVDIMM
1604 Treat memory marked using the non-standard e820 type of 12 as used
1605 by the Intel Sandy Bridge-EP reference BIOS as protected memory.
1607 they can be used for persistent storage.
1621 Documentation/admin-guide/kernel-parameters.rst to adjust this.
1629 BIOS-originated corruption always affects the same memory,
1630 you can use memmap= to prevent the kernel from using that
1646 Linux can emulate a math coprocessor (used for floating point
1649 a 487DX or 387, respectively. (The messages during boot time can
1655 be used nevertheless. (This behavior can be changed with the kernel
1663 emulation can be found in <file:arch/x86/math-emu/README>.
1675 a video (VGA) card on a PCI or AGP bus. Enabling write-combining
1677 before bursting over the PCI/AGP bus. This can increase performance
1683 control registers on other processors can be easily supported
1689 The AMD K6-2 (stepping 8 and above) and K6-3 processors have two
1691 write-combining. All of these processors are supported by this code
1696 can lead to all sorts of problems, so it's good to say Y here.
1698 You can safely say Y even if your machine doesn't have MTRRs, you'll
1708 Convert MTRR layout from continuous to discrete, so X drivers can
1711 Can be disabled with disable_mtrr_cleanup on the kernel command line.
1712 The largest mtrr entry size for a continuous block can be set with
1718 int "MTRR cleanup enable value (0-1)"
1726 int "MTRR cleanup spare reg num (0-7)"
1731 mtrr cleanup spare entries default, it can be changed via
1738 select ARCH_USES_PG_ARCH_2
1746 spontaneous reboots) or a non-working video driver.
1762 specific cases in protected and virtual-8086 modes. Emulated
1768 …def_bool ((CC_IS_GCC && $(cc-option, -fcf-protection=branch -mindirect-branch-register)) || CC_IS_…
1769 $(as-instr,endbr64)
1780 select OBJTOOL
1781 select X86_CET
1784 hardware support course-grain forward-edge Control Flow Integrity
1799 # Note: only available in 64-bit mode
1801 select ARCH_USES_HIGH_VMA_FLAGS
1802 select ARCH_HAS_PKEYS
1805 page-based protections, but without requiring modification of the
1808 For details, see Documentation/core-api/protection-keys.rst
1823 can lead to a noticeable performance boost.
1825 On the other hand it has been shown that TSX can be exploited
1836 and =auto. See Documentation/admin-guide/kernel-parameters.txt for more
1846 TSX is disabled if possible - equals to tsx=off command line parameter.
1851 TSX is always enabled on TSX capable HW - equals the tsx=on command
1858 side channel attacks- equals the tsx=auto command line parameter.
1864 select CRYPTO_LIB_SHA256
1865 select MMU_NOTIFIER
1866 select NUMA_KEEP_MEMINFO if NUMA
1867 select XARRAY_MULTI
1870 that can be used by applications to set aside private regions of code
1871 and data, referred to as enclaves. An enclave's private memory can
1882 select ARCH_USES_HIGH_VMA_FLAGS
1883 select ARCH_HAS_USER_SHADOW_STACK
1884 select X86_CET
1903 select ARCH_KEEP_MEMBLOCK
1916 select UCS2_STRING
1917 select EFI_RUNTIME_WRAPPERS
1918 select ARCH_USE_MEMREMAP_PROT
1919 select EFI_RUNTIME_MAP if KEXEC_CORE
1928 resultant kernel should continue to boot on existing non-EFI
1934 select RELOCATABLE
1939 See Documentation/admin-guide/efi-stub.rst for more information.
1946 Select this in order to include support for the deprecated EFI
1959 bool "EFI mixed-mode support"
1962 Enabling this feature allows a 64-bit kernel to be booted
1963 on a 32-bit firmware, provided that your CPU supports 64-bit
1966 Note that it is not possible to boot a mixed-mode enabled
1967 kernel via the EFI boot stub - a bootloader that supports
1976 Export EFI runtime memory regions to /sys/firmware/efi/runtime-map.
1978 mappings after kexec, but can also be used for debugging purposes.
1980 See also Documentation/ABI/testing/sysfs-firmware-efi-runtime-map.
1993 select HAVE_IMA_KEXEC if IMA
2038 as now bzImage can be compiled as a completely relocatable image
2050 the reserved region. In other words, it can be set based on
2052 command line boot parameter passed to the panic-ed
2053 kernel. Please take a look at Documentation/admin-guide/kdump/kdump.rst
2057 one does not have to build two kernels. Same kernel can be used
2071 so it can be loaded someplace besides the default 1MB.
2095 On 64-bit, the kernel physical and virtual addresses are
2102 On 32-bit, the kernel physical and virtual addresses are
2122 select ARCH_VMLINUX_NEEDS_RELOCS
2134 If bootloader loads the kernel at a non-aligned address and
2138 If bootloader loads the kernel at a non-aligned address and
2146 On 32-bit this value must be a multiple of 0x2000. On 64-bit
2189 to 64-bit linear addresses, allowing software to use of the
2192 The capability can be used for efficient address sanitizers (ASAN)
2205 presented with a 32-bit vDSO that is not mapped at the address
2215 dl_main: Assertion `(void *) ph->p_vaddr == _rtld_local._dl_sysinfo_dso' failed!
2218 option from 1 to 0, which turns off the 32-bit vDSO entirely.
2232 it can be used to assist security vulnerability exploitation.
2234 This setting can be changed at boot time via the kernel command
2236 is deprecated and can only be enabled using the kernel command
2240 static binaries, you can say None without a performance penalty
2243 If unsure, select "Emulate execution only".
2253 certain uses of the vsyscall area as an ASLR-bypassing
2263 malicious userspace programs can be identified.
2268 bool "Built-in kernel command line"
2280 Systems with fully functional boot loaders (i.e. non-embedded)
2284 string "Built-in kernel command string"
2293 However, you can use the CONFIG_CMDLINE_OVERRIDE option to
2296 In most cases, the command line (whether built-in or provided
2301 bool "Built-in command line overrides boot loader arguments"
2305 command line, and use ONLY the built-in command line.
2314 Linux can allow user programs to install a per-process x86
2316 call. This is required to run 16-bit or segmented code such as
2321 context switches and increases the low-level kernel attack
2334 by default. It can also be controlled via the kernel command
2365 def_bool $(success,echo 'int __seg_fs fs; int __seg_gs gs;' | $(CC) -x c - -S -o /dev/null)
2369 # -fsanitize=kernel-address (KASAN) and -fsanitize=thread (KCSAN)
2384 def_bool $(cc-option,-mharden-sls=all)
2387 def_bool $(cc-option,-mfunction-return=thunk-extern)
2390 def_bool $(cc-option,-fpatchable-function-entry=16,16)
2393 def_bool $(cc-option,-fsanitize=kcfi -fsanitize-kcfi-arity)
2404 # Basically: FUNCTION_ALIGNMENT - 5*CFI
2405 # except Kconfig can't do arithmetic :/
2414 select FUNCTION_ALIGNMENT_16B
2419 select CALL_PADDING
2431 select CALL_PADDING
2443 Mitigations can be disabled or restricted to SMT systems at runtime
2466 select OBJTOOL if HAVE_OBJTOOL
2470 kernel-to-user data leaks by avoiding speculative indirect
2471 branches. Requires a compiler with -mindirect-branch=thunk-extern
2475 bool "Enable return-thunks"
2477 select OBJTOOL if HAVE_OBJTOOL
2480 Compile the kernel with the return-thunks compiler option to guard
2481 against kernel-to-user data leaks by avoiding return speculation.
2482 Requires a compiler with -mfunction-return=thunk-extern
2495 select HAVE_DYNAMIC_FTRACE_NO_PATCHABLE
2496 select CALL_THUNKS
2500 SKL Return-Stack-Buffer (RSB) underflow issue. The mitigation is off
2502 retbleed=stuff option. For non-affected systems the overhead of this
2503 option is marginal as the call depth tracking is using run-time
2512 select FUNCTION_ALIGNMENT_32B
2518 kernel command line with 'debug-callthunks'.
2528 spec_rstack_overflow={ibpb,ibpb-vmexit} mitigations.
2544 Enable the SRSO mitigation needed on AMD Zen1-4 machines.
2547 bool "Mitigate Straight-Line-Speculation"
2549 select OBJTOOL if HAVE_OBJTOOL
2552 Compile the kernel with straight-line-speculation options to guard
2575 See also <file:Documentation/admin-guide/hw-vuln/reg-file-data-sampling.rst>
2578 bool "Mitigate Spectre-BHB (Branch History Injection)"
2585 See <file:Documentation/admin-guide/hw-vuln/spectre.rst>
2595 See also <file:Documentation/admin-guide/hw-vuln/mds.rst>
2606 See also <file:Documentation/admin-guide/hw-vuln/tsx_async_abort.rst>
2614 Stale Data Vulnerabilities are a class of memory-mapped I/O (MMIO)
2615 vulnerabilities that can expose data. The vulnerabilities require the
2618 <file:Documentation/admin-guide/hw-vuln/processor_mmio_stale_data.rst>
2628 See <file:Documentation/admin-guide/hw-vuln/l1tf.rst
2639 unprivileged attacker can use these flaws to bypass conventional
2651 See also <file:Documentation/admin-guide/hw-vuln/spectre.rst>
2660 attacks, the attacker can steer speculative indirect branches in the
2663 See also <file:Documentation/admin-guide/hw-vuln/spectre.rst>
2673 register accesses. An unprivileged user can extract values returned
2677 <file:Documentation/admin-guide/hw-vuln/special-register-buffer-data-sampling.rst>
2692 select EXECMEM
2698 See <file:Documentation/admin-guide/hw-vuln/indirect-target-selection.rst>
2706 security vulnerability on AMD CPUs which can lead to forwarding of
2707 invalid info to subsequent instructions and thus can affect their
2746 battery status information, and user-space programs will receive
2749 If you select "Y" here, you can disable actual use of the APM
2756 and more information, read <file:Documentation/power/apm-acpi.rst>
2757 and the Battery Powered Linux mini-HOWTO, available from
2762 VESA-compliant "green" monitors.
2814 feature is turned off -- see "Do CPU IDLE calls", below). This
2828 On some machines, this can activate improved power savings, such as
2829 a slowed CPU clock rate, when the machine is idle. These idle calls
2838 Enable console blanking using the APM. Some laptops can use this to
2843 do with your VESA-compliant power-saving monitor. Further, this
2844 option doesn't work for all laptops -- it might not turn off your
2854 needs to. Unfortunately, some BIOSes do not -- especially those in
2875 On PCI systems, the BIOS can be used to detect the PCI devices and
2878 PCI-based systems don't have any BIOS at all. Linux can also try to
2881 With this option, you can specify how Linux should detect the
2899 bool "OLPC XO-1"
2911 # x86-64 doesn't support PCI BIOS access from long mode so always go direct.
2927 problems, the mechanism can be switched off with the 'pci=nommconf'
2960 lspci -nn | grep '1166:0009'
2974 architectures -- if your target machine is modern, it probably does
2979 # x86_64 have no ISA slots, but can have ISA-style DMA.
2981 bool "ISA-style DMA support" if (X86_64 && EXPERT)
2984 Enables ISA-style DMA support for devices requiring such controllers.
3003 PCI-IDs of several on-chip devices, so its a good dependency
3009 tristate "NatSemi SCx200 27MHz High-Resolution Timer Support"
3013 This driver provides a clocksource built upon the on-chip
3014 27MHz high-resolution timer. Its also a workaround for
3015 NSC Geode SC-1100's buggy TSC, which loses time when the
3022 select GPIOLIB
3023 select OF
3024 select OF_PROMTREE
3025 select IRQ_DOMAIN
3026 select OLPC_EC
3032 bool "OLPC XO-1 Power Management"
3035 Add support for poweroff and suspend of the OLPC XO-1 laptop.
3038 bool "OLPC XO-1 Real Time Clock"
3041 Add support for the XO-1 real time clock, which can be used as a
3045 bool "OLPC XO-1 SCI extras"
3048 select POWER_SUPPLY
3050 Add support for SCI-based features of the OLPC XO-1 laptop:
3051 - EC-driven system wakeups
3052 - Power button
3053 - Ebook switch
3054 - Lid switch
3055 - AC adapter status updates
3056 - Battery status updates
3059 bool "OLPC XO-1.5 SCI extras"
3061 select POWER_SUPPLY
3063 Add support for SCI-based features of the OLPC XO-1.5 laptop:
3064 - EC-driven system wakeups
3065 - AC adapter status updates
3066 - Battery status updates
3073 select GPIOLIB
3074 select GEODE_COMMON
3088 select GPIOLIB
3089 select GEODE_COMMON
3095 select GPIOLIB
3096 select GEODE_COMMON
3102 bool "Technologic Systems TS-5500 platform support"
3104 select CHECK_SIGNATURE
3105 select NEW_LEDS
3106 select LEDS_CLASS
3108 This option enables system support for the Technologic Systems TS-5500.
3127 select ARCH_WANT_OLD_COMPAT_IPC
3128 select BINFMT_ELF
3129 select COMPAT_OLD_SIGACTION
3131 Include code to run legacy 32-bit programs under a
3132 64-bit kernel. You should likely turn this on, unless you're
3133 100% sure that you don't have any 32-bit programs left.
3140 Make IA32 emulation disabled by default. This prevents loading 32-bit
3141 processes and access to 32-bit syscalls. If unsure, leave it to its
3145 bool "x32 ABI for 64-bit mode"
3147 # llvm-objcopy does not convert x86_64 .note.gnu.property or
3151 depends on $(success,$(OBJCOPY) --version | head -n1 | grep -qv llvm)
3153 Include code to run binaries for the x32 native 32-bit ABI
3154 for 64-bit processors. An x32 process gets access to the
3155 full 64-bit register file and wide data path while leaving
3161 select HAVE_UID16
3162 select OLD_SIGSUSPEND3