Kconfig (74c12ee02af109adcde36ec184fa59c0afb0edaa) Kconfig (40d04110f87940b6a03bf0aa19cd29e84f465f20)
1# SPDX-License-Identifier: GPL-2.0
2# Select 32 or 64 bit
3config 64BIT
4 bool "64-bit kernel" if "$(ARCH)" = "x86"
5 default "$(ARCH)" != "i386"
6 ---help---
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

--- 10 unchanged lines hidden (view full) ---

19 select OLD_SIGACTION
20 select GENERIC_VDSO_32
21
22config X86_64
23 def_bool y
24 depends on 64BIT
25 # Options that are inherently 64-bit kernel only:
26 select ARCH_HAS_GIGANTIC_PAGE
1# SPDX-License-Identifier: GPL-2.0
2# Select 32 or 64 bit
3config 64BIT
4 bool "64-bit kernel" if "$(ARCH)" = "x86"
5 default "$(ARCH)" != "i386"
6 ---help---
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

--- 10 unchanged lines hidden (view full) ---

19 select OLD_SIGACTION
20 select GENERIC_VDSO_32
21
22config X86_64
23 def_bool y
24 depends on 64BIT
25 # Options that are inherently 64-bit kernel only:
26 select ARCH_HAS_GIGANTIC_PAGE
27 select ARCH_SUPPORTS_INT128 if CC_HAS_INT128
27 select ARCH_SUPPORTS_INT128
28 select ARCH_USE_CMPXCHG_LOCKREF
29 select HAVE_ARCH_SOFT_DIRTY
30 select MODULES_USE_ELF_RELA
31 select NEED_DMA_MAP_STATE
32 select SWIOTLB
33 select ARCH_HAS_SYSCALL_WRAPPER
34
35config FORCE_DYNAMIC_FTRACE

--- 32 unchanged lines hidden (view full) ---

68 select ARCH_HAS_FORTIFY_SOURCE
69 select ARCH_HAS_GCOV_PROFILE_ALL
70 select ARCH_HAS_KCOV if X86_64
71 select ARCH_HAS_MEM_ENCRYPT
72 select ARCH_HAS_MEMBARRIER_SYNC_CORE
73 select ARCH_HAS_PMEM_API if X86_64
74 select ARCH_HAS_PTE_DEVMAP if X86_64
75 select ARCH_HAS_PTE_SPECIAL
28 select ARCH_USE_CMPXCHG_LOCKREF
29 select HAVE_ARCH_SOFT_DIRTY
30 select MODULES_USE_ELF_RELA
31 select NEED_DMA_MAP_STATE
32 select SWIOTLB
33 select ARCH_HAS_SYSCALL_WRAPPER
34
35config FORCE_DYNAMIC_FTRACE

--- 32 unchanged lines hidden (view full) ---

68 select ARCH_HAS_FORTIFY_SOURCE
69 select ARCH_HAS_GCOV_PROFILE_ALL
70 select ARCH_HAS_KCOV if X86_64
71 select ARCH_HAS_MEM_ENCRYPT
72 select ARCH_HAS_MEMBARRIER_SYNC_CORE
73 select ARCH_HAS_PMEM_API if X86_64
74 select ARCH_HAS_PTE_DEVMAP if X86_64
75 select ARCH_HAS_PTE_SPECIAL
76 select ARCH_HAS_REFCOUNT
76 select ARCH_HAS_UACCESS_FLUSHCACHE if X86_64
77 select ARCH_HAS_UACCESS_MCSAFE if X86_64 && X86_MCE
78 select ARCH_HAS_SET_MEMORY
79 select ARCH_HAS_SET_DIRECT_MAP
80 select ARCH_HAS_STRICT_KERNEL_RWX
81 select ARCH_HAS_STRICT_MODULE_RWX
82 select ARCH_HAS_SYNC_CORE_BEFORE_USERMODE
83 select ARCH_HAS_UBSAN_SANITIZE_ALL

--- 4 unchanged lines hidden (view full) ---

88 select ARCH_STACKWALK
89 select ARCH_SUPPORTS_ACPI
90 select ARCH_SUPPORTS_ATOMIC_RMW
91 select ARCH_SUPPORTS_NUMA_BALANCING if X86_64
92 select ARCH_USE_BUILTIN_BSWAP
93 select ARCH_USE_QUEUED_RWLOCKS
94 select ARCH_USE_QUEUED_SPINLOCKS
95 select ARCH_WANT_BATCHED_UNMAP_TLB_FLUSH
77 select ARCH_HAS_UACCESS_FLUSHCACHE if X86_64
78 select ARCH_HAS_UACCESS_MCSAFE if X86_64 && X86_MCE
79 select ARCH_HAS_SET_MEMORY
80 select ARCH_HAS_SET_DIRECT_MAP
81 select ARCH_HAS_STRICT_KERNEL_RWX
82 select ARCH_HAS_STRICT_MODULE_RWX
83 select ARCH_HAS_SYNC_CORE_BEFORE_USERMODE
84 select ARCH_HAS_UBSAN_SANITIZE_ALL

--- 4 unchanged lines hidden (view full) ---

89 select ARCH_STACKWALK
90 select ARCH_SUPPORTS_ACPI
91 select ARCH_SUPPORTS_ATOMIC_RMW
92 select ARCH_SUPPORTS_NUMA_BALANCING if X86_64
93 select ARCH_USE_BUILTIN_BSWAP
94 select ARCH_USE_QUEUED_RWLOCKS
95 select ARCH_USE_QUEUED_SPINLOCKS
96 select ARCH_WANT_BATCHED_UNMAP_TLB_FLUSH
96 select ARCH_WANT_DEFAULT_BPF_JIT if X86_64
97 select ARCH_WANTS_DYNAMIC_TASK_STRUCT
98 select ARCH_WANT_HUGE_PMD_SHARE
99 select ARCH_WANTS_THP_SWAP if X86_64
97 select ARCH_WANTS_DYNAMIC_TASK_STRUCT
98 select ARCH_WANT_HUGE_PMD_SHARE
99 select ARCH_WANTS_THP_SWAP if X86_64
100 select BUILDTIME_TABLE_SORT
100 select BUILDTIME_EXTABLE_SORT
101 select CLKEVT_I8253
102 select CLOCKSOURCE_VALIDATE_LAST_CYCLE
103 select CLOCKSOURCE_WATCHDOG
104 select DCACHE_WORD_ACCESS
105 select EDAC_ATOMIC_SCRUB
106 select EDAC_SUPPORT
107 select GENERIC_CLOCKEVENTS
108 select GENERIC_CLOCKEVENTS_BROADCAST if X86_64 || (X86_32 && X86_LOCAL_APIC)

--- 6 unchanged lines hidden (view full) ---

115 select GENERIC_IOMAP
116 select GENERIC_IRQ_EFFECTIVE_AFF_MASK if SMP
117 select GENERIC_IRQ_MATRIX_ALLOCATOR if X86_LOCAL_APIC
118 select GENERIC_IRQ_MIGRATION if SMP
119 select GENERIC_IRQ_PROBE
120 select GENERIC_IRQ_RESERVATION_MODE
121 select GENERIC_IRQ_SHOW
122 select GENERIC_PENDING_IRQ if SMP
101 select CLKEVT_I8253
102 select CLOCKSOURCE_VALIDATE_LAST_CYCLE
103 select CLOCKSOURCE_WATCHDOG
104 select DCACHE_WORD_ACCESS
105 select EDAC_ATOMIC_SCRUB
106 select EDAC_SUPPORT
107 select GENERIC_CLOCKEVENTS
108 select GENERIC_CLOCKEVENTS_BROADCAST if X86_64 || (X86_32 && X86_LOCAL_APIC)

--- 6 unchanged lines hidden (view full) ---

115 select GENERIC_IOMAP
116 select GENERIC_IRQ_EFFECTIVE_AFF_MASK if SMP
117 select GENERIC_IRQ_MATRIX_ALLOCATOR if X86_LOCAL_APIC
118 select GENERIC_IRQ_MIGRATION if SMP
119 select GENERIC_IRQ_PROBE
120 select GENERIC_IRQ_RESERVATION_MODE
121 select GENERIC_IRQ_SHOW
122 select GENERIC_PENDING_IRQ if SMP
123 select GENERIC_PTDUMP
124 select GENERIC_SMP_IDLE_THREAD
125 select GENERIC_STRNCPY_FROM_USER
126 select GENERIC_STRNLEN_USER
127 select GENERIC_TIME_VSYSCALL
128 select GENERIC_GETTIMEOFDAY
123 select GENERIC_SMP_IDLE_THREAD
124 select GENERIC_STRNCPY_FROM_USER
125 select GENERIC_STRNLEN_USER
126 select GENERIC_TIME_VSYSCALL
127 select GENERIC_GETTIMEOFDAY
129 select GENERIC_VDSO_TIME_NS
130 select GUP_GET_PTE_LOW_HIGH if X86_PAE
131 select HARDLOCKUP_CHECK_TIMESTAMP if X86_64
132 select HAVE_ACPI_APEI if ACPI
133 select HAVE_ACPI_APEI_NMI if ACPI
134 select HAVE_ALIGNED_STRUCT_PAGE if SLUB
135 select HAVE_ARCH_AUDITSYSCALL
136 select HAVE_ARCH_HUGE_VMAP if X86_64 || X86_PAE
137 select HAVE_ARCH_JUMP_LABEL
138 select HAVE_ARCH_JUMP_LABEL_RELATIVE
139 select HAVE_ARCH_KASAN if X86_64
128 select GUP_GET_PTE_LOW_HIGH if X86_PAE
129 select HARDLOCKUP_CHECK_TIMESTAMP if X86_64
130 select HAVE_ACPI_APEI if ACPI
131 select HAVE_ACPI_APEI_NMI if ACPI
132 select HAVE_ALIGNED_STRUCT_PAGE if SLUB
133 select HAVE_ARCH_AUDITSYSCALL
134 select HAVE_ARCH_HUGE_VMAP if X86_64 || X86_PAE
135 select HAVE_ARCH_JUMP_LABEL
136 select HAVE_ARCH_JUMP_LABEL_RELATIVE
137 select HAVE_ARCH_KASAN if X86_64
140 select HAVE_ARCH_KASAN_VMALLOC if X86_64
141 select HAVE_ARCH_KGDB
142 select HAVE_ARCH_MMAP_RND_BITS if MMU
143 select HAVE_ARCH_MMAP_RND_COMPAT_BITS if MMU && COMPAT
144 select HAVE_ARCH_COMPAT_MMAP_BASES if MMU && COMPAT
145 select HAVE_ARCH_PREL32_RELOCATIONS
146 select HAVE_ARCH_SECCOMP_FILTER
147 select HAVE_ARCH_THREAD_STRUCT_WHITELIST
148 select HAVE_ARCH_STACKLEAK

--- 7 unchanged lines hidden (view full) ---

156 select HAVE_CMPXCHG_LOCAL
157 select HAVE_CONTEXT_TRACKING if X86_64
158 select HAVE_COPY_THREAD_TLS
159 select HAVE_C_RECORDMCOUNT
160 select HAVE_DEBUG_KMEMLEAK
161 select HAVE_DMA_CONTIGUOUS
162 select HAVE_DYNAMIC_FTRACE
163 select HAVE_DYNAMIC_FTRACE_WITH_REGS
138 select HAVE_ARCH_KGDB
139 select HAVE_ARCH_MMAP_RND_BITS if MMU
140 select HAVE_ARCH_MMAP_RND_COMPAT_BITS if MMU && COMPAT
141 select HAVE_ARCH_COMPAT_MMAP_BASES if MMU && COMPAT
142 select HAVE_ARCH_PREL32_RELOCATIONS
143 select HAVE_ARCH_SECCOMP_FILTER
144 select HAVE_ARCH_THREAD_STRUCT_WHITELIST
145 select HAVE_ARCH_STACKLEAK

--- 7 unchanged lines hidden (view full) ---

153 select HAVE_CMPXCHG_LOCAL
154 select HAVE_CONTEXT_TRACKING if X86_64
155 select HAVE_COPY_THREAD_TLS
156 select HAVE_C_RECORDMCOUNT
157 select HAVE_DEBUG_KMEMLEAK
158 select HAVE_DMA_CONTIGUOUS
159 select HAVE_DYNAMIC_FTRACE
160 select HAVE_DYNAMIC_FTRACE_WITH_REGS
164 select HAVE_DYNAMIC_FTRACE_WITH_DIRECT_CALLS
165 select HAVE_EBPF_JIT
166 select HAVE_EFFICIENT_UNALIGNED_ACCESS
167 select HAVE_EISA
168 select HAVE_EXIT_THREAD
169 select HAVE_FAST_GUP
170 select HAVE_FENTRY if X86_64 || DYNAMIC_FTRACE
171 select HAVE_FTRACE_MCOUNT_RECORD
172 select HAVE_FUNCTION_GRAPH_TRACER

--- 25 unchanged lines hidden (view full) ---

198 select HAVE_OPTPROBES
199 select HAVE_PCSPKR_PLATFORM
200 select HAVE_PERF_EVENTS
201 select HAVE_PERF_EVENTS_NMI
202 select HAVE_HARDLOCKUP_DETECTOR_PERF if PERF_EVENTS && HAVE_PERF_EVENTS_NMI
203 select HAVE_PCI
204 select HAVE_PERF_REGS
205 select HAVE_PERF_USER_STACK_DUMP
161 select HAVE_EBPF_JIT
162 select HAVE_EFFICIENT_UNALIGNED_ACCESS
163 select HAVE_EISA
164 select HAVE_EXIT_THREAD
165 select HAVE_FAST_GUP
166 select HAVE_FENTRY if X86_64 || DYNAMIC_FTRACE
167 select HAVE_FTRACE_MCOUNT_RECORD
168 select HAVE_FUNCTION_GRAPH_TRACER

--- 25 unchanged lines hidden (view full) ---

194 select HAVE_OPTPROBES
195 select HAVE_PCSPKR_PLATFORM
196 select HAVE_PERF_EVENTS
197 select HAVE_PERF_EVENTS_NMI
198 select HAVE_HARDLOCKUP_DETECTOR_PERF if PERF_EVENTS && HAVE_PERF_EVENTS_NMI
199 select HAVE_PCI
200 select HAVE_PERF_REGS
201 select HAVE_PERF_USER_STACK_DUMP
206 select MMU_GATHER_RCU_TABLE_FREE if PARAVIRT
202 select HAVE_RCU_TABLE_FREE if PARAVIRT
207 select HAVE_REGS_AND_STACK_ACCESS_API
208 select HAVE_RELIABLE_STACKTRACE if X86_64 && (UNWINDER_FRAME_POINTER || UNWINDER_ORC) && STACK_VALIDATION
209 select HAVE_FUNCTION_ARG_ACCESS_API
210 select HAVE_STACKPROTECTOR if CC_HAS_SANE_STACKPROTECTOR
211 select HAVE_STACK_VALIDATION if X86_64
212 select HAVE_RSEQ
213 select HAVE_SYSCALL_TRACEPOINTS
214 select HAVE_UNSTABLE_SCHED_CLOCK

--- 10 unchanged lines hidden (view full) ---

225 select SPARSE_IRQ
226 select SRCU
227 select SYSCTL_EXCEPTION_TRACE
228 select THREAD_INFO_IN_TASK
229 select USER_STACKTRACE_SUPPORT
230 select VIRT_TO_BUS
231 select X86_FEATURE_NAMES if PROC_FS
232 select PROC_PID_ARCH_STATUS if PROC_FS
203 select HAVE_REGS_AND_STACK_ACCESS_API
204 select HAVE_RELIABLE_STACKTRACE if X86_64 && (UNWINDER_FRAME_POINTER || UNWINDER_ORC) && STACK_VALIDATION
205 select HAVE_FUNCTION_ARG_ACCESS_API
206 select HAVE_STACKPROTECTOR if CC_HAS_SANE_STACKPROTECTOR
207 select HAVE_STACK_VALIDATION if X86_64
208 select HAVE_RSEQ
209 select HAVE_SYSCALL_TRACEPOINTS
210 select HAVE_UNSTABLE_SCHED_CLOCK

--- 10 unchanged lines hidden (view full) ---

221 select SPARSE_IRQ
222 select SRCU
223 select SYSCTL_EXCEPTION_TRACE
224 select THREAD_INFO_IN_TASK
225 select USER_STACKTRACE_SUPPORT
226 select VIRT_TO_BUS
227 select X86_FEATURE_NAMES if PROC_FS
228 select PROC_PID_ARCH_STATUS if PROC_FS
229 select HAVE_ARCH_KCSAN if X86_64
233
234config INSTRUCTION_DECODER
235 def_bool y
236 depends on KPROBES || PERF_EVENTS || UPROBES
237
238config OUTPUT_FORMAT
239 string
240 default "elf32-i386" if X86_32

--- 196 unchanged lines hidden (view full) ---

437 bool "Enable MPS table" if ACPI || SFI
438 default y
439 depends on X86_LOCAL_APIC
440 ---help---
441 For old smp systems that do not have proper acpi support. Newer systems
442 (esp with 64bit cpus) with acpi support, MADT and DSDT will override it
443
444config GOLDFISH
230
231config INSTRUCTION_DECODER
232 def_bool y
233 depends on KPROBES || PERF_EVENTS || UPROBES
234
235config OUTPUT_FORMAT
236 string
237 default "elf32-i386" if X86_32

--- 196 unchanged lines hidden (view full) ---

434 bool "Enable MPS table" if ACPI || SFI
435 default y
436 depends on X86_LOCAL_APIC
437 ---help---
438 For old smp systems that do not have proper acpi support. Newer systems
439 (esp with 64bit cpus) with acpi support, MADT and DSDT will override it
440
441config GOLDFISH
445 def_bool y
446 depends on X86_GOLDFISH
442 def_bool y
443 depends on X86_GOLDFISH
447
448config RETPOLINE
449 bool "Avoid speculative indirect branches in kernel"
450 default y
451 select STACK_VALIDATION if HAVE_STACK_VALIDATION
452 help
453 Compile kernel with the retpoline compiler options to guard against
454 kernel-to-user data leaks by avoiding speculative indirect
455 branches. Requires a compiler with -mindirect-branch=thunk-extern
456 support for full protection. The kernel may run slower.
457
458config X86_CPU_RESCTRL
459 bool "x86 CPU resource control support"
460 depends on X86 && (CPU_SUP_INTEL || CPU_SUP_AMD)
461 select KERNFS
444
445config RETPOLINE
446 bool "Avoid speculative indirect branches in kernel"
447 default y
448 select STACK_VALIDATION if HAVE_STACK_VALIDATION
449 help
450 Compile kernel with the retpoline compiler options to guard against
451 kernel-to-user data leaks by avoiding speculative indirect
452 branches. Requires a compiler with -mindirect-branch=thunk-extern
453 support for full protection. The kernel may run slower.
454
455config X86_CPU_RESCTRL
456 bool "x86 CPU resource control support"
457 depends on X86 && (CPU_SUP_INTEL || CPU_SUP_AMD)
458 select KERNFS
462 select PROC_CPU_RESCTRL if PROC_FS
463 help
464 Enable x86 CPU resource control support.
465
466 Provide support for the allocation and monitoring of system resources
467 usage by the CPU.
468
469 Intel calls this Intel Resource Director Technology
470 (Intel(R) RDT). More information about RDT can be found in the

--- 5 unchanged lines hidden (view full) ---

476
477 Say N if unsure.
478
479if X86_32
480config X86_BIGSMP
481 bool "Support for big SMP systems with more than 8 CPUs"
482 depends on SMP
483 ---help---
459 help
460 Enable x86 CPU resource control support.
461
462 Provide support for the allocation and monitoring of system resources
463 usage by the CPU.
464
465 Intel calls this Intel Resource Director Technology
466 (Intel(R) RDT). More information about RDT can be found in the

--- 5 unchanged lines hidden (view full) ---

472
473 Say N if unsure.
474
475if X86_32
476config X86_BIGSMP
477 bool "Support for big SMP systems with more than 8 CPUs"
478 depends on SMP
479 ---help---
484 This option is needed for the systems that have more than 8 CPUs.
480 This option is needed for the systems that have more than 8 CPUs
485
486config X86_EXTENDED_PLATFORM
487 bool "Support for extended (non-PC) x86 platforms"
488 default y
489 ---help---
490 If you disable this option then the kernel will only support
491 standard PC platforms. (which covers the vast majority of
492 systems out there.)

--- 67 unchanged lines hidden (view full) ---

560 ---help---
561 This option is needed in order to support SGI Ultraviolet systems.
562 If you don't have one of these, you should say N here.
563
564# Following is an alphabetically sorted list of 32 bit extended platforms
565# Please maintain the alphabetic order if and when there are additions
566
567config X86_GOLDFISH
481
482config X86_EXTENDED_PLATFORM
483 bool "Support for extended (non-PC) x86 platforms"
484 default y
485 ---help---
486 If you disable this option then the kernel will only support
487 standard PC platforms. (which covers the vast majority of
488 systems out there.)

--- 67 unchanged lines hidden (view full) ---

556 ---help---
557 This option is needed in order to support SGI Ultraviolet systems.
558 If you don't have one of these, you should say N here.
559
560# Following is an alphabetically sorted list of 32 bit extended platforms
561# Please maintain the alphabetic order if and when there are additions
562
563config X86_GOLDFISH
568 bool "Goldfish (Virtual Platform)"
569 depends on X86_EXTENDED_PLATFORM
570 ---help---
564 bool "Goldfish (Virtual Platform)"
565 depends on X86_EXTENDED_PLATFORM
566 ---help---
571 Enable support for the Goldfish virtual platform used primarily
572 for Android development. Unless you are building for the Android
573 Goldfish emulator say N here.
574
575config X86_INTEL_CE
576 bool "CE4100 TV platform"
577 depends on PCI
578 depends on PCI_GODIRECT

--- 129 unchanged lines hidden (view full) ---

708 # On 32-bit this adds too big of NODES_SHIFT and we run out of page flags:
709 # On 32-bit SPARSEMEM adds too big of SECTIONS_WIDTH:
710 depends on X86_64 || !SPARSEMEM
711 select ARCH_SUPPORTS_MEMORY_FAILURE
712
713config STA2X11
714 bool "STA2X11 Companion Chip Support"
715 depends on X86_32_NON_STANDARD && PCI
567 Enable support for the Goldfish virtual platform used primarily
568 for Android development. Unless you are building for the Android
569 Goldfish emulator say N here.
570
571config X86_INTEL_CE
572 bool "CE4100 TV platform"
573 depends on PCI
574 depends on PCI_GODIRECT

--- 129 unchanged lines hidden (view full) ---

704 # On 32-bit this adds too big of NODES_SHIFT and we run out of page flags:
705 # On 32-bit SPARSEMEM adds too big of SECTIONS_WIDTH:
706 depends on X86_64 || !SPARSEMEM
707 select ARCH_SUPPORTS_MEMORY_FAILURE
708
709config STA2X11
710 bool "STA2X11 Companion Chip Support"
711 depends on X86_32_NON_STANDARD && PCI
712 select ARCH_HAS_PHYS_TO_DMA
716 select SWIOTLB
717 select MFD_STA2X11
718 select GPIOLIB
719 ---help---
720 This adds support for boards based on the STA2X11 IO-Hub,
721 a.k.a. "ConneXt". The chip is used in place of the standard
722 PC chipset, so all "standard" peripherals are missing. If this
723 option is selected the kernel will still be able to boot on

--- 81 unchanged lines hidden (view full) ---

805 ---help---
806 This option enables various optimizations for running under the KVM
807 hypervisor. It includes a paravirtualized clock, so that instead
808 of relying on a PIT (or probably other) emulation by the
809 underlying device model, the host provides the guest with
810 timing infrastructure such as time of day, and system time
811
812config ARCH_CPUIDLE_HALTPOLL
713 select SWIOTLB
714 select MFD_STA2X11
715 select GPIOLIB
716 ---help---
717 This adds support for boards based on the STA2X11 IO-Hub,
718 a.k.a. "ConneXt". The chip is used in place of the standard
719 PC chipset, so all "standard" peripherals are missing. If this
720 option is selected the kernel will still be able to boot on

--- 81 unchanged lines hidden (view full) ---

802 ---help---
803 This option enables various optimizations for running under the KVM
804 hypervisor. It includes a paravirtualized clock, so that instead
805 of relying on a PIT (or probably other) emulation by the
806 underlying device model, the host provides the guest with
807 timing infrastructure such as time of day, and system time
808
809config ARCH_CPUIDLE_HALTPOLL
813 def_bool n
814 prompt "Disable host haltpoll when loading haltpoll driver"
815 help
810 def_bool n
811 prompt "Disable host haltpoll when loading haltpoll driver"
812 help
816 If virtualized under KVM, disable host haltpoll.
817
818config PVH
819 bool "Support for running PVH guests"
820 ---help---
821 This option enables the PVH entry point for guest virtual machines
822 as specified in the x86/HVM direct boot ABI.
823

--- 62 unchanged lines hidden (view full) ---

886
887 Choose N to continue using the legacy 8254 timer.
888
889config HPET_EMULATE_RTC
890 def_bool y
891 depends on HPET_TIMER && (RTC=y || RTC=m || RTC_DRV_CMOS=m || RTC_DRV_CMOS=y)
892
893config APB_TIMER
813 If virtualized under KVM, disable host haltpoll.
814
815config PVH
816 bool "Support for running PVH guests"
817 ---help---
818 This option enables the PVH entry point for guest virtual machines
819 as specified in the x86/HVM direct boot ABI.
820

--- 62 unchanged lines hidden (view full) ---

883
884 Choose N to continue using the legacy 8254 timer.
885
886config HPET_EMULATE_RTC
887 def_bool y
888 depends on HPET_TIMER && (RTC=y || RTC=m || RTC_DRV_CMOS=m || RTC_DRV_CMOS=y)
889
890config APB_TIMER
894 def_bool y if X86_INTEL_MID
895 prompt "Intel MID APB Timer Support" if X86_INTEL_MID
896 select DW_APB_TIMER
897 depends on X86_INTEL_MID && SFI
898 help
899 APB timer is the replacement for 8254, HPET on X86 MID platforms.
900 The APBT provides a stable time base on SMP
901 systems, unlike the TSC, but it is more expensive to access,
902 as it is off-chip. APB timers are always running regardless of CPU
903 C states, they are used as per CPU clockevent device when possible.
891 def_bool y if X86_INTEL_MID
892 prompt "Intel MID APB Timer Support" if X86_INTEL_MID
893 select DW_APB_TIMER
894 depends on X86_INTEL_MID && SFI
895 help
896 APB timer is the replacement for 8254, HPET on X86 MID platforms.
897 The APBT provides a stable time base on SMP
898 systems, unlike the TSC, but it is more expensive to access,
899 as it is off-chip. APB timers are always running regardless of CPU
900 C states, they are used as per CPU clockevent device when possible.
904
905# Mark as expert because too many people got it wrong.
906# The code disables itself when not needed.
907config DMI
908 default y
909 select DMI_SCAN_MACHINE_NON_EFI_FALLBACK
910 bool "Enable DMI scanning" if EXPERT
911 ---help---

--- 19 unchanged lines hidden (view full) ---

931 the CONFIG_AMD_IOMMU=y config option.
932
933 In normal configurations this driver is only active when needed:
934 there's more than 3 GB of memory and the system contains a
935 32-bit limited device.
936
937 If unsure, say Y.
938
901
902# Mark as expert because too many people got it wrong.
903# The code disables itself when not needed.
904config DMI
905 default y
906 select DMI_SCAN_MACHINE_NON_EFI_FALLBACK
907 bool "Enable DMI scanning" if EXPERT
908 ---help---

--- 19 unchanged lines hidden (view full) ---

928 the CONFIG_AMD_IOMMU=y config option.
929
930 In normal configurations this driver is only active when needed:
931 there's more than 3 GB of memory and the system contains a
932 32-bit limited device.
933
934 If unsure, say Y.
935
936config CALGARY_IOMMU
937 bool "IBM Calgary IOMMU support"
938 select IOMMU_HELPER
939 select SWIOTLB
940 depends on X86_64 && PCI
941 ---help---
942 Support for hardware IOMMUs in IBM's xSeries x366 and x460
943 systems. Needed to run systems with more than 3GB of memory
944 properly with 32-bit PCI devices that do not support DAC
945 (Double Address Cycle). Calgary also supports bus level
946 isolation, where all DMAs pass through the IOMMU. This
947 prevents them from going anywhere except their intended
948 destination. This catches hard-to-find kernel bugs and
949 mis-behaving drivers and devices that do not use the DMA-API
950 properly to set up their DMA buffers. The IOMMU can be
951 turned off at boot time with the iommu=off parameter.
952 Normally the kernel will make the right choice by itself.
953 If unsure, say Y.
954
955config CALGARY_IOMMU_ENABLED_BY_DEFAULT
956 def_bool y
957 prompt "Should Calgary be enabled by default?"
958 depends on CALGARY_IOMMU
959 ---help---
960 Should Calgary be enabled by default? if you choose 'y', Calgary
961 will be used (if it exists). If you choose 'n', Calgary will not be
962 used even if it exists. If you choose 'n' and would like to use
963 Calgary anyway, pass 'iommu=calgary' on the kernel command line.
964 If unsure, say Y.
965
939config MAXSMP
940 bool "Enable Maximum number of SMP Processors and NUMA Nodes"
941 depends on X86_64 && SMP && DEBUG_KERNEL
942 select CPUMASK_OFFSTACK
943 ---help---
944 Enable maximum number of CPUS and NUMA Nodes for this architecture.
945 If unsure, say N.
946

--- 22 unchanged lines hidden (view full) ---

969 depends on X86_32
970 default 64 if SMP && X86_BIGSMP
971 default 8 if SMP && !X86_BIGSMP
972 default 1 if !SMP
973
974config NR_CPUS_RANGE_END
975 int
976 depends on X86_64
966config MAXSMP
967 bool "Enable Maximum number of SMP Processors and NUMA Nodes"
968 depends on X86_64 && SMP && DEBUG_KERNEL
969 select CPUMASK_OFFSTACK
970 ---help---
971 Enable maximum number of CPUS and NUMA Nodes for this architecture.
972 If unsure, say N.
973

--- 22 unchanged lines hidden (view full) ---

996 depends on X86_32
997 default 64 if SMP && X86_BIGSMP
998 default 8 if SMP && !X86_BIGSMP
999 default 1 if !SMP
1000
1001config NR_CPUS_RANGE_END
1002 int
1003 depends on X86_64
977 default 8192 if SMP && CPUMASK_OFFSTACK
978 default 512 if SMP && !CPUMASK_OFFSTACK
1004 default 8192 if SMP && ( MAXSMP || CPUMASK_OFFSTACK)
1005 default 512 if SMP && (!MAXSMP && !CPUMASK_OFFSTACK)
979 default 1 if !SMP
980
981config NR_CPUS_DEFAULT
982 int
983 depends on X86_32
984 default 32 if X86_BIGSMP
985 default 8 if SMP
986 default 1 if !SMP

--- 47 unchanged lines hidden (view full) ---

1034 scheduler's CPU selection logic accordingly, so that higher
1035 overall system performance can be achieved.
1036
1037 This feature will have no effect on CPUs without this feature.
1038
1039 If unsure say Y here.
1040
1041config UP_LATE_INIT
1006 default 1 if !SMP
1007
1008config NR_CPUS_DEFAULT
1009 int
1010 depends on X86_32
1011 default 32 if X86_BIGSMP
1012 default 8 if SMP
1013 default 1 if !SMP

--- 47 unchanged lines hidden (view full) ---

1061 scheduler's CPU selection logic accordingly, so that higher
1062 overall system performance can be achieved.
1063
1064 This feature will have no effect on CPUs without this feature.
1065
1066 If unsure say Y here.
1067
1068config UP_LATE_INIT
1042 def_bool y
1043 depends on !SMP && X86_LOCAL_APIC
1069 def_bool y
1070 depends on !SMP && X86_LOCAL_APIC
1044
1045config X86_UP_APIC
1046 bool "Local APIC support on uniprocessors" if !PCI_MSI
1047 default PCI_MSI
1048 depends on X86_32 && !SMP && !X86_32_NON_STANDARD
1049 ---help---
1050 A local APIC (Advanced Programmable Interrupt Controller) is an
1051 integrated interrupt controller in the CPU. If you have a single-CPU

--- 132 unchanged lines hidden (view full) ---

1184 mode and is not needed to run most 16-bit programs under Wine.
1185
1186 Enabling this option increases the complexity of the kernel
1187 and slows down exception handling a tiny bit.
1188
1189 If unsure, say N here.
1190
1191config VM86
1071
1072config X86_UP_APIC
1073 bool "Local APIC support on uniprocessors" if !PCI_MSI
1074 default PCI_MSI
1075 depends on X86_32 && !SMP && !X86_32_NON_STANDARD
1076 ---help---
1077 A local APIC (Advanced Programmable Interrupt Controller) is an
1078 integrated interrupt controller in the CPU. If you have a single-CPU

--- 132 unchanged lines hidden (view full) ---

1211 mode and is not needed to run most 16-bit programs under Wine.
1212
1213 Enabling this option increases the complexity of the kernel
1214 and slows down exception handling a tiny bit.
1215
1216 If unsure, say N here.
1217
1218config VM86
1192 bool
1193 default X86_LEGACY_VM86
1219 bool
1220 default X86_LEGACY_VM86
1194
1195config X86_16BIT
1196 bool "Enable support for 16-bit segments" if EXPERT
1197 default y
1198 depends on MODIFY_LDT_SYSCALL
1199 ---help---
1200 This option is required by programs like Wine to run 16-bit
1201 protected mode legacy code on x86 processors. Disabling

--- 4 unchanged lines hidden (view full) ---

1206 def_bool y
1207 depends on X86_16BIT && X86_32
1208
1209config X86_ESPFIX64
1210 def_bool y
1211 depends on X86_16BIT && X86_64
1212
1213config X86_VSYSCALL_EMULATION
1221
1222config X86_16BIT
1223 bool "Enable support for 16-bit segments" if EXPERT
1224 default y
1225 depends on MODIFY_LDT_SYSCALL
1226 ---help---
1227 This option is required by programs like Wine to run 16-bit
1228 protected mode legacy code on x86 processors. Disabling

--- 4 unchanged lines hidden (view full) ---

1233 def_bool y
1234 depends on X86_16BIT && X86_32
1235
1236config X86_ESPFIX64
1237 def_bool y
1238 depends on X86_16BIT && X86_64
1239
1240config X86_VSYSCALL_EMULATION
1214 bool "Enable vsyscall emulation" if EXPERT
1215 default y
1216 depends on X86_64
1217 ---help---
1241 bool "Enable vsyscall emulation" if EXPERT
1242 default y
1243 depends on X86_64
1244 ---help---
1218 This enables emulation of the legacy vsyscall page. Disabling
1219 it is roughly equivalent to booting with vsyscall=none, except
1220 that it will also disable the helpful warning if a program
1221 tries to use a vsyscall. With this option set to N, offending
1222 programs will just segfault, citing addresses of the form
1223 0xffffffffff600?00.
1224
1225 This option is required by many programs built before 2013, and
1226 care should be used even with newer programs if set to N.
1227
1228 Disabling this option saves about 7K of kernel size and
1229 possibly 4K of additional runtime pagetable memory.
1230
1245 This enables emulation of the legacy vsyscall page. Disabling
1246 it is roughly equivalent to booting with vsyscall=none, except
1247 that it will also disable the helpful warning if a program
1248 tries to use a vsyscall. With this option set to N, offending
1249 programs will just segfault, citing addresses of the form
1250 0xffffffffff600?00.
1251
1252 This option is required by many programs built before 2013, and
1253 care should be used even with newer programs if set to N.
1254
1255 Disabling this option saves about 7K of kernel size and
1256 possibly 4K of additional runtime pagetable memory.
1257
1231config X86_IOPL_IOPERM
1232 bool "IOPERM and IOPL Emulation"
1233 default y
1234 ---help---
1235 This enables the ioperm() and iopl() syscalls which are necessary
1236 for legacy applications.
1237
1238 Legacy IOPL support is an overbroad mechanism which allows user
1239 space aside of accessing all 65536 I/O ports also to disable
1240 interrupts. To gain this access the caller needs CAP_SYS_RAWIO
1241 capabilities and permission from potentially active security
1242 modules.
1243
1244 The emulation restricts the functionality of the syscall to
1245 only allowing the full range I/O port access, but prevents the
1246 ability to disable interrupts from user space which would be
1247 granted if the hardware IOPL mechanism would be used.
1248
1249config TOSHIBA
1250 tristate "Toshiba Laptop support"
1251 depends on X86_32
1252 ---help---
1253 This adds a driver to safely access the System Management Mode of
1254 the CPU on Toshiba portables with a genuine Toshiba BIOS. It does
1255 not work on models with a Phoenix BIOS. The System Management Mode
1256 is used to set the BIOS and power saving options on Toshiba portables.

--- 222 unchanged lines hidden (view full) ---

1479 ---help---
1480 PAE is required for NX support, and furthermore enables
1481 larger swapspace support for non-overcommit purposes. It
1482 has the cost of more pagetable lookup overhead, and also
1483 consumes more pagetable space per process.
1484
1485config X86_5LEVEL
1486 bool "Enable 5-level page tables support"
1258config TOSHIBA
1259 tristate "Toshiba Laptop support"
1260 depends on X86_32
1261 ---help---
1262 This adds a driver to safely access the System Management Mode of
1263 the CPU on Toshiba portables with a genuine Toshiba BIOS. It does
1264 not work on models with a Phoenix BIOS. The System Management Mode
1265 is used to set the BIOS and power saving options on Toshiba portables.

--- 222 unchanged lines hidden (view full) ---

1488 ---help---
1489 PAE is required for NX support, and furthermore enables
1490 larger swapspace support for non-overcommit purposes. It
1491 has the cost of more pagetable lookup overhead, and also
1492 consumes more pagetable space per process.
1493
1494config X86_5LEVEL
1495 bool "Enable 5-level page tables support"
1487 default y
1488 select DYNAMIC_MEMORY_LAYOUT
1489 select SPARSEMEM_VMEMMAP
1490 depends on X86_64
1491 ---help---
1492 5-level paging enables access to larger address space:
1493 upto 128 PiB of virtual address space and 4 PiB of
1494 physical address space.
1495

--- 15 unchanged lines hidden (view full) ---

1511 linear 1 GB mappings (even if the CPU otherwise
1512 supports them), so don't confuse the user by printing
1513 that we have them enabled.
1514
1515config X86_CPA_STATISTICS
1516 bool "Enable statistic for Change Page Attribute"
1517 depends on DEBUG_FS
1518 ---help---
1496 select DYNAMIC_MEMORY_LAYOUT
1497 select SPARSEMEM_VMEMMAP
1498 depends on X86_64
1499 ---help---
1500 5-level paging enables access to larger address space:
1501 upto 128 PiB of virtual address space and 4 PiB of
1502 physical address space.
1503

--- 15 unchanged lines hidden (view full) ---

1519 linear 1 GB mappings (even if the CPU otherwise
1520 supports them), so don't confuse the user by printing
1521 that we have them enabled.
1522
1523config X86_CPA_STATISTICS
1524 bool "Enable statistic for Change Page Attribute"
1525 depends on DEBUG_FS
1526 ---help---
1519 Expose statistics about the Change Page Attribute mechanism, which
1527 Expose statistics about the Change Page Attribute mechanims, which
1520 helps to determine the effectiveness of preserving large and huge
1521 page mappings when mapping protections are changed.
1522
1523config AMD_MEM_ENCRYPT
1524 bool "AMD Secure Memory Encryption (SME) support"
1525 depends on X86_64 && CPU_SUP_AMD
1526 select DYNAMIC_PHYSICAL_MASK
1527 select ARCH_USE_MEMREMAP_PROT

--- 14 unchanged lines hidden (view full) ---

1542 If set to Y, then the encryption of system memory can be
1543 deactivated with the mem_encrypt=off command line option.
1544
1545 If set to N, then the encryption of system memory can be
1546 activated with the mem_encrypt=on command line option.
1547
1548# Common NUMA Features
1549config NUMA
1528 helps to determine the effectiveness of preserving large and huge
1529 page mappings when mapping protections are changed.
1530
1531config AMD_MEM_ENCRYPT
1532 bool "AMD Secure Memory Encryption (SME) support"
1533 depends on X86_64 && CPU_SUP_AMD
1534 select DYNAMIC_PHYSICAL_MASK
1535 select ARCH_USE_MEMREMAP_PROT

--- 14 unchanged lines hidden (view full) ---

1550 If set to Y, then the encryption of system memory can be
1551 deactivated with the mem_encrypt=off command line option.
1552
1553 If set to N, then the encryption of system memory can be
1554 activated with the mem_encrypt=on command line option.
1555
1556# Common NUMA Features
1557config NUMA
1550 bool "NUMA Memory Allocation and Scheduler Support"
1558 bool "Numa Memory Allocation and Scheduler Support"
1551 depends on SMP
1552 depends on X86_64 || (X86_32 && HIGHMEM64G && X86_BIGSMP)
1553 default y if X86_BIGSMP
1554 ---help---
1559 depends on SMP
1560 depends on X86_64 || (X86_32 && HIGHMEM64G && X86_BIGSMP)
1561 default y if X86_BIGSMP
1562 ---help---
1555 Enable NUMA (Non-Uniform Memory Access) support.
1563 Enable NUMA (Non Uniform Memory Access) support.
1556
1557 The kernel will try to allocate memory used by a CPU on the
1558 local memory controller of the CPU and add some more
1559 NUMA awareness to the kernel.
1560
1561 For 64-bit this is recommended if the system is Intel Core i7
1562 (or later), AMD Opteron, or EM64T NUMA.
1563

--- 83 unchanged lines hidden (view full) ---

1647 See Documentation/admin-guide/mm/memory-hotplug.rst for more information.
1648 If you are unsure how to answer this question, answer N.
1649
1650config ARCH_PROC_KCORE_TEXT
1651 def_bool y
1652 depends on X86_64 && PROC_KCORE
1653
1654config ILLEGAL_POINTER_VALUE
1564
1565 The kernel will try to allocate memory used by a CPU on the
1566 local memory controller of the CPU and add some more
1567 NUMA awareness to the kernel.
1568
1569 For 64-bit this is recommended if the system is Intel Core i7
1570 (or later), AMD Opteron, or EM64T NUMA.
1571

--- 83 unchanged lines hidden (view full) ---

1655 See Documentation/admin-guide/mm/memory-hotplug.rst for more information.
1656 If you are unsure how to answer this question, answer N.
1657
1658config ARCH_PROC_KCORE_TEXT
1659 def_bool y
1660 depends on X86_64 && PROC_KCORE
1661
1662config ILLEGAL_POINTER_VALUE
1655 hex
1656 default 0 if X86_32
1657 default 0xdead000000000000 if X86_64
1663 hex
1664 default 0 if X86_32
1665 default 0xdead000000000000 if X86_64
1658
1659config X86_PMEM_LEGACY_DEVICE
1660 bool
1661
1662config X86_PMEM_LEGACY
1663 tristate "Support non-standard NVDIMMs and ADR protected memory"
1664 depends on PHYS_ADDR_T_64BIT
1665 depends on BLK_DEV

--- 73 unchanged lines hidden (view full) ---

1739 X86_CHECK_BIOS_CORRUPTION=y to allow the kernel to check
1740 typical corruption patterns.
1741
1742 Leave this to the default value of 64 if you are unsure.
1743
1744config MATH_EMULATION
1745 bool
1746 depends on MODIFY_LDT_SYSCALL
1666
1667config X86_PMEM_LEGACY_DEVICE
1668 bool
1669
1670config X86_PMEM_LEGACY
1671 tristate "Support non-standard NVDIMMs and ADR protected memory"
1672 depends on PHYS_ADDR_T_64BIT
1673 depends on BLK_DEV

--- 73 unchanged lines hidden (view full) ---

1747 X86_CHECK_BIOS_CORRUPTION=y to allow the kernel to check
1748 typical corruption patterns.
1749
1750 Leave this to the default value of 64 if you are unsure.
1751
1752config MATH_EMULATION
1753 bool
1754 depends on MODIFY_LDT_SYSCALL
1747 prompt "Math emulation" if X86_32 && (M486SX || MELAN)
1755 prompt "Math emulation" if X86_32
1748 ---help---
1749 Linux can emulate a math coprocessor (used for floating point
1750 operations) if you don't have one. 486DX and Pentium processors have
1751 a math coprocessor built in, 486SX and 386 do not, unless you added
1752 a 487DX or 387, respectively. (The messages during boot time can
1753 give you some hints here ["man dmesg"].) Everyone needs either a
1754 coprocessor or this emulation.
1755

--- 112 unchanged lines hidden (view full) ---

1868 ---help---
1869 Supervisor Mode Access Prevention (SMAP) is a security
1870 feature in newer Intel processors. There is a small
1871 performance cost if this enabled and turned on; there is
1872 also a small increase in the kernel size if this is enabled.
1873
1874 If unsure, say Y.
1875
1756 ---help---
1757 Linux can emulate a math coprocessor (used for floating point
1758 operations) if you don't have one. 486DX and Pentium processors have
1759 a math coprocessor built in, 486SX and 386 do not, unless you added
1760 a 487DX or 387, respectively. (The messages during boot time can
1761 give you some hints here ["man dmesg"].) Everyone needs either a
1762 coprocessor or this emulation.
1763

--- 112 unchanged lines hidden (view full) ---

1876 ---help---
1877 Supervisor Mode Access Prevention (SMAP) is a security
1878 feature in newer Intel processors. There is a small
1879 performance cost if this enabled and turned on; there is
1880 also a small increase in the kernel size if this is enabled.
1881
1882 If unsure, say Y.
1883
1876config X86_UMIP
1884config X86_INTEL_UMIP
1877 def_bool y
1885 def_bool y
1878 depends on CPU_SUP_INTEL || CPU_SUP_AMD
1879 prompt "User Mode Instruction Prevention" if EXPERT
1886 depends on CPU_SUP_INTEL
1887 prompt "Intel User Mode Instruction Prevention" if EXPERT
1880 ---help---
1888 ---help---
1881 User Mode Instruction Prevention (UMIP) is a security feature in
1882 some x86 processors. If enabled, a general protection fault is
1883 issued if the SGDT, SLDT, SIDT, SMSW or STR instructions are
1884 executed in user mode. These instructions unnecessarily expose
1885 information about the hardware state.
1889 The User Mode Instruction Prevention (UMIP) is a security
1890 feature in newer Intel processors. If enabled, a general
1891 protection fault is issued if the SGDT, SLDT, SIDT, SMSW
1892 or STR instructions are executed in user mode. These instructions
1893 unnecessarily expose information about the hardware state.
1886
1887 The vast majority of applications do not use these instructions.
1888 For the very few that do, software emulation is provided in
1889 specific cases in protected and virtual-8086 modes. Emulated
1890 results are dummy.
1891
1894
1895 The vast majority of applications do not use these instructions.
1896 For the very few that do, software emulation is provided in
1897 specific cases in protected and virtual-8086 modes. Emulated
1898 results are dummy.
1899
1900config X86_INTEL_MPX
1901 prompt "Intel MPX (Memory Protection Extensions)"
1902 def_bool n
1903 # Note: only available in 64-bit mode due to VMA flags shortage
1904 depends on CPU_SUP_INTEL && X86_64
1905 select ARCH_USES_HIGH_VMA_FLAGS
1906 ---help---
1907 MPX provides hardware features that can be used in
1908 conjunction with compiler-instrumented code to check
1909 memory references. It is designed to detect buffer
1910 overflow or underflow bugs.
1911
1912 This option enables running applications which are
1913 instrumented or otherwise use MPX. It does not use MPX
1914 itself inside the kernel or to protect the kernel
1915 against bad memory references.
1916
1917 Enabling this option will make the kernel larger:
1918 ~8k of kernel text and 36 bytes of data on a 64-bit
1919 defconfig. It adds a long to the 'mm_struct' which
1920 will increase the kernel memory overhead of each
1921 process and adds some branches to paths used during
1922 exec() and munmap().
1923
1924 For details, see Documentation/x86/intel_mpx.rst
1925
1926 If unsure, say N.
1927
1892config X86_INTEL_MEMORY_PROTECTION_KEYS
1893 prompt "Intel Memory Protection Keys"
1894 def_bool y
1895 # Note: only available in 64-bit mode
1896 depends on CPU_SUP_INTEL && X86_64
1897 select ARCH_USES_HIGH_VMA_FLAGS
1898 select ARCH_HAS_PKEYS
1899 ---help---
1900 Memory Protection Keys provides a mechanism for enforcing
1901 page-based protections, but without requiring modification of the
1902 page tables when an application changes protection domains.
1903
1904 For details, see Documentation/core-api/protection-keys.rst
1905
1906 If unsure, say y.
1907
1928config X86_INTEL_MEMORY_PROTECTION_KEYS
1929 prompt "Intel Memory Protection Keys"
1930 def_bool y
1931 # Note: only available in 64-bit mode
1932 depends on CPU_SUP_INTEL && X86_64
1933 select ARCH_USES_HIGH_VMA_FLAGS
1934 select ARCH_HAS_PKEYS
1935 ---help---
1936 Memory Protection Keys provides a mechanism for enforcing
1937 page-based protections, but without requiring modification of the
1938 page tables when an application changes protection domains.
1939
1940 For details, see Documentation/core-api/protection-keys.rst
1941
1942 If unsure, say y.
1943
1908choice
1909 prompt "TSX enable mode"
1910 depends on CPU_SUP_INTEL
1911 default X86_INTEL_TSX_MODE_OFF
1912 help
1913 Intel's TSX (Transactional Synchronization Extensions) feature
1914 allows to optimize locking protocols through lock elision which
1915 can lead to a noticeable performance boost.
1916
1917 On the other hand it has been shown that TSX can be exploited
1918 to form side channel attacks (e.g. TAA) and chances are there
1919 will be more of those attacks discovered in the future.
1920
1921 Therefore TSX is not enabled by default (aka tsx=off). An admin
1922 might override this decision by tsx=on the command line parameter.
1923 Even with TSX enabled, the kernel will attempt to enable the best
1924 possible TAA mitigation setting depending on the microcode available
1925 for the particular machine.
1926
1927 This option allows to set the default tsx mode between tsx=on, =off
1928 and =auto. See Documentation/admin-guide/kernel-parameters.txt for more
1929 details.
1930
1931 Say off if not sure, auto if TSX is in use but it should be used on safe
1932 platforms or on if TSX is in use and the security aspect of tsx is not
1933 relevant.
1934
1935config X86_INTEL_TSX_MODE_OFF
1936 bool "off"
1937 help
1938 TSX is disabled if possible - equals to tsx=off command line parameter.
1939
1940config X86_INTEL_TSX_MODE_ON
1941 bool "on"
1942 help
1943 TSX is always enabled on TSX capable HW - equals the tsx=on command
1944 line parameter.
1945
1946config X86_INTEL_TSX_MODE_AUTO
1947 bool "auto"
1948 help
1949 TSX is enabled on TSX capable HW that is believed to be safe against
1950 side channel attacks- equals the tsx=auto command line parameter.
1951endchoice
1952
1953config EFI
1954 bool "EFI runtime service support"
1955 depends on ACPI
1956 select UCS2_STRING
1957 select EFI_RUNTIME_WRAPPERS
1958 ---help---
1959 This enables the kernel to use EFI runtime services that are
1960 available (such as the EFI variable services).
1961
1962 This option is only useful on systems that have EFI firmware.
1963 In addition, you should use the latest ELILO loader available
1964 at <http://elilo.sourceforge.net> in order to take advantage
1965 of EFI runtime services. However, even with this option, the
1966 resultant kernel should continue to boot on existing non-EFI
1967 platforms.
1968
1969config EFI_STUB
1944config EFI
1945 bool "EFI runtime service support"
1946 depends on ACPI
1947 select UCS2_STRING
1948 select EFI_RUNTIME_WRAPPERS
1949 ---help---
1950 This enables the kernel to use EFI runtime services that are
1951 available (such as the EFI variable services).
1952
1953 This option is only useful on systems that have EFI firmware.
1954 In addition, you should use the latest ELILO loader available
1955 at <http://elilo.sourceforge.net> in order to take advantage
1956 of EFI runtime services. However, even with this option, the
1957 resultant kernel should continue to boot on existing non-EFI
1958 platforms.
1959
1960config EFI_STUB
1970 bool "EFI stub support"
1971 depends on EFI && !X86_USE_3DNOW
1972 depends on $(cc-option,-mabi=ms) || X86_32
1973 select RELOCATABLE
1974 ---help---
1975 This kernel feature allows a bzImage to be loaded directly
1961 bool "EFI stub support"
1962 depends on EFI && !X86_USE_3DNOW
1963 select RELOCATABLE
1964 ---help---
1965 This kernel feature allows a bzImage to be loaded directly
1976 by EFI firmware without the use of a bootloader.
1977
1978 See Documentation/admin-guide/efi-stub.rst for more information.
1979
1980config EFI_MIXED
1981 bool "EFI mixed-mode support"
1982 depends on EFI_STUB && X86_64
1983 ---help---

--- 943 unchanged lines hidden (view full) ---

2927
2928endmenu
2929
2930
2931config HAVE_ATOMIC_IOMAP
2932 def_bool y
2933 depends on X86_32
2934
1966 by EFI firmware without the use of a bootloader.
1967
1968 See Documentation/admin-guide/efi-stub.rst for more information.
1969
1970config EFI_MIXED
1971 bool "EFI mixed-mode support"
1972 depends on EFI_STUB && X86_64
1973 ---help---

--- 943 unchanged lines hidden (view full) ---

2917
2918endmenu
2919
2920
2921config HAVE_ATOMIC_IOMAP
2922 def_bool y
2923 depends on X86_32
2924
2925config X86_DEV_DMA_OPS
2926 bool
2927
2935source "drivers/firmware/Kconfig"
2936
2937source "arch/x86/kvm/Kconfig"
2928source "drivers/firmware/Kconfig"
2929
2930source "arch/x86/kvm/Kconfig"