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 GENERIC_VDSO_32
18 select HAVE_DEBUG_STACKOVERFLOW
19 select KMAP_LOCAL
20 select MODULES_USE_ELF_REL
21 select OLD_SIGACTION
22 select ARCH_SPLIT_ARG64
27 # Options that are inherently 64-bit kernel only:
28 select ARCH_HAS_GIGANTIC_PAGE
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
44 select DYNAMIC_FTRACE
55 # ported to 32-bit as well. )
62 select ACPI_LEGACY_TABLES_LOOKUP if ACPI
63 select ACPI_SYSTEM_POWER_STATES_SUPPORT if ACPI
64 select ACPI_HOTPLUG_CPU if ACPI_PROCESSOR && HOTPLUG_CPU
65 select ARCH_32BIT_OFF_T if X86_32
66 select ARCH_CLOCKSOURCE_INIT
67 select ARCH_CONFIGURES_CPU_MITIGATIONS
68 select ARCH_CORRECT_STACKTRACE_ON_KRETPROBE
69 select ARCH_ENABLE_HUGEPAGE_MIGRATION if X86_64 && HUGETLB_PAGE && MIGRATION
70 select ARCH_ENABLE_MEMORY_HOTPLUG if X86_64
71 select ARCH_ENABLE_MEMORY_HOTREMOVE if MEMORY_HOTPLUG
72 select ARCH_ENABLE_SPLIT_PMD_PTLOCK if (PGTABLE_LEVELS > 2) && (X86_64 || X86_PAE)
73 select ARCH_ENABLE_THP_MIGRATION if X86_64 && TRANSPARENT_HUGEPAGE
74 select ARCH_HAS_ACPI_TABLE_UPGRADE if ACPI
75 select ARCH_HAS_CACHE_LINE_SIZE
76 select ARCH_HAS_CPU_CACHE_INVALIDATE_MEMREGION
77 select ARCH_HAS_CPU_FINALIZE_INIT
78 select ARCH_HAS_CPU_PASID if IOMMU_SVA
79 select ARCH_HAS_CURRENT_STACK_POINTER
80 select ARCH_HAS_DEBUG_VIRTUAL
81 select ARCH_HAS_DEBUG_VM_PGTABLE if !X86_PAE
82 select ARCH_HAS_DEVMEM_IS_ALLOWED
83 select ARCH_HAS_DMA_OPS if GART_IOMMU || XEN
84 select ARCH_HAS_EARLY_DEBUG if KGDB
85 select ARCH_HAS_ELF_RANDOMIZE
86 select ARCH_HAS_FAST_MULTIPLIER
87 select ARCH_HAS_FORTIFY_SOURCE
88 select ARCH_HAS_GCOV_PROFILE_ALL
89 select ARCH_HAS_KCOV if X86_64
90 select ARCH_HAS_KERNEL_FPU_SUPPORT
91 select ARCH_HAS_MEM_ENCRYPT
92 select ARCH_HAS_MEMBARRIER_SYNC_CORE
93 select ARCH_HAS_NMI_SAFE_THIS_CPU_OPS
94 select ARCH_HAS_NON_OVERLAPPING_ADDRESS_SPACE
95 select ARCH_HAS_PMEM_API if X86_64
96 select ARCH_HAS_PTE_DEVMAP if X86_64
97 select ARCH_HAS_PTE_SPECIAL
98 select ARCH_HAS_HW_PTE_YOUNG
99 select ARCH_HAS_NONLEAF_PMD_YOUNG if PGTABLE_LEVELS > 2
100 select ARCH_HAS_UACCESS_FLUSHCACHE if X86_64
101 select ARCH_HAS_COPY_MC if X86_64
102 select ARCH_HAS_SET_MEMORY
103 select ARCH_HAS_SET_DIRECT_MAP
104 select ARCH_HAS_STRICT_KERNEL_RWX
105 select ARCH_HAS_STRICT_MODULE_RWX
106 select ARCH_HAS_SYNC_CORE_BEFORE_USERMODE
107 select ARCH_HAS_SYSCALL_WRAPPER
108 select ARCH_HAS_UBSAN
109 select ARCH_HAS_DEBUG_WX
110 select ARCH_HAS_ZONE_DMA_SET if EXPERT
111 select ARCH_HAVE_NMI_SAFE_CMPXCHG
112 select ARCH_HAVE_EXTRA_ELF_NOTES
113 select ARCH_MHP_MEMMAP_ON_MEMORY_ENABLE
114 select ARCH_MIGHT_HAVE_ACPI_PDC if ACPI
115 select ARCH_MIGHT_HAVE_PC_PARPORT
116 select ARCH_MIGHT_HAVE_PC_SERIO
117 select ARCH_STACKWALK
118 select ARCH_SUPPORTS_ACPI
119 select ARCH_SUPPORTS_ATOMIC_RMW
120 select ARCH_SUPPORTS_DEBUG_PAGEALLOC
121 select ARCH_SUPPORTS_PAGE_TABLE_CHECK if X86_64
122 select ARCH_SUPPORTS_NUMA_BALANCING if X86_64
123 select ARCH_SUPPORTS_KMAP_LOCAL_FORCE_MAP if NR_CPUS <= 4096
124 select ARCH_SUPPORTS_CFI_CLANG if X86_64
125 select ARCH_USES_CFI_TRAPS if X86_64 && CFI_CLANG
126 select ARCH_SUPPORTS_LTO_CLANG
127 select ARCH_SUPPORTS_LTO_CLANG_THIN
128 select ARCH_SUPPORTS_RT
129 select ARCH_USE_BUILTIN_BSWAP
130 select ARCH_USE_CMPXCHG_LOCKREF if X86_CMPXCHG64
131 select ARCH_USE_MEMTEST
132 select ARCH_USE_QUEUED_RWLOCKS
133 select ARCH_USE_QUEUED_SPINLOCKS
134 select ARCH_USE_SYM_ANNOTATIONS
135 select ARCH_WANT_BATCHED_UNMAP_TLB_FLUSH
136 select ARCH_WANT_DEFAULT_BPF_JIT if X86_64
137 select ARCH_WANTS_DYNAMIC_TASK_STRUCT
138 select ARCH_WANTS_NO_INSTR
139 select ARCH_WANT_GENERAL_HUGETLB
140 select ARCH_WANT_HUGE_PMD_SHARE
141 select ARCH_WANT_LD_ORPHAN_WARN
142 select ARCH_WANT_OPTIMIZE_DAX_VMEMMAP if X86_64
143 select ARCH_WANT_OPTIMIZE_HUGETLB_VMEMMAP if X86_64
144 select ARCH_WANTS_THP_SWAP if X86_64
145 select ARCH_HAS_PARANOID_L1D_FLUSH
146 select BUILDTIME_TABLE_SORT
147 select CLKEVT_I8253
148 select CLOCKSOURCE_VALIDATE_LAST_CYCLE
149 select CLOCKSOURCE_WATCHDOG
150 # Word-size accesses may read uninitialized data past the trailing \0
152 select DCACHE_WORD_ACCESS if !KMSAN
153 select DYNAMIC_SIGFRAME
154 select EDAC_ATOMIC_SCRUB
155 select EDAC_SUPPORT
156 select GENERIC_CLOCKEVENTS_BROADCAST if X86_64 || (X86_32 && X86_LOCAL_APIC)
157 select GENERIC_CLOCKEVENTS_BROADCAST_IDLE if GENERIC_CLOCKEVENTS_BROADCAST
158 select GENERIC_CLOCKEVENTS_MIN_ADJUST
159 select GENERIC_CMOS_UPDATE
160 select GENERIC_CPU_AUTOPROBE
161 select GENERIC_CPU_DEVICES
162 select GENERIC_CPU_VULNERABILITIES
163 select GENERIC_EARLY_IOREMAP
164 select GENERIC_ENTRY
165 select GENERIC_IOMAP
166 select GENERIC_IRQ_EFFECTIVE_AFF_MASK if SMP
167 select GENERIC_IRQ_MATRIX_ALLOCATOR if X86_LOCAL_APIC
168 select GENERIC_IRQ_MIGRATION if SMP
169 select GENERIC_IRQ_PROBE
170 select GENERIC_IRQ_RESERVATION_MODE
171 select GENERIC_IRQ_SHOW
172 select GENERIC_PENDING_IRQ if SMP
173 select GENERIC_PTDUMP
174 select GENERIC_SMP_IDLE_THREAD
175 select GENERIC_TIME_VSYSCALL
176 select GENERIC_GETTIMEOFDAY
177 select GENERIC_VDSO_TIME_NS
178 select GENERIC_VDSO_OVERFLOW_PROTECT
179 select GUP_GET_PXX_LOW_HIGH if X86_PAE
180 select HARDIRQS_SW_RESEND
181 select HARDLOCKUP_CHECK_TIMESTAMP if X86_64
182 select HAS_IOPORT
183 select HAVE_ACPI_APEI if ACPI
184 select HAVE_ACPI_APEI_NMI if ACPI
185 select HAVE_ALIGNED_STRUCT_PAGE
186 select HAVE_ARCH_AUDITSYSCALL
187 select HAVE_ARCH_HUGE_VMAP if X86_64 || X86_PAE
188 select HAVE_ARCH_HUGE_VMALLOC if X86_64
189 select HAVE_ARCH_JUMP_LABEL
190 select HAVE_ARCH_JUMP_LABEL_RELATIVE
191 select HAVE_ARCH_KASAN if X86_64
192 select HAVE_ARCH_KASAN_VMALLOC if X86_64
193 select HAVE_ARCH_KFENCE
194 select HAVE_ARCH_KMSAN if X86_64
195 select HAVE_ARCH_KGDB
196 select HAVE_ARCH_MMAP_RND_BITS if MMU
197 select HAVE_ARCH_MMAP_RND_COMPAT_BITS if MMU && COMPAT
198 select HAVE_ARCH_COMPAT_MMAP_BASES if MMU && COMPAT
199 select HAVE_ARCH_PREL32_RELOCATIONS
200 select HAVE_ARCH_SECCOMP_FILTER
201 select HAVE_ARCH_THREAD_STRUCT_WHITELIST
202 select HAVE_ARCH_STACKLEAK
203 select HAVE_ARCH_TRACEHOOK
204 select HAVE_ARCH_TRANSPARENT_HUGEPAGE
205 select HAVE_ARCH_TRANSPARENT_HUGEPAGE_PUD if X86_64
206 select HAVE_ARCH_USERFAULTFD_WP if X86_64 && USERFAULTFD
207 select HAVE_ARCH_USERFAULTFD_MINOR if X86_64 && USERFAULTFD
208 select HAVE_ARCH_VMAP_STACK if X86_64
209 select HAVE_ARCH_RANDOMIZE_KSTACK_OFFSET
210 select HAVE_ARCH_WITHIN_STACK_FRAMES
211 select HAVE_ASM_MODVERSIONS
212 select HAVE_CMPXCHG_DOUBLE
213 select HAVE_CMPXCHG_LOCAL
214 select HAVE_CONTEXT_TRACKING_USER if X86_64
215 select HAVE_CONTEXT_TRACKING_USER_OFFSTACK if HAVE_CONTEXT_TRACKING_USER
216 select HAVE_C_RECORDMCOUNT
217 select HAVE_OBJTOOL_MCOUNT if HAVE_OBJTOOL
218 select HAVE_OBJTOOL_NOP_MCOUNT if HAVE_OBJTOOL_MCOUNT
219 select HAVE_BUILDTIME_MCOUNT_SORT
220 select HAVE_DEBUG_KMEMLEAK
221 select HAVE_DMA_CONTIGUOUS
222 select HAVE_DYNAMIC_FTRACE
223 select HAVE_DYNAMIC_FTRACE_WITH_REGS
224 select HAVE_DYNAMIC_FTRACE_WITH_ARGS if X86_64
225 select HAVE_DYNAMIC_FTRACE_WITH_DIRECT_CALLS
226 select HAVE_SAMPLE_FTRACE_DIRECT if X86_64
227 select HAVE_SAMPLE_FTRACE_DIRECT_MULTI if X86_64
228 select HAVE_EBPF_JIT
229 select HAVE_EFFICIENT_UNALIGNED_ACCESS
230 select HAVE_EISA
231 select HAVE_EXIT_THREAD
232 select HAVE_GUP_FAST
233 select HAVE_FENTRY if X86_64 || DYNAMIC_FTRACE
234 select HAVE_FTRACE_MCOUNT_RECORD
235 select HAVE_FUNCTION_GRAPH_RETVAL if HAVE_FUNCTION_GRAPH_TRACER
236 select HAVE_FUNCTION_GRAPH_TRACER if X86_32 || (X86_64 && DYNAMIC_FTRACE)
237 select HAVE_FUNCTION_TRACER
238 select HAVE_GCC_PLUGINS
239 select HAVE_HW_BREAKPOINT
240 select HAVE_IOREMAP_PROT
241 select HAVE_IRQ_EXIT_ON_IRQ_STACK if X86_64
242 select HAVE_IRQ_TIME_ACCOUNTING
243 select HAVE_JUMP_LABEL_HACK if HAVE_OBJTOOL
244 select HAVE_KERNEL_BZIP2
245 select HAVE_KERNEL_GZIP
246 select HAVE_KERNEL_LZ4
247 select HAVE_KERNEL_LZMA
248 select HAVE_KERNEL_LZO
249 select HAVE_KERNEL_XZ
250 select HAVE_KERNEL_ZSTD
251 select HAVE_KPROBES
252 select HAVE_KPROBES_ON_FTRACE
253 select HAVE_FUNCTION_ERROR_INJECTION
254 select HAVE_KRETPROBES
255 select HAVE_RETHOOK
256 select HAVE_LIVEPATCH if X86_64
257 select HAVE_MIXED_BREAKPOINTS_REGS
258 select HAVE_MOD_ARCH_SPECIFIC
259 select HAVE_MOVE_PMD
260 select HAVE_MOVE_PUD
261 select HAVE_NOINSTR_HACK if HAVE_OBJTOOL
262 select HAVE_NMI
263 select HAVE_NOINSTR_VALIDATION if HAVE_OBJTOOL
264 select HAVE_OBJTOOL if X86_64
265 select HAVE_OPTPROBES
266 select HAVE_PAGE_SIZE_4KB
267 select HAVE_PCSPKR_PLATFORM
268 select HAVE_PERF_EVENTS
269 select HAVE_PERF_EVENTS_NMI
270 select HAVE_HARDLOCKUP_DETECTOR_PERF if PERF_EVENTS && HAVE_PERF_EVENTS_NMI
271 select HAVE_PCI
272 select HAVE_PERF_REGS
273 select HAVE_PERF_USER_STACK_DUMP
274 select MMU_GATHER_RCU_TABLE_FREE if PARAVIRT
275 select MMU_GATHER_MERGE_VMAS
276 select HAVE_POSIX_CPU_TIMERS_TASK_WORK
277 select HAVE_REGS_AND_STACK_ACCESS_API
278 select HAVE_RELIABLE_STACKTRACE if UNWINDER_ORC || STACK_VALIDATION
279 select HAVE_FUNCTION_ARG_ACCESS_API
280 select HAVE_SETUP_PER_CPU_AREA
281 select HAVE_SOFTIRQ_ON_OWN_STACK
282 select HAVE_STACKPROTECTOR if CC_HAS_SANE_STACKPROTECTOR
283 select HAVE_STACK_VALIDATION if HAVE_OBJTOOL
284 select HAVE_STATIC_CALL
285 select HAVE_STATIC_CALL_INLINE if HAVE_OBJTOOL
286 select HAVE_PREEMPT_DYNAMIC_CALL
287 select HAVE_RSEQ
288 select HAVE_RUST if X86_64
289 select HAVE_SYSCALL_TRACEPOINTS
290 select HAVE_UACCESS_VALIDATION if HAVE_OBJTOOL
291 select HAVE_UNSTABLE_SCHED_CLOCK
292 select HAVE_USER_RETURN_NOTIFIER
293 select HAVE_GENERIC_VDSO
294 select VDSO_GETRANDOM if X86_64
295 select HOTPLUG_PARALLEL if SMP && X86_64
296 select HOTPLUG_SMT if SMP
297 select HOTPLUG_SPLIT_STARTUP if SMP && X86_32
298 select IRQ_FORCED_THREADING
299 select LOCK_MM_AND_FIND_VMA
300 select NEED_PER_CPU_EMBED_FIRST_CHUNK
301 select NEED_PER_CPU_PAGE_FIRST_CHUNK
302 select NEED_SG_DMA_LENGTH
303 select NUMA_MEMBLKS if NUMA
304 select PCI_DOMAINS if PCI
305 select PCI_LOCKLESS_CONFIG if PCI
306 select PERF_EVENTS
307 select RTC_LIB
308 select RTC_MC146818_LIB
309 select SPARSE_IRQ
310 select SYSCTL_EXCEPTION_TRACE
311 select THREAD_INFO_IN_TASK
312 select TRACE_IRQFLAGS_SUPPORT
313 select TRACE_IRQFLAGS_NMI_SUPPORT
314 select USER_STACKTRACE_SUPPORT
315 select HAVE_ARCH_KCSAN if X86_64
316 select PROC_PID_ARCH_STATUS if PROC_FS
317 select HAVE_ARCH_NODE_DEV_GROUP if X86_SGX
318 select FUNCTION_ALIGNMENT_16B if X86_64 || X86_ALIGNMENT_16
319 select FUNCTION_ALIGNMENT_4B
321 select HAVE_DYNAMIC_FTRACE_NO_PATCHABLE
329 default "elf32-i386" if X86_32
330 default "elf64-x86-64" if X86_64
369 select GENERIC_BUG_RELATIVE_POINTERS if X86_64
424 …default $(success,$(srctree)/scripts/gcc-x86_64-has-stack-protector.sh $(CC) $(CLANG_FLAGS)) if 64…
425 default $(success,$(srctree)/scripts/gcc-x86_32-has-stack-protector.sh $(CC) $(CLANG_FLAGS))
429 the segment on 32-bit kernels.
434 bool "Symmetric multi-processing support"
440 If you say N here, the kernel will run on uni- and multiprocessor
452 Y to "Enhanced Real Time Clock Support", below. The "Advanced Power
455 See also <file:Documentation/arch/x86/i386/IO-APIC.rst>,
456 <file:Documentation/admin-guide/lockup-watchdogs.rst> and the SMP-HOWTO available at
467 This allows 32-bit apic IDs (so it can support very large systems),
471 and can not fall back to the legacy APIC modes if SGX or TDX are
478 bool "Enable MSI and MSI-x delivery by posted interrupts"
482 posted interrupts to the host kernel. Interrupt throughput can
499 select KERNFS
500 select PROC_CPU_RESCTRL if PROC_FS
508 (Intel(R) RDT). More information about RDT can be found in the
512 More information about AMD QoS can be found in the AMD64 Technology
533 bool "Support for extended (non-PC) x86 platforms"
540 If you enable this option then you'll be able to select support
541 for the following non-PC x86 platforms, depending on the value of
544 32-bit platforms (CONFIG_64BIT=n):
547 RDC R-321x SoC
549 STA2X11-based (e.g. Northville)
552 64-bit platforms (CONFIG_64BIT=y):
558 generic distribution kernel, say Y here - otherwise say N.
571 Adds support for Numascale NumaChip large-SMP systems. Needed to
577 select HYPERVISOR_GUEST
578 select PARAVIRT
584 supposed to run on these EM64T-based machines. Only choose this option
618 select X86_REBOOTFIXUPS
619 select OF
620 select OF_EARLY_FLATTREE
622 Select for the Intel CE media processor (CE4100) SOC.
633 select I2C
634 select DW_APB_TIMER
635 select INTEL_SCU_PCI
637 Select to build a kernel capable of supporting Intel MID (Mobile
653 select IOSF_MBI
654 select INTEL_IMR
655 select COMMON_CLK
657 Select to include support for Quark X1000 SoC.
664 select COMMON_CLK
665 select PINCTRL
666 select IOSF_MBI
668 Select to build support for Intel Low Power Subsystem such as
670 things like clock tree (common clock framework) and pincontrol
676 select COMMON_CLK
677 select PINCTRL
679 Select to interpret AMD specific ACPI device to platform device
681 I2C and UART depend on COMMON_CLK to set clock. GPIO driver is
695 - BayTrail
696 - Braswell
697 - Quark
705 Select this option to expose the IOSF sideband access registers (MCR,
715 bool "RDC R-321x SoC"
718 select M486
719 select X86_REBOOTFIXUPS
721 This option is needed for RDC R-321x system-on-chip, also known
722 as R-8610-(G).
726 bool "Support non-standard 32-bit SMP architectures"
732 kernel. If you select them all, kernel will probe it one by
741 # On 32-bit this adds too big of NODES_SHIFT and we run out of page flags:
742 # On 32-bit SPARSEMEM adds too big of SECTIONS_WIDTH:
744 select ARCH_SUPPORTS_MEMORY_FAILURE
749 select SWIOTLB
750 select MFD_STA2X11
751 select GPIOLIB
753 This adds support for boards based on the STA2X11 IO-Hub,
774 prompt "Single-depth WCHAN output"
787 Say Y here to enable options for running Linux under various hyper-
800 This changes the kernel so it can modify itself when it is run
809 bool "paravirt-ops debugging"
820 spinlock implementation with something virtualization-friendly
836 select PARAVIRT_CLOCK
837 select ARCH_CPUIDLE_HALTPOLL
838 select X86_HV_CALLBACK_VECTOR
842 hypervisor. It includes a paravirtualized clock, so that instead
863 Select this option to enable fine granularity task steal time
866 that, there can be a small performance impact.
874 bool "Jailhouse non-root cell support"
876 select X86_PM_TIMER
878 This option allows to run Linux as guest in a Jailhouse non-root
879 cell. You can leave this option disabled if you only want to start
885 select X86_HV_CALLBACK_VECTOR
888 a flexible, lightweight reference open-source hypervisor, built with
889 real-time and safety-criticality in mind. It is built for embedded
890 IOT with small footprint and real-time features. More details can be
894 bool "Intel TDX (Trust Domain Extensions) - Guest Support"
898 select ARCH_HAS_CC_PLATFORM
899 select X86_MEM_ENCRYPT
900 select X86_MCE
901 select UNACCEPTED_MEMORY
904 the guest kernel can not boot or run under TDX.
918 Use the IA-PC HPET (High Precision Event Timer) to manage
924 as it is off-chip. The interface used is documented
927 You can safely choose Y here. However, HPET will only be
941 select DMI_SCAN_MACHINE_NON_EFI_FALLBACK
951 select IOMMU_HELPER
952 select SWIOTLB
958 The GART supports full DMA access for devices with 32-bit access
967 32-bit limited device.
974 If true, at least one selected framebuffer driver can take advantage
980 select CPUMASK_OFFSTACK
989 # and which can be configured interactively in the
992 # The ranges are different on 32-bit and 64-bit kernels, depending on
1054 by sharing mid-level caches, last-level cache tags or internal
1062 prompt "Multi-core scheduler support"
1065 Multi-core scheduler support improves the CPU scheduler's decision
1066 making when dealing with multi-core CPU chips at a cost of slightly
1072 select X86_INTEL_PSTATE if CPU_SUP_INTEL
1073 select X86_AMD_PSTATE if CPU_SUP_AMD && ACPI
1074 select CPU_FREQ
1085 overall system performance can be achieved.
1101 integrated interrupt controller in the CPU. If you have a single-CPU
1102 system which has a processor with a local APIC, you can say Y here to
1105 all. The local APIC supports CPU-generated self-interrupts (timer,
1110 bool "IO-APIC support on uniprocessors"
1113 An IO-APIC (I/O Advanced Programmable Interrupt Controller) is an
1114 SMP-capable replacement for PC-style interrupt controllers. Most
1117 If you have a single-CPU system with an IO-APIC, you can say Y here
1119 an IO-APIC, then the kernel will still run with no slowdown at all.
1124 select IRQ_DOMAIN_HIERARCHY
1147 entry in the chipset's IO-APIC is masked (as, e.g. the RT
1162 select GENERIC_ALLOCATOR
1221 mode, which is an 80286-era approximation of 16-bit real mode.
1229 a 16-bit DOS program where 16-bit performance matters, vm86
1233 Note that any app that works on a 64-bit kernel is unlikely to
1234 need this option, as 64-bit kernels don't, and can't, support
1235 V8086 mode. This option is also unrelated to 16-bit protected
1236 mode and is not needed to run most 16-bit programs under Wine.
1248 bool "Enable support for 16-bit segments" if EXPERT
1252 This option is required by programs like Wine to run 16-bit
1255 plus 16K runtime memory on x86-64,
1328 CS5530A and CS5536 chipsets and the RDC R-321x SoC.
1353 minimal revision check. This minimal revision check can be enforced on
1369 This minimal revision check can also be controlled via the
1375 tristate "/dev/cpu/*/msr - Model-specific register support"
1378 Model-Specific Registers (MSRs). It is a character device with
1380 MSR accesses are directed to a specific CPU on multi-processor
1384 tristate "/dev/cpu/*/cpuid - CPU information support"
1399 Linux can use up to 64 Gigabytes of physical memory on x86 systems.
1400 However, the address space of 32-bit x86 processors is only 4
1402 physical memory, not all of it can be "permanently mapped" by the
1419 PAE implements 3-level paging on IA32 processors. PAE is fully
1425 auto detected or can be forced by using a kernel command line option
1435 Select this if you have a 32-bit processor and between 1 and 4
1441 select X86_PAE
1443 Select this if you have a 32-bit processor and more than 4
1453 Select the desired split between kernel and user memory.
1462 will also likely make your kernel incompatible with binary-only
1498 select PHYS_ADDR_T_64BIT
1499 select SWIOTLB
1502 larger swapspace support for non-overcommit purposes. It
1507 bool "Enable 5-level page tables support"
1509 select DYNAMIC_MEMORY_LAYOUT
1510 select SPARSEMEM_VMEMMAP
1513 5-level paging enables access to larger address space:
1519 A kernel with the option enabled can be booted on machines that
1520 support 4- or 5-level paging.
1522 See Documentation/arch/x86/x86_64/5level-paging.rst for more
1545 select ARCH_HAS_FORCE_DMA_UNENCRYPTED
1546 select DYNAMIC_PHYSICAL_MASK
1553 select DMA_COHERENT_POOL
1554 select ARCH_USE_MEMREMAP_PROT
1555 select INSTRUCTION_DECODER
1556 select ARCH_HAS_CC_PLATFORM
1557 select X86_MEM_ENCRYPT
1558 select UNACCEPTED_MEMORY
1570 select USE_PERCPU_NUMA_NODE_ID
1571 select OF_NUMA if OF
1573 Enable NUMA (Non-Uniform Memory Access) support.
1579 For 64-bit this is recommended if the system is Intel Core i7
1582 For 32-bit this is only needed if you boot a 32-bit
1583 kernel on a 64-bit NUMA platform.
1602 select ACPI_NUMA
1624 select SPARSEMEM_STATIC if X86_32
1625 select SPARSEMEM_VMEMMAP_ENABLE if X86_64
1639 See Documentation/admin-guide/mm/memory-hotplug.rst for more information.
1655 tristate "Support non-standard NVDIMMs and ADR protected memory"
1658 select X86_PMEM_LEGACY_DEVICE
1659 select NUMA_KEEP_MEMINFO if NUMA
1660 select LIBNVDIMM
1662 Treat memory marked using the non-standard e820 type of 12 as used
1663 by the Intel Sandy Bridge-EP reference BIOS as protected memory.
1665 they can be used for persistent storage.
1670 bool "Allocate 3rd-level pagetables from highmem"
1674 For systems with a lot of RAM, this can be wasteful of precious
1675 low memory. Setting this option will put user-space page table
1688 Documentation/admin-guide/kernel-parameters.rst to adjust this.
1696 BIOS-originated corruption always affects the same memory,
1697 you can use memmap= to prevent the kernel from using that
1713 Linux can emulate a math coprocessor (used for floating point
1716 a 487DX or 387, respectively. (The messages during boot time can
1722 be used nevertheless. (This behavior can be changed with the kernel
1730 emulation can be found in <file:arch/x86/math-emu/README>.
1742 a video (VGA) card on a PCI or AGP bus. Enabling write-combining
1744 before bursting over the PCI/AGP bus. This can increase performance
1750 control registers on other processors can be easily supported
1756 The AMD K6-2 (stepping 8 and above) and K6-3 processors have two
1758 write-combining. All of these processors are supported by this code
1763 can lead to all sorts of problems, so it's good to say Y here.
1765 You can safely say Y even if your machine doesn't have MTRRs, you'll
1775 Convert MTRR layout from continuous to discrete, so X drivers can
1778 Can be disabled with disable_mtrr_cleanup on the kernel command line.
1779 The largest mtrr entry size for a continuous block can be set with
1785 int "MTRR cleanup enable value (0-1)"
1793 int "MTRR cleanup spare reg num (0-7)"
1798 mtrr cleanup spare entries default, it can be changed via
1805 select ARCH_USES_PG_ARCH_2
1813 spontaneous reboots) or a non-working video driver.
1829 specific cases in protected and virtual-8086 modes. Emulated
1836 # https://github.com/llvm/llvm-project/commit/e0b89df2e0f0130881bf6c39bf31d7f6aac00e0f
1837 # https://github.com/llvm/llvm-project/commit/dfcf69770bc522b9e411c66454934a37c1f35332
1838 def_bool ((CC_IS_GCC && $(cc-option, -fcf-protection=branch -mindirect-branch-register)) || \
1840 $(as-instr,endbr64)
1851 # https://github.com/llvm/llvm-project/commit/9d7001eba9c4cb311e03cd8cdc231f9e579f2d0f
1853 select OBJTOOL
1854 select X86_CET
1857 hardware support course-grain forward-edge Control Flow Integrity
1872 # Note: only available in 64-bit mode
1874 select ARCH_USES_HIGH_VMA_FLAGS
1875 select ARCH_HAS_PKEYS
1878 page-based protections, but without requiring modification of the
1881 For details, see Documentation/core-api/protection-keys.rst
1896 can lead to a noticeable performance boost.
1898 On the other hand it has been shown that TSX can be exploited
1909 and =auto. See Documentation/admin-guide/kernel-parameters.txt for more
1919 TSX is disabled if possible - equals to tsx=off command line parameter.
1924 TSX is always enabled on TSX capable HW - equals the tsx=on command
1931 side channel attacks- equals the tsx=auto command line parameter.
1939 select MMU_NOTIFIER
1940 select NUMA_KEEP_MEMINFO if NUMA
1941 select XARRAY_MULTI
1944 that can be used by applications to set aside private regions of code
1945 and data, referred to as enclaves. An enclave's private memory can
1956 select ARCH_USES_HIGH_VMA_FLAGS
1957 select X86_CET
1976 select ARCH_KEEP_MEMBLOCK
1990 select UCS2_STRING
1991 select EFI_RUNTIME_WRAPPERS
1992 select ARCH_USE_MEMREMAP_PROT
1993 select EFI_RUNTIME_MAP if KEXEC_CORE
2002 resultant kernel should continue to boot on existing non-EFI
2008 select RELOCATABLE
2013 See Documentation/admin-guide/efi-stub.rst for more information.
2020 Select this in order to include support for the deprecated EFI
2033 bool "EFI mixed-mode support"
2036 Enabling this feature allows a 64-bit kernel to be booted
2037 on a 32-bit firmware, provided that your CPU supports 64-bit
2040 Note that it is not possible to boot a mixed-mode enabled
2041 kernel via the EFI boot stub - a bootloader that supports
2050 Export EFI runtime memory regions to /sys/firmware/efi/runtime-map.
2052 mappings after kexec, but can also be used for debugging purposes.
2054 See also Documentation/ABI/testing/sysfs-firmware-efi-runtime-map.
2067 select HAVE_IMA_KEXEC if IMA
2106 as now bzImage can be compiled as a completely relocatable image
2118 the reserved region. In other words, it can be set based on
2120 command line boot parameter passed to the panic-ed
2121 kernel. Please take a look at Documentation/admin-guide/kdump/kdump.rst
2125 one does not have to build two kernels. Same kernel can be used
2139 so it can be loaded someplace besides the default 1MB.
2163 On 64-bit, the kernel physical and virtual addresses are
2170 On 32-bit, the kernel physical and virtual addresses are
2201 If bootloader loads the kernel at a non-aligned address and
2205 If bootloader loads the kernel at a non-aligned address and
2213 On 32-bit this value must be a multiple of 0x2000. On 64-bit
2228 select DYNAMIC_MEMORY_LAYOUT
2263 to 64-bit linear addresses, allowing software to use of the
2266 The capability can be used for efficient address sanitizers (ASAN)
2275 prompt "Disable the 32-bit vDSO (needed for glibc 2.3.3)"
2279 presented with a 32-bit vDSO that is not mapped at the address
2289 dl_main: Assertion `(void *) ph->p_vaddr == _rtld_local._dl_sysinfo_dso' failed!
2292 option from 1 to 0, which turns off the 32-bit vDSO entirely.
2306 it can be used to assist security vulnerability exploitation.
2308 This setting can be changed at boot time via the kernel command
2310 is deprecated and can only be enabled using the kernel command
2314 static binaries, you can say None without a performance penalty
2317 If unsure, select "Emulate execution only".
2327 certain uses of the vsyscall area as an ASLR-bypassing
2337 malicious userspace programs can be identified.
2342 bool "Built-in kernel command line"
2354 Systems with fully functional boot loaders (i.e. non-embedded)
2358 string "Built-in kernel command string"
2367 However, you can use the CONFIG_CMDLINE_OVERRIDE option to
2370 In most cases, the command line (whether built-in or provided
2375 bool "Built-in command line overrides boot loader arguments"
2379 command line, and use ONLY the built-in command line.
2388 Linux can allow user programs to install a per-process x86
2390 call. This is required to run 16-bit or segmented code such as
2395 context switches and increases the low-level kernel attack
2408 by default. It can also be controlled via the kernel command
2430 def_bool $(success,echo 'int __seg_fs fs; int __seg_gs gs;' | $(CC) -x c - -S -o /dev/null)
2440 # -fsanitize=kernel-address (KASAN) and -fsanitize=thread
2442 # GCC < 13.3 - see GCC PR sanitizer/111736.
2447 def_bool $(cc-option,-mharden-sls=all)
2450 def_bool $(cc-option,-mfunction-return=thunk-extern)
2453 def_bool $(cc-option,-fpatchable-function-entry=16,16)
2463 # Basically: FUNCTION_ALIGNMENT - 5*CFI_CLANG
2464 # except Kconfig can't do arithmetic :/
2473 select FUNCTION_ALIGNMENT_16B
2478 select CALL_PADDING
2486 select CALL_PADDING
2498 Mitigations can be disabled or restricted to SMT systems at runtime
2521 select OBJTOOL if HAVE_OBJTOOL
2525 kernel-to-user data leaks by avoiding speculative indirect
2526 branches. Requires a compiler with -mindirect-branch=thunk-extern
2530 bool "Enable return-thunks"
2532 select OBJTOOL if HAVE_OBJTOOL
2535 Compile the kernel with the return-thunks compiler option to guard
2536 against kernel-to-user data leaks by avoiding return speculation.
2537 Requires a compiler with -mfunction-return=thunk-extern
2550 select HAVE_DYNAMIC_FTRACE_NO_PATCHABLE
2551 select CALL_THUNKS
2555 SKL Return-Speculation-Buffer (RSB) underflow issue. The
2558 non-affected systems the overhead of this option is marginal as
2559 the call depth tracking is using run-time generated call thunks
2568 select FUNCTION_ALIGNMENT_32B
2574 kernel command line with 'debug-callthunks'.
2599 Enable the SRSO mitigation needed on AMD Zen1-4 machines.
2602 bool "Mitigate Straight-Line-Speculation"
2604 select OBJTOOL if HAVE_OBJTOOL
2607 Compile the kernel with straight-line-speculation options to guard
2630 See also <file:Documentation/admin-guide/hw-vuln/reg-file-data-sampling.rst>
2633 bool "Mitigate Spectre-BHB (Branch History Injection)"
2640 See <file:Documentation/admin-guide/hw-vuln/spectre.rst>
2650 See also <file:Documentation/admin-guide/hw-vuln/mds.rst>
2661 See also <file:Documentation/admin-guide/hw-vuln/tsx_async_abort.rst>
2669 Stale Data Vulnerabilities are a class of memory-mapped I/O (MMIO)
2670 vulnerabilities that can expose data. The vulnerabilities require the
2673 <file:Documentation/admin-guide/hw-vuln/processor_mmio_stale_data.rst>
2683 See <file:Documentation/admin-guide/hw-vuln/l1tf.rst
2694 unprivileged attacker can use these flaws to bypass conventional
2706 See also <file:Documentation/admin-guide/hw-vuln/spectre.rst>
2715 attacks, the attacker can steer speculative indirect branches in the
2718 See also <file:Documentation/admin-guide/hw-vuln/spectre.rst>
2728 register accesses. An unprivileged user can extract values returned
2732 <file:Documentation/admin-guide/hw-vuln/special-register-buffer-data-sampling.rst>
2771 battery status information, and user-space programs will receive
2774 If you select "Y" here, you can disable actual use of the APM
2781 and more information, read <file:Documentation/power/apm-acpi.rst>
2782 and the Battery Powered Linux mini-HOWTO, available from
2787 VESA-compliant "green" monitors.
2839 feature is turned off -- see "Do CPU IDLE calls", below). This
2853 On some machines, this can activate improved power savings, such as
2854 a slowed CPU clock rate, when the machine is idle. These idle calls
2863 Enable console blanking using the APM. Some laptops can use this to
2868 do with your VESA-compliant power-saving monitor. Further, this
2869 option doesn't work for all laptops -- it might not turn off your
2879 needs to. Unfortunately, some BIOSes do not -- especially those in
2900 On PCI systems, the BIOS can be used to detect the PCI devices and
2903 PCI-based systems don't have any BIOS at all. Linux can also try to
2906 With this option, you can specify how Linux should detect the
2924 bool "OLPC XO-1"
2936 # x86-64 doesn't support PCI BIOS access from long mode so always go direct.
2978 architectures -- if your target machine is modern, it probably does
2983 # x86_64 have no ISA slots, but can have ISA-style DMA.
2985 bool "ISA-style DMA support" if (X86_64 && EXPERT)
2988 Enables ISA-style DMA support for devices requiring such controllers.
3007 PCI-IDs of several on-chip devices, so its a good dependency
3013 tristate "NatSemi SCx200 27MHz High-Resolution Timer Support"
3017 This driver provides a clocksource built upon the on-chip
3018 27MHz high-resolution timer. Its also a workaround for
3019 NSC Geode SC-1100's buggy TSC, which loses time when the
3026 select GPIOLIB
3027 select OF
3028 select OF_PROMTREE
3029 select IRQ_DOMAIN
3030 select OLPC_EC
3036 bool "OLPC XO-1 Power Management"
3039 Add support for poweroff and suspend of the OLPC XO-1 laptop.
3042 bool "OLPC XO-1 Real Time Clock"
3045 Add support for the XO-1 real time clock, which can be used as a
3049 bool "OLPC XO-1 SCI extras"
3052 select POWER_SUPPLY
3054 Add support for SCI-based features of the OLPC XO-1 laptop:
3055 - EC-driven system wakeups
3056 - Power button
3057 - Ebook switch
3058 - Lid switch
3059 - AC adapter status updates
3060 - Battery status updates
3063 bool "OLPC XO-1.5 SCI extras"
3065 select POWER_SUPPLY
3067 Add support for SCI-based features of the OLPC XO-1.5 laptop:
3068 - EC-driven system wakeups
3069 - AC adapter status updates
3070 - Battery status updates
3077 select GPIOLIB
3078 select GEODE_COMMON
3092 select GPIOLIB
3093 select GEODE_COMMON
3099 select GPIOLIB
3100 select GEODE_COMMON
3106 bool "Technologic Systems TS-5500 platform support"
3108 select CHECK_SIGNATURE
3109 select NEW_LEDS
3110 select LEDS_CLASS
3112 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