Kconfig (b19efcabb587e5470a423ef778905f47e5a47f1a) Kconfig (2ae27137b2db89365f623a7694786cf6d1acb6c7)
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

--- 79 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
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

--- 79 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
96 select ARCH_WANT_DEFAULT_BPF_JIT if X86_64
96 select ARCH_WANTS_DYNAMIC_TASK_STRUCT
97 select ARCH_WANT_HUGE_PMD_SHARE
98 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
99 select BUILDTIME_EXTABLE_SORT
100 select BUILDTIME_TABLE_SORT
100 select CLKEVT_I8253
101 select CLOCKSOURCE_VALIDATE_LAST_CYCLE
102 select CLOCKSOURCE_WATCHDOG
103 select DCACHE_WORD_ACCESS
104 select EDAC_ATOMIC_SCRUB
105 select EDAC_SUPPORT
106 select GENERIC_CLOCKEVENTS
107 select GENERIC_CLOCKEVENTS_BROADCAST if X86_64 || (X86_32 && X86_LOCAL_APIC)

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

114 select GENERIC_IOMAP
115 select GENERIC_IRQ_EFFECTIVE_AFF_MASK if SMP
116 select GENERIC_IRQ_MATRIX_ALLOCATOR if X86_LOCAL_APIC
117 select GENERIC_IRQ_MIGRATION if SMP
118 select GENERIC_IRQ_PROBE
119 select GENERIC_IRQ_RESERVATION_MODE
120 select GENERIC_IRQ_SHOW
121 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
122 select GENERIC_SMP_IDLE_THREAD
123 select GENERIC_STRNCPY_FROM_USER
124 select GENERIC_STRNLEN_USER
125 select GENERIC_TIME_VSYSCALL
126 select GENERIC_GETTIMEOFDAY
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
129 select GENERIC_VDSO_TIME_NS
127 select GUP_GET_PTE_LOW_HIGH if X86_PAE
128 select HARDLOCKUP_CHECK_TIMESTAMP if X86_64
129 select HAVE_ACPI_APEI if ACPI
130 select HAVE_ACPI_APEI_NMI if ACPI
131 select HAVE_ALIGNED_STRUCT_PAGE if SLUB
132 select HAVE_ARCH_AUDITSYSCALL
133 select HAVE_ARCH_HUGE_VMAP if X86_64 || X86_PAE
134 select HAVE_ARCH_JUMP_LABEL

--- 299 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
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

--- 299 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
442 def_bool y
443 depends on X86_GOLDFISH
445 def_bool y
446 depends on X86_GOLDFISH
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
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
462 select PROC_CPU_RESCTRL if PROC_FS
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---
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---
480 This option is needed for the systems that have more than 8 CPUs
484 This option is needed for the systems that have more than 8 CPUs.
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
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
564 bool "Goldfish (Virtual Platform)"
565 depends on X86_EXTENDED_PLATFORM
566 ---help---
568 bool "Goldfish (Virtual Platform)"
569 depends on X86_EXTENDED_PLATFORM
570 ---help---
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

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

801 ---help---
802 This option enables various optimizations for running under the KVM
803 hypervisor. It includes a paravirtualized clock, so that instead
804 of relying on a PIT (or probably other) emulation by the
805 underlying device model, the host provides the guest with
806 timing infrastructure such as time of day, and system time
807
808config ARCH_CPUIDLE_HALTPOLL
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

--- 226 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
809 def_bool n
810 prompt "Disable host haltpoll when loading haltpoll driver"
811 help
813 def_bool n
814 prompt "Disable host haltpoll when loading haltpoll driver"
815 help
812 If virtualized under KVM, disable host haltpoll.
813
814config PVH
815 bool "Support for running PVH guests"
816 ---help---
817 This option enables the PVH entry point for guest virtual machines
818 as specified in the x86/HVM direct boot ABI.
819

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

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

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

1030 scheduler's CPU selection logic accordingly, so that higher
1031 overall system performance can be achieved.
1032
1033 This feature will have no effect on CPUs without this feature.
1034
1035 If unsure say Y here.
1036
1037config UP_LATE_INIT
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---

--- 122 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
1038 def_bool y
1039 depends on !SMP && X86_LOCAL_APIC
1042 def_bool y
1043 depends on !SMP && X86_LOCAL_APIC
1040
1041config X86_UP_APIC
1042 bool "Local APIC support on uniprocessors" if !PCI_MSI
1043 default PCI_MSI
1044 depends on X86_32 && !SMP && !X86_32_NON_STANDARD
1045 ---help---
1046 A local APIC (Advanced Programmable Interrupt Controller) is an
1047 integrated interrupt controller in the CPU. If you have a single-CPU

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

1180 mode and is not needed to run most 16-bit programs under Wine.
1181
1182 Enabling this option increases the complexity of the kernel
1183 and slows down exception handling a tiny bit.
1184
1185 If unsure, say N here.
1186
1187config VM86
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
1188 bool
1189 default X86_LEGACY_VM86
1192 bool
1193 default X86_LEGACY_VM86
1190
1191config X86_16BIT
1192 bool "Enable support for 16-bit segments" if EXPERT
1193 default y
1194 depends on MODIFY_LDT_SYSCALL
1195 ---help---
1196 This option is required by programs like Wine to run 16-bit
1197 protected mode legacy code on x86 processors. Disabling

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

1202 def_bool y
1203 depends on X86_16BIT && X86_32
1204
1205config X86_ESPFIX64
1206 def_bool y
1207 depends on X86_16BIT && X86_64
1208
1209config X86_VSYSCALL_EMULATION
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
1210 bool "Enable vsyscall emulation" if EXPERT
1211 default y
1212 depends on X86_64
1213 ---help---
1214 bool "Enable vsyscall emulation" if EXPERT
1215 default y
1216 depends on X86_64
1217 ---help---
1214 This enables emulation of the legacy vsyscall page. Disabling
1215 it is roughly equivalent to booting with vsyscall=none, except
1216 that it will also disable the helpful warning if a program
1217 tries to use a vsyscall. With this option set to N, offending
1218 programs will just segfault, citing addresses of the form
1219 0xffffffffff600?00.
1220
1221 This option is required by many programs built before 2013, and

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

1507 linear 1 GB mappings (even if the CPU otherwise
1508 supports them), so don't confuse the user by printing
1509 that we have them enabled.
1510
1511config X86_CPA_STATISTICS
1512 bool "Enable statistic for Change Page Attribute"
1513 depends on DEBUG_FS
1514 ---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

--- 285 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---
1515 Expose statistics about the Change Page Attribute mechanims, which
1519 Expose statistics about the Change Page Attribute mechanism, which
1516 helps to determine the effectiveness of preserving large and huge
1517 page mappings when mapping protections are changed.
1518
1519config AMD_MEM_ENCRYPT
1520 bool "AMD Secure Memory Encryption (SME) support"
1521 depends on X86_64 && CPU_SUP_AMD
1522 select DYNAMIC_PHYSICAL_MASK
1523 select ARCH_USE_MEMREMAP_PROT

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

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

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

1643 See Documentation/admin-guide/mm/memory-hotplug.rst for more information.
1644 If you are unsure how to answer this question, answer N.
1645
1646config ARCH_PROC_KCORE_TEXT
1647 def_bool y
1648 depends on X86_64 && PROC_KCORE
1649
1650config ILLEGAL_POINTER_VALUE
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
1651 hex
1652 default 0 if X86_32
1653 default 0xdead000000000000 if X86_64
1655 hex
1656 default 0 if X86_32
1657 default 0xdead000000000000 if X86_64
1654
1655config X86_PMEM_LEGACY_DEVICE
1656 bool
1657
1658config X86_PMEM_LEGACY
1659 tristate "Support non-standard NVDIMMs and ADR protected memory"
1660 depends on PHYS_ADDR_T_64BIT
1661 depends on BLK_DEV

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

1880 executed in user mode. These instructions unnecessarily expose
1881 information about the hardware state.
1882
1883 The vast majority of applications do not use these instructions.
1884 For the very few that do, software emulation is provided in
1885 specific cases in protected and virtual-8086 modes. Emulated
1886 results are dummy.
1887
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

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

1884 executed in user mode. These instructions unnecessarily expose
1885 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
1888config X86_INTEL_MPX
1889 prompt "Intel MPX (Memory Protection Extensions)"
1890 def_bool n
1891 # Note: only available in 64-bit mode due to VMA flags shortage
1892 depends on CPU_SUP_INTEL && X86_64
1893 select ARCH_USES_HIGH_VMA_FLAGS
1894 ---help---
1895 MPX provides hardware features that can be used in
1896 conjunction with compiler-instrumented code to check
1897 memory references. It is designed to detect buffer
1898 overflow or underflow bugs.
1899
1900 This option enables running applications which are
1901 instrumented or otherwise use MPX. It does not use MPX
1902 itself inside the kernel or to protect the kernel
1903 against bad memory references.
1904
1905 Enabling this option will make the kernel larger:
1906 ~8k of kernel text and 36 bytes of data on a 64-bit
1907 defconfig. It adds a long to the 'mm_struct' which
1908 will increase the kernel memory overhead of each
1909 process and adds some branches to paths used during
1910 exec() and munmap().
1911
1912 For details, see Documentation/x86/intel_mpx.rst
1913
1914 If unsure, say N.
1915
1916config X86_INTEL_MEMORY_PROTECTION_KEYS
1917 prompt "Intel Memory Protection Keys"
1918 def_bool y
1919 # Note: only available in 64-bit mode
1920 depends on CPU_SUP_INTEL && X86_64
1921 select ARCH_USES_HIGH_VMA_FLAGS
1922 select ARCH_HAS_PKEYS
1923 ---help---

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

1986 This option is only useful on systems that have EFI firmware.
1987 In addition, you should use the latest ELILO loader available
1988 at <http://elilo.sourceforge.net> in order to take advantage
1989 of EFI runtime services. However, even with this option, the
1990 resultant kernel should continue to boot on existing non-EFI
1991 platforms.
1992
1993config EFI_STUB
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---

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

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
1994 bool "EFI stub support"
1995 depends on EFI && !X86_USE_3DNOW
1996 select RELOCATABLE
1997 ---help---
1998 This kernel feature allows a bzImage to be loaded directly
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
1999 by EFI firmware without the use of a bootloader.
2000
2001 See Documentation/admin-guide/efi-stub.rst for more information.
2002
2003config EFI_MIXED
2004 bool "EFI mixed-mode support"
2005 depends on EFI_STUB && X86_64
2006 ---help---

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

2950
2951endmenu
2952
2953
2954config HAVE_ATOMIC_IOMAP
2955 def_bool y
2956 depends on X86_32
2957
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
2958config X86_DEV_DMA_OPS
2959 bool
2960
2961source "drivers/firmware/Kconfig"
2962
2963source "arch/x86/kvm/Kconfig"
2935source "drivers/firmware/Kconfig"
2936
2937source "arch/x86/kvm/Kconfig"