^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1) # SPDX-License-Identifier: GPL-2.0
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2) # Select 32 or 64 bit
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3) config 64BIT
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4) bool "64-bit kernel" if "$(ARCH)" = "x86"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5) default "$(ARCH)" != "i386"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6) help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 7) Say yes to build a 64-bit kernel - formerly known as x86_64
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 8) Say no to build a 32-bit kernel - formerly known as i386
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 9)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 10) config X86_32
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 11) def_bool y
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 12) depends on !64BIT
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 13) # Options that are inherently 32-bit kernel only:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 14) select ARCH_WANT_IPC_PARSE_VERSION
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 15) select CLKSRC_I8253
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 16) select CLONE_BACKWARDS
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 17) select HAVE_DEBUG_STACKOVERFLOW
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 18) select MODULES_USE_ELF_REL
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 19) select OLD_SIGACTION
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 20) select GENERIC_VDSO_32
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 21) select ARCH_SPLIT_ARG64
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 22)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 23) config X86_64
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 24) def_bool y
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 25) depends on 64BIT
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 26) # Options that are inherently 64-bit kernel only:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 27) select ARCH_HAS_GIGANTIC_PAGE
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 28) select ARCH_SUPPORTS_INT128 if CC_HAS_INT128
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 29) select ARCH_SUPPORTS_SPECULATIVE_PAGE_FAULT
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 30) select ARCH_USE_CMPXCHG_LOCKREF
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 31) select HAVE_ARCH_SOFT_DIRTY
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 32) select MODULES_USE_ELF_RELA
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 33) select NEED_DMA_MAP_STATE
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 34) select SWIOTLB
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 35)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 36) config FORCE_DYNAMIC_FTRACE
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 37) def_bool y
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 38) depends on X86_32
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 39) depends on FUNCTION_TRACER
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 40) select DYNAMIC_FTRACE
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 41) help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 42) We keep the static function tracing (!DYNAMIC_FTRACE) around
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 43) in order to test the non static function tracing in the
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 44) generic code, as other architectures still use it. But we
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 45) only need to keep it around for x86_64. No need to keep it
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 46) for x86_32. For x86_32, force DYNAMIC_FTRACE.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 47) #
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 48) # Arch settings
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 49) #
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 50) # ( Note that options that are marked 'if X86_64' could in principle be
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 51) # ported to 32-bit as well. )
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 52) #
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 53) config X86
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 54) def_bool y
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 55) #
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 56) # Note: keep this list sorted alphabetically
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 57) #
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 58) select ACPI_LEGACY_TABLES_LOOKUP if ACPI
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 59) select ACPI_SYSTEM_POWER_STATES_SUPPORT if ACPI
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 60) select ARCH_32BIT_OFF_T if X86_32
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 61) select ARCH_CLOCKSOURCE_INIT
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 62) select ARCH_HAS_ACPI_TABLE_UPGRADE if ACPI
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 63) select ARCH_HAS_DEBUG_VIRTUAL
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 64) select ARCH_HAS_DEBUG_VM_PGTABLE if !X86_PAE
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 65) select ARCH_HAS_DEVMEM_IS_ALLOWED
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 66) select ARCH_HAS_EARLY_DEBUG if KGDB
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 67) select ARCH_HAS_ELF_RANDOMIZE
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 68) select ARCH_HAS_FAST_MULTIPLIER
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 69) select ARCH_HAS_FILTER_PGPROT
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 70) select ARCH_HAS_FORTIFY_SOURCE
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 71) select ARCH_HAS_GCOV_PROFILE_ALL
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 72) select ARCH_HAS_KCOV if X86_64 && STACK_VALIDATION
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 73) select ARCH_HAS_MEM_ENCRYPT
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 74) select ARCH_HAS_MEMBARRIER_SYNC_CORE
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 75) select ARCH_HAS_NON_OVERLAPPING_ADDRESS_SPACE
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 76) select ARCH_HAS_PMEM_API if X86_64
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 77) select ARCH_HAS_PTE_DEVMAP if X86_64
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 78) select ARCH_HAS_PTE_SPECIAL
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 79) select ARCH_HAS_UACCESS_FLUSHCACHE if X86_64
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 80) select ARCH_HAS_COPY_MC if X86_64
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 81) select ARCH_HAS_SET_MEMORY
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 82) select ARCH_HAS_SET_DIRECT_MAP
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 83) select ARCH_HAS_STRICT_KERNEL_RWX
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 84) select ARCH_HAS_STRICT_MODULE_RWX
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 85) select ARCH_HAS_SYNC_CORE_BEFORE_USERMODE
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 86) select ARCH_HAS_SYSCALL_WRAPPER
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 87) select ARCH_HAS_UBSAN_SANITIZE_ALL
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 88) select ARCH_HAS_DEBUG_WX
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 89) select ARCH_HAVE_NMI_SAFE_CMPXCHG
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 90) select ARCH_MIGHT_HAVE_ACPI_PDC if ACPI
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 91) select ARCH_MIGHT_HAVE_PC_PARPORT
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 92) select ARCH_MIGHT_HAVE_PC_SERIO
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 93) select ARCH_STACKWALK
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 94) select ARCH_SUPPORTS_ACPI
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 95) select ARCH_SUPPORTS_ATOMIC_RMW
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 96) select ARCH_SUPPORTS_NUMA_BALANCING if X86_64
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 97) select ARCH_SUPPORTS_LTO_CLANG if X86_64
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 98) select ARCH_SUPPORTS_LTO_CLANG_THIN if X86_64
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 99) select ARCH_USE_BUILTIN_BSWAP
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 100) select ARCH_USE_QUEUED_RWLOCKS
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 101) select ARCH_USE_QUEUED_SPINLOCKS
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 102) select ARCH_USE_SYM_ANNOTATIONS
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 103) select ARCH_WANT_BATCHED_UNMAP_TLB_FLUSH
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 104) select ARCH_WANT_DEFAULT_BPF_JIT if X86_64
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 105) select ARCH_WANTS_DYNAMIC_TASK_STRUCT
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 106) select ARCH_WANT_HUGE_PMD_SHARE
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 107) select ARCH_WANT_LD_ORPHAN_WARN
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 108) select ARCH_WANTS_THP_SWAP if X86_64
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 109) select BUILDTIME_TABLE_SORT
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 110) select CLKEVT_I8253
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 111) select CLOCKSOURCE_VALIDATE_LAST_CYCLE
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 112) select CLOCKSOURCE_WATCHDOG
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 113) select DCACHE_WORD_ACCESS
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 114) select EDAC_ATOMIC_SCRUB
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 115) select EDAC_SUPPORT
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 116) select GENERIC_CLOCKEVENTS
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 117) select GENERIC_CLOCKEVENTS_BROADCAST if X86_64 || (X86_32 && X86_LOCAL_APIC)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 118) select GENERIC_CLOCKEVENTS_MIN_ADJUST
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 119) select GENERIC_CMOS_UPDATE
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 120) select GENERIC_CPU_AUTOPROBE
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 121) select GENERIC_CPU_VULNERABILITIES
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 122) select GENERIC_EARLY_IOREMAP
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 123) select GENERIC_ENTRY
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 124) select GENERIC_FIND_FIRST_BIT
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 125) select GENERIC_IOMAP
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 126) select GENERIC_IRQ_EFFECTIVE_AFF_MASK if SMP
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 127) select GENERIC_IRQ_MATRIX_ALLOCATOR if X86_LOCAL_APIC
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 128) select GENERIC_IRQ_MIGRATION if SMP
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 129) select GENERIC_IRQ_PROBE
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 130) select GENERIC_IRQ_RESERVATION_MODE
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 131) select GENERIC_IRQ_SHOW
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 132) select GENERIC_PENDING_IRQ if SMP
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 133) select GENERIC_PTDUMP
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 134) select GENERIC_SMP_IDLE_THREAD
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 135) select GENERIC_STRNCPY_FROM_USER
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 136) select GENERIC_STRNLEN_USER
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 137) select GENERIC_TIME_VSYSCALL
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 138) select GENERIC_GETTIMEOFDAY
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 139) select GENERIC_VDSO_TIME_NS
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 140) select GUP_GET_PTE_LOW_HIGH if X86_PAE
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 141) select HARDIRQS_SW_RESEND
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 142) select HARDLOCKUP_CHECK_TIMESTAMP if X86_64
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 143) select HAVE_ACPI_APEI if ACPI
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 144) select HAVE_ACPI_APEI_NMI if ACPI
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 145) select HAVE_ALIGNED_STRUCT_PAGE if SLUB
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 146) select HAVE_ARCH_AUDITSYSCALL
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 147) select HAVE_ARCH_HUGE_VMAP if X86_64 || X86_PAE
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 148) select HAVE_ARCH_JUMP_LABEL
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 149) select HAVE_ARCH_JUMP_LABEL_RELATIVE
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 150) select HAVE_ARCH_KASAN if X86_64
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 151) select HAVE_ARCH_KASAN_VMALLOC if X86_64
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 152) select HAVE_ARCH_KFENCE
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 153) select HAVE_ARCH_KGDB
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 154) select HAVE_ARCH_MMAP_RND_BITS if MMU
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 155) select HAVE_ARCH_MMAP_RND_COMPAT_BITS if MMU && COMPAT
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 156) select HAVE_ARCH_COMPAT_MMAP_BASES if MMU && COMPAT
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 157) select HAVE_ARCH_PREL32_RELOCATIONS
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 158) select HAVE_ARCH_SECCOMP_FILTER
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 159) select HAVE_ARCH_THREAD_STRUCT_WHITELIST
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 160) select HAVE_ARCH_STACKLEAK
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 161) select HAVE_ARCH_TRACEHOOK
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 162) select HAVE_ARCH_TRANSPARENT_HUGEPAGE
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 163) select HAVE_ARCH_TRANSPARENT_HUGEPAGE_PUD if X86_64
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 164) select HAVE_ARCH_USERFAULTFD_WP if X86_64 && USERFAULTFD
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 165) select HAVE_ARCH_USERFAULTFD_MINOR if X86_64 && USERFAULTFD
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 166) select HAVE_ARCH_VMAP_STACK if X86_64
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 167) select HAVE_ARCH_WITHIN_STACK_FRAMES
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 168) select HAVE_ASM_MODVERSIONS
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 169) select HAVE_CMPXCHG_DOUBLE
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 170) select HAVE_CMPXCHG_LOCAL
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 171) select HAVE_CONTEXT_TRACKING if X86_64
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 172) select HAVE_C_RECORDMCOUNT
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 173) select HAVE_OBJTOOL_MCOUNT if STACK_VALIDATION
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 174) select HAVE_DEBUG_KMEMLEAK
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 175) select HAVE_DMA_CONTIGUOUS
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 176) select HAVE_DYNAMIC_FTRACE
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 177) select HAVE_DYNAMIC_FTRACE_WITH_REGS
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 178) select HAVE_DYNAMIC_FTRACE_WITH_DIRECT_CALLS
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 179) select HAVE_EBPF_JIT
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 180) select HAVE_EFFICIENT_UNALIGNED_ACCESS
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 181) select HAVE_EISA
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 182) select HAVE_EXIT_THREAD
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 183) select HAVE_FAST_GUP
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 184) select HAVE_FENTRY if X86_64 || DYNAMIC_FTRACE
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 185) select HAVE_FTRACE_MCOUNT_RECORD
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 186) select HAVE_FUNCTION_GRAPH_TRACER
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 187) select HAVE_FUNCTION_TRACER
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 188) select HAVE_GCC_PLUGINS
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 189) select HAVE_HW_BREAKPOINT
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 190) select HAVE_IDE
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 191) select HAVE_IOREMAP_PROT
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 192) select HAVE_IRQ_TIME_ACCOUNTING
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 193) select HAVE_KERNEL_BZIP2
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 194) select HAVE_KERNEL_GZIP
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 195) select HAVE_KERNEL_LZ4
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 196) select HAVE_KERNEL_LZMA
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 197) select HAVE_KERNEL_LZO
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 198) select HAVE_KERNEL_XZ
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 199) select HAVE_KERNEL_ZSTD
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 200) select HAVE_KPROBES
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 201) select HAVE_KPROBES_ON_FTRACE
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 202) select HAVE_FUNCTION_ERROR_INJECTION
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 203) select HAVE_KRETPROBES
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 204) select HAVE_KVM
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 205) select HAVE_LIVEPATCH if X86_64
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 206) select HAVE_MIXED_BREAKPOINTS_REGS
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 207) select HAVE_MOD_ARCH_SPECIFIC
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 208) select HAVE_MOVE_PMD
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 209) select HAVE_MOVE_PUD
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 210) select HAVE_NMI
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 211) select HAVE_OPROFILE
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 212) select HAVE_OPTPROBES
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 213) select HAVE_PCSPKR_PLATFORM
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 214) select HAVE_PERF_EVENTS
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 215) select HAVE_PERF_EVENTS_NMI
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 216) select HAVE_HARDLOCKUP_DETECTOR_PERF if PERF_EVENTS && HAVE_PERF_EVENTS_NMI
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 217) select HAVE_PCI
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 218) select HAVE_PERF_REGS
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 219) select HAVE_PERF_USER_STACK_DUMP
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 220) select MMU_GATHER_RCU_TABLE_FREE if PARAVIRT
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 221) select HAVE_POSIX_CPU_TIMERS_TASK_WORK
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 222) select HAVE_REGS_AND_STACK_ACCESS_API
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 223) select HAVE_RELIABLE_STACKTRACE if X86_64 && (UNWINDER_FRAME_POINTER || UNWINDER_ORC) && STACK_VALIDATION
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 224) select HAVE_FUNCTION_ARG_ACCESS_API
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 225) select HAVE_STACKPROTECTOR if CC_HAS_SANE_STACKPROTECTOR
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 226) select HAVE_STACK_VALIDATION if X86_64
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 227) select HAVE_STATIC_CALL
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 228) select HAVE_STATIC_CALL_INLINE if HAVE_STACK_VALIDATION
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 229) select HAVE_RSEQ
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 230) select HAVE_SYSCALL_TRACEPOINTS
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 231) select HAVE_UNSTABLE_SCHED_CLOCK
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 232) select HAVE_USER_RETURN_NOTIFIER
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 233) select HAVE_GENERIC_VDSO
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 234) select HOTPLUG_SMT if SMP
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 235) select IRQ_FORCED_THREADING
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 236) select NEED_SG_DMA_LENGTH
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 237) select PCI_DOMAINS if PCI
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 238) select PCI_LOCKLESS_CONFIG if PCI
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 239) select PERF_EVENTS
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 240) select RTC_LIB
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 241) select RTC_MC146818_LIB
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 242) select SPARSE_IRQ
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 243) select SRCU
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 244) select STACK_VALIDATION if HAVE_STACK_VALIDATION && (HAVE_STATIC_CALL_INLINE || RETPOLINE)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 245) select SYSCTL_EXCEPTION_TRACE
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 246) select THREAD_INFO_IN_TASK
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 247) select USER_STACKTRACE_SUPPORT
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 248) select VIRT_TO_BUS
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 249) select HAVE_ARCH_KCSAN if X86_64
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 250) select X86_FEATURE_NAMES if PROC_FS
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 251) select PROC_PID_ARCH_STATUS if PROC_FS
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 252) imply IMA_SECURE_AND_OR_TRUSTED_BOOT if EFI
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 253)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 254) config INSTRUCTION_DECODER
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 255) def_bool y
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 256) depends on KPROBES || PERF_EVENTS || UPROBES
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 257)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 258) config OUTPUT_FORMAT
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 259) string
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 260) default "elf32-i386" if X86_32
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 261) default "elf64-x86-64" if X86_64
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 262)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 263) config LOCKDEP_SUPPORT
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 264) def_bool y
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 265)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 266) config STACKTRACE_SUPPORT
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 267) def_bool y
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 268)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 269) config MMU
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 270) def_bool y
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 271)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 272) config ARCH_MMAP_RND_BITS_MIN
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 273) default 28 if 64BIT
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 274) default 8
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 275)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 276) config ARCH_MMAP_RND_BITS_MAX
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 277) default 32 if 64BIT
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 278) default 16
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 279)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 280) config ARCH_MMAP_RND_COMPAT_BITS_MIN
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 281) default 8
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 282)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 283) config ARCH_MMAP_RND_COMPAT_BITS_MAX
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 284) default 16
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 285)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 286) config SBUS
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 287) bool
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 288)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 289) config GENERIC_ISA_DMA
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 290) def_bool y
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 291) depends on ISA_DMA_API
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 292)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 293) config GENERIC_BUG
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 294) def_bool y
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 295) depends on BUG
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 296) select GENERIC_BUG_RELATIVE_POINTERS if X86_64
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 297)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 298) config GENERIC_BUG_RELATIVE_POINTERS
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 299) bool
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 300)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 301) config ARCH_MAY_HAVE_PC_FDC
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 302) def_bool y
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 303) depends on ISA_DMA_API
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 304)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 305) config GENERIC_CALIBRATE_DELAY
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 306) def_bool y
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 307)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 308) config ARCH_HAS_CPU_RELAX
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 309) def_bool y
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 310)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 311) config ARCH_HAS_CACHE_LINE_SIZE
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 312) def_bool y
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 313)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 314) config ARCH_HAS_FILTER_PGPROT
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 315) def_bool y
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 316)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 317) config HAVE_SETUP_PER_CPU_AREA
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 318) def_bool y
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 319)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 320) config NEED_PER_CPU_EMBED_FIRST_CHUNK
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 321) def_bool y
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 322)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 323) config NEED_PER_CPU_PAGE_FIRST_CHUNK
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 324) def_bool y
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 325)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 326) config ARCH_HIBERNATION_POSSIBLE
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 327) def_bool y
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 328)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 329) config ARCH_SUSPEND_POSSIBLE
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 330) def_bool y
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 331)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 332) config ARCH_WANT_GENERAL_HUGETLB
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 333) def_bool y
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 334)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 335) config ZONE_DMA32
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 336) def_bool y if X86_64
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 337)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 338) config AUDIT_ARCH
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 339) def_bool y if X86_64
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 340)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 341) config ARCH_SUPPORTS_DEBUG_PAGEALLOC
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 342) def_bool y
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 343)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 344) config KASAN_SHADOW_OFFSET
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 345) hex
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 346) depends on KASAN
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 347) default 0xdffffc0000000000
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 348)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 349) config HAVE_INTEL_TXT
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 350) def_bool y
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 351) depends on INTEL_IOMMU && ACPI
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 352)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 353) config X86_32_SMP
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 354) def_bool y
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 355) depends on X86_32 && SMP
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 356)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 357) config X86_64_SMP
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 358) def_bool y
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 359) depends on X86_64 && SMP
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 360)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 361) config X86_32_LAZY_GS
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 362) def_bool y
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 363) depends on X86_32 && !STACKPROTECTOR
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 364)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 365) config ARCH_SUPPORTS_UPROBES
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 366) def_bool y
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 367)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 368) config FIX_EARLYCON_MEM
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 369) def_bool y
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 370)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 371) config DYNAMIC_PHYSICAL_MASK
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 372) bool
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 373)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 374) config PGTABLE_LEVELS
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 375) int
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 376) default 5 if X86_5LEVEL
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 377) default 4 if X86_64
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 378) default 3 if X86_PAE
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 379) default 2
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 380)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 381) config CC_HAS_SANE_STACKPROTECTOR
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 382) bool
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 383) default $(success,$(srctree)/scripts/gcc-x86_64-has-stack-protector.sh $(CC)) if 64BIT
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 384) default $(success,$(srctree)/scripts/gcc-x86_32-has-stack-protector.sh $(CC))
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 385) help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 386) We have to make sure stack protector is unconditionally disabled if
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 387) the compiler produces broken code.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 388)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 389) menu "Processor type and features"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 390)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 391) config ZONE_DMA
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 392) bool "DMA memory allocation support" if EXPERT
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 393) default y
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 394) help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 395) DMA memory allocation support allows devices with less than 32-bit
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 396) addressing to allocate within the first 16MB of address space.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 397) Disable if no such devices will be used.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 398)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 399) If unsure, say Y.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 400)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 401) config SMP
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 402) bool "Symmetric multi-processing support"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 403) help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 404) This enables support for systems with more than one CPU. If you have
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 405) a system with only one CPU, say N. If you have a system with more
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 406) than one CPU, say Y.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 407)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 408) If you say N here, the kernel will run on uni- and multiprocessor
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 409) machines, but will use only one CPU of a multiprocessor machine. If
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 410) you say Y here, the kernel will run on many, but not all,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 411) uniprocessor machines. On a uniprocessor machine, the kernel
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 412) will run faster if you say N here.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 413)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 414) Note that if you say Y here and choose architecture "586" or
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 415) "Pentium" under "Processor family", the kernel will not work on 486
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 416) architectures. Similarly, multiprocessor kernels for the "PPro"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 417) architecture may not work on all Pentium based boards.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 418)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 419) People using multiprocessor machines who say Y here should also say
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 420) Y to "Enhanced Real Time Clock Support", below. The "Advanced Power
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 421) Management" code will be disabled if you say Y here.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 422)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 423) See also <file:Documentation/x86/i386/IO-APIC.rst>,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 424) <file:Documentation/admin-guide/lockup-watchdogs.rst> and the SMP-HOWTO available at
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 425) <http://www.tldp.org/docs.html#howto>.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 426)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 427) If you don't know what to do here, say N.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 428)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 429) config X86_FEATURE_NAMES
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 430) bool "Processor feature human-readable names" if EMBEDDED
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 431) default y
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 432) help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 433) This option compiles in a table of x86 feature bits and corresponding
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 434) names. This is required to support /proc/cpuinfo and a few kernel
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 435) messages. You can disable this to save space, at the expense of
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 436) making those few kernel messages show numeric feature bits instead.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 437)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 438) If in doubt, say Y.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 439)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 440) config X86_X2APIC
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 441) bool "Support x2apic"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 442) depends on X86_LOCAL_APIC && X86_64 && (IRQ_REMAP || HYPERVISOR_GUEST)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 443) help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 444) This enables x2apic support on CPUs that have this feature.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 445)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 446) This allows 32-bit apic IDs (so it can support very large systems),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 447) and accesses the local apic via MSRs not via mmio.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 448)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 449) If you don't know what to do here, say N.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 450)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 451) config X86_MPPARSE
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 452) bool "Enable MPS table" if ACPI || SFI
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 453) default y
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 454) depends on X86_LOCAL_APIC
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 455) help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 456) For old smp systems that do not have proper acpi support. Newer systems
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 457) (esp with 64bit cpus) with acpi support, MADT and DSDT will override it
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 458)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 459) config GOLDFISH
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 460) def_bool y
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 461) depends on X86_GOLDFISH
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 462)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 463) config RETPOLINE
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 464) bool "Avoid speculative indirect branches in kernel"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 465) default y
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 466) help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 467) Compile kernel with the retpoline compiler options to guard against
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 468) kernel-to-user data leaks by avoiding speculative indirect
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 469) branches. Requires a compiler with -mindirect-branch=thunk-extern
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 470) support for full protection. The kernel may run slower.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 471)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 472) config X86_CPU_RESCTRL
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 473) bool "x86 CPU resource control support"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 474) depends on X86 && (CPU_SUP_INTEL || CPU_SUP_AMD)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 475) select KERNFS
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 476) select PROC_CPU_RESCTRL if PROC_FS
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 477) help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 478) Enable x86 CPU resource control support.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 479)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 480) Provide support for the allocation and monitoring of system resources
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 481) usage by the CPU.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 482)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 483) Intel calls this Intel Resource Director Technology
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 484) (Intel(R) RDT). More information about RDT can be found in the
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 485) Intel x86 Architecture Software Developer Manual.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 486)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 487) AMD calls this AMD Platform Quality of Service (AMD QoS).
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 488) More information about AMD QoS can be found in the AMD64 Technology
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 489) Platform Quality of Service Extensions manual.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 490)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 491) Say N if unsure.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 492)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 493) if X86_32
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 494) config X86_BIGSMP
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 495) bool "Support for big SMP systems with more than 8 CPUs"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 496) depends on SMP
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 497) help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 498) This option is needed for the systems that have more than 8 CPUs.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 499)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 500) config X86_EXTENDED_PLATFORM
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 501) bool "Support for extended (non-PC) x86 platforms"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 502) default y
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 503) help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 504) If you disable this option then the kernel will only support
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 505) standard PC platforms. (which covers the vast majority of
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 506) systems out there.)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 507)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 508) If you enable this option then you'll be able to select support
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 509) for the following (non-PC) 32 bit x86 platforms:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 510) Goldfish (Android emulator)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 511) AMD Elan
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 512) RDC R-321x SoC
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 513) SGI 320/540 (Visual Workstation)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 514) STA2X11-based (e.g. Northville)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 515) Moorestown MID devices
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 516)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 517) If you have one of these systems, or if you want to build a
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 518) generic distribution kernel, say Y here - otherwise say N.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 519) endif
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 520)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 521) if X86_64
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 522) config X86_EXTENDED_PLATFORM
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 523) bool "Support for extended (non-PC) x86 platforms"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 524) default y
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 525) help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 526) If you disable this option then the kernel will only support
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 527) standard PC platforms. (which covers the vast majority of
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 528) systems out there.)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 529)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 530) If you enable this option then you'll be able to select support
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 531) for the following (non-PC) 64 bit x86 platforms:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 532) Numascale NumaChip
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 533) ScaleMP vSMP
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 534) SGI Ultraviolet
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 535)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 536) If you have one of these systems, or if you want to build a
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 537) generic distribution kernel, say Y here - otherwise say N.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 538) endif
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 539) # This is an alphabetically sorted list of 64 bit extended platforms
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 540) # Please maintain the alphabetic order if and when there are additions
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 541) config X86_NUMACHIP
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 542) bool "Numascale NumaChip"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 543) depends on X86_64
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 544) depends on X86_EXTENDED_PLATFORM
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 545) depends on NUMA
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 546) depends on SMP
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 547) depends on X86_X2APIC
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 548) depends on PCI_MMCONFIG
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 549) help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 550) Adds support for Numascale NumaChip large-SMP systems. Needed to
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 551) enable more than ~168 cores.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 552) If you don't have one of these, you should say N here.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 553)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 554) config X86_VSMP
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 555) bool "ScaleMP vSMP"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 556) select HYPERVISOR_GUEST
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 557) select PARAVIRT
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 558) depends on X86_64 && PCI
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 559) depends on X86_EXTENDED_PLATFORM
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 560) depends on SMP
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 561) help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 562) Support for ScaleMP vSMP systems. Say 'Y' here if this kernel is
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 563) supposed to run on these EM64T-based machines. Only choose this option
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 564) if you have one of these machines.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 565)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 566) config X86_UV
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 567) bool "SGI Ultraviolet"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 568) depends on X86_64
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 569) depends on X86_EXTENDED_PLATFORM
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 570) depends on NUMA
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 571) depends on EFI
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 572) depends on KEXEC_CORE
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 573) depends on X86_X2APIC
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 574) depends on PCI
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 575) help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 576) This option is needed in order to support SGI Ultraviolet systems.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 577) If you don't have one of these, you should say N here.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 578)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 579) # Following is an alphabetically sorted list of 32 bit extended platforms
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 580) # Please maintain the alphabetic order if and when there are additions
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 581)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 582) config X86_GOLDFISH
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 583) bool "Goldfish (Virtual Platform)"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 584) depends on X86_EXTENDED_PLATFORM
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 585) help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 586) Enable support for the Goldfish virtual platform used primarily
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 587) for Android development. Unless you are building for the Android
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 588) Goldfish emulator say N here.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 589)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 590) config X86_INTEL_CE
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 591) bool "CE4100 TV platform"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 592) depends on PCI
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 593) depends on PCI_GODIRECT
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 594) depends on X86_IO_APIC
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 595) depends on X86_32
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 596) depends on X86_EXTENDED_PLATFORM
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 597) select X86_REBOOTFIXUPS
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 598) select OF
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 599) select OF_EARLY_FLATTREE
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 600) help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 601) Select for the Intel CE media processor (CE4100) SOC.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 602) This option compiles in support for the CE4100 SOC for settop
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 603) boxes and media devices.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 604)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 605) config X86_INTEL_MID
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 606) bool "Intel MID platform support"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 607) depends on X86_EXTENDED_PLATFORM
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 608) depends on X86_PLATFORM_DEVICES
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 609) depends on PCI
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 610) depends on X86_64 || (PCI_GOANY && X86_32)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 611) depends on X86_IO_APIC
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 612) select SFI
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 613) select I2C
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 614) select DW_APB_TIMER
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 615) select APB_TIMER
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 616) select INTEL_SCU_PCI
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 617) select MFD_INTEL_MSIC
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 618) help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 619) Select to build a kernel capable of supporting Intel MID (Mobile
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 620) Internet Device) platform systems which do not have the PCI legacy
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 621) interfaces. If you are building for a PC class system say N here.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 622)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 623) Intel MID platforms are based on an Intel processor and chipset which
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 624) consume less power than most of the x86 derivatives.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 625)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 626) config X86_INTEL_QUARK
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 627) bool "Intel Quark platform support"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 628) depends on X86_32
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 629) depends on X86_EXTENDED_PLATFORM
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 630) depends on X86_PLATFORM_DEVICES
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 631) depends on X86_TSC
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 632) depends on PCI
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 633) depends on PCI_GOANY
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 634) depends on X86_IO_APIC
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 635) select IOSF_MBI
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 636) select INTEL_IMR
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 637) select COMMON_CLK
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 638) help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 639) Select to include support for Quark X1000 SoC.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 640) Say Y here if you have a Quark based system such as the Arduino
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 641) compatible Intel Galileo.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 642)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 643) config X86_INTEL_LPSS
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 644) bool "Intel Low Power Subsystem Support"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 645) depends on X86 && ACPI && PCI
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 646) select COMMON_CLK
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 647) select PINCTRL
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 648) select IOSF_MBI
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 649) help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 650) Select to build support for Intel Low Power Subsystem such as
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 651) found on Intel Lynxpoint PCH. Selecting this option enables
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 652) things like clock tree (common clock framework) and pincontrol
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 653) which are needed by the LPSS peripheral drivers.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 654)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 655) config X86_AMD_PLATFORM_DEVICE
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 656) bool "AMD ACPI2Platform devices support"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 657) depends on ACPI
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 658) select COMMON_CLK
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 659) select PINCTRL
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 660) help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 661) Select to interpret AMD specific ACPI device to platform device
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 662) such as I2C, UART, GPIO found on AMD Carrizo and later chipsets.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 663) I2C and UART depend on COMMON_CLK to set clock. GPIO driver is
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 664) implemented under PINCTRL subsystem.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 665)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 666) config IOSF_MBI
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 667) tristate "Intel SoC IOSF Sideband support for SoC platforms"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 668) depends on PCI
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 669) help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 670) This option enables sideband register access support for Intel SoC
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 671) platforms. On these platforms the IOSF sideband is used in lieu of
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 672) MSR's for some register accesses, mostly but not limited to thermal
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 673) and power. Drivers may query the availability of this device to
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 674) determine if they need the sideband in order to work on these
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 675) platforms. The sideband is available on the following SoC products.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 676) This list is not meant to be exclusive.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 677) - BayTrail
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 678) - Braswell
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 679) - Quark
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 680)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 681) You should say Y if you are running a kernel on one of these SoC's.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 682)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 683) config IOSF_MBI_DEBUG
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 684) bool "Enable IOSF sideband access through debugfs"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 685) depends on IOSF_MBI && DEBUG_FS
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 686) help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 687) Select this option to expose the IOSF sideband access registers (MCR,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 688) MDR, MCRX) through debugfs to write and read register information from
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 689) different units on the SoC. This is most useful for obtaining device
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 690) state information for debug and analysis. As this is a general access
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 691) mechanism, users of this option would have specific knowledge of the
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 692) device they want to access.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 693)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 694) If you don't require the option or are in doubt, say N.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 695)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 696) config X86_RDC321X
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 697) bool "RDC R-321x SoC"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 698) depends on X86_32
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 699) depends on X86_EXTENDED_PLATFORM
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 700) select M486
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 701) select X86_REBOOTFIXUPS
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 702) help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 703) This option is needed for RDC R-321x system-on-chip, also known
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 704) as R-8610-(G).
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 705) If you don't have one of these chips, you should say N here.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 706)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 707) config X86_32_NON_STANDARD
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 708) bool "Support non-standard 32-bit SMP architectures"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 709) depends on X86_32 && SMP
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 710) depends on X86_EXTENDED_PLATFORM
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 711) help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 712) This option compiles in the bigsmp and STA2X11 default
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 713) subarchitectures. It is intended for a generic binary
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 714) kernel. If you select them all, kernel will probe it one by
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 715) one and will fallback to default.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 716)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 717) # Alphabetically sorted list of Non standard 32 bit platforms
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 718)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 719) config X86_SUPPORTS_MEMORY_FAILURE
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 720) def_bool y
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 721) # MCE code calls memory_failure():
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 722) depends on X86_MCE
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 723) # On 32-bit this adds too big of NODES_SHIFT and we run out of page flags:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 724) # On 32-bit SPARSEMEM adds too big of SECTIONS_WIDTH:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 725) depends on X86_64 || !SPARSEMEM
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 726) select ARCH_SUPPORTS_MEMORY_FAILURE
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 727)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 728) config STA2X11
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 729) bool "STA2X11 Companion Chip Support"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 730) depends on X86_32_NON_STANDARD && PCI
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 731) select SWIOTLB
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 732) select MFD_STA2X11
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 733) select GPIOLIB
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 734) help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 735) This adds support for boards based on the STA2X11 IO-Hub,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 736) a.k.a. "ConneXt". The chip is used in place of the standard
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 737) PC chipset, so all "standard" peripherals are missing. If this
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 738) option is selected the kernel will still be able to boot on
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 739) standard PC machines.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 740)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 741) config X86_32_IRIS
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 742) tristate "Eurobraille/Iris poweroff module"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 743) depends on X86_32
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 744) help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 745) The Iris machines from EuroBraille do not have APM or ACPI support
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 746) to shut themselves down properly. A special I/O sequence is
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 747) needed to do so, which is what this module does at
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 748) kernel shutdown.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 749)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 750) This is only for Iris machines from EuroBraille.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 751)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 752) If unused, say N.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 753)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 754) config SCHED_OMIT_FRAME_POINTER
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 755) def_bool y
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 756) prompt "Single-depth WCHAN output"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 757) depends on X86
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 758) help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 759) Calculate simpler /proc/<PID>/wchan values. If this option
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 760) is disabled then wchan values will recurse back to the
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 761) caller function. This provides more accurate wchan values,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 762) at the expense of slightly more scheduling overhead.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 763)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 764) If in doubt, say "Y".
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 765)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 766) menuconfig HYPERVISOR_GUEST
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 767) bool "Linux guest support"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 768) help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 769) Say Y here to enable options for running Linux under various hyper-
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 770) visors. This option enables basic hypervisor detection and platform
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 771) setup.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 772)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 773) If you say N, all options in this submenu will be skipped and
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 774) disabled, and Linux guest support won't be built in.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 775)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 776) if HYPERVISOR_GUEST
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 777)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 778) config PARAVIRT
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 779) bool "Enable paravirtualization code"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 780) help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 781) This changes the kernel so it can modify itself when it is run
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 782) under a hypervisor, potentially improving performance significantly
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 783) over full virtualization. However, when run without a hypervisor
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 784) the kernel is theoretically slower and slightly larger.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 785)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 786) config PARAVIRT_XXL
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 787) bool
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 788)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 789) config PARAVIRT_DEBUG
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 790) bool "paravirt-ops debugging"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 791) depends on PARAVIRT && DEBUG_KERNEL
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 792) help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 793) Enable to debug paravirt_ops internals. Specifically, BUG if
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 794) a paravirt_op is missing when it is called.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 795)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 796) config PARAVIRT_SPINLOCKS
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 797) bool "Paravirtualization layer for spinlocks"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 798) depends on PARAVIRT && SMP
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 799) help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 800) Paravirtualized spinlocks allow a pvops backend to replace the
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 801) spinlock implementation with something virtualization-friendly
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 802) (for example, block the virtual CPU rather than spinning).
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 803)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 804) It has a minimal impact on native kernels and gives a nice performance
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 805) benefit on paravirtualized KVM / Xen kernels.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 806)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 807) If you are unsure how to answer this question, answer Y.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 808)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 809) config X86_HV_CALLBACK_VECTOR
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 810) def_bool n
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 811)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 812) source "arch/x86/xen/Kconfig"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 813)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 814) config KVM_GUEST
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 815) bool "KVM Guest support (including kvmclock)"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 816) depends on PARAVIRT
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 817) select PARAVIRT_CLOCK
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 818) select ARCH_CPUIDLE_HALTPOLL
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 819) select X86_HV_CALLBACK_VECTOR
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 820) default y
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 821) help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 822) This option enables various optimizations for running under the KVM
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 823) hypervisor. It includes a paravirtualized clock, so that instead
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 824) of relying on a PIT (or probably other) emulation by the
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 825) underlying device model, the host provides the guest with
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 826) timing infrastructure such as time of day, and system time
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 827)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 828) config ARCH_CPUIDLE_HALTPOLL
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 829) def_bool n
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 830) prompt "Disable host haltpoll when loading haltpoll driver"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 831) help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 832) If virtualized under KVM, disable host haltpoll.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 833)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 834) config PVH
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 835) bool "Support for running PVH guests"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 836) help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 837) This option enables the PVH entry point for guest virtual machines
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 838) as specified in the x86/HVM direct boot ABI.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 839)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 840) config PARAVIRT_TIME_ACCOUNTING
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 841) bool "Paravirtual steal time accounting"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 842) depends on PARAVIRT
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 843) help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 844) Select this option to enable fine granularity task steal time
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 845) accounting. Time spent executing other tasks in parallel with
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 846) the current vCPU is discounted from the vCPU power. To account for
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 847) that, there can be a small performance impact.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 848)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 849) If in doubt, say N here.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 850)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 851) config PARAVIRT_CLOCK
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 852) bool
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 853)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 854) config JAILHOUSE_GUEST
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 855) bool "Jailhouse non-root cell support"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 856) depends on X86_64 && PCI
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 857) select X86_PM_TIMER
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 858) help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 859) This option allows to run Linux as guest in a Jailhouse non-root
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 860) cell. You can leave this option disabled if you only want to start
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 861) Jailhouse and run Linux afterwards in the root cell.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 862)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 863) config ACRN_GUEST
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 864) bool "ACRN Guest support"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 865) depends on X86_64
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 866) select X86_HV_CALLBACK_VECTOR
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 867) help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 868) This option allows to run Linux as guest in the ACRN hypervisor. ACRN is
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 869) a flexible, lightweight reference open-source hypervisor, built with
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 870) real-time and safety-criticality in mind. It is built for embedded
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 871) IOT with small footprint and real-time features. More details can be
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 872) found in https://projectacrn.org/.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 873)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 874) endif #HYPERVISOR_GUEST
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 875)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 876) source "arch/x86/Kconfig.cpu"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 877)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 878) config HPET_TIMER
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 879) def_bool X86_64
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 880) prompt "HPET Timer Support" if X86_32
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 881) help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 882) Use the IA-PC HPET (High Precision Event Timer) to manage
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 883) time in preference to the PIT and RTC, if a HPET is
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 884) present.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 885) HPET is the next generation timer replacing legacy 8254s.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 886) The HPET provides a stable time base on SMP
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 887) systems, unlike the TSC, but it is more expensive to access,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 888) as it is off-chip. The interface used is documented
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 889) in the HPET spec, revision 1.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 890)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 891) You can safely choose Y here. However, HPET will only be
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 892) activated if the platform and the BIOS support this feature.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 893) Otherwise the 8254 will be used for timing services.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 894)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 895) Choose N to continue using the legacy 8254 timer.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 896)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 897) config HPET_EMULATE_RTC
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 898) def_bool y
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 899) depends on HPET_TIMER && (RTC=y || RTC=m || RTC_DRV_CMOS=m || RTC_DRV_CMOS=y)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 900)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 901) config APB_TIMER
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 902) def_bool y if X86_INTEL_MID
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 903) prompt "Intel MID APB Timer Support" if X86_INTEL_MID
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 904) select DW_APB_TIMER
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 905) depends on X86_INTEL_MID && SFI
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 906) help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 907) APB timer is the replacement for 8254, HPET on X86 MID platforms.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 908) The APBT provides a stable time base on SMP
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 909) systems, unlike the TSC, but it is more expensive to access,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 910) as it is off-chip. APB timers are always running regardless of CPU
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 911) C states, they are used as per CPU clockevent device when possible.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 912)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 913) # Mark as expert because too many people got it wrong.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 914) # The code disables itself when not needed.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 915) config DMI
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 916) default y
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 917) select DMI_SCAN_MACHINE_NON_EFI_FALLBACK
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 918) bool "Enable DMI scanning" if EXPERT
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 919) help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 920) Enabled scanning of DMI to identify machine quirks. Say Y
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 921) here unless you have verified that your setup is not
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 922) affected by entries in the DMI blacklist. Required by PNP
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 923) BIOS code.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 924)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 925) config GART_IOMMU
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 926) bool "Old AMD GART IOMMU support"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 927) select DMA_OPS
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 928) select IOMMU_HELPER
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 929) select SWIOTLB
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 930) depends on X86_64 && PCI && AMD_NB
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 931) help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 932) Provides a driver for older AMD Athlon64/Opteron/Turion/Sempron
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 933) GART based hardware IOMMUs.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 934)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 935) The GART supports full DMA access for devices with 32-bit access
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 936) limitations, on systems with more than 3 GB. This is usually needed
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 937) for USB, sound, many IDE/SATA chipsets and some other devices.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 938)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 939) Newer systems typically have a modern AMD IOMMU, supported via
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 940) the CONFIG_AMD_IOMMU=y config option.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 941)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 942) In normal configurations this driver is only active when needed:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 943) there's more than 3 GB of memory and the system contains a
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 944) 32-bit limited device.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 945)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 946) If unsure, say Y.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 947)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 948) config MAXSMP
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 949) bool "Enable Maximum number of SMP Processors and NUMA Nodes"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 950) depends on X86_64 && SMP && DEBUG_KERNEL
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 951) select CPUMASK_OFFSTACK
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 952) help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 953) Enable maximum number of CPUS and NUMA Nodes for this architecture.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 954) If unsure, say N.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 955)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 956) #
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 957) # The maximum number of CPUs supported:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 958) #
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 959) # The main config value is NR_CPUS, which defaults to NR_CPUS_DEFAULT,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 960) # and which can be configured interactively in the
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 961) # [NR_CPUS_RANGE_BEGIN ... NR_CPUS_RANGE_END] range.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 962) #
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 963) # The ranges are different on 32-bit and 64-bit kernels, depending on
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 964) # hardware capabilities and scalability features of the kernel.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 965) #
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 966) # ( If MAXSMP is enabled we just use the highest possible value and disable
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 967) # interactive configuration. )
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 968) #
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 969)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 970) config NR_CPUS_RANGE_BEGIN
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 971) int
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 972) default NR_CPUS_RANGE_END if MAXSMP
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 973) default 1 if !SMP
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 974) default 2
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 975)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 976) config NR_CPUS_RANGE_END
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 977) int
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 978) depends on X86_32
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 979) default 64 if SMP && X86_BIGSMP
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 980) default 8 if SMP && !X86_BIGSMP
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 981) default 1 if !SMP
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 982)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 983) config NR_CPUS_RANGE_END
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 984) int
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 985) depends on X86_64
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 986) default 8192 if SMP && CPUMASK_OFFSTACK
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 987) default 512 if SMP && !CPUMASK_OFFSTACK
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 988) default 1 if !SMP
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 989)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 990) config NR_CPUS_DEFAULT
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 991) int
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 992) depends on X86_32
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 993) default 32 if X86_BIGSMP
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 994) default 8 if SMP
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 995) default 1 if !SMP
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 996)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 997) config NR_CPUS_DEFAULT
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 998) int
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 999) depends on X86_64
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1000) default 8192 if MAXSMP
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1001) default 64 if SMP
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1002) default 1 if !SMP
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1003)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1004) config NR_CPUS
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1005) int "Maximum number of CPUs" if SMP && !MAXSMP
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1006) range NR_CPUS_RANGE_BEGIN NR_CPUS_RANGE_END
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1007) default NR_CPUS_DEFAULT
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1008) help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1009) This allows you to specify the maximum number of CPUs which this
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1010) kernel will support. If CPUMASK_OFFSTACK is enabled, the maximum
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1011) supported value is 8192, otherwise the maximum value is 512. The
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1012) minimum value which makes sense is 2.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1013)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1014) This is purely to save memory: each supported CPU adds about 8KB
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1015) to the kernel image.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1016)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1017) config SCHED_SMT
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1018) def_bool y if SMP
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1019)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1020) config SCHED_MC
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1021) def_bool y
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1022) prompt "Multi-core scheduler support"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1023) depends on SMP
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1024) help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1025) Multi-core scheduler support improves the CPU scheduler's decision
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1026) making when dealing with multi-core CPU chips at a cost of slightly
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1027) increased overhead in some places. If unsure say N here.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1028)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1029) config SCHED_MC_PRIO
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1030) bool "CPU core priorities scheduler support"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1031) depends on SCHED_MC && CPU_SUP_INTEL
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1032) select X86_INTEL_PSTATE
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1033) select CPU_FREQ
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1034) default y
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1035) help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1036) Intel Turbo Boost Max Technology 3.0 enabled CPUs have a
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1037) core ordering determined at manufacturing time, which allows
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1038) certain cores to reach higher turbo frequencies (when running
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1039) single threaded workloads) than others.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1040)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1041) Enabling this kernel feature teaches the scheduler about
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1042) the TBM3 (aka ITMT) priority order of the CPU cores and adjusts the
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1043) scheduler's CPU selection logic accordingly, so that higher
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1044) overall system performance can be achieved.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1045)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1046) This feature will have no effect on CPUs without this feature.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1047)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1048) If unsure say Y here.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1049)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1050) config UP_LATE_INIT
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1051) def_bool y
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1052) depends on !SMP && X86_LOCAL_APIC
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1053)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1054) config X86_UP_APIC
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1055) bool "Local APIC support on uniprocessors" if !PCI_MSI
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1056) default PCI_MSI
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1057) depends on X86_32 && !SMP && !X86_32_NON_STANDARD
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1058) help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1059) A local APIC (Advanced Programmable Interrupt Controller) is an
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1060) integrated interrupt controller in the CPU. If you have a single-CPU
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1061) system which has a processor with a local APIC, you can say Y here to
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1062) enable and use it. If you say Y here even though your machine doesn't
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1063) have a local APIC, then the kernel will still run with no slowdown at
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1064) all. The local APIC supports CPU-generated self-interrupts (timer,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1065) performance counters), and the NMI watchdog which detects hard
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1066) lockups.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1067)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1068) config X86_UP_IOAPIC
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1069) bool "IO-APIC support on uniprocessors"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1070) depends on X86_UP_APIC
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1071) help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1072) An IO-APIC (I/O Advanced Programmable Interrupt Controller) is an
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1073) SMP-capable replacement for PC-style interrupt controllers. Most
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1074) SMP systems and many recent uniprocessor systems have one.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1075)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1076) If you have a single-CPU system with an IO-APIC, you can say Y here
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1077) to use it. If you say Y here even though your machine doesn't have
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1078) an IO-APIC, then the kernel will still run with no slowdown at all.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1079)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1080) config X86_LOCAL_APIC
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1081) def_bool y
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1082) depends on X86_64 || SMP || X86_32_NON_STANDARD || X86_UP_APIC || PCI_MSI
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1083) select IRQ_DOMAIN_HIERARCHY
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1084) select PCI_MSI_IRQ_DOMAIN if PCI_MSI
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1085)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1086) config X86_IO_APIC
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1087) def_bool y
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1088) depends on X86_LOCAL_APIC || X86_UP_IOAPIC
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1089)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1090) config X86_REROUTE_FOR_BROKEN_BOOT_IRQS
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1091) bool "Reroute for broken boot IRQs"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1092) depends on X86_IO_APIC
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1093) help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1094) This option enables a workaround that fixes a source of
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1095) spurious interrupts. This is recommended when threaded
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1096) interrupt handling is used on systems where the generation of
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1097) superfluous "boot interrupts" cannot be disabled.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1098)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1099) Some chipsets generate a legacy INTx "boot IRQ" when the IRQ
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1100) entry in the chipset's IO-APIC is masked (as, e.g. the RT
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1101) kernel does during interrupt handling). On chipsets where this
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1102) boot IRQ generation cannot be disabled, this workaround keeps
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1103) the original IRQ line masked so that only the equivalent "boot
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1104) IRQ" is delivered to the CPUs. The workaround also tells the
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1105) kernel to set up the IRQ handler on the boot IRQ line. In this
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1106) way only one interrupt is delivered to the kernel. Otherwise
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1107) the spurious second interrupt may cause the kernel to bring
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1108) down (vital) interrupt lines.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1109)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1110) Only affects "broken" chipsets. Interrupt sharing may be
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1111) increased on these systems.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1112)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1113) config X86_MCE
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1114) bool "Machine Check / overheating reporting"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1115) select GENERIC_ALLOCATOR
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1116) default y
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1117) help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1118) Machine Check support allows the processor to notify the
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1119) kernel if it detects a problem (e.g. overheating, data corruption).
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1120) The action the kernel takes depends on the severity of the problem,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1121) ranging from warning messages to halting the machine.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1122)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1123) config X86_MCELOG_LEGACY
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1124) bool "Support for deprecated /dev/mcelog character device"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1125) depends on X86_MCE
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1126) help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1127) Enable support for /dev/mcelog which is needed by the old mcelog
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1128) userspace logging daemon. Consider switching to the new generation
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1129) rasdaemon solution.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1130)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1131) config X86_MCE_INTEL
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1132) def_bool y
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1133) prompt "Intel MCE features"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1134) depends on X86_MCE && X86_LOCAL_APIC
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1135) help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1136) Additional support for intel specific MCE features such as
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1137) the thermal monitor.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1138)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1139) config X86_MCE_AMD
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1140) def_bool y
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1141) prompt "AMD MCE features"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1142) depends on X86_MCE && X86_LOCAL_APIC && AMD_NB
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1143) help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1144) Additional support for AMD specific MCE features such as
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1145) the DRAM Error Threshold.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1146)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1147) config X86_ANCIENT_MCE
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1148) bool "Support for old Pentium 5 / WinChip machine checks"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1149) depends on X86_32 && X86_MCE
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1150) help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1151) Include support for machine check handling on old Pentium 5 or WinChip
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1152) systems. These typically need to be enabled explicitly on the command
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1153) line.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1154)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1155) config X86_MCE_THRESHOLD
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1156) depends on X86_MCE_AMD || X86_MCE_INTEL
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1157) def_bool y
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1158)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1159) config X86_MCE_INJECT
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1160) depends on X86_MCE && X86_LOCAL_APIC && DEBUG_FS
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1161) tristate "Machine check injector support"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1162) help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1163) Provide support for injecting machine checks for testing purposes.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1164) If you don't know what a machine check is and you don't do kernel
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1165) QA it is safe to say n.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1166)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1167) config X86_THERMAL_VECTOR
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1168) def_bool y
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1169) depends on X86_MCE_INTEL
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1170)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1171) source "arch/x86/events/Kconfig"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1172)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1173) config X86_LEGACY_VM86
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1174) bool "Legacy VM86 support"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1175) depends on X86_32
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1176) help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1177) This option allows user programs to put the CPU into V8086
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1178) mode, which is an 80286-era approximation of 16-bit real mode.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1179)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1180) Some very old versions of X and/or vbetool require this option
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1181) for user mode setting. Similarly, DOSEMU will use it if
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1182) available to accelerate real mode DOS programs. However, any
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1183) recent version of DOSEMU, X, or vbetool should be fully
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1184) functional even without kernel VM86 support, as they will all
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1185) fall back to software emulation. Nevertheless, if you are using
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1186) a 16-bit DOS program where 16-bit performance matters, vm86
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1187) mode might be faster than emulation and you might want to
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1188) enable this option.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1189)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1190) Note that any app that works on a 64-bit kernel is unlikely to
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1191) need this option, as 64-bit kernels don't, and can't, support
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1192) V8086 mode. This option is also unrelated to 16-bit protected
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1193) mode and is not needed to run most 16-bit programs under Wine.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1194)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1195) Enabling this option increases the complexity of the kernel
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1196) and slows down exception handling a tiny bit.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1197)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1198) If unsure, say N here.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1199)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1200) config VM86
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1201) bool
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1202) default X86_LEGACY_VM86
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1203)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1204) config X86_16BIT
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1205) bool "Enable support for 16-bit segments" if EXPERT
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1206) default y
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1207) depends on MODIFY_LDT_SYSCALL
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1208) help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1209) This option is required by programs like Wine to run 16-bit
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1210) protected mode legacy code on x86 processors. Disabling
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1211) this option saves about 300 bytes on i386, or around 6K text
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1212) plus 16K runtime memory on x86-64,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1213)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1214) config X86_ESPFIX32
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1215) def_bool y
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1216) depends on X86_16BIT && X86_32
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1217)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1218) config X86_ESPFIX64
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1219) def_bool y
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1220) depends on X86_16BIT && X86_64
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1221)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1222) config X86_VSYSCALL_EMULATION
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1223) bool "Enable vsyscall emulation" if EXPERT
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1224) default y
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1225) depends on X86_64
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1226) help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1227) This enables emulation of the legacy vsyscall page. Disabling
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1228) it is roughly equivalent to booting with vsyscall=none, except
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1229) that it will also disable the helpful warning if a program
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1230) tries to use a vsyscall. With this option set to N, offending
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1231) programs will just segfault, citing addresses of the form
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1232) 0xffffffffff600?00.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1233)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1234) This option is required by many programs built before 2013, and
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1235) care should be used even with newer programs if set to N.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1236)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1237) Disabling this option saves about 7K of kernel size and
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1238) possibly 4K of additional runtime pagetable memory.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1239)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1240) config X86_IOPL_IOPERM
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1241) bool "IOPERM and IOPL Emulation"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1242) default y
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1243) help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1244) This enables the ioperm() and iopl() syscalls which are necessary
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1245) for legacy applications.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1246)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1247) Legacy IOPL support is an overbroad mechanism which allows user
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1248) space aside of accessing all 65536 I/O ports also to disable
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1249) interrupts. To gain this access the caller needs CAP_SYS_RAWIO
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1250) capabilities and permission from potentially active security
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1251) modules.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1252)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1253) The emulation restricts the functionality of the syscall to
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1254) only allowing the full range I/O port access, but prevents the
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1255) ability to disable interrupts from user space which would be
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1256) granted if the hardware IOPL mechanism would be used.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1257)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1258) config TOSHIBA
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1259) tristate "Toshiba Laptop support"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1260) depends on X86_32
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1261) help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1262) This adds a driver to safely access the System Management Mode of
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1263) the CPU on Toshiba portables with a genuine Toshiba BIOS. It does
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1264) not work on models with a Phoenix BIOS. The System Management Mode
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1265) is used to set the BIOS and power saving options on Toshiba portables.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1266)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1267) For information on utilities to make use of this driver see the
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1268) Toshiba Linux utilities web site at:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1269) <http://www.buzzard.org.uk/toshiba/>.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1270)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1271) Say Y if you intend to run this kernel on a Toshiba portable.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1272) Say N otherwise.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1273)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1274) config I8K
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1275) tristate "Dell i8k legacy laptop support"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1276) depends on HWMON
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1277) depends on PROC_FS
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1278) select SENSORS_DELL_SMM
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1279) help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1280) This option enables legacy /proc/i8k userspace interface in hwmon
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1281) dell-smm-hwmon driver. Character file /proc/i8k reports bios version,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1282) temperature and allows controlling fan speeds of Dell laptops via
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1283) System Management Mode. For old Dell laptops (like Dell Inspiron 8000)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1284) it reports also power and hotkey status. For fan speed control is
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1285) needed userspace package i8kutils.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1286)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1287) Say Y if you intend to run this kernel on old Dell laptops or want to
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1288) use userspace package i8kutils.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1289) Say N otherwise.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1290)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1291) config X86_REBOOTFIXUPS
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1292) bool "Enable X86 board specific fixups for reboot"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1293) depends on X86_32
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1294) help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1295) This enables chipset and/or board specific fixups to be done
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1296) in order to get reboot to work correctly. This is only needed on
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1297) some combinations of hardware and BIOS. The symptom, for which
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1298) this config is intended, is when reboot ends with a stalled/hung
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1299) system.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1300)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1301) Currently, the only fixup is for the Geode machines using
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1302) CS5530A and CS5536 chipsets and the RDC R-321x SoC.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1303)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1304) Say Y if you want to enable the fixup. Currently, it's safe to
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1305) enable this option even if you don't need it.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1306) Say N otherwise.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1307)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1308) config MICROCODE
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1309) bool "CPU microcode loading support"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1310) default y
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1311) depends on CPU_SUP_AMD || CPU_SUP_INTEL
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1312) help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1313) If you say Y here, you will be able to update the microcode on
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1314) Intel and AMD processors. The Intel support is for the IA32 family,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1315) e.g. Pentium Pro, Pentium II, Pentium III, Pentium 4, Xeon etc. The
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1316) AMD support is for families 0x10 and later. You will obviously need
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1317) the actual microcode binary data itself which is not shipped with
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1318) the Linux kernel.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1319)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1320) The preferred method to load microcode from a detached initrd is described
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1321) in Documentation/x86/microcode.rst. For that you need to enable
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1322) CONFIG_BLK_DEV_INITRD in order for the loader to be able to scan the
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1323) initrd for microcode blobs.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1324)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1325) In addition, you can build the microcode into the kernel. For that you
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1326) need to add the vendor-supplied microcode to the CONFIG_EXTRA_FIRMWARE
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1327) config option.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1328)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1329) config MICROCODE_INTEL
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1330) bool "Intel microcode loading support"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1331) depends on MICROCODE
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1332) default MICROCODE
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1333) help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1334) This options enables microcode patch loading support for Intel
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1335) processors.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1336)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1337) For the current Intel microcode data package go to
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1338) <https://downloadcenter.intel.com> and search for
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1339) 'Linux Processor Microcode Data File'.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1340)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1341) config MICROCODE_AMD
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1342) bool "AMD microcode loading support"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1343) depends on MICROCODE
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1344) help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1345) If you select this option, microcode patch loading support for AMD
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1346) processors will be enabled.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1347)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1348) config MICROCODE_OLD_INTERFACE
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1349) bool "Ancient loading interface (DEPRECATED)"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1350) default n
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1351) depends on MICROCODE
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1352) help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1353) DO NOT USE THIS! This is the ancient /dev/cpu/microcode interface
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1354) which was used by userspace tools like iucode_tool and microcode.ctl.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1355) It is inadequate because it runs too late to be able to properly
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1356) load microcode on a machine and it needs special tools. Instead, you
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1357) should've switched to the early loading method with the initrd or
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1358) builtin microcode by now: Documentation/x86/microcode.rst
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1359)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1360) config X86_MSR
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1361) tristate "/dev/cpu/*/msr - Model-specific register support"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1362) help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1363) This device gives privileged processes access to the x86
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1364) Model-Specific Registers (MSRs). It is a character device with
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1365) major 202 and minors 0 to 31 for /dev/cpu/0/msr to /dev/cpu/31/msr.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1366) MSR accesses are directed to a specific CPU on multi-processor
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1367) systems.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1368)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1369) config X86_CPUID
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1370) tristate "/dev/cpu/*/cpuid - CPU information support"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1371) help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1372) This device gives processes access to the x86 CPUID instruction to
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1373) be executed on a specific processor. It is a character device
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1374) with major 203 and minors 0 to 31 for /dev/cpu/0/cpuid to
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1375) /dev/cpu/31/cpuid.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1376)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1377) choice
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1378) prompt "High Memory Support"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1379) default HIGHMEM4G
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1380) depends on X86_32
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1381)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1382) config NOHIGHMEM
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1383) bool "off"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1384) help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1385) Linux can use up to 64 Gigabytes of physical memory on x86 systems.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1386) However, the address space of 32-bit x86 processors is only 4
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1387) Gigabytes large. That means that, if you have a large amount of
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1388) physical memory, not all of it can be "permanently mapped" by the
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1389) kernel. The physical memory that's not permanently mapped is called
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1390) "high memory".
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1391)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1392) If you are compiling a kernel which will never run on a machine with
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1393) more than 1 Gigabyte total physical RAM, answer "off" here (default
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1394) choice and suitable for most users). This will result in a "3GB/1GB"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1395) split: 3GB are mapped so that each process sees a 3GB virtual memory
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1396) space and the remaining part of the 4GB virtual memory space is used
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1397) by the kernel to permanently map as much physical memory as
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1398) possible.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1399)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1400) If the machine has between 1 and 4 Gigabytes physical RAM, then
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1401) answer "4GB" here.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1402)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1403) If more than 4 Gigabytes is used then answer "64GB" here. This
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1404) selection turns Intel PAE (Physical Address Extension) mode on.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1405) PAE implements 3-level paging on IA32 processors. PAE is fully
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1406) supported by Linux, PAE mode is implemented on all recent Intel
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1407) processors (Pentium Pro and better). NOTE: If you say "64GB" here,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1408) then the kernel will not boot on CPUs that don't support PAE!
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1409)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1410) The actual amount of total physical memory will either be
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1411) auto detected or can be forced by using a kernel command line option
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1412) such as "mem=256M". (Try "man bootparam" or see the documentation of
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1413) your boot loader (lilo or loadlin) about how to pass options to the
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1414) kernel at boot time.)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1415)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1416) If unsure, say "off".
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1417)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1418) config HIGHMEM4G
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1419) bool "4GB"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1420) help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1421) Select this if you have a 32-bit processor and between 1 and 4
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1422) gigabytes of physical RAM.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1423)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1424) config HIGHMEM64G
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1425) bool "64GB"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1426) depends on !M486SX && !M486 && !M586 && !M586TSC && !M586MMX && !MGEODE_LX && !MGEODEGX1 && !MCYRIXIII && !MELAN && !MWINCHIPC6 && !MWINCHIP3D && !MK6
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1427) select X86_PAE
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1428) help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1429) Select this if you have a 32-bit processor and more than 4
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1430) gigabytes of physical RAM.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1431)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1432) endchoice
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1433)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1434) choice
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1435) prompt "Memory split" if EXPERT
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1436) default VMSPLIT_3G
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1437) depends on X86_32
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1438) help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1439) Select the desired split between kernel and user memory.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1440)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1441) If the address range available to the kernel is less than the
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1442) physical memory installed, the remaining memory will be available
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1443) as "high memory". Accessing high memory is a little more costly
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1444) than low memory, as it needs to be mapped into the kernel first.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1445) Note that increasing the kernel address space limits the range
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1446) available to user programs, making the address space there
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1447) tighter. Selecting anything other than the default 3G/1G split
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1448) will also likely make your kernel incompatible with binary-only
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1449) kernel modules.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1450)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1451) If you are not absolutely sure what you are doing, leave this
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1452) option alone!
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1453)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1454) config VMSPLIT_3G
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1455) bool "3G/1G user/kernel split"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1456) config VMSPLIT_3G_OPT
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1457) depends on !X86_PAE
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1458) bool "3G/1G user/kernel split (for full 1G low memory)"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1459) config VMSPLIT_2G
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1460) bool "2G/2G user/kernel split"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1461) config VMSPLIT_2G_OPT
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1462) depends on !X86_PAE
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1463) bool "2G/2G user/kernel split (for full 2G low memory)"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1464) config VMSPLIT_1G
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1465) bool "1G/3G user/kernel split"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1466) endchoice
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1467)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1468) config PAGE_OFFSET
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1469) hex
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1470) default 0xB0000000 if VMSPLIT_3G_OPT
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1471) default 0x80000000 if VMSPLIT_2G
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1472) default 0x78000000 if VMSPLIT_2G_OPT
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1473) default 0x40000000 if VMSPLIT_1G
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1474) default 0xC0000000
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1475) depends on X86_32
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1476)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1477) config HIGHMEM
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1478) def_bool y
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1479) depends on X86_32 && (HIGHMEM64G || HIGHMEM4G)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1480)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1481) config X86_PAE
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1482) bool "PAE (Physical Address Extension) Support"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1483) depends on X86_32 && !HIGHMEM4G
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1484) select PHYS_ADDR_T_64BIT
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1485) select SWIOTLB
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1486) help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1487) PAE is required for NX support, and furthermore enables
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1488) larger swapspace support for non-overcommit purposes. It
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1489) has the cost of more pagetable lookup overhead, and also
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1490) consumes more pagetable space per process.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1491)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1492) config X86_5LEVEL
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1493) bool "Enable 5-level page tables support"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1494) default y
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1495) select DYNAMIC_MEMORY_LAYOUT
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1496) select SPARSEMEM_VMEMMAP
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1497) depends on X86_64
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1498) help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1499) 5-level paging enables access to larger address space:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1500) upto 128 PiB of virtual address space and 4 PiB of
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1501) physical address space.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1502)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1503) It will be supported by future Intel CPUs.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1504)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1505) A kernel with the option enabled can be booted on machines that
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1506) support 4- or 5-level paging.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1507)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1508) See Documentation/x86/x86_64/5level-paging.rst for more
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1509) information.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1510)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1511) Say N if unsure.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1512)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1513) config X86_DIRECT_GBPAGES
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1514) def_bool y
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1515) depends on X86_64
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1516) help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1517) Certain kernel features effectively disable kernel
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1518) linear 1 GB mappings (even if the CPU otherwise
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1519) supports them), so don't confuse the user by printing
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1520) that we have them enabled.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1521)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1522) config X86_CPA_STATISTICS
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1523) bool "Enable statistic for Change Page Attribute"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1524) depends on DEBUG_FS
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1525) help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1526) Expose statistics about the Change Page Attribute mechanism, which
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1527) helps to determine the effectiveness of preserving large and huge
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1528) page mappings when mapping protections are changed.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1529)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1530) config AMD_MEM_ENCRYPT
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1531) bool "AMD Secure Memory Encryption (SME) support"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1532) depends on X86_64 && CPU_SUP_AMD
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1533) select DMA_COHERENT_POOL
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1534) select DYNAMIC_PHYSICAL_MASK
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1535) select ARCH_USE_MEMREMAP_PROT
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1536) select ARCH_HAS_FORCE_DMA_UNENCRYPTED
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1537) select INSTRUCTION_DECODER
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1538) select ARCH_HAS_CC_PLATFORM
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1539) help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1540) Say yes to enable support for the encryption of system memory.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1541) This requires an AMD processor that supports Secure Memory
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1542) Encryption (SME).
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1543)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1544) config AMD_MEM_ENCRYPT_ACTIVE_BY_DEFAULT
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1545) bool "Activate AMD Secure Memory Encryption (SME) by default"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1546) depends on AMD_MEM_ENCRYPT
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1547) help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1548) Say yes to have system memory encrypted by default if running on
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1549) an AMD processor that supports Secure Memory Encryption (SME).
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1550)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1551) If set to Y, then the encryption of system memory can be
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1552) deactivated with the mem_encrypt=off command line option.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1553)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1554) If set to N, then the encryption of system memory can be
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1555) activated with the mem_encrypt=on command line option.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1556)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1557) # Common NUMA Features
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1558) config NUMA
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1559) bool "NUMA Memory Allocation and Scheduler Support"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1560) depends on SMP
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1561) depends on X86_64 || (X86_32 && HIGHMEM64G && X86_BIGSMP)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1562) default y if X86_BIGSMP
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1563) help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1564) Enable NUMA (Non-Uniform Memory Access) support.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1565)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1566) The kernel will try to allocate memory used by a CPU on the
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1567) local memory controller of the CPU and add some more
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1568) NUMA awareness to the kernel.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1569)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1570) For 64-bit this is recommended if the system is Intel Core i7
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1571) (or later), AMD Opteron, or EM64T NUMA.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1572)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1573) For 32-bit this is only needed if you boot a 32-bit
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1574) kernel on a 64-bit NUMA platform.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1575)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1576) Otherwise, you should say N.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1577)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1578) config AMD_NUMA
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1579) def_bool y
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1580) prompt "Old style AMD Opteron NUMA detection"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1581) depends on X86_64 && NUMA && PCI
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1582) help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1583) Enable AMD NUMA node topology detection. You should say Y here if
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1584) you have a multi processor AMD system. This uses an old method to
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1585) read the NUMA configuration directly from the builtin Northbridge
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1586) of Opteron. It is recommended to use X86_64_ACPI_NUMA instead,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1587) which also takes priority if both are compiled in.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1588)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1589) config X86_64_ACPI_NUMA
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1590) def_bool y
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1591) prompt "ACPI NUMA detection"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1592) depends on X86_64 && NUMA && ACPI && PCI
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1593) select ACPI_NUMA
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1594) help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1595) Enable ACPI SRAT based node topology detection.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1596)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1597) config NUMA_EMU
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1598) bool "NUMA emulation"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1599) depends on NUMA
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1600) help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1601) Enable NUMA emulation. A flat machine will be split
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1602) into virtual nodes when booted with "numa=fake=N", where N is the
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1603) number of nodes. This is only useful for debugging.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1604)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1605) config NODES_SHIFT
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1606) int "Maximum NUMA Nodes (as a power of 2)" if !MAXSMP
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1607) range 1 10
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1608) default "10" if MAXSMP
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1609) default "6" if X86_64
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1610) default "3"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1611) depends on NEED_MULTIPLE_NODES
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1612) help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1613) Specify the maximum number of NUMA Nodes available on the target
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1614) system. Increases memory reserved to accommodate various tables.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1615)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1616) config ARCH_FLATMEM_ENABLE
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1617) def_bool y
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1618) depends on X86_32 && !NUMA
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1619)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1620) config ARCH_SPARSEMEM_ENABLE
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1621) def_bool y
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1622) depends on X86_64 || NUMA || X86_32 || X86_32_NON_STANDARD
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1623) select SPARSEMEM_STATIC if X86_32
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1624) select SPARSEMEM_VMEMMAP_ENABLE if X86_64
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1625)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1626) config ARCH_SPARSEMEM_DEFAULT
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1627) def_bool X86_64 || (NUMA && X86_32)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1628)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1629) config ARCH_SELECT_MEMORY_MODEL
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1630) def_bool y
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1631) depends on ARCH_SPARSEMEM_ENABLE
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1632)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1633) config ARCH_MEMORY_PROBE
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1634) bool "Enable sysfs memory/probe interface"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1635) depends on X86_64 && MEMORY_HOTPLUG
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1636) help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1637) This option enables a sysfs memory/probe interface for testing.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1638) See Documentation/admin-guide/mm/memory-hotplug.rst for more information.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1639) If you are unsure how to answer this question, answer N.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1640)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1641) config ARCH_PROC_KCORE_TEXT
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1642) def_bool y
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1643) depends on X86_64 && PROC_KCORE
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1644)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1645) config ILLEGAL_POINTER_VALUE
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1646) hex
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1647) default 0 if X86_32
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1648) default 0xdead000000000000 if X86_64
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1649)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1650) config X86_PMEM_LEGACY_DEVICE
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1651) bool
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1652)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1653) config X86_PMEM_LEGACY
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1654) tristate "Support non-standard NVDIMMs and ADR protected memory"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1655) depends on PHYS_ADDR_T_64BIT
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1656) depends on BLK_DEV
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1657) select X86_PMEM_LEGACY_DEVICE
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1658) select NUMA_KEEP_MEMINFO if NUMA
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1659) select LIBNVDIMM
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1660) help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1661) Treat memory marked using the non-standard e820 type of 12 as used
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1662) by the Intel Sandy Bridge-EP reference BIOS as protected memory.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1663) The kernel will offer these regions to the 'pmem' driver so
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1664) they can be used for persistent storage.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1665)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1666) Say Y if unsure.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1667)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1668) config HIGHPTE
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1669) bool "Allocate 3rd-level pagetables from highmem"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1670) depends on HIGHMEM
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1671) help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1672) The VM uses one page table entry for each page of physical memory.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1673) For systems with a lot of RAM, this can be wasteful of precious
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1674) low memory. Setting this option will put user-space page table
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1675) entries in high memory.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1676)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1677) config X86_CHECK_BIOS_CORRUPTION
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1678) bool "Check for low memory corruption"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1679) help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1680) Periodically check for memory corruption in low memory, which
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1681) is suspected to be caused by BIOS. Even when enabled in the
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1682) configuration, it is disabled at runtime. Enable it by
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1683) setting "memory_corruption_check=1" on the kernel command
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1684) line. By default it scans the low 64k of memory every 60
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1685) seconds; see the memory_corruption_check_size and
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1686) memory_corruption_check_period parameters in
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1687) Documentation/admin-guide/kernel-parameters.rst to adjust this.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1688)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1689) When enabled with the default parameters, this option has
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1690) almost no overhead, as it reserves a relatively small amount
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1691) of memory and scans it infrequently. It both detects corruption
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1692) and prevents it from affecting the running system.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1693)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1694) It is, however, intended as a diagnostic tool; if repeatable
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1695) BIOS-originated corruption always affects the same memory,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1696) you can use memmap= to prevent the kernel from using that
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1697) memory.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1698)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1699) config X86_BOOTPARAM_MEMORY_CORRUPTION_CHECK
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1700) bool "Set the default setting of memory_corruption_check"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1701) depends on X86_CHECK_BIOS_CORRUPTION
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1702) default y
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1703) help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1704) Set whether the default state of memory_corruption_check is
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1705) on or off.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1706)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1707) config X86_RESERVE_LOW
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1708) int "Amount of low memory, in kilobytes, to reserve for the BIOS"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1709) default 64
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1710) range 4 640
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1711) help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1712) Specify the amount of low memory to reserve for the BIOS.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1713)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1714) The first page contains BIOS data structures that the kernel
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1715) must not use, so that page must always be reserved.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1716)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1717) By default we reserve the first 64K of physical RAM, as a
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1718) number of BIOSes are known to corrupt that memory range
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1719) during events such as suspend/resume or monitor cable
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1720) insertion, so it must not be used by the kernel.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1721)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1722) You can set this to 4 if you are absolutely sure that you
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1723) trust the BIOS to get all its memory reservations and usages
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1724) right. If you know your BIOS have problems beyond the
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1725) default 64K area, you can set this to 640 to avoid using the
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1726) entire low memory range.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1727)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1728) If you have doubts about the BIOS (e.g. suspend/resume does
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1729) not work or there's kernel crashes after certain hardware
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1730) hotplug events) then you might want to enable
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1731) X86_CHECK_BIOS_CORRUPTION=y to allow the kernel to check
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1732) typical corruption patterns.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1733)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1734) Leave this to the default value of 64 if you are unsure.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1735)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1736) config MATH_EMULATION
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1737) bool
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1738) depends on MODIFY_LDT_SYSCALL
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1739) prompt "Math emulation" if X86_32 && (M486SX || MELAN)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1740) help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1741) Linux can emulate a math coprocessor (used for floating point
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1742) operations) if you don't have one. 486DX and Pentium processors have
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1743) a math coprocessor built in, 486SX and 386 do not, unless you added
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1744) a 487DX or 387, respectively. (The messages during boot time can
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1745) give you some hints here ["man dmesg"].) Everyone needs either a
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1746) coprocessor or this emulation.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1747)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1748) If you don't have a math coprocessor, you need to say Y here; if you
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1749) say Y here even though you have a coprocessor, the coprocessor will
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1750) be used nevertheless. (This behavior can be changed with the kernel
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1751) command line option "no387", which comes handy if your coprocessor
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1752) is broken. Try "man bootparam" or see the documentation of your boot
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1753) loader (lilo or loadlin) about how to pass options to the kernel at
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1754) boot time.) This means that it is a good idea to say Y here if you
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1755) intend to use this kernel on different machines.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1756)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1757) More information about the internals of the Linux math coprocessor
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1758) emulation can be found in <file:arch/x86/math-emu/README>.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1759)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1760) If you are not sure, say Y; apart from resulting in a 66 KB bigger
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1761) kernel, it won't hurt.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1762)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1763) config MTRR
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1764) def_bool y
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1765) prompt "MTRR (Memory Type Range Register) support" if EXPERT
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1766) help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1767) On Intel P6 family processors (Pentium Pro, Pentium II and later)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1768) the Memory Type Range Registers (MTRRs) may be used to control
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1769) processor access to memory ranges. This is most useful if you have
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1770) a video (VGA) card on a PCI or AGP bus. Enabling write-combining
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1771) allows bus write transfers to be combined into a larger transfer
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1772) before bursting over the PCI/AGP bus. This can increase performance
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1773) of image write operations 2.5 times or more. Saying Y here creates a
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1774) /proc/mtrr file which may be used to manipulate your processor's
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1775) MTRRs. Typically the X server should use this.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1776)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1777) This code has a reasonably generic interface so that similar
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1778) control registers on other processors can be easily supported
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1779) as well:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1780)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1781) The Cyrix 6x86, 6x86MX and M II processors have Address Range
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1782) Registers (ARRs) which provide a similar functionality to MTRRs. For
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1783) these, the ARRs are used to emulate the MTRRs.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1784) The AMD K6-2 (stepping 8 and above) and K6-3 processors have two
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1785) MTRRs. The Centaur C6 (WinChip) has 8 MCRs, allowing
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1786) write-combining. All of these processors are supported by this code
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1787) and it makes sense to say Y here if you have one of them.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1788)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1789) Saying Y here also fixes a problem with buggy SMP BIOSes which only
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1790) set the MTRRs for the boot CPU and not for the secondary CPUs. This
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1791) can lead to all sorts of problems, so it's good to say Y here.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1792)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1793) You can safely say Y even if your machine doesn't have MTRRs, you'll
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1794) just add about 9 KB to your kernel.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1795)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1796) See <file:Documentation/x86/mtrr.rst> for more information.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1797)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1798) config MTRR_SANITIZER
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1799) def_bool y
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1800) prompt "MTRR cleanup support"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1801) depends on MTRR
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1802) help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1803) Convert MTRR layout from continuous to discrete, so X drivers can
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1804) add writeback entries.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1805)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1806) Can be disabled with disable_mtrr_cleanup on the kernel command line.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1807) The largest mtrr entry size for a continuous block can be set with
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1808) mtrr_chunk_size.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1809)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1810) If unsure, say Y.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1811)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1812) config MTRR_SANITIZER_ENABLE_DEFAULT
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1813) int "MTRR cleanup enable value (0-1)"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1814) range 0 1
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1815) default "0"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1816) depends on MTRR_SANITIZER
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1817) help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1818) Enable mtrr cleanup default value
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1819)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1820) config MTRR_SANITIZER_SPARE_REG_NR_DEFAULT
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1821) int "MTRR cleanup spare reg num (0-7)"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1822) range 0 7
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1823) default "1"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1824) depends on MTRR_SANITIZER
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1825) help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1826) mtrr cleanup spare entries default, it can be changed via
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1827) mtrr_spare_reg_nr=N on the kernel command line.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1828)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1829) config X86_PAT
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1830) def_bool y
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1831) prompt "x86 PAT support" if EXPERT
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1832) depends on MTRR
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1833) help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1834) Use PAT attributes to setup page level cache control.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1835)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1836) PATs are the modern equivalents of MTRRs and are much more
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1837) flexible than MTRRs.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1838)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1839) Say N here if you see bootup problems (boot crash, boot hang,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1840) spontaneous reboots) or a non-working video driver.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1841)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1842) If unsure, say Y.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1843)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1844) config ARCH_USES_PG_UNCACHED
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1845) def_bool y
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1846) depends on X86_PAT
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1847)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1848) config ARCH_RANDOM
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1849) def_bool y
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1850) prompt "x86 architectural random number generator" if EXPERT
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1851) help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1852) Enable the x86 architectural RDRAND instruction
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1853) (Intel Bull Mountain technology) to generate random numbers.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1854) If supported, this is a high bandwidth, cryptographically
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1855) secure hardware random number generator.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1856)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1857) config X86_SMAP
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1858) def_bool y
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1859) prompt "Supervisor Mode Access Prevention" if EXPERT
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1860) help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1861) Supervisor Mode Access Prevention (SMAP) is a security
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1862) feature in newer Intel processors. There is a small
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1863) performance cost if this enabled and turned on; there is
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1864) also a small increase in the kernel size if this is enabled.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1865)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1866) If unsure, say Y.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1867)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1868) config X86_UMIP
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1869) def_bool y
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1870) prompt "User Mode Instruction Prevention" if EXPERT
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1871) help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1872) User Mode Instruction Prevention (UMIP) is a security feature in
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1873) some x86 processors. If enabled, a general protection fault is
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1874) issued if the SGDT, SLDT, SIDT, SMSW or STR instructions are
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1875) executed in user mode. These instructions unnecessarily expose
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1876) information about the hardware state.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1877)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1878) The vast majority of applications do not use these instructions.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1879) For the very few that do, software emulation is provided in
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1880) specific cases in protected and virtual-8086 modes. Emulated
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1881) results are dummy.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1882)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1883) config X86_INTEL_MEMORY_PROTECTION_KEYS
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1884) prompt "Memory Protection Keys"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1885) def_bool y
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1886) # Note: only available in 64-bit mode
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1887) depends on X86_64 && (CPU_SUP_INTEL || CPU_SUP_AMD)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1888) select ARCH_USES_HIGH_VMA_FLAGS
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1889) select ARCH_HAS_PKEYS
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1890) help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1891) Memory Protection Keys provides a mechanism for enforcing
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1892) page-based protections, but without requiring modification of the
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1893) page tables when an application changes protection domains.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1894)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1895) For details, see Documentation/core-api/protection-keys.rst
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1896)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1897) If unsure, say y.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1898)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1899) choice
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1900) prompt "TSX enable mode"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1901) depends on CPU_SUP_INTEL
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1902) default X86_INTEL_TSX_MODE_OFF
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1903) help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1904) Intel's TSX (Transactional Synchronization Extensions) feature
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1905) allows to optimize locking protocols through lock elision which
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1906) can lead to a noticeable performance boost.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1907)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1908) On the other hand it has been shown that TSX can be exploited
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1909) to form side channel attacks (e.g. TAA) and chances are there
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1910) will be more of those attacks discovered in the future.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1911)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1912) Therefore TSX is not enabled by default (aka tsx=off). An admin
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1913) might override this decision by tsx=on the command line parameter.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1914) Even with TSX enabled, the kernel will attempt to enable the best
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1915) possible TAA mitigation setting depending on the microcode available
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1916) for the particular machine.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1917)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1918) This option allows to set the default tsx mode between tsx=on, =off
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1919) and =auto. See Documentation/admin-guide/kernel-parameters.txt for more
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1920) details.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1921)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1922) Say off if not sure, auto if TSX is in use but it should be used on safe
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1923) platforms or on if TSX is in use and the security aspect of tsx is not
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1924) relevant.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1925)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1926) config X86_INTEL_TSX_MODE_OFF
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1927) bool "off"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1928) help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1929) TSX is disabled if possible - equals to tsx=off command line parameter.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1930)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1931) config X86_INTEL_TSX_MODE_ON
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1932) bool "on"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1933) help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1934) TSX is always enabled on TSX capable HW - equals the tsx=on command
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1935) line parameter.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1936)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1937) config X86_INTEL_TSX_MODE_AUTO
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1938) bool "auto"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1939) help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1940) TSX is enabled on TSX capable HW that is believed to be safe against
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1941) side channel attacks- equals the tsx=auto command line parameter.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1942) endchoice
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1943)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1944) config EFI
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1945) bool "EFI runtime service support"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1946) depends on ACPI
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1947) select UCS2_STRING
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1948) select EFI_RUNTIME_WRAPPERS
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1949) select ARCH_USE_MEMREMAP_PROT
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1950) help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1951) This enables the kernel to use EFI runtime services that are
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1952) available (such as the EFI variable services).
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1953)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1954) This option is only useful on systems that have EFI firmware.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1955) In addition, you should use the latest ELILO loader available
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1956) at <http://elilo.sourceforge.net> in order to take advantage
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1957) of EFI runtime services. However, even with this option, the
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1958) resultant kernel should continue to boot on existing non-EFI
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1959) platforms.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1960)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1961) config EFI_STUB
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1962) bool "EFI stub support"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1963) depends on EFI && !X86_USE_3DNOW
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1964) depends on $(cc-option,-mabi=ms) || X86_32
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1965) select RELOCATABLE
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1966) help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1967) This kernel feature allows a bzImage to be loaded directly
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1968) by EFI firmware without the use of a bootloader.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1969)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1970) See Documentation/admin-guide/efi-stub.rst for more information.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1971)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1972) config EFI_MIXED
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1973) bool "EFI mixed-mode support"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1974) depends on EFI_STUB && X86_64
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1975) help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1976) Enabling this feature allows a 64-bit kernel to be booted
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1977) on a 32-bit firmware, provided that your CPU supports 64-bit
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1978) mode.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1979)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1980) Note that it is not possible to boot a mixed-mode enabled
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1981) kernel via the EFI boot stub - a bootloader that supports
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1982) the EFI handover protocol must be used.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1983)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1984) If unsure, say N.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1985)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1986) source "kernel/Kconfig.hz"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1987)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1988) config KEXEC
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1989) bool "kexec system call"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1990) select KEXEC_CORE
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1991) help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1992) kexec is a system call that implements the ability to shutdown your
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1993) current kernel, and to start another kernel. It is like a reboot
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1994) but it is independent of the system firmware. And like a reboot
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1995) you can start any kernel with it, not just Linux.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1996)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1997) The name comes from the similarity to the exec system call.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1998)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1999) It is an ongoing process to be certain the hardware in a machine
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2000) is properly shutdown, so do not be surprised if this code does not
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2001) initially work for you. As of this writing the exact hardware
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2002) interface is strongly in flux, so no good recommendation can be
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2003) made.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2004)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2005) config KEXEC_FILE
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2006) bool "kexec file based system call"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2007) select KEXEC_CORE
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2008) select BUILD_BIN2C
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2009) depends on X86_64
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2010) depends on CRYPTO=y
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2011) depends on CRYPTO_SHA256=y
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2012) help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2013) This is new version of kexec system call. This system call is
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2014) file based and takes file descriptors as system call argument
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2015) for kernel and initramfs as opposed to list of segments as
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2016) accepted by previous system call.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2017)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2018) config ARCH_HAS_KEXEC_PURGATORY
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2019) def_bool KEXEC_FILE
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2020)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2021) config KEXEC_SIG
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2022) bool "Verify kernel signature during kexec_file_load() syscall"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2023) depends on KEXEC_FILE
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2024) help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2025)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2026) This option makes the kexec_file_load() syscall check for a valid
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2027) signature of the kernel image. The image can still be loaded without
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2028) a valid signature unless you also enable KEXEC_SIG_FORCE, though if
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2029) there's a signature that we can check, then it must be valid.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2030)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2031) In addition to this option, you need to enable signature
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2032) verification for the corresponding kernel image type being
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2033) loaded in order for this to work.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2034)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2035) config KEXEC_SIG_FORCE
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2036) bool "Require a valid signature in kexec_file_load() syscall"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2037) depends on KEXEC_SIG
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2038) help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2039) This option makes kernel signature verification mandatory for
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2040) the kexec_file_load() syscall.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2041)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2042) config KEXEC_BZIMAGE_VERIFY_SIG
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2043) bool "Enable bzImage signature verification support"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2044) depends on KEXEC_SIG
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2045) depends on SIGNED_PE_FILE_VERIFICATION
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2046) select SYSTEM_TRUSTED_KEYRING
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2047) help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2048) Enable bzImage signature verification support.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2049)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2050) config CRASH_DUMP
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2051) bool "kernel crash dumps"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2052) depends on X86_64 || (X86_32 && HIGHMEM)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2053) help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2054) Generate crash dump after being started by kexec.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2055) This should be normally only set in special crash dump kernels
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2056) which are loaded in the main kernel with kexec-tools into
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2057) a specially reserved region and then later executed after
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2058) a crash by kdump/kexec. The crash dump kernel must be compiled
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2059) to a memory address not used by the main kernel or BIOS using
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2060) PHYSICAL_START, or it must be built as a relocatable image
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2061) (CONFIG_RELOCATABLE=y).
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2062) For more details see Documentation/admin-guide/kdump/kdump.rst
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2063)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2064) config KEXEC_JUMP
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2065) bool "kexec jump"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2066) depends on KEXEC && HIBERNATION
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2067) help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2068) Jump between original kernel and kexeced kernel and invoke
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2069) code in physical address mode via KEXEC
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2070)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2071) config PHYSICAL_START
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2072) hex "Physical address where the kernel is loaded" if (EXPERT || CRASH_DUMP)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2073) default "0x1000000"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2074) help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2075) This gives the physical address where the kernel is loaded.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2076)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2077) If kernel is a not relocatable (CONFIG_RELOCATABLE=n) then
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2078) bzImage will decompress itself to above physical address and
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2079) run from there. Otherwise, bzImage will run from the address where
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2080) it has been loaded by the boot loader and will ignore above physical
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2081) address.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2082)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2083) In normal kdump cases one does not have to set/change this option
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2084) as now bzImage can be compiled as a completely relocatable image
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2085) (CONFIG_RELOCATABLE=y) and be used to load and run from a different
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2086) address. This option is mainly useful for the folks who don't want
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2087) to use a bzImage for capturing the crash dump and want to use a
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2088) vmlinux instead. vmlinux is not relocatable hence a kernel needs
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2089) to be specifically compiled to run from a specific memory area
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2090) (normally a reserved region) and this option comes handy.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2091)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2092) So if you are using bzImage for capturing the crash dump,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2093) leave the value here unchanged to 0x1000000 and set
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2094) CONFIG_RELOCATABLE=y. Otherwise if you plan to use vmlinux
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2095) for capturing the crash dump change this value to start of
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2096) the reserved region. In other words, it can be set based on
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2097) the "X" value as specified in the "crashkernel=YM@XM"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2098) command line boot parameter passed to the panic-ed
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2099) kernel. Please take a look at Documentation/admin-guide/kdump/kdump.rst
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2100) for more details about crash dumps.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2101)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2102) Usage of bzImage for capturing the crash dump is recommended as
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2103) one does not have to build two kernels. Same kernel can be used
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2104) as production kernel and capture kernel. Above option should have
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2105) gone away after relocatable bzImage support is introduced. But it
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2106) is present because there are users out there who continue to use
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2107) vmlinux for dump capture. This option should go away down the
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2108) line.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2109)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2110) Don't change this unless you know what you are doing.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2111)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2112) config RELOCATABLE
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2113) bool "Build a relocatable kernel"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2114) default y
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2115) help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2116) This builds a kernel image that retains relocation information
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2117) so it can be loaded someplace besides the default 1MB.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2118) The relocations tend to make the kernel binary about 10% larger,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2119) but are discarded at runtime.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2120)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2121) One use is for the kexec on panic case where the recovery kernel
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2122) must live at a different physical address than the primary
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2123) kernel.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2124)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2125) Note: If CONFIG_RELOCATABLE=y, then the kernel runs from the address
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2126) it has been loaded at and the compile time physical address
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2127) (CONFIG_PHYSICAL_START) is used as the minimum location.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2128)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2129) config RANDOMIZE_BASE
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2130) bool "Randomize the address of the kernel image (KASLR)"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2131) depends on RELOCATABLE
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2132) default y
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2133) help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2134) In support of Kernel Address Space Layout Randomization (KASLR),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2135) this randomizes the physical address at which the kernel image
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2136) is decompressed and the virtual address where the kernel
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2137) image is mapped, as a security feature that deters exploit
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2138) attempts relying on knowledge of the location of kernel
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2139) code internals.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2140)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2141) On 64-bit, the kernel physical and virtual addresses are
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2142) randomized separately. The physical address will be anywhere
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2143) between 16MB and the top of physical memory (up to 64TB). The
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2144) virtual address will be randomized from 16MB up to 1GB (9 bits
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2145) of entropy). Note that this also reduces the memory space
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2146) available to kernel modules from 1.5GB to 1GB.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2147)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2148) On 32-bit, the kernel physical and virtual addresses are
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2149) randomized together. They will be randomized from 16MB up to
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2150) 512MB (8 bits of entropy).
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2151)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2152) Entropy is generated using the RDRAND instruction if it is
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2153) supported. If RDTSC is supported, its value is mixed into
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2154) the entropy pool as well. If neither RDRAND nor RDTSC are
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2155) supported, then entropy is read from the i8254 timer. The
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2156) usable entropy is limited by the kernel being built using
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2157) 2GB addressing, and that PHYSICAL_ALIGN must be at a
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2158) minimum of 2MB. As a result, only 10 bits of entropy are
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2159) theoretically possible, but the implementations are further
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2160) limited due to memory layouts.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2161)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2162) If unsure, say Y.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2163)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2164) # Relocation on x86 needs some additional build support
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2165) config X86_NEED_RELOCS
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2166) def_bool y
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2167) depends on RANDOMIZE_BASE || (X86_32 && RELOCATABLE)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2168)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2169) config PHYSICAL_ALIGN
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2170) hex "Alignment value to which kernel should be aligned"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2171) default "0x200000"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2172) range 0x2000 0x1000000 if X86_32
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2173) range 0x200000 0x1000000 if X86_64
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2174) help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2175) This value puts the alignment restrictions on physical address
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2176) where kernel is loaded and run from. Kernel is compiled for an
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2177) address which meets above alignment restriction.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2178)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2179) If bootloader loads the kernel at a non-aligned address and
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2180) CONFIG_RELOCATABLE is set, kernel will move itself to nearest
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2181) address aligned to above value and run from there.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2182)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2183) If bootloader loads the kernel at a non-aligned address and
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2184) CONFIG_RELOCATABLE is not set, kernel will ignore the run time
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2185) load address and decompress itself to the address it has been
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2186) compiled for and run from there. The address for which kernel is
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2187) compiled already meets above alignment restrictions. Hence the
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2188) end result is that kernel runs from a physical address meeting
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2189) above alignment restrictions.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2190)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2191) On 32-bit this value must be a multiple of 0x2000. On 64-bit
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2192) this value must be a multiple of 0x200000.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2193)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2194) Don't change this unless you know what you are doing.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2195)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2196) config DYNAMIC_MEMORY_LAYOUT
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2197) bool
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2198) help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2199) This option makes base addresses of vmalloc and vmemmap as well as
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2200) __PAGE_OFFSET movable during boot.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2201)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2202) config RANDOMIZE_MEMORY
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2203) bool "Randomize the kernel memory sections"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2204) depends on X86_64
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2205) depends on RANDOMIZE_BASE
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2206) select DYNAMIC_MEMORY_LAYOUT
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2207) default RANDOMIZE_BASE
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2208) help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2209) Randomizes the base virtual address of kernel memory sections
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2210) (physical memory mapping, vmalloc & vmemmap). This security feature
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2211) makes exploits relying on predictable memory locations less reliable.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2212)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2213) The order of allocations remains unchanged. Entropy is generated in
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2214) the same way as RANDOMIZE_BASE. Current implementation in the optimal
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2215) configuration have in average 30,000 different possible virtual
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2216) addresses for each memory section.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2217)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2218) If unsure, say Y.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2219)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2220) config RANDOMIZE_MEMORY_PHYSICAL_PADDING
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2221) hex "Physical memory mapping padding" if EXPERT
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2222) depends on RANDOMIZE_MEMORY
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2223) default "0xa" if MEMORY_HOTPLUG
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2224) default "0x0"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2225) range 0x1 0x40 if MEMORY_HOTPLUG
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2226) range 0x0 0x40
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2227) help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2228) Define the padding in terabytes added to the existing physical
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2229) memory size during kernel memory randomization. It is useful
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2230) for memory hotplug support but reduces the entropy available for
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2231) address randomization.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2232)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2233) If unsure, leave at the default value.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2234)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2235) config HOTPLUG_CPU
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2236) def_bool y
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2237) depends on SMP
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2238)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2239) config BOOTPARAM_HOTPLUG_CPU0
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2240) bool "Set default setting of cpu0_hotpluggable"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2241) depends on HOTPLUG_CPU
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2242) help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2243) Set whether default state of cpu0_hotpluggable is on or off.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2244)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2245) Say Y here to enable CPU0 hotplug by default. If this switch
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2246) is turned on, there is no need to give cpu0_hotplug kernel
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2247) parameter and the CPU0 hotplug feature is enabled by default.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2248)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2249) Please note: there are two known CPU0 dependencies if you want
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2250) to enable the CPU0 hotplug feature either by this switch or by
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2251) cpu0_hotplug kernel parameter.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2252)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2253) First, resume from hibernate or suspend always starts from CPU0.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2254) So hibernate and suspend are prevented if CPU0 is offline.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2255)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2256) Second dependency is PIC interrupts always go to CPU0. CPU0 can not
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2257) offline if any interrupt can not migrate out of CPU0. There may
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2258) be other CPU0 dependencies.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2259)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2260) Please make sure the dependencies are under your control before
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2261) you enable this feature.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2262)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2263) Say N if you don't want to enable CPU0 hotplug feature by default.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2264) You still can enable the CPU0 hotplug feature at boot by kernel
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2265) parameter cpu0_hotplug.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2266)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2267) config DEBUG_HOTPLUG_CPU0
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2268) def_bool n
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2269) prompt "Debug CPU0 hotplug"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2270) depends on HOTPLUG_CPU
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2271) help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2272) Enabling this option offlines CPU0 (if CPU0 can be offlined) as
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2273) soon as possible and boots up userspace with CPU0 offlined. User
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2274) can online CPU0 back after boot time.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2275)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2276) To debug CPU0 hotplug, you need to enable CPU0 offline/online
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2277) feature by either turning on CONFIG_BOOTPARAM_HOTPLUG_CPU0 during
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2278) compilation or giving cpu0_hotplug kernel parameter at boot.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2279)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2280) If unsure, say N.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2281)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2282) config COMPAT_VDSO
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2283) def_bool n
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2284) prompt "Disable the 32-bit vDSO (needed for glibc 2.3.3)"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2285) depends on COMPAT_32
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2286) help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2287) Certain buggy versions of glibc will crash if they are
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2288) presented with a 32-bit vDSO that is not mapped at the address
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2289) indicated in its segment table.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2290)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2291) The bug was introduced by f866314b89d56845f55e6f365e18b31ec978ec3a
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2292) and fixed by 3b3ddb4f7db98ec9e912ccdf54d35df4aa30e04a and
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2293) 49ad572a70b8aeb91e57483a11dd1b77e31c4468. Glibc 2.3.3 is
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2294) the only released version with the bug, but OpenSUSE 9
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2295) contains a buggy "glibc 2.3.2".
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2296)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2297) The symptom of the bug is that everything crashes on startup, saying:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2298) dl_main: Assertion `(void *) ph->p_vaddr == _rtld_local._dl_sysinfo_dso' failed!
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2299)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2300) Saying Y here changes the default value of the vdso32 boot
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2301) option from 1 to 0, which turns off the 32-bit vDSO entirely.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2302) This works around the glibc bug but hurts performance.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2303)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2304) If unsure, say N: if you are compiling your own kernel, you
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2305) are unlikely to be using a buggy version of glibc.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2306)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2307) choice
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2308) prompt "vsyscall table for legacy applications"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2309) depends on X86_64
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2310) default LEGACY_VSYSCALL_XONLY
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2311) help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2312) Legacy user code that does not know how to find the vDSO expects
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2313) to be able to issue three syscalls by calling fixed addresses in
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2314) kernel space. Since this location is not randomized with ASLR,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2315) it can be used to assist security vulnerability exploitation.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2316)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2317) This setting can be changed at boot time via the kernel command
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2318) line parameter vsyscall=[emulate|xonly|none].
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2319)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2320) On a system with recent enough glibc (2.14 or newer) and no
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2321) static binaries, you can say None without a performance penalty
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2322) to improve security.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2323)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2324) If unsure, select "Emulate execution only".
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2325)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2326) config LEGACY_VSYSCALL_EMULATE
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2327) bool "Full emulation"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2328) help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2329) The kernel traps and emulates calls into the fixed vsyscall
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2330) address mapping. This makes the mapping non-executable, but
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2331) it still contains readable known contents, which could be
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2332) used in certain rare security vulnerability exploits. This
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2333) configuration is recommended when using legacy userspace
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2334) that still uses vsyscalls along with legacy binary
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2335) instrumentation tools that require code to be readable.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2336)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2337) An example of this type of legacy userspace is running
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2338) Pin on an old binary that still uses vsyscalls.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2339)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2340) config LEGACY_VSYSCALL_XONLY
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2341) bool "Emulate execution only"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2342) help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2343) The kernel traps and emulates calls into the fixed vsyscall
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2344) address mapping and does not allow reads. This
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2345) configuration is recommended when userspace might use the
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2346) legacy vsyscall area but support for legacy binary
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2347) instrumentation of legacy code is not needed. It mitigates
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2348) certain uses of the vsyscall area as an ASLR-bypassing
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2349) buffer.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2350)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2351) config LEGACY_VSYSCALL_NONE
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2352) bool "None"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2353) help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2354) There will be no vsyscall mapping at all. This will
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2355) eliminate any risk of ASLR bypass due to the vsyscall
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2356) fixed address mapping. Attempts to use the vsyscalls
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2357) will be reported to dmesg, so that either old or
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2358) malicious userspace programs can be identified.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2359)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2360) endchoice
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2361)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2362) config CMDLINE_BOOL
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2363) bool "Built-in kernel command line"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2364) help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2365) Allow for specifying boot arguments to the kernel at
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2366) build time. On some systems (e.g. embedded ones), it is
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2367) necessary or convenient to provide some or all of the
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2368) kernel boot arguments with the kernel itself (that is,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2369) to not rely on the boot loader to provide them.)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2370)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2371) To compile command line arguments into the kernel,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2372) set this option to 'Y', then fill in the
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2373) boot arguments in CONFIG_CMDLINE.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2374)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2375) Systems with fully functional boot loaders (i.e. non-embedded)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2376) should leave this option set to 'N'.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2377)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2378) config CMDLINE
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2379) string "Built-in kernel command string"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2380) depends on CMDLINE_BOOL
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2381) default ""
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2382) help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2383) Enter arguments here that should be compiled into the kernel
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2384) image and used at boot time. If the boot loader provides a
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2385) command line at boot time, it is appended to this string to
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2386) form the full kernel command line, when the system boots.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2387)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2388) However, you can use the CONFIG_CMDLINE_OVERRIDE option to
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2389) change this behavior.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2390)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2391) In most cases, the command line (whether built-in or provided
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2392) by the boot loader) should specify the device for the root
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2393) file system.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2394)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2395) config CMDLINE_OVERRIDE
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2396) bool "Built-in command line overrides boot loader arguments"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2397) depends on CMDLINE_BOOL && CMDLINE != ""
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2398) help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2399) Set this option to 'Y' to have the kernel ignore the boot loader
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2400) command line, and use ONLY the built-in command line.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2401)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2402) This is used to work around broken boot loaders. This should
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2403) be set to 'N' under normal conditions.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2404)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2405) config MODIFY_LDT_SYSCALL
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2406) bool "Enable the LDT (local descriptor table)" if EXPERT
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2407) default y
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2408) help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2409) Linux can allow user programs to install a per-process x86
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2410) Local Descriptor Table (LDT) using the modify_ldt(2) system
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2411) call. This is required to run 16-bit or segmented code such as
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2412) DOSEMU or some Wine programs. It is also used by some very old
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2413) threading libraries.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2414)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2415) Enabling this feature adds a small amount of overhead to
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2416) context switches and increases the low-level kernel attack
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2417) surface. Disabling it removes the modify_ldt(2) system call.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2418)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2419) Saying 'N' here may make sense for embedded or server kernels.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2420)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2421) source "kernel/livepatch/Kconfig"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2422)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2423) endmenu
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2424)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2425) config ARCH_HAS_ADD_PAGES
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2426) def_bool y
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2427) depends on X86_64 && ARCH_ENABLE_MEMORY_HOTPLUG
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2428)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2429) config ARCH_ENABLE_MEMORY_HOTPLUG
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2430) def_bool y
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2431) depends on X86_64 || (X86_32 && HIGHMEM)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2432)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2433) config ARCH_ENABLE_MEMORY_HOTREMOVE
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2434) def_bool y
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2435) depends on MEMORY_HOTPLUG
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2436)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2437) config USE_PERCPU_NUMA_NODE_ID
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2438) def_bool y
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2439) depends on NUMA
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2440)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2441) config ARCH_ENABLE_SPLIT_PMD_PTLOCK
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2442) def_bool y
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2443) depends on X86_64 || X86_PAE
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2444)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2445) config ARCH_ENABLE_HUGEPAGE_MIGRATION
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2446) def_bool y
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2447) depends on X86_64 && HUGETLB_PAGE && MIGRATION
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2448)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2449) config ARCH_ENABLE_THP_MIGRATION
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2450) def_bool y
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2451) depends on X86_64 && TRANSPARENT_HUGEPAGE
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2452)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2453) menu "Power management and ACPI options"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2454)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2455) config ARCH_HIBERNATION_HEADER
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2456) def_bool y
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2457) depends on HIBERNATION
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2458)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2459) source "kernel/power/Kconfig"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2460)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2461) source "drivers/acpi/Kconfig"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2462)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2463) source "drivers/sfi/Kconfig"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2464)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2465) config X86_APM_BOOT
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2466) def_bool y
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2467) depends on APM
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2468)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2469) menuconfig APM
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2470) tristate "APM (Advanced Power Management) BIOS support"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2471) depends on X86_32 && PM_SLEEP
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2472) help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2473) APM is a BIOS specification for saving power using several different
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2474) techniques. This is mostly useful for battery powered laptops with
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2475) APM compliant BIOSes. If you say Y here, the system time will be
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2476) reset after a RESUME operation, the /proc/apm device will provide
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2477) battery status information, and user-space programs will receive
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2478) notification of APM "events" (e.g. battery status change).
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2479)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2480) If you select "Y" here, you can disable actual use of the APM
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2481) BIOS by passing the "apm=off" option to the kernel at boot time.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2482)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2483) Note that the APM support is almost completely disabled for
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2484) machines with more than one CPU.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2485)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2486) In order to use APM, you will need supporting software. For location
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2487) and more information, read <file:Documentation/power/apm-acpi.rst>
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2488) and the Battery Powered Linux mini-HOWTO, available from
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2489) <http://www.tldp.org/docs.html#howto>.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2490)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2491) This driver does not spin down disk drives (see the hdparm(8)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2492) manpage ("man 8 hdparm") for that), and it doesn't turn off
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2493) VESA-compliant "green" monitors.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2494)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2495) This driver does not support the TI 4000M TravelMate and the ACER
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2496) 486/DX4/75 because they don't have compliant BIOSes. Many "green"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2497) desktop machines also don't have compliant BIOSes, and this driver
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2498) may cause those machines to panic during the boot phase.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2499)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2500) Generally, if you don't have a battery in your machine, there isn't
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2501) much point in using this driver and you should say N. If you get
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2502) random kernel OOPSes or reboots that don't seem to be related to
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2503) anything, try disabling/enabling this option (or disabling/enabling
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2504) APM in your BIOS).
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2505)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2506) Some other things you should try when experiencing seemingly random,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2507) "weird" problems:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2508)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2509) 1) make sure that you have enough swap space and that it is
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2510) enabled.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2511) 2) pass the "no-hlt" option to the kernel
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2512) 3) switch on floating point emulation in the kernel and pass
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2513) the "no387" option to the kernel
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2514) 4) pass the "floppy=nodma" option to the kernel
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2515) 5) pass the "mem=4M" option to the kernel (thereby disabling
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2516) all but the first 4 MB of RAM)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2517) 6) make sure that the CPU is not over clocked.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2518) 7) read the sig11 FAQ at <http://www.bitwizard.nl/sig11/>
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2519) 8) disable the cache from your BIOS settings
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2520) 9) install a fan for the video card or exchange video RAM
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2521) 10) install a better fan for the CPU
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2522) 11) exchange RAM chips
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2523) 12) exchange the motherboard.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2524)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2525) To compile this driver as a module, choose M here: the
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2526) module will be called apm.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2527)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2528) if APM
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2529)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2530) config APM_IGNORE_USER_SUSPEND
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2531) bool "Ignore USER SUSPEND"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2532) help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2533) This option will ignore USER SUSPEND requests. On machines with a
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2534) compliant APM BIOS, you want to say N. However, on the NEC Versa M
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2535) series notebooks, it is necessary to say Y because of a BIOS bug.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2536)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2537) config APM_DO_ENABLE
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2538) bool "Enable PM at boot time"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2539) help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2540) Enable APM features at boot time. From page 36 of the APM BIOS
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2541) specification: "When disabled, the APM BIOS does not automatically
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2542) power manage devices, enter the Standby State, enter the Suspend
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2543) State, or take power saving steps in response to CPU Idle calls."
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2544) This driver will make CPU Idle calls when Linux is idle (unless this
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2545) feature is turned off -- see "Do CPU IDLE calls", below). This
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2546) should always save battery power, but more complicated APM features
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2547) will be dependent on your BIOS implementation. You may need to turn
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2548) this option off if your computer hangs at boot time when using APM
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2549) support, or if it beeps continuously instead of suspending. Turn
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2550) this off if you have a NEC UltraLite Versa 33/C or a Toshiba
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2551) T400CDT. This is off by default since most machines do fine without
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2552) this feature.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2553)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2554) config APM_CPU_IDLE
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2555) depends on CPU_IDLE
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2556) bool "Make CPU Idle calls when idle"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2557) help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2558) Enable calls to APM CPU Idle/CPU Busy inside the kernel's idle loop.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2559) On some machines, this can activate improved power savings, such as
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2560) a slowed CPU clock rate, when the machine is idle. These idle calls
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2561) are made after the idle loop has run for some length of time (e.g.,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2562) 333 mS). On some machines, this will cause a hang at boot time or
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2563) whenever the CPU becomes idle. (On machines with more than one CPU,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2564) this option does nothing.)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2565)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2566) config APM_DISPLAY_BLANK
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2567) bool "Enable console blanking using APM"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2568) help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2569) Enable console blanking using the APM. Some laptops can use this to
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2570) turn off the LCD backlight when the screen blanker of the Linux
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2571) virtual console blanks the screen. Note that this is only used by
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2572) the virtual console screen blanker, and won't turn off the backlight
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2573) when using the X Window system. This also doesn't have anything to
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2574) do with your VESA-compliant power-saving monitor. Further, this
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2575) option doesn't work for all laptops -- it might not turn off your
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2576) backlight at all, or it might print a lot of errors to the console,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2577) especially if you are using gpm.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2578)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2579) config APM_ALLOW_INTS
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2580) bool "Allow interrupts during APM BIOS calls"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2581) help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2582) Normally we disable external interrupts while we are making calls to
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2583) the APM BIOS as a measure to lessen the effects of a badly behaving
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2584) BIOS implementation. The BIOS should reenable interrupts if it
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2585) needs to. Unfortunately, some BIOSes do not -- especially those in
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2586) many of the newer IBM Thinkpads. If you experience hangs when you
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2587) suspend, try setting this to Y. Otherwise, say N.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2588)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2589) endif # APM
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2590)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2591) source "drivers/cpufreq/Kconfig"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2592)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2593) source "drivers/cpuidle/Kconfig"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2594)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2595) source "drivers/idle/Kconfig"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2596)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2597) endmenu
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2598)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2599)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2600) menu "Bus options (PCI etc.)"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2601)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2602) choice
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2603) prompt "PCI access mode"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2604) depends on X86_32 && PCI
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2605) default PCI_GOANY
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2606) help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2607) On PCI systems, the BIOS can be used to detect the PCI devices and
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2608) determine their configuration. However, some old PCI motherboards
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2609) have BIOS bugs and may crash if this is done. Also, some embedded
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2610) PCI-based systems don't have any BIOS at all. Linux can also try to
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2611) detect the PCI hardware directly without using the BIOS.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2612)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2613) With this option, you can specify how Linux should detect the
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2614) PCI devices. If you choose "BIOS", the BIOS will be used,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2615) if you choose "Direct", the BIOS won't be used, and if you
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2616) choose "MMConfig", then PCI Express MMCONFIG will be used.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2617) If you choose "Any", the kernel will try MMCONFIG, then the
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2618) direct access method and falls back to the BIOS if that doesn't
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2619) work. If unsure, go with the default, which is "Any".
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2620)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2621) config PCI_GOBIOS
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2622) bool "BIOS"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2623)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2624) config PCI_GOMMCONFIG
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2625) bool "MMConfig"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2626)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2627) config PCI_GODIRECT
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2628) bool "Direct"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2629)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2630) config PCI_GOOLPC
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2631) bool "OLPC XO-1"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2632) depends on OLPC
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2633)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2634) config PCI_GOANY
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2635) bool "Any"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2636)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2637) endchoice
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2638)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2639) config PCI_BIOS
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2640) def_bool y
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2641) depends on X86_32 && PCI && (PCI_GOBIOS || PCI_GOANY)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2642)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2643) # x86-64 doesn't support PCI BIOS access from long mode so always go direct.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2644) config PCI_DIRECT
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2645) def_bool y
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2646) depends on PCI && (X86_64 || (PCI_GODIRECT || PCI_GOANY || PCI_GOOLPC || PCI_GOMMCONFIG))
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2647)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2648) config PCI_MMCONFIG
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2649) bool "Support mmconfig PCI config space access" if X86_64
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2650) default y
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2651) depends on PCI && (ACPI || SFI || JAILHOUSE_GUEST)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2652) depends on X86_64 || (PCI_GOANY || PCI_GOMMCONFIG)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2653)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2654) config PCI_OLPC
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2655) def_bool y
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2656) depends on PCI && OLPC && (PCI_GOOLPC || PCI_GOANY)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2657)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2658) config PCI_XEN
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2659) def_bool y
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2660) depends on PCI && XEN
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2661) select SWIOTLB_XEN
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2662)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2663) config MMCONF_FAM10H
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2664) def_bool y
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2665) depends on X86_64 && PCI_MMCONFIG && ACPI
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2666)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2667) config PCI_CNB20LE_QUIRK
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2668) bool "Read CNB20LE Host Bridge Windows" if EXPERT
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2669) depends on PCI
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2670) help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2671) Read the PCI windows out of the CNB20LE host bridge. This allows
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2672) PCI hotplug to work on systems with the CNB20LE chipset which do
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2673) not have ACPI.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2674)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2675) There's no public spec for this chipset, and this functionality
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2676) is known to be incomplete.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2677)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2678) You should say N unless you know you need this.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2679)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2680) config ISA_BUS
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2681) bool "ISA bus support on modern systems" if EXPERT
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2682) help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2683) Expose ISA bus device drivers and options available for selection and
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2684) configuration. Enable this option if your target machine has an ISA
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2685) bus. ISA is an older system, displaced by PCI and newer bus
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2686) architectures -- if your target machine is modern, it probably does
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2687) not have an ISA bus.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2688)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2689) If unsure, say N.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2690)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2691) # x86_64 have no ISA slots, but can have ISA-style DMA.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2692) config ISA_DMA_API
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2693) bool "ISA-style DMA support" if (X86_64 && EXPERT)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2694) default y
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2695) help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2696) Enables ISA-style DMA support for devices requiring such controllers.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2697) If unsure, say Y.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2698)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2699) if X86_32
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2700)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2701) config ISA
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2702) bool "ISA support"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2703) help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2704) Find out whether you have ISA slots on your motherboard. ISA is the
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2705) name of a bus system, i.e. the way the CPU talks to the other stuff
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2706) inside your box. Other bus systems are PCI, EISA, MicroChannel
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2707) (MCA) or VESA. ISA is an older system, now being displaced by PCI;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2708) newer boards don't support it. If you have ISA, say Y, otherwise N.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2709)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2710) config SCx200
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2711) tristate "NatSemi SCx200 support"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2712) help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2713) This provides basic support for National Semiconductor's
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2714) (now AMD's) Geode processors. The driver probes for the
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2715) PCI-IDs of several on-chip devices, so its a good dependency
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2716) for other scx200_* drivers.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2717)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2718) If compiled as a module, the driver is named scx200.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2719)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2720) config SCx200HR_TIMER
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2721) tristate "NatSemi SCx200 27MHz High-Resolution Timer Support"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2722) depends on SCx200
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2723) default y
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2724) help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2725) This driver provides a clocksource built upon the on-chip
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2726) 27MHz high-resolution timer. Its also a workaround for
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2727) NSC Geode SC-1100's buggy TSC, which loses time when the
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2728) processor goes idle (as is done by the scheduler). The
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2729) other workaround is idle=poll boot option.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2730)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2731) config OLPC
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2732) bool "One Laptop Per Child support"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2733) depends on !X86_PAE
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2734) select GPIOLIB
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2735) select OF
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2736) select OF_PROMTREE
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2737) select IRQ_DOMAIN
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2738) select OLPC_EC
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2739) help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2740) Add support for detecting the unique features of the OLPC
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2741) XO hardware.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2742)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2743) config OLPC_XO1_PM
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2744) bool "OLPC XO-1 Power Management"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2745) depends on OLPC && MFD_CS5535=y && PM_SLEEP
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2746) help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2747) Add support for poweroff and suspend of the OLPC XO-1 laptop.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2748)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2749) config OLPC_XO1_RTC
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2750) bool "OLPC XO-1 Real Time Clock"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2751) depends on OLPC_XO1_PM && RTC_DRV_CMOS
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2752) help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2753) Add support for the XO-1 real time clock, which can be used as a
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2754) programmable wakeup source.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2755)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2756) config OLPC_XO1_SCI
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2757) bool "OLPC XO-1 SCI extras"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2758) depends on OLPC && OLPC_XO1_PM && GPIO_CS5535=y
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2759) depends on INPUT=y
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2760) select POWER_SUPPLY
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2761) help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2762) Add support for SCI-based features of the OLPC XO-1 laptop:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2763) - EC-driven system wakeups
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2764) - Power button
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2765) - Ebook switch
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2766) - Lid switch
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2767) - AC adapter status updates
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2768) - Battery status updates
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2769)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2770) config OLPC_XO15_SCI
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2771) bool "OLPC XO-1.5 SCI extras"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2772) depends on OLPC && ACPI
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2773) select POWER_SUPPLY
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2774) help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2775) Add support for SCI-based features of the OLPC XO-1.5 laptop:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2776) - EC-driven system wakeups
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2777) - AC adapter status updates
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2778) - Battery status updates
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2779)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2780) config ALIX
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2781) bool "PCEngines ALIX System Support (LED setup)"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2782) select GPIOLIB
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2783) help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2784) This option enables system support for the PCEngines ALIX.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2785) At present this just sets up LEDs for GPIO control on
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2786) ALIX2/3/6 boards. However, other system specific setup should
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2787) get added here.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2788)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2789) Note: You must still enable the drivers for GPIO and LED support
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2790) (GPIO_CS5535 & LEDS_GPIO) to actually use the LEDs
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2791)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2792) Note: You have to set alix.force=1 for boards with Award BIOS.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2793)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2794) config NET5501
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2795) bool "Soekris Engineering net5501 System Support (LEDS, GPIO, etc)"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2796) select GPIOLIB
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2797) help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2798) This option enables system support for the Soekris Engineering net5501.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2799)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2800) config GEOS
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2801) bool "Traverse Technologies GEOS System Support (LEDS, GPIO, etc)"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2802) select GPIOLIB
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2803) depends on DMI
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2804) help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2805) This option enables system support for the Traverse Technologies GEOS.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2806)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2807) config TS5500
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2808) bool "Technologic Systems TS-5500 platform support"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2809) depends on MELAN
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2810) select CHECK_SIGNATURE
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2811) select NEW_LEDS
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2812) select LEDS_CLASS
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2813) help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2814) This option enables system support for the Technologic Systems TS-5500.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2815)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2816) endif # X86_32
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2817)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2818) config AMD_NB
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2819) def_bool y
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2820) depends on CPU_SUP_AMD && PCI
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2821)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2822) config X86_SYSFB
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2823) bool "Mark VGA/VBE/EFI FB as generic system framebuffer"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2824) help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2825) Firmwares often provide initial graphics framebuffers so the BIOS,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2826) bootloader or kernel can show basic video-output during boot for
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2827) user-guidance and debugging. Historically, x86 used the VESA BIOS
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2828) Extensions and EFI-framebuffers for this, which are mostly limited
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2829) to x86.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2830) This option, if enabled, marks VGA/VBE/EFI framebuffers as generic
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2831) framebuffers so the new generic system-framebuffer drivers can be
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2832) used on x86. If the framebuffer is not compatible with the generic
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2833) modes, it is advertised as fallback platform framebuffer so legacy
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2834) drivers like efifb, vesafb and uvesafb can pick it up.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2835) If this option is not selected, all system framebuffers are always
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2836) marked as fallback platform framebuffers as usual.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2837)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2838) Note: Legacy fbdev drivers, including vesafb, efifb, uvesafb, will
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2839) not be able to pick up generic system framebuffers if this option
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2840) is selected. You are highly encouraged to enable simplefb as
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2841) replacement if you select this option. simplefb can correctly deal
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2842) with generic system framebuffers. But you should still keep vesafb
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2843) and others enabled as fallback if a system framebuffer is
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2844) incompatible with simplefb.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2845)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2846) If unsure, say Y.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2847)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2848) endmenu
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2849)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2850)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2851) menu "Binary Emulations"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2852)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2853) config IA32_EMULATION
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2854) bool "IA32 Emulation"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2855) depends on X86_64
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2856) select ARCH_WANT_OLD_COMPAT_IPC
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2857) select BINFMT_ELF
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2858) select COMPAT_BINFMT_ELF
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2859) select COMPAT_OLD_SIGACTION
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2860) help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2861) Include code to run legacy 32-bit programs under a
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2862) 64-bit kernel. You should likely turn this on, unless you're
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2863) 100% sure that you don't have any 32-bit programs left.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2864)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2865) config IA32_AOUT
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2866) tristate "IA32 a.out support"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2867) depends on IA32_EMULATION
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2868) depends on BROKEN
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2869) help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2870) Support old a.out binaries in the 32bit emulation.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2871)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2872) config X86_X32
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2873) bool "x32 ABI for 64-bit mode"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2874) depends on X86_64
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2875) help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2876) Include code to run binaries for the x32 native 32-bit ABI
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2877) for 64-bit processors. An x32 process gets access to the
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2878) full 64-bit register file and wide data path while leaving
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2879) pointers at 32 bits for smaller memory footprint.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2880)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2881) You will need a recent binutils (2.22 or later) with
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2882) elf32_x86_64 support enabled to compile a kernel with this
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2883) option set.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2884)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2885) config COMPAT_32
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2886) def_bool y
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2887) depends on IA32_EMULATION || X86_32
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2888) select HAVE_UID16
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2889) select OLD_SIGSUSPEND3
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2890)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2891) config COMPAT
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2892) def_bool y
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2893) depends on IA32_EMULATION || X86_X32
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2894)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2895) if COMPAT
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2896) config COMPAT_FOR_U64_ALIGNMENT
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2897) def_bool y
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2898)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2899) config SYSVIPC_COMPAT
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2900) def_bool y
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2901) depends on SYSVIPC
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2902) endif
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2903)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2904) endmenu
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2905)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2906)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2907) config HAVE_ATOMIC_IOMAP
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2908) def_bool y
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2909) depends on X86_32
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2910)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2911) source "drivers/firmware/Kconfig"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2912)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2913) source "arch/x86/kvm/Kconfig"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2914)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2915) source "arch/x86/Kconfig.assembler"