Kconfig (adeab5bfb81840dc4be7ae20324bbf03b2b53eb2) Kconfig (b0b8a15bb89e09e12aa6be8ae28128bb656338f1)
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

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

29 select ARCH_SUPPORTS_INT128 if CC_HAS_INT128
30 select ARCH_SUPPORTS_PER_VMA_LOCK
31 select HAVE_ARCH_SOFT_DIRTY
32 select MODULES_USE_ELF_RELA
33 select NEED_DMA_MAP_STATE
34 select SWIOTLB
35 select ARCH_HAS_ELFCORE_COMPAT
36 select ZONE_DMA32
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

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

29 select ARCH_SUPPORTS_INT128 if CC_HAS_INT128
30 select ARCH_SUPPORTS_PER_VMA_LOCK
31 select HAVE_ARCH_SOFT_DIRTY
32 select MODULES_USE_ELF_RELA
33 select NEED_DMA_MAP_STATE
34 select SWIOTLB
35 select ARCH_HAS_ELFCORE_COMPAT
36 select ZONE_DMA32
37 select EXECMEM if DYNAMIC_FTRACE
37
38config FORCE_DYNAMIC_FTRACE
39 def_bool y
40 depends on X86_32
41 depends on FUNCTION_TRACER
42 select DYNAMIC_FTRACE
43 help
44 We keep the static function tracing (!DYNAMIC_FTRACE) around

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

79 select ARCH_HAS_DEBUG_VM_PGTABLE if !X86_PAE
80 select ARCH_HAS_DEVMEM_IS_ALLOWED
81 select ARCH_HAS_EARLY_DEBUG if KGDB
82 select ARCH_HAS_ELF_RANDOMIZE
83 select ARCH_HAS_FAST_MULTIPLIER
84 select ARCH_HAS_FORTIFY_SOURCE
85 select ARCH_HAS_GCOV_PROFILE_ALL
86 select ARCH_HAS_KCOV if X86_64
38
39config FORCE_DYNAMIC_FTRACE
40 def_bool y
41 depends on X86_32
42 depends on FUNCTION_TRACER
43 select DYNAMIC_FTRACE
44 help
45 We keep the static function tracing (!DYNAMIC_FTRACE) around

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

80 select ARCH_HAS_DEBUG_VM_PGTABLE if !X86_PAE
81 select ARCH_HAS_DEVMEM_IS_ALLOWED
82 select ARCH_HAS_EARLY_DEBUG if KGDB
83 select ARCH_HAS_ELF_RANDOMIZE
84 select ARCH_HAS_FAST_MULTIPLIER
85 select ARCH_HAS_FORTIFY_SOURCE
86 select ARCH_HAS_GCOV_PROFILE_ALL
87 select ARCH_HAS_KCOV if X86_64
88 select ARCH_HAS_KERNEL_FPU_SUPPORT
87 select ARCH_HAS_MEM_ENCRYPT
88 select ARCH_HAS_MEMBARRIER_SYNC_CORE
89 select ARCH_HAS_NMI_SAFE_THIS_CPU_OPS
90 select ARCH_HAS_NON_OVERLAPPING_ADDRESS_SPACE
91 select ARCH_HAS_PMEM_API if X86_64
92 select ARCH_HAS_PTE_DEVMAP if X86_64
93 select ARCH_HAS_PTE_SPECIAL
94 select ARCH_HAS_HW_PTE_YOUNG

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

164 select GENERIC_IRQ_RESERVATION_MODE
165 select GENERIC_IRQ_SHOW
166 select GENERIC_PENDING_IRQ if SMP
167 select GENERIC_PTDUMP
168 select GENERIC_SMP_IDLE_THREAD
169 select GENERIC_TIME_VSYSCALL
170 select GENERIC_GETTIMEOFDAY
171 select GENERIC_VDSO_TIME_NS
89 select ARCH_HAS_MEM_ENCRYPT
90 select ARCH_HAS_MEMBARRIER_SYNC_CORE
91 select ARCH_HAS_NMI_SAFE_THIS_CPU_OPS
92 select ARCH_HAS_NON_OVERLAPPING_ADDRESS_SPACE
93 select ARCH_HAS_PMEM_API if X86_64
94 select ARCH_HAS_PTE_DEVMAP if X86_64
95 select ARCH_HAS_PTE_SPECIAL
96 select ARCH_HAS_HW_PTE_YOUNG

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

166 select GENERIC_IRQ_RESERVATION_MODE
167 select GENERIC_IRQ_SHOW
168 select GENERIC_PENDING_IRQ if SMP
169 select GENERIC_PTDUMP
170 select GENERIC_SMP_IDLE_THREAD
171 select GENERIC_TIME_VSYSCALL
172 select GENERIC_GETTIMEOFDAY
173 select GENERIC_VDSO_TIME_NS
174 select GENERIC_VDSO_OVERFLOW_PROTECT
172 select GUP_GET_PXX_LOW_HIGH if X86_PAE
173 select HARDIRQS_SW_RESEND
174 select HARDLOCKUP_CHECK_TIMESTAMP if X86_64
175 select HAS_IOPORT
176 select HAVE_ACPI_APEI if ACPI
177 select HAVE_ACPI_APEI_NMI if ACPI
178 select HAVE_ALIGNED_STRUCT_PAGE
179 select HAVE_ARCH_AUDITSYSCALL

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

217 select HAVE_DYNAMIC_FTRACE_WITH_ARGS if X86_64
218 select HAVE_DYNAMIC_FTRACE_WITH_DIRECT_CALLS
219 select HAVE_SAMPLE_FTRACE_DIRECT if X86_64
220 select HAVE_SAMPLE_FTRACE_DIRECT_MULTI if X86_64
221 select HAVE_EBPF_JIT
222 select HAVE_EFFICIENT_UNALIGNED_ACCESS
223 select HAVE_EISA
224 select HAVE_EXIT_THREAD
175 select GUP_GET_PXX_LOW_HIGH if X86_PAE
176 select HARDIRQS_SW_RESEND
177 select HARDLOCKUP_CHECK_TIMESTAMP if X86_64
178 select HAS_IOPORT
179 select HAVE_ACPI_APEI if ACPI
180 select HAVE_ACPI_APEI_NMI if ACPI
181 select HAVE_ALIGNED_STRUCT_PAGE
182 select HAVE_ARCH_AUDITSYSCALL

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

220 select HAVE_DYNAMIC_FTRACE_WITH_ARGS if X86_64
221 select HAVE_DYNAMIC_FTRACE_WITH_DIRECT_CALLS
222 select HAVE_SAMPLE_FTRACE_DIRECT if X86_64
223 select HAVE_SAMPLE_FTRACE_DIRECT_MULTI if X86_64
224 select HAVE_EBPF_JIT
225 select HAVE_EFFICIENT_UNALIGNED_ACCESS
226 select HAVE_EISA
227 select HAVE_EXIT_THREAD
225 select HAVE_FAST_GUP
228 select HAVE_GUP_FAST
226 select HAVE_FENTRY if X86_64 || DYNAMIC_FTRACE
227 select HAVE_FTRACE_MCOUNT_RECORD
228 select HAVE_FUNCTION_GRAPH_RETVAL if HAVE_FUNCTION_GRAPH_TRACER
229 select HAVE_FUNCTION_GRAPH_TRACER if X86_32 || (X86_64 && DYNAMIC_FTRACE)
230 select HAVE_FUNCTION_TRACER
231 select HAVE_GCC_PLUGINS
232 select HAVE_HW_BREAKPOINT
233 select HAVE_IOREMAP_PROT

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

460
461 Some Intel systems circa 2022 and later are locked into x2APIC mode
462 and can not fall back to the legacy APIC modes if SGX or TDX are
463 enabled in the BIOS. They will boot with very reduced functionality
464 without enabling this option.
465
466 If you don't know what to do here, say N.
467
229 select HAVE_FENTRY if X86_64 || DYNAMIC_FTRACE
230 select HAVE_FTRACE_MCOUNT_RECORD
231 select HAVE_FUNCTION_GRAPH_RETVAL if HAVE_FUNCTION_GRAPH_TRACER
232 select HAVE_FUNCTION_GRAPH_TRACER if X86_32 || (X86_64 && DYNAMIC_FTRACE)
233 select HAVE_FUNCTION_TRACER
234 select HAVE_GCC_PLUGINS
235 select HAVE_HW_BREAKPOINT
236 select HAVE_IOREMAP_PROT

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

463
464 Some Intel systems circa 2022 and later are locked into x2APIC mode
465 and can not fall back to the legacy APIC modes if SGX or TDX are
466 enabled in the BIOS. They will boot with very reduced functionality
467 without enabling this option.
468
469 If you don't know what to do here, say N.
470
471config X86_POSTED_MSI
472 bool "Enable MSI and MSI-x delivery by posted interrupts"
473 depends on X86_64 && IRQ_REMAP
474 help
475 This enables MSIs that are under interrupt remapping to be delivered as
476 posted interrupts to the host kernel. Interrupt throughput can
477 potentially be improved by coalescing CPU notifications during high
478 frequency bursts.
479
480 If you don't know what to do here, say N.
481
468config X86_MPPARSE
469 bool "Enable MPS table" if ACPI
470 default y
471 depends on X86_LOCAL_APIC
472 help
473 For old smp systems that do not have proper acpi support. Newer systems
474 (esp with 64bit cpus) with acpi support, MADT and DSDT will override it
475

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

496
497config X86_FRED
498 bool "Flexible Return and Event Delivery"
499 depends on X86_64
500 help
501 When enabled, try to use Flexible Return and Event Delivery
502 instead of the legacy SYSCALL/SYSENTER/IDT architecture for
503 ring transitions and exception/interrupt handling if the
482config X86_MPPARSE
483 bool "Enable MPS table" if ACPI
484 default y
485 depends on X86_LOCAL_APIC
486 help
487 For old smp systems that do not have proper acpi support. Newer systems
488 (esp with 64bit cpus) with acpi support, MADT and DSDT will override it
489

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

510
511config X86_FRED
512 bool "Flexible Return and Event Delivery"
513 depends on X86_64
514 help
515 When enabled, try to use Flexible Return and Event Delivery
516 instead of the legacy SYSCALL/SYSENTER/IDT architecture for
517 ring transitions and exception/interrupt handling if the
504 system supports.
518 system supports it.
505
519
506if X86_32
507config X86_BIGSMP
508 bool "Support for big SMP systems with more than 8 CPUs"
520config X86_BIGSMP
521 bool "Support for big SMP systems with more than 8 CPUs"
509 depends on SMP
522 depends on SMP && X86_32
510 help
511 This option is needed for the systems that have more than 8 CPUs.
512
513config X86_EXTENDED_PLATFORM
514 bool "Support for extended (non-PC) x86 platforms"
515 default y
516 help
517 If you disable this option then the kernel will only support
518 standard PC platforms. (which covers the vast majority of
519 systems out there.)
520
521 If you enable this option then you'll be able to select support
523 help
524 This option is needed for the systems that have more than 8 CPUs.
525
526config X86_EXTENDED_PLATFORM
527 bool "Support for extended (non-PC) x86 platforms"
528 default y
529 help
530 If you disable this option then the kernel will only support
531 standard PC platforms. (which covers the vast majority of
532 systems out there.)
533
534 If you enable this option then you'll be able to select support
522 for the following (non-PC) 32 bit x86 platforms:
535 for the following non-PC x86 platforms, depending on the value of
536 CONFIG_64BIT.
537
538 32-bit platforms (CONFIG_64BIT=n):
523 Goldfish (Android emulator)
524 AMD Elan
525 RDC R-321x SoC
526 SGI 320/540 (Visual Workstation)
527 STA2X11-based (e.g. Northville)
528 Moorestown MID devices
529
539 Goldfish (Android emulator)
540 AMD Elan
541 RDC R-321x SoC
542 SGI 320/540 (Visual Workstation)
543 STA2X11-based (e.g. Northville)
544 Moorestown MID devices
545
530 If you have one of these systems, or if you want to build a
531 generic distribution kernel, say Y here - otherwise say N.
532endif # X86_32
533
534if X86_64
535config X86_EXTENDED_PLATFORM
536 bool "Support for extended (non-PC) x86 platforms"
537 default y
538 help
539 If you disable this option then the kernel will only support
540 standard PC platforms. (which covers the vast majority of
541 systems out there.)
542
543 If you enable this option then you'll be able to select support
544 for the following (non-PC) 64 bit x86 platforms:
546 64-bit platforms (CONFIG_64BIT=y):
545 Numascale NumaChip
546 ScaleMP vSMP
547 SGI Ultraviolet
548
549 If you have one of these systems, or if you want to build a
550 generic distribution kernel, say Y here - otherwise say N.
547 Numascale NumaChip
548 ScaleMP vSMP
549 SGI Ultraviolet
550
551 If you have one of these systems, or if you want to build a
552 generic distribution kernel, say Y here - otherwise say N.
551endif # X86_64
553
552# This is an alphabetically sorted list of 64 bit extended platforms
553# Please maintain the alphabetic order if and when there are additions
554config X86_NUMACHIP
555 bool "Numascale NumaChip"
556 depends on X86_64
557 depends on X86_EXTENDED_PLATFORM
558 depends on NUMA
559 depends on SMP

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

2425
2426 Say 'N' unless you want to really enforce this check.
2427
2428source "kernel/livepatch/Kconfig"
2429
2430endmenu
2431
2432config CC_HAS_NAMED_AS
554# This is an alphabetically sorted list of 64 bit extended platforms
555# Please maintain the alphabetic order if and when there are additions
556config X86_NUMACHIP
557 bool "Numascale NumaChip"
558 depends on X86_64
559 depends on X86_EXTENDED_PLATFORM
560 depends on NUMA
561 depends on SMP

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

2427
2428 Say 'N' unless you want to really enforce this check.
2429
2430source "kernel/livepatch/Kconfig"
2431
2432endmenu
2433
2434config CC_HAS_NAMED_AS
2433 def_bool CC_IS_GCC && GCC_VERSION >= 120100
2435 def_bool CC_IS_GCC && GCC_VERSION >= 90100
2434
2436
2437config CC_HAS_NAMED_AS_FIXED_SANITIZERS
2438 def_bool CC_IS_GCC && GCC_VERSION >= 130300
2439
2435config USE_X86_SEG_SUPPORT
2436 def_bool y
2437 depends on CC_HAS_NAMED_AS
2438 #
2440config USE_X86_SEG_SUPPORT
2441 def_bool y
2442 depends on CC_HAS_NAMED_AS
2443 #
2439 # -fsanitize=kernel-address (KASAN) is at the moment incompatible
2440 # with named address spaces - see GCC PR sanitizer/111736.
2444 # -fsanitize=kernel-address (KASAN) and -fsanitize=thread
2445 # (KCSAN) are incompatible with named address spaces with
2446 # GCC < 13.3 - see GCC PR sanitizer/111736.
2441 #
2447 #
2442 depends on !KASAN
2443 # -fsanitize=thread (KCSAN) is also incompatible.
2444 depends on !KCSAN
2448 depends on !(KASAN || KCSAN) || CC_HAS_NAMED_AS_FIXED_SANITIZERS
2445
2446config CC_HAS_SLS
2447 def_bool $(cc-option,-mharden-sls=all)
2448
2449config CC_HAS_RETURN_THUNK
2450 def_bool $(cc-option,-mfunction-return=thunk-extern)
2451
2452config CC_HAS_ENTRY_PADDING

--- 630 unchanged lines hidden ---
2449
2450config CC_HAS_SLS
2451 def_bool $(cc-option,-mharden-sls=all)
2452
2453config CC_HAS_RETURN_THUNK
2454 def_bool $(cc-option,-mfunction-return=thunk-extern)
2455
2456config CC_HAS_ENTRY_PADDING

--- 630 unchanged lines hidden ---