| .. | .. |
|---|
| 3 | 3 | config 64BIT |
|---|
| 4 | 4 | bool "64-bit kernel" if "$(ARCH)" = "x86" |
|---|
| 5 | 5 | default "$(ARCH)" != "i386" |
|---|
| 6 | | - ---help--- |
|---|
| 6 | + help |
|---|
| 7 | 7 | Say yes to build a 64-bit kernel - formerly known as x86_64 |
|---|
| 8 | 8 | Say no to build a 32-bit kernel - formerly known as i386 |
|---|
| 9 | 9 | |
|---|
| .. | .. |
|---|
| 14 | 14 | select ARCH_WANT_IPC_PARSE_VERSION |
|---|
| 15 | 15 | select CLKSRC_I8253 |
|---|
| 16 | 16 | select CLONE_BACKWARDS |
|---|
| 17 | | - select HAVE_AOUT |
|---|
| 18 | | - select HAVE_GENERIC_DMA_COHERENT |
|---|
| 17 | + select HAVE_DEBUG_STACKOVERFLOW |
|---|
| 19 | 18 | select MODULES_USE_ELF_REL |
|---|
| 20 | 19 | select OLD_SIGACTION |
|---|
| 21 | 20 | select GENERIC_VDSO_32 |
|---|
| 21 | + select ARCH_SPLIT_ARG64 |
|---|
| 22 | 22 | |
|---|
| 23 | 23 | config X86_64 |
|---|
| 24 | 24 | def_bool y |
|---|
| 25 | 25 | depends on 64BIT |
|---|
| 26 | 26 | # Options that are inherently 64-bit kernel only: |
|---|
| 27 | | - select ARCH_HAS_GIGANTIC_PAGE if (MEMORY_ISOLATION && COMPACTION) || CMA |
|---|
| 28 | | - select ARCH_SUPPORTS_INT128 |
|---|
| 27 | + select ARCH_HAS_GIGANTIC_PAGE |
|---|
| 28 | + select ARCH_SUPPORTS_INT128 if CC_HAS_INT128 |
|---|
| 29 | + select ARCH_SUPPORTS_SPECULATIVE_PAGE_FAULT |
|---|
| 29 | 30 | select ARCH_USE_CMPXCHG_LOCKREF |
|---|
| 30 | 31 | select HAVE_ARCH_SOFT_DIRTY |
|---|
| 31 | 32 | select MODULES_USE_ELF_RELA |
|---|
| 32 | 33 | select NEED_DMA_MAP_STATE |
|---|
| 33 | 34 | select SWIOTLB |
|---|
| 34 | | - select X86_DEV_DMA_OPS |
|---|
| 35 | | - select ARCH_HAS_SYSCALL_WRAPPER |
|---|
| 36 | 35 | |
|---|
| 36 | +config FORCE_DYNAMIC_FTRACE |
|---|
| 37 | + def_bool y |
|---|
| 38 | + depends on X86_32 |
|---|
| 39 | + depends on FUNCTION_TRACER |
|---|
| 40 | + select DYNAMIC_FTRACE |
|---|
| 41 | + help |
|---|
| 42 | + We keep the static function tracing (!DYNAMIC_FTRACE) around |
|---|
| 43 | + in order to test the non static function tracing in the |
|---|
| 44 | + generic code, as other architectures still use it. But we |
|---|
| 45 | + only need to keep it around for x86_64. No need to keep it |
|---|
| 46 | + for x86_32. For x86_32, force DYNAMIC_FTRACE. |
|---|
| 37 | 47 | # |
|---|
| 38 | 48 | # Arch settings |
|---|
| 39 | 49 | # |
|---|
| .. | .. |
|---|
| 47 | 57 | # |
|---|
| 48 | 58 | select ACPI_LEGACY_TABLES_LOOKUP if ACPI |
|---|
| 49 | 59 | select ACPI_SYSTEM_POWER_STATES_SUPPORT if ACPI |
|---|
| 50 | | - select ARCH_CLOCKSOURCE_DATA |
|---|
| 51 | | - select ARCH_DISCARD_MEMBLOCK |
|---|
| 60 | + select ARCH_32BIT_OFF_T if X86_32 |
|---|
| 61 | + select ARCH_CLOCKSOURCE_INIT |
|---|
| 52 | 62 | select ARCH_HAS_ACPI_TABLE_UPGRADE if ACPI |
|---|
| 53 | 63 | select ARCH_HAS_DEBUG_VIRTUAL |
|---|
| 64 | + select ARCH_HAS_DEBUG_VM_PGTABLE if !X86_PAE |
|---|
| 54 | 65 | select ARCH_HAS_DEVMEM_IS_ALLOWED |
|---|
| 66 | + select ARCH_HAS_EARLY_DEBUG if KGDB |
|---|
| 55 | 67 | select ARCH_HAS_ELF_RANDOMIZE |
|---|
| 56 | 68 | select ARCH_HAS_FAST_MULTIPLIER |
|---|
| 57 | 69 | select ARCH_HAS_FILTER_PGPROT |
|---|
| 58 | 70 | select ARCH_HAS_FORTIFY_SOURCE |
|---|
| 59 | 71 | select ARCH_HAS_GCOV_PROFILE_ALL |
|---|
| 60 | | - select ARCH_HAS_KCOV if X86_64 |
|---|
| 72 | + select ARCH_HAS_KCOV if X86_64 && STACK_VALIDATION |
|---|
| 73 | + select ARCH_HAS_MEM_ENCRYPT |
|---|
| 61 | 74 | select ARCH_HAS_MEMBARRIER_SYNC_CORE |
|---|
| 75 | + select ARCH_HAS_NON_OVERLAPPING_ADDRESS_SPACE |
|---|
| 62 | 76 | select ARCH_HAS_PMEM_API if X86_64 |
|---|
| 77 | + select ARCH_HAS_PTE_DEVMAP if X86_64 |
|---|
| 63 | 78 | select ARCH_HAS_PTE_SPECIAL |
|---|
| 64 | | - select ARCH_HAS_REFCOUNT |
|---|
| 65 | 79 | select ARCH_HAS_UACCESS_FLUSHCACHE if X86_64 |
|---|
| 66 | | - select ARCH_HAS_UACCESS_MCSAFE if X86_64 && X86_MCE |
|---|
| 80 | + select ARCH_HAS_COPY_MC if X86_64 |
|---|
| 67 | 81 | select ARCH_HAS_SET_MEMORY |
|---|
| 68 | | - select ARCH_HAS_SG_CHAIN |
|---|
| 82 | + select ARCH_HAS_SET_DIRECT_MAP |
|---|
| 69 | 83 | select ARCH_HAS_STRICT_KERNEL_RWX |
|---|
| 70 | 84 | select ARCH_HAS_STRICT_MODULE_RWX |
|---|
| 71 | 85 | select ARCH_HAS_SYNC_CORE_BEFORE_USERMODE |
|---|
| 86 | + select ARCH_HAS_SYSCALL_WRAPPER |
|---|
| 72 | 87 | select ARCH_HAS_UBSAN_SANITIZE_ALL |
|---|
| 73 | | - select ARCH_HAS_ZONE_DEVICE if X86_64 |
|---|
| 88 | + select ARCH_HAS_DEBUG_WX |
|---|
| 74 | 89 | select ARCH_HAVE_NMI_SAFE_CMPXCHG |
|---|
| 75 | 90 | select ARCH_MIGHT_HAVE_ACPI_PDC if ACPI |
|---|
| 76 | 91 | select ARCH_MIGHT_HAVE_PC_PARPORT |
|---|
| 77 | 92 | select ARCH_MIGHT_HAVE_PC_SERIO |
|---|
| 93 | + select ARCH_STACKWALK |
|---|
| 78 | 94 | select ARCH_SUPPORTS_ACPI |
|---|
| 79 | 95 | select ARCH_SUPPORTS_ATOMIC_RMW |
|---|
| 80 | 96 | select ARCH_SUPPORTS_NUMA_BALANCING if X86_64 |
|---|
| 81 | 97 | select ARCH_SUPPORTS_LTO_CLANG if X86_64 |
|---|
| 98 | + select ARCH_SUPPORTS_LTO_CLANG_THIN if X86_64 |
|---|
| 82 | 99 | select ARCH_USE_BUILTIN_BSWAP |
|---|
| 83 | 100 | select ARCH_USE_QUEUED_RWLOCKS |
|---|
| 84 | 101 | select ARCH_USE_QUEUED_SPINLOCKS |
|---|
| 102 | + select ARCH_USE_SYM_ANNOTATIONS |
|---|
| 85 | 103 | select ARCH_WANT_BATCHED_UNMAP_TLB_FLUSH |
|---|
| 104 | + select ARCH_WANT_DEFAULT_BPF_JIT if X86_64 |
|---|
| 86 | 105 | select ARCH_WANTS_DYNAMIC_TASK_STRUCT |
|---|
| 106 | + select ARCH_WANT_HUGE_PMD_SHARE |
|---|
| 107 | + select ARCH_WANT_LD_ORPHAN_WARN |
|---|
| 87 | 108 | select ARCH_WANTS_THP_SWAP if X86_64 |
|---|
| 88 | | - select BUILDTIME_EXTABLE_SORT |
|---|
| 109 | + select BUILDTIME_TABLE_SORT |
|---|
| 89 | 110 | select CLKEVT_I8253 |
|---|
| 90 | 111 | select CLOCKSOURCE_VALIDATE_LAST_CYCLE |
|---|
| 91 | 112 | select CLOCKSOURCE_WATCHDOG |
|---|
| 92 | 113 | select DCACHE_WORD_ACCESS |
|---|
| 93 | | - select DMA_DIRECT_OPS |
|---|
| 94 | 114 | select EDAC_ATOMIC_SCRUB |
|---|
| 95 | 115 | select EDAC_SUPPORT |
|---|
| 96 | 116 | select GENERIC_CLOCKEVENTS |
|---|
| .. | .. |
|---|
| 100 | 120 | select GENERIC_CPU_AUTOPROBE |
|---|
| 101 | 121 | select GENERIC_CPU_VULNERABILITIES |
|---|
| 102 | 122 | select GENERIC_EARLY_IOREMAP |
|---|
| 123 | + select GENERIC_ENTRY |
|---|
| 103 | 124 | select GENERIC_FIND_FIRST_BIT |
|---|
| 104 | 125 | select GENERIC_IOMAP |
|---|
| 105 | 126 | select GENERIC_IRQ_EFFECTIVE_AFF_MASK if SMP |
|---|
| .. | .. |
|---|
| 109 | 130 | select GENERIC_IRQ_RESERVATION_MODE |
|---|
| 110 | 131 | select GENERIC_IRQ_SHOW |
|---|
| 111 | 132 | select GENERIC_PENDING_IRQ if SMP |
|---|
| 133 | + select GENERIC_PTDUMP |
|---|
| 112 | 134 | select GENERIC_SMP_IDLE_THREAD |
|---|
| 113 | 135 | select GENERIC_STRNCPY_FROM_USER |
|---|
| 114 | 136 | select GENERIC_STRNLEN_USER |
|---|
| 115 | 137 | select GENERIC_TIME_VSYSCALL |
|---|
| 116 | 138 | select GENERIC_GETTIMEOFDAY |
|---|
| 139 | + select GENERIC_VDSO_TIME_NS |
|---|
| 140 | + select GUP_GET_PTE_LOW_HIGH if X86_PAE |
|---|
| 141 | + select HARDIRQS_SW_RESEND |
|---|
| 117 | 142 | select HARDLOCKUP_CHECK_TIMESTAMP if X86_64 |
|---|
| 118 | 143 | select HAVE_ACPI_APEI if ACPI |
|---|
| 119 | 144 | select HAVE_ACPI_APEI_NMI if ACPI |
|---|
| .. | .. |
|---|
| 121 | 146 | select HAVE_ARCH_AUDITSYSCALL |
|---|
| 122 | 147 | select HAVE_ARCH_HUGE_VMAP if X86_64 || X86_PAE |
|---|
| 123 | 148 | select HAVE_ARCH_JUMP_LABEL |
|---|
| 149 | + select HAVE_ARCH_JUMP_LABEL_RELATIVE |
|---|
| 124 | 150 | select HAVE_ARCH_KASAN if X86_64 |
|---|
| 151 | + select HAVE_ARCH_KASAN_VMALLOC if X86_64 |
|---|
| 152 | + select HAVE_ARCH_KFENCE |
|---|
| 125 | 153 | select HAVE_ARCH_KGDB |
|---|
| 126 | 154 | select HAVE_ARCH_MMAP_RND_BITS if MMU |
|---|
| 127 | 155 | select HAVE_ARCH_MMAP_RND_COMPAT_BITS if MMU && COMPAT |
|---|
| 128 | 156 | select HAVE_ARCH_COMPAT_MMAP_BASES if MMU && COMPAT |
|---|
| 129 | | - select HAVE_ARCH_PREL32_RELOCATIONS if !LTO_CLANG |
|---|
| 157 | + select HAVE_ARCH_PREL32_RELOCATIONS |
|---|
| 130 | 158 | select HAVE_ARCH_SECCOMP_FILTER |
|---|
| 131 | 159 | select HAVE_ARCH_THREAD_STRUCT_WHITELIST |
|---|
| 160 | + select HAVE_ARCH_STACKLEAK |
|---|
| 132 | 161 | select HAVE_ARCH_TRACEHOOK |
|---|
| 133 | 162 | select HAVE_ARCH_TRANSPARENT_HUGEPAGE |
|---|
| 134 | 163 | select HAVE_ARCH_TRANSPARENT_HUGEPAGE_PUD if X86_64 |
|---|
| 164 | + select HAVE_ARCH_USERFAULTFD_WP if X86_64 && USERFAULTFD |
|---|
| 165 | + select HAVE_ARCH_USERFAULTFD_MINOR if X86_64 && USERFAULTFD |
|---|
| 135 | 166 | select HAVE_ARCH_VMAP_STACK if X86_64 |
|---|
| 136 | 167 | select HAVE_ARCH_WITHIN_STACK_FRAMES |
|---|
| 168 | + select HAVE_ASM_MODVERSIONS |
|---|
| 137 | 169 | select HAVE_CMPXCHG_DOUBLE |
|---|
| 138 | 170 | select HAVE_CMPXCHG_LOCAL |
|---|
| 139 | 171 | select HAVE_CONTEXT_TRACKING if X86_64 |
|---|
| 140 | | - select HAVE_COPY_THREAD_TLS |
|---|
| 141 | 172 | select HAVE_C_RECORDMCOUNT |
|---|
| 173 | + select HAVE_OBJTOOL_MCOUNT if STACK_VALIDATION |
|---|
| 142 | 174 | select HAVE_DEBUG_KMEMLEAK |
|---|
| 143 | | - select HAVE_DEBUG_STACKOVERFLOW |
|---|
| 144 | 175 | select HAVE_DMA_CONTIGUOUS |
|---|
| 145 | 176 | select HAVE_DYNAMIC_FTRACE |
|---|
| 146 | 177 | select HAVE_DYNAMIC_FTRACE_WITH_REGS |
|---|
| 178 | + select HAVE_DYNAMIC_FTRACE_WITH_DIRECT_CALLS |
|---|
| 147 | 179 | select HAVE_EBPF_JIT |
|---|
| 148 | 180 | select HAVE_EFFICIENT_UNALIGNED_ACCESS |
|---|
| 181 | + select HAVE_EISA |
|---|
| 149 | 182 | select HAVE_EXIT_THREAD |
|---|
| 183 | + select HAVE_FAST_GUP |
|---|
| 150 | 184 | select HAVE_FENTRY if X86_64 || DYNAMIC_FTRACE |
|---|
| 151 | 185 | select HAVE_FTRACE_MCOUNT_RECORD |
|---|
| 152 | 186 | select HAVE_FUNCTION_GRAPH_TRACER |
|---|
| .. | .. |
|---|
| 155 | 189 | select HAVE_HW_BREAKPOINT |
|---|
| 156 | 190 | select HAVE_IDE |
|---|
| 157 | 191 | select HAVE_IOREMAP_PROT |
|---|
| 158 | | - select HAVE_IRQ_EXIT_ON_IRQ_STACK if X86_64 |
|---|
| 159 | 192 | select HAVE_IRQ_TIME_ACCOUNTING |
|---|
| 160 | 193 | select HAVE_KERNEL_BZIP2 |
|---|
| 161 | 194 | select HAVE_KERNEL_GZIP |
|---|
| .. | .. |
|---|
| 163 | 196 | select HAVE_KERNEL_LZMA |
|---|
| 164 | 197 | select HAVE_KERNEL_LZO |
|---|
| 165 | 198 | select HAVE_KERNEL_XZ |
|---|
| 199 | + select HAVE_KERNEL_ZSTD |
|---|
| 166 | 200 | select HAVE_KPROBES |
|---|
| 167 | 201 | select HAVE_KPROBES_ON_FTRACE |
|---|
| 168 | 202 | select HAVE_FUNCTION_ERROR_INJECTION |
|---|
| 169 | 203 | select HAVE_KRETPROBES |
|---|
| 170 | 204 | select HAVE_KVM |
|---|
| 171 | 205 | select HAVE_LIVEPATCH if X86_64 |
|---|
| 172 | | - select HAVE_MEMBLOCK |
|---|
| 173 | | - select HAVE_MEMBLOCK_NODE_MAP |
|---|
| 174 | 206 | select HAVE_MIXED_BREAKPOINTS_REGS |
|---|
| 175 | 207 | select HAVE_MOD_ARCH_SPECIFIC |
|---|
| 208 | + select HAVE_MOVE_PMD |
|---|
| 209 | + select HAVE_MOVE_PUD |
|---|
| 176 | 210 | select HAVE_NMI |
|---|
| 177 | 211 | select HAVE_OPROFILE |
|---|
| 178 | 212 | select HAVE_OPTPROBES |
|---|
| .. | .. |
|---|
| 180 | 214 | select HAVE_PERF_EVENTS |
|---|
| 181 | 215 | select HAVE_PERF_EVENTS_NMI |
|---|
| 182 | 216 | select HAVE_HARDLOCKUP_DETECTOR_PERF if PERF_EVENTS && HAVE_PERF_EVENTS_NMI |
|---|
| 217 | + select HAVE_PCI |
|---|
| 183 | 218 | select HAVE_PERF_REGS |
|---|
| 184 | 219 | select HAVE_PERF_USER_STACK_DUMP |
|---|
| 185 | | - select HAVE_PREEMPT_LAZY |
|---|
| 186 | | - select HAVE_RCU_TABLE_FREE if PARAVIRT |
|---|
| 187 | | - select HAVE_RCU_TABLE_INVALIDATE if HAVE_RCU_TABLE_FREE |
|---|
| 220 | + select MMU_GATHER_RCU_TABLE_FREE if PARAVIRT |
|---|
| 221 | + select HAVE_POSIX_CPU_TIMERS_TASK_WORK |
|---|
| 188 | 222 | select HAVE_REGS_AND_STACK_ACCESS_API |
|---|
| 189 | 223 | select HAVE_RELIABLE_STACKTRACE if X86_64 && (UNWINDER_FRAME_POINTER || UNWINDER_ORC) && STACK_VALIDATION |
|---|
| 224 | + select HAVE_FUNCTION_ARG_ACCESS_API |
|---|
| 190 | 225 | select HAVE_STACKPROTECTOR if CC_HAS_SANE_STACKPROTECTOR |
|---|
| 191 | | - select HAVE_STACK_VALIDATION if X86_64 && !LTO_CLANG |
|---|
| 226 | + select HAVE_STACK_VALIDATION if X86_64 |
|---|
| 227 | + select HAVE_STATIC_CALL |
|---|
| 228 | + select HAVE_STATIC_CALL_INLINE if HAVE_STACK_VALIDATION |
|---|
| 192 | 229 | select HAVE_RSEQ |
|---|
| 193 | 230 | select HAVE_SYSCALL_TRACEPOINTS |
|---|
| 194 | 231 | select HAVE_UNSTABLE_SCHED_CLOCK |
|---|
| .. | .. |
|---|
| 197 | 234 | select HOTPLUG_SMT if SMP |
|---|
| 198 | 235 | select IRQ_FORCED_THREADING |
|---|
| 199 | 236 | select NEED_SG_DMA_LENGTH |
|---|
| 200 | | - select PCI_LOCKLESS_CONFIG |
|---|
| 237 | + select PCI_DOMAINS if PCI |
|---|
| 238 | + select PCI_LOCKLESS_CONFIG if PCI |
|---|
| 201 | 239 | select PERF_EVENTS |
|---|
| 202 | 240 | select RTC_LIB |
|---|
| 203 | 241 | select RTC_MC146818_LIB |
|---|
| 204 | 242 | select SPARSE_IRQ |
|---|
| 205 | 243 | select SRCU |
|---|
| 244 | + select STACK_VALIDATION if HAVE_STACK_VALIDATION && (HAVE_STATIC_CALL_INLINE || RETPOLINE) |
|---|
| 206 | 245 | select SYSCTL_EXCEPTION_TRACE |
|---|
| 207 | 246 | select THREAD_INFO_IN_TASK |
|---|
| 208 | 247 | select USER_STACKTRACE_SUPPORT |
|---|
| 209 | 248 | select VIRT_TO_BUS |
|---|
| 249 | + select HAVE_ARCH_KCSAN if X86_64 |
|---|
| 210 | 250 | select X86_FEATURE_NAMES if PROC_FS |
|---|
| 251 | + select PROC_PID_ARCH_STATUS if PROC_FS |
|---|
| 252 | + imply IMA_SECURE_AND_OR_TRUSTED_BOOT if EFI |
|---|
| 211 | 253 | |
|---|
| 212 | 254 | config INSTRUCTION_DECODER |
|---|
| 213 | 255 | def_bool y |
|---|
| .. | .. |
|---|
| 217 | 259 | string |
|---|
| 218 | 260 | default "elf32-i386" if X86_32 |
|---|
| 219 | 261 | default "elf64-x86-64" if X86_64 |
|---|
| 220 | | - |
|---|
| 221 | | -config ARCH_DEFCONFIG |
|---|
| 222 | | - string |
|---|
| 223 | | - default "arch/x86/configs/i386_defconfig" if X86_32 |
|---|
| 224 | | - default "arch/x86/configs/x86_64_defconfig" if X86_64 |
|---|
| 225 | 262 | |
|---|
| 226 | 263 | config LOCKDEP_SUPPORT |
|---|
| 227 | 264 | def_bool y |
|---|
| .. | .. |
|---|
| 261 | 298 | config GENERIC_BUG_RELATIVE_POINTERS |
|---|
| 262 | 299 | bool |
|---|
| 263 | 300 | |
|---|
| 264 | | -config GENERIC_HWEIGHT |
|---|
| 265 | | - def_bool y |
|---|
| 266 | | - |
|---|
| 267 | 301 | config ARCH_MAY_HAVE_PC_FDC |
|---|
| 268 | 302 | def_bool y |
|---|
| 269 | 303 | depends on ISA_DMA_API |
|---|
| 270 | | - |
|---|
| 271 | | -config RWSEM_GENERIC_SPINLOCK |
|---|
| 272 | | - def_bool PREEMPT_RT_FULL |
|---|
| 273 | | - |
|---|
| 274 | | -config RWSEM_XCHGADD_ALGORITHM |
|---|
| 275 | | - def_bool !RWSEM_GENERIC_SPINLOCK && !PREEMPT_RT_FULL |
|---|
| 276 | 304 | |
|---|
| 277 | 305 | config GENERIC_CALIBRATE_DELAY |
|---|
| 278 | 306 | def_bool y |
|---|
| .. | .. |
|---|
| 301 | 329 | config ARCH_SUSPEND_POSSIBLE |
|---|
| 302 | 330 | def_bool y |
|---|
| 303 | 331 | |
|---|
| 304 | | -config ARCH_WANT_HUGE_PMD_SHARE |
|---|
| 305 | | - def_bool y |
|---|
| 306 | | - |
|---|
| 307 | 332 | config ARCH_WANT_GENERAL_HUGETLB |
|---|
| 308 | 333 | def_bool y |
|---|
| 309 | 334 | |
|---|
| .. | .. |
|---|
| 312 | 337 | |
|---|
| 313 | 338 | config AUDIT_ARCH |
|---|
| 314 | 339 | def_bool y if X86_64 |
|---|
| 315 | | - |
|---|
| 316 | | -config ARCH_SUPPORTS_OPTIMIZED_INLINING |
|---|
| 317 | | - def_bool y |
|---|
| 318 | 340 | |
|---|
| 319 | 341 | config ARCH_SUPPORTS_DEBUG_PAGEALLOC |
|---|
| 320 | 342 | def_bool y |
|---|
| .. | .. |
|---|
| 378 | 400 | |
|---|
| 379 | 401 | config SMP |
|---|
| 380 | 402 | bool "Symmetric multi-processing support" |
|---|
| 381 | | - ---help--- |
|---|
| 403 | + help |
|---|
| 382 | 404 | This enables support for systems with more than one CPU. If you have |
|---|
| 383 | 405 | a system with only one CPU, say N. If you have a system with more |
|---|
| 384 | 406 | than one CPU, say Y. |
|---|
| .. | .. |
|---|
| 398 | 420 | Y to "Enhanced Real Time Clock Support", below. The "Advanced Power |
|---|
| 399 | 421 | Management" code will be disabled if you say Y here. |
|---|
| 400 | 422 | |
|---|
| 401 | | - See also <file:Documentation/x86/i386/IO-APIC.txt>, |
|---|
| 402 | | - <file:Documentation/lockup-watchdogs.txt> and the SMP-HOWTO available at |
|---|
| 423 | + See also <file:Documentation/x86/i386/IO-APIC.rst>, |
|---|
| 424 | + <file:Documentation/admin-guide/lockup-watchdogs.rst> and the SMP-HOWTO available at |
|---|
| 403 | 425 | <http://www.tldp.org/docs.html#howto>. |
|---|
| 404 | 426 | |
|---|
| 405 | 427 | If you don't know what to do here, say N. |
|---|
| .. | .. |
|---|
| 407 | 429 | config X86_FEATURE_NAMES |
|---|
| 408 | 430 | bool "Processor feature human-readable names" if EMBEDDED |
|---|
| 409 | 431 | default y |
|---|
| 410 | | - ---help--- |
|---|
| 432 | + help |
|---|
| 411 | 433 | This option compiles in a table of x86 feature bits and corresponding |
|---|
| 412 | 434 | names. This is required to support /proc/cpuinfo and a few kernel |
|---|
| 413 | 435 | messages. You can disable this to save space, at the expense of |
|---|
| .. | .. |
|---|
| 418 | 440 | config X86_X2APIC |
|---|
| 419 | 441 | bool "Support x2apic" |
|---|
| 420 | 442 | depends on X86_LOCAL_APIC && X86_64 && (IRQ_REMAP || HYPERVISOR_GUEST) |
|---|
| 421 | | - ---help--- |
|---|
| 443 | + help |
|---|
| 422 | 444 | This enables x2apic support on CPUs that have this feature. |
|---|
| 423 | 445 | |
|---|
| 424 | 446 | This allows 32-bit apic IDs (so it can support very large systems), |
|---|
| .. | .. |
|---|
| 430 | 452 | bool "Enable MPS table" if ACPI || SFI |
|---|
| 431 | 453 | default y |
|---|
| 432 | 454 | depends on X86_LOCAL_APIC |
|---|
| 433 | | - ---help--- |
|---|
| 455 | + help |
|---|
| 434 | 456 | For old smp systems that do not have proper acpi support. Newer systems |
|---|
| 435 | 457 | (esp with 64bit cpus) with acpi support, MADT and DSDT will override it |
|---|
| 436 | 458 | |
|---|
| 437 | 459 | config GOLDFISH |
|---|
| 438 | | - def_bool y |
|---|
| 439 | | - depends on X86_GOLDFISH |
|---|
| 460 | + def_bool y |
|---|
| 461 | + depends on X86_GOLDFISH |
|---|
| 440 | 462 | |
|---|
| 441 | | -config RETPOLINE |
|---|
| 442 | | - bool "Avoid speculative indirect branches in kernel" |
|---|
| 443 | | - default y |
|---|
| 444 | | - select STACK_VALIDATION if HAVE_STACK_VALIDATION |
|---|
| 445 | | - help |
|---|
| 446 | | - Compile kernel with the retpoline compiler options to guard against |
|---|
| 447 | | - kernel-to-user data leaks by avoiding speculative indirect |
|---|
| 448 | | - branches. Requires a compiler with -mindirect-branch=thunk-extern |
|---|
| 449 | | - support for full protection. The kernel may run slower. |
|---|
| 450 | | - |
|---|
| 451 | | -config INTEL_RDT |
|---|
| 452 | | - bool "Intel Resource Director Technology support" |
|---|
| 453 | | - default n |
|---|
| 454 | | - depends on X86 && CPU_SUP_INTEL |
|---|
| 463 | +config X86_CPU_RESCTRL |
|---|
| 464 | + bool "x86 CPU resource control support" |
|---|
| 465 | + depends on X86 && (CPU_SUP_INTEL || CPU_SUP_AMD) |
|---|
| 455 | 466 | select KERNFS |
|---|
| 467 | + select PROC_CPU_RESCTRL if PROC_FS |
|---|
| 456 | 468 | help |
|---|
| 457 | | - Select to enable resource allocation and monitoring which are |
|---|
| 458 | | - sub-features of Intel Resource Director Technology(RDT). More |
|---|
| 459 | | - information about RDT can be found in the Intel x86 |
|---|
| 460 | | - Architecture Software Developer Manual. |
|---|
| 469 | + Enable x86 CPU resource control support. |
|---|
| 470 | + |
|---|
| 471 | + Provide support for the allocation and monitoring of system resources |
|---|
| 472 | + usage by the CPU. |
|---|
| 473 | + |
|---|
| 474 | + Intel calls this Intel Resource Director Technology |
|---|
| 475 | + (Intel(R) RDT). More information about RDT can be found in the |
|---|
| 476 | + Intel x86 Architecture Software Developer Manual. |
|---|
| 477 | + |
|---|
| 478 | + AMD calls this AMD Platform Quality of Service (AMD QoS). |
|---|
| 479 | + More information about AMD QoS can be found in the AMD64 Technology |
|---|
| 480 | + Platform Quality of Service Extensions manual. |
|---|
| 461 | 481 | |
|---|
| 462 | 482 | Say N if unsure. |
|---|
| 463 | 483 | |
|---|
| .. | .. |
|---|
| 465 | 485 | config X86_BIGSMP |
|---|
| 466 | 486 | bool "Support for big SMP systems with more than 8 CPUs" |
|---|
| 467 | 487 | depends on SMP |
|---|
| 468 | | - ---help--- |
|---|
| 469 | | - This option is needed for the systems that have more than 8 CPUs |
|---|
| 488 | + help |
|---|
| 489 | + This option is needed for the systems that have more than 8 CPUs. |
|---|
| 470 | 490 | |
|---|
| 471 | 491 | config X86_EXTENDED_PLATFORM |
|---|
| 472 | 492 | bool "Support for extended (non-PC) x86 platforms" |
|---|
| 473 | 493 | default y |
|---|
| 474 | | - ---help--- |
|---|
| 494 | + help |
|---|
| 475 | 495 | If you disable this option then the kernel will only support |
|---|
| 476 | 496 | standard PC platforms. (which covers the vast majority of |
|---|
| 477 | 497 | systems out there.) |
|---|
| .. | .. |
|---|
| 493 | 513 | config X86_EXTENDED_PLATFORM |
|---|
| 494 | 514 | bool "Support for extended (non-PC) x86 platforms" |
|---|
| 495 | 515 | default y |
|---|
| 496 | | - ---help--- |
|---|
| 516 | + help |
|---|
| 497 | 517 | If you disable this option then the kernel will only support |
|---|
| 498 | 518 | standard PC platforms. (which covers the vast majority of |
|---|
| 499 | 519 | systems out there.) |
|---|
| .. | .. |
|---|
| 517 | 537 | depends on SMP |
|---|
| 518 | 538 | depends on X86_X2APIC |
|---|
| 519 | 539 | depends on PCI_MMCONFIG |
|---|
| 520 | | - ---help--- |
|---|
| 540 | + help |
|---|
| 521 | 541 | Adds support for Numascale NumaChip large-SMP systems. Needed to |
|---|
| 522 | 542 | enable more than ~168 cores. |
|---|
| 523 | 543 | If you don't have one of these, you should say N here. |
|---|
| .. | .. |
|---|
| 529 | 549 | depends on X86_64 && PCI |
|---|
| 530 | 550 | depends on X86_EXTENDED_PLATFORM |
|---|
| 531 | 551 | depends on SMP |
|---|
| 532 | | - ---help--- |
|---|
| 552 | + help |
|---|
| 533 | 553 | Support for ScaleMP vSMP systems. Say 'Y' here if this kernel is |
|---|
| 534 | 554 | supposed to run on these EM64T-based machines. Only choose this option |
|---|
| 535 | 555 | if you have one of these machines. |
|---|
| .. | .. |
|---|
| 543 | 563 | depends on KEXEC_CORE |
|---|
| 544 | 564 | depends on X86_X2APIC |
|---|
| 545 | 565 | depends on PCI |
|---|
| 546 | | - ---help--- |
|---|
| 566 | + help |
|---|
| 547 | 567 | This option is needed in order to support SGI Ultraviolet systems. |
|---|
| 548 | 568 | If you don't have one of these, you should say N here. |
|---|
| 549 | 569 | |
|---|
| .. | .. |
|---|
| 551 | 571 | # Please maintain the alphabetic order if and when there are additions |
|---|
| 552 | 572 | |
|---|
| 553 | 573 | config X86_GOLDFISH |
|---|
| 554 | | - bool "Goldfish (Virtual Platform)" |
|---|
| 555 | | - depends on X86_EXTENDED_PLATFORM |
|---|
| 556 | | - ---help--- |
|---|
| 574 | + bool "Goldfish (Virtual Platform)" |
|---|
| 575 | + depends on X86_EXTENDED_PLATFORM |
|---|
| 576 | + help |
|---|
| 557 | 577 | Enable support for the Goldfish virtual platform used primarily |
|---|
| 558 | 578 | for Android development. Unless you are building for the Android |
|---|
| 559 | 579 | Goldfish emulator say N here. |
|---|
| .. | .. |
|---|
| 568 | 588 | select X86_REBOOTFIXUPS |
|---|
| 569 | 589 | select OF |
|---|
| 570 | 590 | select OF_EARLY_FLATTREE |
|---|
| 571 | | - ---help--- |
|---|
| 591 | + help |
|---|
| 572 | 592 | Select for the Intel CE media processor (CE4100) SOC. |
|---|
| 573 | 593 | This option compiles in support for the CE4100 SOC for settop |
|---|
| 574 | 594 | boxes and media devices. |
|---|
| .. | .. |
|---|
| 584 | 604 | select I2C |
|---|
| 585 | 605 | select DW_APB_TIMER |
|---|
| 586 | 606 | select APB_TIMER |
|---|
| 587 | | - select INTEL_SCU_IPC |
|---|
| 607 | + select INTEL_SCU_PCI |
|---|
| 588 | 608 | select MFD_INTEL_MSIC |
|---|
| 589 | | - ---help--- |
|---|
| 609 | + help |
|---|
| 590 | 610 | Select to build a kernel capable of supporting Intel MID (Mobile |
|---|
| 591 | 611 | Internet Device) platform systems which do not have the PCI legacy |
|---|
| 592 | 612 | interfaces. If you are building for a PC class system say N here. |
|---|
| .. | .. |
|---|
| 606 | 626 | select IOSF_MBI |
|---|
| 607 | 627 | select INTEL_IMR |
|---|
| 608 | 628 | select COMMON_CLK |
|---|
| 609 | | - ---help--- |
|---|
| 629 | + help |
|---|
| 610 | 630 | Select to include support for Quark X1000 SoC. |
|---|
| 611 | 631 | Say Y here if you have a Quark based system such as the Arduino |
|---|
| 612 | 632 | compatible Intel Galileo. |
|---|
| 613 | 633 | |
|---|
| 614 | 634 | config X86_INTEL_LPSS |
|---|
| 615 | 635 | bool "Intel Low Power Subsystem Support" |
|---|
| 616 | | - depends on X86 && ACPI |
|---|
| 636 | + depends on X86 && ACPI && PCI |
|---|
| 617 | 637 | select COMMON_CLK |
|---|
| 618 | 638 | select PINCTRL |
|---|
| 619 | 639 | select IOSF_MBI |
|---|
| 620 | | - ---help--- |
|---|
| 640 | + help |
|---|
| 621 | 641 | Select to build support for Intel Low Power Subsystem such as |
|---|
| 622 | 642 | found on Intel Lynxpoint PCH. Selecting this option enables |
|---|
| 623 | 643 | things like clock tree (common clock framework) and pincontrol |
|---|
| .. | .. |
|---|
| 628 | 648 | depends on ACPI |
|---|
| 629 | 649 | select COMMON_CLK |
|---|
| 630 | 650 | select PINCTRL |
|---|
| 631 | | - ---help--- |
|---|
| 651 | + help |
|---|
| 632 | 652 | Select to interpret AMD specific ACPI device to platform device |
|---|
| 633 | 653 | such as I2C, UART, GPIO found on AMD Carrizo and later chipsets. |
|---|
| 634 | 654 | I2C and UART depend on COMMON_CLK to set clock. GPIO driver is |
|---|
| .. | .. |
|---|
| 637 | 657 | config IOSF_MBI |
|---|
| 638 | 658 | tristate "Intel SoC IOSF Sideband support for SoC platforms" |
|---|
| 639 | 659 | depends on PCI |
|---|
| 640 | | - ---help--- |
|---|
| 660 | + help |
|---|
| 641 | 661 | This option enables sideband register access support for Intel SoC |
|---|
| 642 | 662 | platforms. On these platforms the IOSF sideband is used in lieu of |
|---|
| 643 | 663 | MSR's for some register accesses, mostly but not limited to thermal |
|---|
| .. | .. |
|---|
| 654 | 674 | config IOSF_MBI_DEBUG |
|---|
| 655 | 675 | bool "Enable IOSF sideband access through debugfs" |
|---|
| 656 | 676 | depends on IOSF_MBI && DEBUG_FS |
|---|
| 657 | | - ---help--- |
|---|
| 677 | + help |
|---|
| 658 | 678 | Select this option to expose the IOSF sideband access registers (MCR, |
|---|
| 659 | 679 | MDR, MCRX) through debugfs to write and read register information from |
|---|
| 660 | 680 | different units on the SoC. This is most useful for obtaining device |
|---|
| .. | .. |
|---|
| 670 | 690 | depends on X86_EXTENDED_PLATFORM |
|---|
| 671 | 691 | select M486 |
|---|
| 672 | 692 | select X86_REBOOTFIXUPS |
|---|
| 673 | | - ---help--- |
|---|
| 693 | + help |
|---|
| 674 | 694 | This option is needed for RDC R-321x system-on-chip, also known |
|---|
| 675 | 695 | as R-8610-(G). |
|---|
| 676 | 696 | If you don't have one of these chips, you should say N here. |
|---|
| .. | .. |
|---|
| 679 | 699 | bool "Support non-standard 32-bit SMP architectures" |
|---|
| 680 | 700 | depends on X86_32 && SMP |
|---|
| 681 | 701 | depends on X86_EXTENDED_PLATFORM |
|---|
| 682 | | - ---help--- |
|---|
| 702 | + help |
|---|
| 683 | 703 | This option compiles in the bigsmp and STA2X11 default |
|---|
| 684 | 704 | subarchitectures. It is intended for a generic binary |
|---|
| 685 | 705 | kernel. If you select them all, kernel will probe it one by |
|---|
| .. | .. |
|---|
| 699 | 719 | config STA2X11 |
|---|
| 700 | 720 | bool "STA2X11 Companion Chip Support" |
|---|
| 701 | 721 | depends on X86_32_NON_STANDARD && PCI |
|---|
| 702 | | - select ARCH_HAS_PHYS_TO_DMA |
|---|
| 703 | | - select X86_DEV_DMA_OPS |
|---|
| 704 | | - select X86_DMA_REMAP |
|---|
| 705 | 722 | select SWIOTLB |
|---|
| 706 | 723 | select MFD_STA2X11 |
|---|
| 707 | 724 | select GPIOLIB |
|---|
| 708 | | - default n |
|---|
| 709 | | - ---help--- |
|---|
| 725 | + help |
|---|
| 710 | 726 | This adds support for boards based on the STA2X11 IO-Hub, |
|---|
| 711 | 727 | a.k.a. "ConneXt". The chip is used in place of the standard |
|---|
| 712 | 728 | PC chipset, so all "standard" peripherals are missing. If this |
|---|
| .. | .. |
|---|
| 716 | 732 | config X86_32_IRIS |
|---|
| 717 | 733 | tristate "Eurobraille/Iris poweroff module" |
|---|
| 718 | 734 | depends on X86_32 |
|---|
| 719 | | - ---help--- |
|---|
| 735 | + help |
|---|
| 720 | 736 | The Iris machines from EuroBraille do not have APM or ACPI support |
|---|
| 721 | 737 | to shut themselves down properly. A special I/O sequence is |
|---|
| 722 | 738 | needed to do so, which is what this module does at |
|---|
| .. | .. |
|---|
| 730 | 746 | def_bool y |
|---|
| 731 | 747 | prompt "Single-depth WCHAN output" |
|---|
| 732 | 748 | depends on X86 |
|---|
| 733 | | - ---help--- |
|---|
| 749 | + help |
|---|
| 734 | 750 | Calculate simpler /proc/<PID>/wchan values. If this option |
|---|
| 735 | 751 | is disabled then wchan values will recurse back to the |
|---|
| 736 | 752 | caller function. This provides more accurate wchan values, |
|---|
| .. | .. |
|---|
| 740 | 756 | |
|---|
| 741 | 757 | menuconfig HYPERVISOR_GUEST |
|---|
| 742 | 758 | bool "Linux guest support" |
|---|
| 743 | | - ---help--- |
|---|
| 759 | + help |
|---|
| 744 | 760 | Say Y here to enable options for running Linux under various hyper- |
|---|
| 745 | 761 | visors. This option enables basic hypervisor detection and platform |
|---|
| 746 | 762 | setup. |
|---|
| .. | .. |
|---|
| 752 | 768 | |
|---|
| 753 | 769 | config PARAVIRT |
|---|
| 754 | 770 | bool "Enable paravirtualization code" |
|---|
| 755 | | - ---help--- |
|---|
| 771 | + help |
|---|
| 756 | 772 | This changes the kernel so it can modify itself when it is run |
|---|
| 757 | 773 | under a hypervisor, potentially improving performance significantly |
|---|
| 758 | 774 | over full virtualization. However, when run without a hypervisor |
|---|
| 759 | 775 | the kernel is theoretically slower and slightly larger. |
|---|
| 760 | 776 | |
|---|
| 777 | +config PARAVIRT_XXL |
|---|
| 778 | + bool |
|---|
| 779 | + |
|---|
| 761 | 780 | config PARAVIRT_DEBUG |
|---|
| 762 | 781 | bool "paravirt-ops debugging" |
|---|
| 763 | 782 | depends on PARAVIRT && DEBUG_KERNEL |
|---|
| 764 | | - ---help--- |
|---|
| 783 | + help |
|---|
| 765 | 784 | Enable to debug paravirt_ops internals. Specifically, BUG if |
|---|
| 766 | 785 | a paravirt_op is missing when it is called. |
|---|
| 767 | 786 | |
|---|
| 768 | 787 | config PARAVIRT_SPINLOCKS |
|---|
| 769 | 788 | bool "Paravirtualization layer for spinlocks" |
|---|
| 770 | 789 | depends on PARAVIRT && SMP |
|---|
| 771 | | - ---help--- |
|---|
| 790 | + help |
|---|
| 772 | 791 | Paravirtualized spinlocks allow a pvops backend to replace the |
|---|
| 773 | 792 | spinlock implementation with something virtualization-friendly |
|---|
| 774 | 793 | (for example, block the virtual CPU rather than spinning). |
|---|
| .. | .. |
|---|
| 778 | 797 | |
|---|
| 779 | 798 | If you are unsure how to answer this question, answer Y. |
|---|
| 780 | 799 | |
|---|
| 781 | | -config QUEUED_LOCK_STAT |
|---|
| 782 | | - bool "Paravirt queued spinlock statistics" |
|---|
| 783 | | - depends on PARAVIRT_SPINLOCKS && DEBUG_FS |
|---|
| 784 | | - ---help--- |
|---|
| 785 | | - Enable the collection of statistical data on the slowpath |
|---|
| 786 | | - behavior of paravirtualized queued spinlocks and report |
|---|
| 787 | | - them on debugfs. |
|---|
| 800 | +config X86_HV_CALLBACK_VECTOR |
|---|
| 801 | + def_bool n |
|---|
| 788 | 802 | |
|---|
| 789 | 803 | source "arch/x86/xen/Kconfig" |
|---|
| 790 | 804 | |
|---|
| .. | .. |
|---|
| 792 | 806 | bool "KVM Guest support (including kvmclock)" |
|---|
| 793 | 807 | depends on PARAVIRT |
|---|
| 794 | 808 | select PARAVIRT_CLOCK |
|---|
| 809 | + select ARCH_CPUIDLE_HALTPOLL |
|---|
| 810 | + select X86_HV_CALLBACK_VECTOR |
|---|
| 795 | 811 | default y |
|---|
| 796 | | - ---help--- |
|---|
| 812 | + help |
|---|
| 797 | 813 | This option enables various optimizations for running under the KVM |
|---|
| 798 | 814 | hypervisor. It includes a paravirtualized clock, so that instead |
|---|
| 799 | 815 | of relying on a PIT (or probably other) emulation by the |
|---|
| 800 | 816 | underlying device model, the host provides the guest with |
|---|
| 801 | 817 | timing infrastructure such as time of day, and system time |
|---|
| 802 | 818 | |
|---|
| 803 | | -config KVM_DEBUG_FS |
|---|
| 804 | | - bool "Enable debug information for KVM Guests in debugfs" |
|---|
| 805 | | - depends on KVM_GUEST && DEBUG_FS |
|---|
| 806 | | - default n |
|---|
| 807 | | - ---help--- |
|---|
| 808 | | - This option enables collection of various statistics for KVM guest. |
|---|
| 809 | | - Statistics are displayed in debugfs filesystem. Enabling this option |
|---|
| 810 | | - may incur significant overhead. |
|---|
| 819 | +config ARCH_CPUIDLE_HALTPOLL |
|---|
| 820 | + def_bool n |
|---|
| 821 | + prompt "Disable host haltpoll when loading haltpoll driver" |
|---|
| 822 | + help |
|---|
| 823 | + If virtualized under KVM, disable host haltpoll. |
|---|
| 824 | + |
|---|
| 825 | +config PVH |
|---|
| 826 | + bool "Support for running PVH guests" |
|---|
| 827 | + help |
|---|
| 828 | + This option enables the PVH entry point for guest virtual machines |
|---|
| 829 | + as specified in the x86/HVM direct boot ABI. |
|---|
| 811 | 830 | |
|---|
| 812 | 831 | config PARAVIRT_TIME_ACCOUNTING |
|---|
| 813 | 832 | bool "Paravirtual steal time accounting" |
|---|
| 814 | 833 | depends on PARAVIRT |
|---|
| 815 | | - default n |
|---|
| 816 | | - ---help--- |
|---|
| 834 | + help |
|---|
| 817 | 835 | Select this option to enable fine granularity task steal time |
|---|
| 818 | 836 | accounting. Time spent executing other tasks in parallel with |
|---|
| 819 | 837 | the current vCPU is discounted from the vCPU power. To account for |
|---|
| .. | .. |
|---|
| 828 | 846 | bool "Jailhouse non-root cell support" |
|---|
| 829 | 847 | depends on X86_64 && PCI |
|---|
| 830 | 848 | select X86_PM_TIMER |
|---|
| 831 | | - ---help--- |
|---|
| 849 | + help |
|---|
| 832 | 850 | This option allows to run Linux as guest in a Jailhouse non-root |
|---|
| 833 | 851 | cell. You can leave this option disabled if you only want to start |
|---|
| 834 | 852 | Jailhouse and run Linux afterwards in the root cell. |
|---|
| 835 | 853 | |
|---|
| 836 | | -endif #HYPERVISOR_GUEST |
|---|
| 854 | +config ACRN_GUEST |
|---|
| 855 | + bool "ACRN Guest support" |
|---|
| 856 | + depends on X86_64 |
|---|
| 857 | + select X86_HV_CALLBACK_VECTOR |
|---|
| 858 | + help |
|---|
| 859 | + This option allows to run Linux as guest in the ACRN hypervisor. ACRN is |
|---|
| 860 | + a flexible, lightweight reference open-source hypervisor, built with |
|---|
| 861 | + real-time and safety-criticality in mind. It is built for embedded |
|---|
| 862 | + IOT with small footprint and real-time features. More details can be |
|---|
| 863 | + found in https://projectacrn.org/. |
|---|
| 837 | 864 | |
|---|
| 838 | | -config NO_BOOTMEM |
|---|
| 839 | | - def_bool y |
|---|
| 865 | +endif #HYPERVISOR_GUEST |
|---|
| 840 | 866 | |
|---|
| 841 | 867 | source "arch/x86/Kconfig.cpu" |
|---|
| 842 | 868 | |
|---|
| 843 | 869 | config HPET_TIMER |
|---|
| 844 | 870 | def_bool X86_64 |
|---|
| 845 | 871 | prompt "HPET Timer Support" if X86_32 |
|---|
| 846 | | - ---help--- |
|---|
| 872 | + help |
|---|
| 847 | 873 | Use the IA-PC HPET (High Precision Event Timer) to manage |
|---|
| 848 | 874 | time in preference to the PIT and RTC, if a HPET is |
|---|
| 849 | 875 | present. |
|---|
| .. | .. |
|---|
| 864 | 890 | depends on HPET_TIMER && (RTC=y || RTC=m || RTC_DRV_CMOS=m || RTC_DRV_CMOS=y) |
|---|
| 865 | 891 | |
|---|
| 866 | 892 | config APB_TIMER |
|---|
| 867 | | - def_bool y if X86_INTEL_MID |
|---|
| 868 | | - prompt "Intel MID APB Timer Support" if X86_INTEL_MID |
|---|
| 869 | | - select DW_APB_TIMER |
|---|
| 870 | | - depends on X86_INTEL_MID && SFI |
|---|
| 871 | | - help |
|---|
| 872 | | - APB timer is the replacement for 8254, HPET on X86 MID platforms. |
|---|
| 873 | | - The APBT provides a stable time base on SMP |
|---|
| 874 | | - systems, unlike the TSC, but it is more expensive to access, |
|---|
| 875 | | - as it is off-chip. APB timers are always running regardless of CPU |
|---|
| 876 | | - C states, they are used as per CPU clockevent device when possible. |
|---|
| 893 | + def_bool y if X86_INTEL_MID |
|---|
| 894 | + prompt "Intel MID APB Timer Support" if X86_INTEL_MID |
|---|
| 895 | + select DW_APB_TIMER |
|---|
| 896 | + depends on X86_INTEL_MID && SFI |
|---|
| 897 | + help |
|---|
| 898 | + APB timer is the replacement for 8254, HPET on X86 MID platforms. |
|---|
| 899 | + The APBT provides a stable time base on SMP |
|---|
| 900 | + systems, unlike the TSC, but it is more expensive to access, |
|---|
| 901 | + as it is off-chip. APB timers are always running regardless of CPU |
|---|
| 902 | + C states, they are used as per CPU clockevent device when possible. |
|---|
| 877 | 903 | |
|---|
| 878 | 904 | # Mark as expert because too many people got it wrong. |
|---|
| 879 | 905 | # The code disables itself when not needed. |
|---|
| .. | .. |
|---|
| 881 | 907 | default y |
|---|
| 882 | 908 | select DMI_SCAN_MACHINE_NON_EFI_FALLBACK |
|---|
| 883 | 909 | bool "Enable DMI scanning" if EXPERT |
|---|
| 884 | | - ---help--- |
|---|
| 910 | + help |
|---|
| 885 | 911 | Enabled scanning of DMI to identify machine quirks. Say Y |
|---|
| 886 | 912 | here unless you have verified that your setup is not |
|---|
| 887 | 913 | affected by entries in the DMI blacklist. Required by PNP |
|---|
| .. | .. |
|---|
| 889 | 915 | |
|---|
| 890 | 916 | config GART_IOMMU |
|---|
| 891 | 917 | bool "Old AMD GART IOMMU support" |
|---|
| 918 | + select DMA_OPS |
|---|
| 892 | 919 | select IOMMU_HELPER |
|---|
| 893 | 920 | select SWIOTLB |
|---|
| 894 | 921 | depends on X86_64 && PCI && AMD_NB |
|---|
| 895 | | - ---help--- |
|---|
| 922 | + help |
|---|
| 896 | 923 | Provides a driver for older AMD Athlon64/Opteron/Turion/Sempron |
|---|
| 897 | 924 | GART based hardware IOMMUs. |
|---|
| 898 | 925 | |
|---|
| .. | .. |
|---|
| 909 | 936 | |
|---|
| 910 | 937 | If unsure, say Y. |
|---|
| 911 | 938 | |
|---|
| 912 | | -config CALGARY_IOMMU |
|---|
| 913 | | - bool "IBM Calgary IOMMU support" |
|---|
| 914 | | - select IOMMU_HELPER |
|---|
| 915 | | - select SWIOTLB |
|---|
| 916 | | - depends on X86_64 && PCI |
|---|
| 917 | | - ---help--- |
|---|
| 918 | | - Support for hardware IOMMUs in IBM's xSeries x366 and x460 |
|---|
| 919 | | - systems. Needed to run systems with more than 3GB of memory |
|---|
| 920 | | - properly with 32-bit PCI devices that do not support DAC |
|---|
| 921 | | - (Double Address Cycle). Calgary also supports bus level |
|---|
| 922 | | - isolation, where all DMAs pass through the IOMMU. This |
|---|
| 923 | | - prevents them from going anywhere except their intended |
|---|
| 924 | | - destination. This catches hard-to-find kernel bugs and |
|---|
| 925 | | - mis-behaving drivers and devices that do not use the DMA-API |
|---|
| 926 | | - properly to set up their DMA buffers. The IOMMU can be |
|---|
| 927 | | - turned off at boot time with the iommu=off parameter. |
|---|
| 928 | | - Normally the kernel will make the right choice by itself. |
|---|
| 929 | | - If unsure, say Y. |
|---|
| 930 | | - |
|---|
| 931 | | -config CALGARY_IOMMU_ENABLED_BY_DEFAULT |
|---|
| 932 | | - def_bool y |
|---|
| 933 | | - prompt "Should Calgary be enabled by default?" |
|---|
| 934 | | - depends on CALGARY_IOMMU |
|---|
| 935 | | - ---help--- |
|---|
| 936 | | - Should Calgary be enabled by default? if you choose 'y', Calgary |
|---|
| 937 | | - will be used (if it exists). If you choose 'n', Calgary will not be |
|---|
| 938 | | - used even if it exists. If you choose 'n' and would like to use |
|---|
| 939 | | - Calgary anyway, pass 'iommu=calgary' on the kernel command line. |
|---|
| 940 | | - If unsure, say Y. |
|---|
| 941 | | - |
|---|
| 942 | 939 | config MAXSMP |
|---|
| 943 | 940 | bool "Enable Maximum number of SMP Processors and NUMA Nodes" |
|---|
| 944 | 941 | depends on X86_64 && SMP && DEBUG_KERNEL |
|---|
| 945 | | - select CPUMASK_OFFSTACK if !PREEMPT_RT_FULL |
|---|
| 946 | | - ---help--- |
|---|
| 942 | + select CPUMASK_OFFSTACK |
|---|
| 943 | + help |
|---|
| 947 | 944 | Enable maximum number of CPUS and NUMA Nodes for this architecture. |
|---|
| 948 | 945 | If unsure, say N. |
|---|
| 949 | 946 | |
|---|
| .. | .. |
|---|
| 977 | 974 | config NR_CPUS_RANGE_END |
|---|
| 978 | 975 | int |
|---|
| 979 | 976 | depends on X86_64 |
|---|
| 980 | | - default 8192 if SMP && ( MAXSMP || CPUMASK_OFFSTACK) |
|---|
| 981 | | - default 512 if SMP && (!MAXSMP && !CPUMASK_OFFSTACK) |
|---|
| 977 | + default 8192 if SMP && CPUMASK_OFFSTACK |
|---|
| 978 | + default 512 if SMP && !CPUMASK_OFFSTACK |
|---|
| 982 | 979 | default 1 if !SMP |
|---|
| 983 | 980 | |
|---|
| 984 | 981 | config NR_CPUS_DEFAULT |
|---|
| .. | .. |
|---|
| 999 | 996 | int "Maximum number of CPUs" if SMP && !MAXSMP |
|---|
| 1000 | 997 | range NR_CPUS_RANGE_BEGIN NR_CPUS_RANGE_END |
|---|
| 1001 | 998 | default NR_CPUS_DEFAULT |
|---|
| 1002 | | - ---help--- |
|---|
| 999 | + help |
|---|
| 1003 | 1000 | This allows you to specify the maximum number of CPUs which this |
|---|
| 1004 | 1001 | kernel will support. If CPUMASK_OFFSTACK is enabled, the maximum |
|---|
| 1005 | 1002 | supported value is 8192, otherwise the maximum value is 512. The |
|---|
| .. | .. |
|---|
| 1015 | 1012 | def_bool y |
|---|
| 1016 | 1013 | prompt "Multi-core scheduler support" |
|---|
| 1017 | 1014 | depends on SMP |
|---|
| 1018 | | - ---help--- |
|---|
| 1015 | + help |
|---|
| 1019 | 1016 | Multi-core scheduler support improves the CPU scheduler's decision |
|---|
| 1020 | 1017 | making when dealing with multi-core CPU chips at a cost of slightly |
|---|
| 1021 | 1018 | increased overhead in some places. If unsure say N here. |
|---|
| .. | .. |
|---|
| 1026 | 1023 | select X86_INTEL_PSTATE |
|---|
| 1027 | 1024 | select CPU_FREQ |
|---|
| 1028 | 1025 | default y |
|---|
| 1029 | | - ---help--- |
|---|
| 1026 | + help |
|---|
| 1030 | 1027 | Intel Turbo Boost Max Technology 3.0 enabled CPUs have a |
|---|
| 1031 | 1028 | core ordering determined at manufacturing time, which allows |
|---|
| 1032 | 1029 | certain cores to reach higher turbo frequencies (when running |
|---|
| .. | .. |
|---|
| 1042 | 1039 | If unsure say Y here. |
|---|
| 1043 | 1040 | |
|---|
| 1044 | 1041 | config UP_LATE_INIT |
|---|
| 1045 | | - def_bool y |
|---|
| 1046 | | - depends on !SMP && X86_LOCAL_APIC |
|---|
| 1042 | + def_bool y |
|---|
| 1043 | + depends on !SMP && X86_LOCAL_APIC |
|---|
| 1047 | 1044 | |
|---|
| 1048 | 1045 | config X86_UP_APIC |
|---|
| 1049 | 1046 | bool "Local APIC support on uniprocessors" if !PCI_MSI |
|---|
| 1050 | 1047 | default PCI_MSI |
|---|
| 1051 | 1048 | depends on X86_32 && !SMP && !X86_32_NON_STANDARD |
|---|
| 1052 | | - ---help--- |
|---|
| 1049 | + help |
|---|
| 1053 | 1050 | A local APIC (Advanced Programmable Interrupt Controller) is an |
|---|
| 1054 | 1051 | integrated interrupt controller in the CPU. If you have a single-CPU |
|---|
| 1055 | 1052 | system which has a processor with a local APIC, you can say Y here to |
|---|
| .. | .. |
|---|
| 1062 | 1059 | config X86_UP_IOAPIC |
|---|
| 1063 | 1060 | bool "IO-APIC support on uniprocessors" |
|---|
| 1064 | 1061 | depends on X86_UP_APIC |
|---|
| 1065 | | - ---help--- |
|---|
| 1062 | + help |
|---|
| 1066 | 1063 | An IO-APIC (I/O Advanced Programmable Interrupt Controller) is an |
|---|
| 1067 | 1064 | SMP-capable replacement for PC-style interrupt controllers. Most |
|---|
| 1068 | 1065 | SMP systems and many recent uniprocessor systems have one. |
|---|
| .. | .. |
|---|
| 1084 | 1081 | config X86_REROUTE_FOR_BROKEN_BOOT_IRQS |
|---|
| 1085 | 1082 | bool "Reroute for broken boot IRQs" |
|---|
| 1086 | 1083 | depends on X86_IO_APIC |
|---|
| 1087 | | - ---help--- |
|---|
| 1084 | + help |
|---|
| 1088 | 1085 | This option enables a workaround that fixes a source of |
|---|
| 1089 | 1086 | spurious interrupts. This is recommended when threaded |
|---|
| 1090 | 1087 | interrupt handling is used on systems where the generation of |
|---|
| .. | .. |
|---|
| 1108 | 1105 | bool "Machine Check / overheating reporting" |
|---|
| 1109 | 1106 | select GENERIC_ALLOCATOR |
|---|
| 1110 | 1107 | default y |
|---|
| 1111 | | - ---help--- |
|---|
| 1108 | + help |
|---|
| 1112 | 1109 | Machine Check support allows the processor to notify the |
|---|
| 1113 | 1110 | kernel if it detects a problem (e.g. overheating, data corruption). |
|---|
| 1114 | 1111 | The action the kernel takes depends on the severity of the problem, |
|---|
| .. | .. |
|---|
| 1117 | 1114 | config X86_MCELOG_LEGACY |
|---|
| 1118 | 1115 | bool "Support for deprecated /dev/mcelog character device" |
|---|
| 1119 | 1116 | depends on X86_MCE |
|---|
| 1120 | | - ---help--- |
|---|
| 1117 | + help |
|---|
| 1121 | 1118 | Enable support for /dev/mcelog which is needed by the old mcelog |
|---|
| 1122 | 1119 | userspace logging daemon. Consider switching to the new generation |
|---|
| 1123 | 1120 | rasdaemon solution. |
|---|
| .. | .. |
|---|
| 1126 | 1123 | def_bool y |
|---|
| 1127 | 1124 | prompt "Intel MCE features" |
|---|
| 1128 | 1125 | depends on X86_MCE && X86_LOCAL_APIC |
|---|
| 1129 | | - ---help--- |
|---|
| 1126 | + help |
|---|
| 1130 | 1127 | Additional support for intel specific MCE features such as |
|---|
| 1131 | 1128 | the thermal monitor. |
|---|
| 1132 | 1129 | |
|---|
| .. | .. |
|---|
| 1134 | 1131 | def_bool y |
|---|
| 1135 | 1132 | prompt "AMD MCE features" |
|---|
| 1136 | 1133 | depends on X86_MCE && X86_LOCAL_APIC && AMD_NB |
|---|
| 1137 | | - ---help--- |
|---|
| 1134 | + help |
|---|
| 1138 | 1135 | Additional support for AMD specific MCE features such as |
|---|
| 1139 | 1136 | the DRAM Error Threshold. |
|---|
| 1140 | 1137 | |
|---|
| 1141 | 1138 | config X86_ANCIENT_MCE |
|---|
| 1142 | 1139 | bool "Support for old Pentium 5 / WinChip machine checks" |
|---|
| 1143 | 1140 | depends on X86_32 && X86_MCE |
|---|
| 1144 | | - ---help--- |
|---|
| 1141 | + help |
|---|
| 1145 | 1142 | Include support for machine check handling on old Pentium 5 or WinChip |
|---|
| 1146 | 1143 | systems. These typically need to be enabled explicitly on the command |
|---|
| 1147 | 1144 | line. |
|---|
| .. | .. |
|---|
| 1153 | 1150 | config X86_MCE_INJECT |
|---|
| 1154 | 1151 | depends on X86_MCE && X86_LOCAL_APIC && DEBUG_FS |
|---|
| 1155 | 1152 | tristate "Machine check injector support" |
|---|
| 1156 | | - ---help--- |
|---|
| 1153 | + help |
|---|
| 1157 | 1154 | Provide support for injecting machine checks for testing purposes. |
|---|
| 1158 | 1155 | If you don't know what a machine check is and you don't do kernel |
|---|
| 1159 | 1156 | QA it is safe to say n. |
|---|
| .. | .. |
|---|
| 1166 | 1163 | |
|---|
| 1167 | 1164 | config X86_LEGACY_VM86 |
|---|
| 1168 | 1165 | bool "Legacy VM86 support" |
|---|
| 1169 | | - default n |
|---|
| 1170 | 1166 | depends on X86_32 |
|---|
| 1171 | | - ---help--- |
|---|
| 1167 | + help |
|---|
| 1172 | 1168 | This option allows user programs to put the CPU into V8086 |
|---|
| 1173 | 1169 | mode, which is an 80286-era approximation of 16-bit real mode. |
|---|
| 1174 | 1170 | |
|---|
| .. | .. |
|---|
| 1193 | 1189 | If unsure, say N here. |
|---|
| 1194 | 1190 | |
|---|
| 1195 | 1191 | config VM86 |
|---|
| 1196 | | - bool |
|---|
| 1197 | | - default X86_LEGACY_VM86 |
|---|
| 1192 | + bool |
|---|
| 1193 | + default X86_LEGACY_VM86 |
|---|
| 1198 | 1194 | |
|---|
| 1199 | 1195 | config X86_16BIT |
|---|
| 1200 | 1196 | bool "Enable support for 16-bit segments" if EXPERT |
|---|
| 1201 | 1197 | default y |
|---|
| 1202 | 1198 | depends on MODIFY_LDT_SYSCALL |
|---|
| 1203 | | - ---help--- |
|---|
| 1199 | + help |
|---|
| 1204 | 1200 | This option is required by programs like Wine to run 16-bit |
|---|
| 1205 | 1201 | protected mode legacy code on x86 processors. Disabling |
|---|
| 1206 | 1202 | this option saves about 300 bytes on i386, or around 6K text |
|---|
| .. | .. |
|---|
| 1215 | 1211 | depends on X86_16BIT && X86_64 |
|---|
| 1216 | 1212 | |
|---|
| 1217 | 1213 | config X86_VSYSCALL_EMULATION |
|---|
| 1218 | | - bool "Enable vsyscall emulation" if EXPERT |
|---|
| 1219 | | - default y |
|---|
| 1220 | | - depends on X86_64 |
|---|
| 1221 | | - ---help--- |
|---|
| 1214 | + bool "Enable vsyscall emulation" if EXPERT |
|---|
| 1215 | + default y |
|---|
| 1216 | + depends on X86_64 |
|---|
| 1217 | + help |
|---|
| 1222 | 1218 | This enables emulation of the legacy vsyscall page. Disabling |
|---|
| 1223 | 1219 | it is roughly equivalent to booting with vsyscall=none, except |
|---|
| 1224 | 1220 | that it will also disable the helpful warning if a program |
|---|
| .. | .. |
|---|
| 1232 | 1228 | Disabling this option saves about 7K of kernel size and |
|---|
| 1233 | 1229 | possibly 4K of additional runtime pagetable memory. |
|---|
| 1234 | 1230 | |
|---|
| 1231 | +config X86_IOPL_IOPERM |
|---|
| 1232 | + bool "IOPERM and IOPL Emulation" |
|---|
| 1233 | + default y |
|---|
| 1234 | + help |
|---|
| 1235 | + This enables the ioperm() and iopl() syscalls which are necessary |
|---|
| 1236 | + for legacy applications. |
|---|
| 1237 | + |
|---|
| 1238 | + Legacy IOPL support is an overbroad mechanism which allows user |
|---|
| 1239 | + space aside of accessing all 65536 I/O ports also to disable |
|---|
| 1240 | + interrupts. To gain this access the caller needs CAP_SYS_RAWIO |
|---|
| 1241 | + capabilities and permission from potentially active security |
|---|
| 1242 | + modules. |
|---|
| 1243 | + |
|---|
| 1244 | + The emulation restricts the functionality of the syscall to |
|---|
| 1245 | + only allowing the full range I/O port access, but prevents the |
|---|
| 1246 | + ability to disable interrupts from user space which would be |
|---|
| 1247 | + granted if the hardware IOPL mechanism would be used. |
|---|
| 1248 | + |
|---|
| 1235 | 1249 | config TOSHIBA |
|---|
| 1236 | 1250 | tristate "Toshiba Laptop support" |
|---|
| 1237 | 1251 | depends on X86_32 |
|---|
| 1238 | | - ---help--- |
|---|
| 1252 | + help |
|---|
| 1239 | 1253 | This adds a driver to safely access the System Management Mode of |
|---|
| 1240 | 1254 | the CPU on Toshiba portables with a genuine Toshiba BIOS. It does |
|---|
| 1241 | 1255 | not work on models with a Phoenix BIOS. The System Management Mode |
|---|
| .. | .. |
|---|
| 1250 | 1264 | |
|---|
| 1251 | 1265 | config I8K |
|---|
| 1252 | 1266 | tristate "Dell i8k legacy laptop support" |
|---|
| 1253 | | - select HWMON |
|---|
| 1267 | + depends on HWMON |
|---|
| 1268 | + depends on PROC_FS |
|---|
| 1254 | 1269 | select SENSORS_DELL_SMM |
|---|
| 1255 | | - ---help--- |
|---|
| 1270 | + help |
|---|
| 1256 | 1271 | This option enables legacy /proc/i8k userspace interface in hwmon |
|---|
| 1257 | 1272 | dell-smm-hwmon driver. Character file /proc/i8k reports bios version, |
|---|
| 1258 | 1273 | temperature and allows controlling fan speeds of Dell laptops via |
|---|
| .. | .. |
|---|
| 1267 | 1282 | config X86_REBOOTFIXUPS |
|---|
| 1268 | 1283 | bool "Enable X86 board specific fixups for reboot" |
|---|
| 1269 | 1284 | depends on X86_32 |
|---|
| 1270 | | - ---help--- |
|---|
| 1285 | + help |
|---|
| 1271 | 1286 | This enables chipset and/or board specific fixups to be done |
|---|
| 1272 | 1287 | in order to get reboot to work correctly. This is only needed on |
|---|
| 1273 | 1288 | some combinations of hardware and BIOS. The symptom, for which |
|---|
| .. | .. |
|---|
| 1285 | 1300 | bool "CPU microcode loading support" |
|---|
| 1286 | 1301 | default y |
|---|
| 1287 | 1302 | depends on CPU_SUP_AMD || CPU_SUP_INTEL |
|---|
| 1288 | | - select FW_LOADER |
|---|
| 1289 | | - ---help--- |
|---|
| 1303 | + help |
|---|
| 1290 | 1304 | If you say Y here, you will be able to update the microcode on |
|---|
| 1291 | 1305 | Intel and AMD processors. The Intel support is for the IA32 family, |
|---|
| 1292 | 1306 | e.g. Pentium Pro, Pentium II, Pentium III, Pentium 4, Xeon etc. The |
|---|
| .. | .. |
|---|
| 1295 | 1309 | the Linux kernel. |
|---|
| 1296 | 1310 | |
|---|
| 1297 | 1311 | The preferred method to load microcode from a detached initrd is described |
|---|
| 1298 | | - in Documentation/x86/microcode.txt. For that you need to enable |
|---|
| 1312 | + in Documentation/x86/microcode.rst. For that you need to enable |
|---|
| 1299 | 1313 | CONFIG_BLK_DEV_INITRD in order for the loader to be able to scan the |
|---|
| 1300 | 1314 | initrd for microcode blobs. |
|---|
| 1301 | 1315 | |
|---|
| .. | .. |
|---|
| 1305 | 1319 | |
|---|
| 1306 | 1320 | config MICROCODE_INTEL |
|---|
| 1307 | 1321 | bool "Intel microcode loading support" |
|---|
| 1308 | | - depends on MICROCODE |
|---|
| 1322 | + depends on CPU_SUP_INTEL && MICROCODE |
|---|
| 1309 | 1323 | default MICROCODE |
|---|
| 1310 | | - select FW_LOADER |
|---|
| 1311 | | - ---help--- |
|---|
| 1324 | + help |
|---|
| 1312 | 1325 | This options enables microcode patch loading support for Intel |
|---|
| 1313 | 1326 | processors. |
|---|
| 1314 | 1327 | |
|---|
| .. | .. |
|---|
| 1318 | 1331 | |
|---|
| 1319 | 1332 | config MICROCODE_AMD |
|---|
| 1320 | 1333 | bool "AMD microcode loading support" |
|---|
| 1321 | | - depends on MICROCODE |
|---|
| 1322 | | - select FW_LOADER |
|---|
| 1323 | | - ---help--- |
|---|
| 1334 | + depends on CPU_SUP_AMD && MICROCODE |
|---|
| 1335 | + help |
|---|
| 1324 | 1336 | If you select this option, microcode patch loading support for AMD |
|---|
| 1325 | 1337 | processors will be enabled. |
|---|
| 1326 | 1338 | |
|---|
| 1327 | 1339 | config MICROCODE_OLD_INTERFACE |
|---|
| 1328 | | - def_bool y |
|---|
| 1340 | + bool "Ancient loading interface (DEPRECATED)" |
|---|
| 1341 | + default n |
|---|
| 1329 | 1342 | depends on MICROCODE |
|---|
| 1343 | + help |
|---|
| 1344 | + DO NOT USE THIS! This is the ancient /dev/cpu/microcode interface |
|---|
| 1345 | + which was used by userspace tools like iucode_tool and microcode.ctl. |
|---|
| 1346 | + It is inadequate because it runs too late to be able to properly |
|---|
| 1347 | + load microcode on a machine and it needs special tools. Instead, you |
|---|
| 1348 | + should've switched to the early loading method with the initrd or |
|---|
| 1349 | + builtin microcode by now: Documentation/x86/microcode.rst |
|---|
| 1330 | 1350 | |
|---|
| 1331 | 1351 | config X86_MSR |
|---|
| 1332 | 1352 | tristate "/dev/cpu/*/msr - Model-specific register support" |
|---|
| 1333 | | - ---help--- |
|---|
| 1353 | + help |
|---|
| 1334 | 1354 | This device gives privileged processes access to the x86 |
|---|
| 1335 | 1355 | Model-Specific Registers (MSRs). It is a character device with |
|---|
| 1336 | 1356 | major 202 and minors 0 to 31 for /dev/cpu/0/msr to /dev/cpu/31/msr. |
|---|
| .. | .. |
|---|
| 1339 | 1359 | |
|---|
| 1340 | 1360 | config X86_CPUID |
|---|
| 1341 | 1361 | tristate "/dev/cpu/*/cpuid - CPU information support" |
|---|
| 1342 | | - ---help--- |
|---|
| 1362 | + help |
|---|
| 1343 | 1363 | This device gives processes access to the x86 CPUID instruction to |
|---|
| 1344 | 1364 | be executed on a specific processor. It is a character device |
|---|
| 1345 | 1365 | with major 203 and minors 0 to 31 for /dev/cpu/0/cpuid to |
|---|
| .. | .. |
|---|
| 1352 | 1372 | |
|---|
| 1353 | 1373 | config NOHIGHMEM |
|---|
| 1354 | 1374 | bool "off" |
|---|
| 1355 | | - ---help--- |
|---|
| 1375 | + help |
|---|
| 1356 | 1376 | Linux can use up to 64 Gigabytes of physical memory on x86 systems. |
|---|
| 1357 | 1377 | However, the address space of 32-bit x86 processors is only 4 |
|---|
| 1358 | 1378 | Gigabytes large. That means that, if you have a large amount of |
|---|
| .. | .. |
|---|
| 1388 | 1408 | |
|---|
| 1389 | 1409 | config HIGHMEM4G |
|---|
| 1390 | 1410 | bool "4GB" |
|---|
| 1391 | | - ---help--- |
|---|
| 1411 | + help |
|---|
| 1392 | 1412 | Select this if you have a 32-bit processor and between 1 and 4 |
|---|
| 1393 | 1413 | gigabytes of physical RAM. |
|---|
| 1394 | 1414 | |
|---|
| 1395 | 1415 | config HIGHMEM64G |
|---|
| 1396 | 1416 | bool "64GB" |
|---|
| 1397 | | - depends on !M486 && !M586 && !M586TSC && !M586MMX && !MGEODE_LX && !MGEODEGX1 && !MCYRIXIII && !MELAN && !MWINCHIPC6 && !MWINCHIP3D && !MK6 |
|---|
| 1417 | + depends on !M486SX && !M486 && !M586 && !M586TSC && !M586MMX && !MGEODE_LX && !MGEODEGX1 && !MCYRIXIII && !MELAN && !MWINCHIPC6 && !MWINCHIP3D && !MK6 |
|---|
| 1398 | 1418 | select X86_PAE |
|---|
| 1399 | | - ---help--- |
|---|
| 1419 | + help |
|---|
| 1400 | 1420 | Select this if you have a 32-bit processor and more than 4 |
|---|
| 1401 | 1421 | gigabytes of physical RAM. |
|---|
| 1402 | 1422 | |
|---|
| .. | .. |
|---|
| 1406 | 1426 | prompt "Memory split" if EXPERT |
|---|
| 1407 | 1427 | default VMSPLIT_3G |
|---|
| 1408 | 1428 | depends on X86_32 |
|---|
| 1409 | | - ---help--- |
|---|
| 1429 | + help |
|---|
| 1410 | 1430 | Select the desired split between kernel and user memory. |
|---|
| 1411 | 1431 | |
|---|
| 1412 | 1432 | If the address range available to the kernel is less than the |
|---|
| .. | .. |
|---|
| 1454 | 1474 | depends on X86_32 && !HIGHMEM4G |
|---|
| 1455 | 1475 | select PHYS_ADDR_T_64BIT |
|---|
| 1456 | 1476 | select SWIOTLB |
|---|
| 1457 | | - ---help--- |
|---|
| 1477 | + help |
|---|
| 1458 | 1478 | PAE is required for NX support, and furthermore enables |
|---|
| 1459 | 1479 | larger swapspace support for non-overcommit purposes. It |
|---|
| 1460 | 1480 | has the cost of more pagetable lookup overhead, and also |
|---|
| .. | .. |
|---|
| 1462 | 1482 | |
|---|
| 1463 | 1483 | config X86_5LEVEL |
|---|
| 1464 | 1484 | bool "Enable 5-level page tables support" |
|---|
| 1485 | + default y |
|---|
| 1465 | 1486 | select DYNAMIC_MEMORY_LAYOUT |
|---|
| 1466 | 1487 | select SPARSEMEM_VMEMMAP |
|---|
| 1467 | 1488 | depends on X86_64 |
|---|
| 1468 | | - ---help--- |
|---|
| 1489 | + help |
|---|
| 1469 | 1490 | 5-level paging enables access to larger address space: |
|---|
| 1470 | 1491 | upto 128 PiB of virtual address space and 4 PiB of |
|---|
| 1471 | 1492 | physical address space. |
|---|
| .. | .. |
|---|
| 1475 | 1496 | A kernel with the option enabled can be booted on machines that |
|---|
| 1476 | 1497 | support 4- or 5-level paging. |
|---|
| 1477 | 1498 | |
|---|
| 1478 | | - See Documentation/x86/x86_64/5level-paging.txt for more |
|---|
| 1499 | + See Documentation/x86/x86_64/5level-paging.rst for more |
|---|
| 1479 | 1500 | information. |
|---|
| 1480 | 1501 | |
|---|
| 1481 | 1502 | Say N if unsure. |
|---|
| 1482 | 1503 | |
|---|
| 1483 | 1504 | config X86_DIRECT_GBPAGES |
|---|
| 1484 | 1505 | def_bool y |
|---|
| 1485 | | - depends on X86_64 && !DEBUG_PAGEALLOC |
|---|
| 1486 | | - ---help--- |
|---|
| 1506 | + depends on X86_64 |
|---|
| 1507 | + help |
|---|
| 1487 | 1508 | Certain kernel features effectively disable kernel |
|---|
| 1488 | 1509 | linear 1 GB mappings (even if the CPU otherwise |
|---|
| 1489 | 1510 | supports them), so don't confuse the user by printing |
|---|
| 1490 | 1511 | that we have them enabled. |
|---|
| 1491 | 1512 | |
|---|
| 1492 | | -config ARCH_HAS_MEM_ENCRYPT |
|---|
| 1493 | | - def_bool y |
|---|
| 1513 | +config X86_CPA_STATISTICS |
|---|
| 1514 | + bool "Enable statistic for Change Page Attribute" |
|---|
| 1515 | + depends on DEBUG_FS |
|---|
| 1516 | + help |
|---|
| 1517 | + Expose statistics about the Change Page Attribute mechanism, which |
|---|
| 1518 | + helps to determine the effectiveness of preserving large and huge |
|---|
| 1519 | + page mappings when mapping protections are changed. |
|---|
| 1494 | 1520 | |
|---|
| 1495 | 1521 | config AMD_MEM_ENCRYPT |
|---|
| 1496 | 1522 | bool "AMD Secure Memory Encryption (SME) support" |
|---|
| 1497 | 1523 | depends on X86_64 && CPU_SUP_AMD |
|---|
| 1524 | + select DMA_COHERENT_POOL |
|---|
| 1498 | 1525 | select DYNAMIC_PHYSICAL_MASK |
|---|
| 1499 | 1526 | select ARCH_USE_MEMREMAP_PROT |
|---|
| 1500 | | - ---help--- |
|---|
| 1527 | + select ARCH_HAS_FORCE_DMA_UNENCRYPTED |
|---|
| 1528 | + select INSTRUCTION_DECODER |
|---|
| 1529 | + select ARCH_HAS_CC_PLATFORM |
|---|
| 1530 | + help |
|---|
| 1501 | 1531 | Say yes to enable support for the encryption of system memory. |
|---|
| 1502 | 1532 | This requires an AMD processor that supports Secure Memory |
|---|
| 1503 | 1533 | Encryption (SME). |
|---|
| .. | .. |
|---|
| 1505 | 1535 | config AMD_MEM_ENCRYPT_ACTIVE_BY_DEFAULT |
|---|
| 1506 | 1536 | bool "Activate AMD Secure Memory Encryption (SME) by default" |
|---|
| 1507 | 1537 | depends on AMD_MEM_ENCRYPT |
|---|
| 1508 | | - ---help--- |
|---|
| 1538 | + help |
|---|
| 1509 | 1539 | Say yes to have system memory encrypted by default if running on |
|---|
| 1510 | 1540 | an AMD processor that supports Secure Memory Encryption (SME). |
|---|
| 1511 | 1541 | |
|---|
| .. | .. |
|---|
| 1517 | 1547 | |
|---|
| 1518 | 1548 | # Common NUMA Features |
|---|
| 1519 | 1549 | config NUMA |
|---|
| 1520 | | - bool "Numa Memory Allocation and Scheduler Support" |
|---|
| 1550 | + bool "NUMA Memory Allocation and Scheduler Support" |
|---|
| 1521 | 1551 | depends on SMP |
|---|
| 1522 | 1552 | depends on X86_64 || (X86_32 && HIGHMEM64G && X86_BIGSMP) |
|---|
| 1523 | 1553 | default y if X86_BIGSMP |
|---|
| 1524 | | - ---help--- |
|---|
| 1525 | | - Enable NUMA (Non Uniform Memory Access) support. |
|---|
| 1554 | + help |
|---|
| 1555 | + Enable NUMA (Non-Uniform Memory Access) support. |
|---|
| 1526 | 1556 | |
|---|
| 1527 | 1557 | The kernel will try to allocate memory used by a CPU on the |
|---|
| 1528 | 1558 | local memory controller of the CPU and add some more |
|---|
| .. | .. |
|---|
| 1540 | 1570 | def_bool y |
|---|
| 1541 | 1571 | prompt "Old style AMD Opteron NUMA detection" |
|---|
| 1542 | 1572 | depends on X86_64 && NUMA && PCI |
|---|
| 1543 | | - ---help--- |
|---|
| 1573 | + help |
|---|
| 1544 | 1574 | Enable AMD NUMA node topology detection. You should say Y here if |
|---|
| 1545 | 1575 | you have a multi processor AMD system. This uses an old method to |
|---|
| 1546 | 1576 | read the NUMA configuration directly from the builtin Northbridge |
|---|
| .. | .. |
|---|
| 1552 | 1582 | prompt "ACPI NUMA detection" |
|---|
| 1553 | 1583 | depends on X86_64 && NUMA && ACPI && PCI |
|---|
| 1554 | 1584 | select ACPI_NUMA |
|---|
| 1555 | | - ---help--- |
|---|
| 1585 | + help |
|---|
| 1556 | 1586 | Enable ACPI SRAT based node topology detection. |
|---|
| 1557 | | - |
|---|
| 1558 | | -# Some NUMA nodes have memory ranges that span |
|---|
| 1559 | | -# other nodes. Even though a pfn is valid and |
|---|
| 1560 | | -# between a node's start and end pfns, it may not |
|---|
| 1561 | | -# reside on that node. See memmap_init_zone() |
|---|
| 1562 | | -# for details. |
|---|
| 1563 | | -config NODES_SPAN_OTHER_NODES |
|---|
| 1564 | | - def_bool y |
|---|
| 1565 | | - depends on X86_64_ACPI_NUMA |
|---|
| 1566 | 1587 | |
|---|
| 1567 | 1588 | config NUMA_EMU |
|---|
| 1568 | 1589 | bool "NUMA emulation" |
|---|
| 1569 | 1590 | depends on NUMA |
|---|
| 1570 | | - ---help--- |
|---|
| 1591 | + help |
|---|
| 1571 | 1592 | Enable NUMA emulation. A flat machine will be split |
|---|
| 1572 | 1593 | into virtual nodes when booted with "numa=fake=N", where N is the |
|---|
| 1573 | 1594 | number of nodes. This is only useful for debugging. |
|---|
| .. | .. |
|---|
| 1579 | 1600 | default "6" if X86_64 |
|---|
| 1580 | 1601 | default "3" |
|---|
| 1581 | 1602 | depends on NEED_MULTIPLE_NODES |
|---|
| 1582 | | - ---help--- |
|---|
| 1603 | + help |
|---|
| 1583 | 1604 | Specify the maximum number of NUMA Nodes available on the target |
|---|
| 1584 | 1605 | system. Increases memory reserved to accommodate various tables. |
|---|
| 1585 | | - |
|---|
| 1586 | | -config ARCH_HAVE_MEMORY_PRESENT |
|---|
| 1587 | | - def_bool y |
|---|
| 1588 | | - depends on X86_32 && DISCONTIGMEM |
|---|
| 1589 | 1606 | |
|---|
| 1590 | 1607 | config ARCH_FLATMEM_ENABLE |
|---|
| 1591 | 1608 | def_bool y |
|---|
| 1592 | 1609 | depends on X86_32 && !NUMA |
|---|
| 1593 | | - |
|---|
| 1594 | | -config ARCH_DISCONTIGMEM_ENABLE |
|---|
| 1595 | | - def_bool y |
|---|
| 1596 | | - depends on NUMA && X86_32 |
|---|
| 1597 | | - |
|---|
| 1598 | | -config ARCH_DISCONTIGMEM_DEFAULT |
|---|
| 1599 | | - def_bool y |
|---|
| 1600 | | - depends on NUMA && X86_32 |
|---|
| 1601 | 1610 | |
|---|
| 1602 | 1611 | config ARCH_SPARSEMEM_ENABLE |
|---|
| 1603 | 1612 | def_bool y |
|---|
| .. | .. |
|---|
| 1606 | 1615 | select SPARSEMEM_VMEMMAP_ENABLE if X86_64 |
|---|
| 1607 | 1616 | |
|---|
| 1608 | 1617 | config ARCH_SPARSEMEM_DEFAULT |
|---|
| 1609 | | - def_bool y |
|---|
| 1610 | | - depends on X86_64 |
|---|
| 1618 | + def_bool X86_64 || (NUMA && X86_32) |
|---|
| 1611 | 1619 | |
|---|
| 1612 | 1620 | config ARCH_SELECT_MEMORY_MODEL |
|---|
| 1613 | 1621 | def_bool y |
|---|
| .. | .. |
|---|
| 1618 | 1626 | depends on X86_64 && MEMORY_HOTPLUG |
|---|
| 1619 | 1627 | help |
|---|
| 1620 | 1628 | This option enables a sysfs memory/probe interface for testing. |
|---|
| 1621 | | - See Documentation/memory-hotplug.txt for more information. |
|---|
| 1629 | + See Documentation/admin-guide/mm/memory-hotplug.rst for more information. |
|---|
| 1622 | 1630 | If you are unsure how to answer this question, answer N. |
|---|
| 1623 | 1631 | |
|---|
| 1624 | 1632 | config ARCH_PROC_KCORE_TEXT |
|---|
| .. | .. |
|---|
| 1626 | 1634 | depends on X86_64 && PROC_KCORE |
|---|
| 1627 | 1635 | |
|---|
| 1628 | 1636 | config ILLEGAL_POINTER_VALUE |
|---|
| 1629 | | - hex |
|---|
| 1630 | | - default 0 if X86_32 |
|---|
| 1631 | | - default 0xdead000000000000 if X86_64 |
|---|
| 1637 | + hex |
|---|
| 1638 | + default 0 if X86_32 |
|---|
| 1639 | + default 0xdead000000000000 if X86_64 |
|---|
| 1632 | 1640 | |
|---|
| 1633 | 1641 | config X86_PMEM_LEGACY_DEVICE |
|---|
| 1634 | 1642 | bool |
|---|
| .. | .. |
|---|
| 1638 | 1646 | depends on PHYS_ADDR_T_64BIT |
|---|
| 1639 | 1647 | depends on BLK_DEV |
|---|
| 1640 | 1648 | select X86_PMEM_LEGACY_DEVICE |
|---|
| 1649 | + select NUMA_KEEP_MEMINFO if NUMA |
|---|
| 1641 | 1650 | select LIBNVDIMM |
|---|
| 1642 | 1651 | help |
|---|
| 1643 | 1652 | Treat memory marked using the non-standard e820 type of 12 as used |
|---|
| .. | .. |
|---|
| 1650 | 1659 | config HIGHPTE |
|---|
| 1651 | 1660 | bool "Allocate 3rd-level pagetables from highmem" |
|---|
| 1652 | 1661 | depends on HIGHMEM |
|---|
| 1653 | | - ---help--- |
|---|
| 1662 | + help |
|---|
| 1654 | 1663 | The VM uses one page table entry for each page of physical memory. |
|---|
| 1655 | 1664 | For systems with a lot of RAM, this can be wasteful of precious |
|---|
| 1656 | 1665 | low memory. Setting this option will put user-space page table |
|---|
| .. | .. |
|---|
| 1658 | 1667 | |
|---|
| 1659 | 1668 | config X86_CHECK_BIOS_CORRUPTION |
|---|
| 1660 | 1669 | bool "Check for low memory corruption" |
|---|
| 1661 | | - ---help--- |
|---|
| 1670 | + help |
|---|
| 1662 | 1671 | Periodically check for memory corruption in low memory, which |
|---|
| 1663 | 1672 | is suspected to be caused by BIOS. Even when enabled in the |
|---|
| 1664 | 1673 | configuration, it is disabled at runtime. Enable it by |
|---|
| .. | .. |
|---|
| 1682 | 1691 | bool "Set the default setting of memory_corruption_check" |
|---|
| 1683 | 1692 | depends on X86_CHECK_BIOS_CORRUPTION |
|---|
| 1684 | 1693 | default y |
|---|
| 1685 | | - ---help--- |
|---|
| 1694 | + help |
|---|
| 1686 | 1695 | Set whether the default state of memory_corruption_check is |
|---|
| 1687 | 1696 | on or off. |
|---|
| 1688 | 1697 | |
|---|
| .. | .. |
|---|
| 1690 | 1699 | int "Amount of low memory, in kilobytes, to reserve for the BIOS" |
|---|
| 1691 | 1700 | default 64 |
|---|
| 1692 | 1701 | range 4 640 |
|---|
| 1693 | | - ---help--- |
|---|
| 1702 | + help |
|---|
| 1694 | 1703 | Specify the amount of low memory to reserve for the BIOS. |
|---|
| 1695 | 1704 | |
|---|
| 1696 | 1705 | The first page contains BIOS data structures that the kernel |
|---|
| .. | .. |
|---|
| 1718 | 1727 | config MATH_EMULATION |
|---|
| 1719 | 1728 | bool |
|---|
| 1720 | 1729 | depends on MODIFY_LDT_SYSCALL |
|---|
| 1721 | | - prompt "Math emulation" if X86_32 |
|---|
| 1722 | | - ---help--- |
|---|
| 1730 | + prompt "Math emulation" if X86_32 && (M486SX || MELAN) |
|---|
| 1731 | + help |
|---|
| 1723 | 1732 | Linux can emulate a math coprocessor (used for floating point |
|---|
| 1724 | 1733 | operations) if you don't have one. 486DX and Pentium processors have |
|---|
| 1725 | 1734 | a math coprocessor built in, 486SX and 386 do not, unless you added |
|---|
| .. | .. |
|---|
| 1745 | 1754 | config MTRR |
|---|
| 1746 | 1755 | def_bool y |
|---|
| 1747 | 1756 | prompt "MTRR (Memory Type Range Register) support" if EXPERT |
|---|
| 1748 | | - ---help--- |
|---|
| 1757 | + help |
|---|
| 1749 | 1758 | On Intel P6 family processors (Pentium Pro, Pentium II and later) |
|---|
| 1750 | 1759 | the Memory Type Range Registers (MTRRs) may be used to control |
|---|
| 1751 | 1760 | processor access to memory ranges. This is most useful if you have |
|---|
| .. | .. |
|---|
| 1775 | 1784 | You can safely say Y even if your machine doesn't have MTRRs, you'll |
|---|
| 1776 | 1785 | just add about 9 KB to your kernel. |
|---|
| 1777 | 1786 | |
|---|
| 1778 | | - See <file:Documentation/x86/mtrr.txt> for more information. |
|---|
| 1787 | + See <file:Documentation/x86/mtrr.rst> for more information. |
|---|
| 1779 | 1788 | |
|---|
| 1780 | 1789 | config MTRR_SANITIZER |
|---|
| 1781 | 1790 | def_bool y |
|---|
| 1782 | 1791 | prompt "MTRR cleanup support" |
|---|
| 1783 | 1792 | depends on MTRR |
|---|
| 1784 | | - ---help--- |
|---|
| 1793 | + help |
|---|
| 1785 | 1794 | Convert MTRR layout from continuous to discrete, so X drivers can |
|---|
| 1786 | 1795 | add writeback entries. |
|---|
| 1787 | 1796 | |
|---|
| .. | .. |
|---|
| 1796 | 1805 | range 0 1 |
|---|
| 1797 | 1806 | default "0" |
|---|
| 1798 | 1807 | depends on MTRR_SANITIZER |
|---|
| 1799 | | - ---help--- |
|---|
| 1808 | + help |
|---|
| 1800 | 1809 | Enable mtrr cleanup default value |
|---|
| 1801 | 1810 | |
|---|
| 1802 | 1811 | config MTRR_SANITIZER_SPARE_REG_NR_DEFAULT |
|---|
| .. | .. |
|---|
| 1804 | 1813 | range 0 7 |
|---|
| 1805 | 1814 | default "1" |
|---|
| 1806 | 1815 | depends on MTRR_SANITIZER |
|---|
| 1807 | | - ---help--- |
|---|
| 1816 | + help |
|---|
| 1808 | 1817 | mtrr cleanup spare entries default, it can be changed via |
|---|
| 1809 | 1818 | mtrr_spare_reg_nr=N on the kernel command line. |
|---|
| 1810 | 1819 | |
|---|
| .. | .. |
|---|
| 1812 | 1821 | def_bool y |
|---|
| 1813 | 1822 | prompt "x86 PAT support" if EXPERT |
|---|
| 1814 | 1823 | depends on MTRR |
|---|
| 1815 | | - ---help--- |
|---|
| 1824 | + help |
|---|
| 1816 | 1825 | Use PAT attributes to setup page level cache control. |
|---|
| 1817 | 1826 | |
|---|
| 1818 | 1827 | PATs are the modern equivalents of MTRRs and are much more |
|---|
| .. | .. |
|---|
| 1830 | 1839 | config ARCH_RANDOM |
|---|
| 1831 | 1840 | def_bool y |
|---|
| 1832 | 1841 | prompt "x86 architectural random number generator" if EXPERT |
|---|
| 1833 | | - ---help--- |
|---|
| 1842 | + help |
|---|
| 1834 | 1843 | Enable the x86 architectural RDRAND instruction |
|---|
| 1835 | 1844 | (Intel Bull Mountain technology) to generate random numbers. |
|---|
| 1836 | 1845 | If supported, this is a high bandwidth, cryptographically |
|---|
| .. | .. |
|---|
| 1839 | 1848 | config X86_SMAP |
|---|
| 1840 | 1849 | def_bool y |
|---|
| 1841 | 1850 | prompt "Supervisor Mode Access Prevention" if EXPERT |
|---|
| 1842 | | - ---help--- |
|---|
| 1851 | + help |
|---|
| 1843 | 1852 | Supervisor Mode Access Prevention (SMAP) is a security |
|---|
| 1844 | 1853 | feature in newer Intel processors. There is a small |
|---|
| 1845 | 1854 | performance cost if this enabled and turned on; there is |
|---|
| .. | .. |
|---|
| 1847 | 1856 | |
|---|
| 1848 | 1857 | If unsure, say Y. |
|---|
| 1849 | 1858 | |
|---|
| 1850 | | -config X86_INTEL_UMIP |
|---|
| 1859 | +config X86_UMIP |
|---|
| 1851 | 1860 | def_bool y |
|---|
| 1852 | | - depends on CPU_SUP_INTEL |
|---|
| 1853 | | - prompt "Intel User Mode Instruction Prevention" if EXPERT |
|---|
| 1854 | | - ---help--- |
|---|
| 1855 | | - The User Mode Instruction Prevention (UMIP) is a security |
|---|
| 1856 | | - feature in newer Intel processors. If enabled, a general |
|---|
| 1857 | | - protection fault is issued if the SGDT, SLDT, SIDT, SMSW |
|---|
| 1858 | | - or STR instructions are executed in user mode. These instructions |
|---|
| 1859 | | - unnecessarily expose information about the hardware state. |
|---|
| 1861 | + prompt "User Mode Instruction Prevention" if EXPERT |
|---|
| 1862 | + help |
|---|
| 1863 | + User Mode Instruction Prevention (UMIP) is a security feature in |
|---|
| 1864 | + some x86 processors. If enabled, a general protection fault is |
|---|
| 1865 | + issued if the SGDT, SLDT, SIDT, SMSW or STR instructions are |
|---|
| 1866 | + executed in user mode. These instructions unnecessarily expose |
|---|
| 1867 | + information about the hardware state. |
|---|
| 1860 | 1868 | |
|---|
| 1861 | 1869 | The vast majority of applications do not use these instructions. |
|---|
| 1862 | 1870 | For the very few that do, software emulation is provided in |
|---|
| 1863 | 1871 | specific cases in protected and virtual-8086 modes. Emulated |
|---|
| 1864 | 1872 | results are dummy. |
|---|
| 1865 | 1873 | |
|---|
| 1866 | | -config X86_INTEL_MPX |
|---|
| 1867 | | - prompt "Intel MPX (Memory Protection Extensions)" |
|---|
| 1868 | | - def_bool n |
|---|
| 1869 | | - # Note: only available in 64-bit mode due to VMA flags shortage |
|---|
| 1870 | | - depends on CPU_SUP_INTEL && X86_64 |
|---|
| 1871 | | - select ARCH_USES_HIGH_VMA_FLAGS |
|---|
| 1872 | | - ---help--- |
|---|
| 1873 | | - MPX provides hardware features that can be used in |
|---|
| 1874 | | - conjunction with compiler-instrumented code to check |
|---|
| 1875 | | - memory references. It is designed to detect buffer |
|---|
| 1876 | | - overflow or underflow bugs. |
|---|
| 1877 | | - |
|---|
| 1878 | | - This option enables running applications which are |
|---|
| 1879 | | - instrumented or otherwise use MPX. It does not use MPX |
|---|
| 1880 | | - itself inside the kernel or to protect the kernel |
|---|
| 1881 | | - against bad memory references. |
|---|
| 1882 | | - |
|---|
| 1883 | | - Enabling this option will make the kernel larger: |
|---|
| 1884 | | - ~8k of kernel text and 36 bytes of data on a 64-bit |
|---|
| 1885 | | - defconfig. It adds a long to the 'mm_struct' which |
|---|
| 1886 | | - will increase the kernel memory overhead of each |
|---|
| 1887 | | - process and adds some branches to paths used during |
|---|
| 1888 | | - exec() and munmap(). |
|---|
| 1889 | | - |
|---|
| 1890 | | - For details, see Documentation/x86/intel_mpx.txt |
|---|
| 1891 | | - |
|---|
| 1892 | | - If unsure, say N. |
|---|
| 1893 | | - |
|---|
| 1894 | 1874 | config X86_INTEL_MEMORY_PROTECTION_KEYS |
|---|
| 1895 | | - prompt "Intel Memory Protection Keys" |
|---|
| 1875 | + prompt "Memory Protection Keys" |
|---|
| 1896 | 1876 | def_bool y |
|---|
| 1897 | 1877 | # Note: only available in 64-bit mode |
|---|
| 1898 | | - depends on CPU_SUP_INTEL && X86_64 |
|---|
| 1878 | + depends on X86_64 && (CPU_SUP_INTEL || CPU_SUP_AMD) |
|---|
| 1899 | 1879 | select ARCH_USES_HIGH_VMA_FLAGS |
|---|
| 1900 | 1880 | select ARCH_HAS_PKEYS |
|---|
| 1901 | | - ---help--- |
|---|
| 1881 | + help |
|---|
| 1902 | 1882 | Memory Protection Keys provides a mechanism for enforcing |
|---|
| 1903 | 1883 | page-based protections, but without requiring modification of the |
|---|
| 1904 | 1884 | page tables when an application changes protection domains. |
|---|
| 1905 | 1885 | |
|---|
| 1906 | | - For details, see Documentation/x86/protection-keys.txt |
|---|
| 1886 | + For details, see Documentation/core-api/protection-keys.rst |
|---|
| 1907 | 1887 | |
|---|
| 1908 | 1888 | If unsure, say y. |
|---|
| 1909 | 1889 | |
|---|
| .. | .. |
|---|
| 1958 | 1938 | select UCS2_STRING |
|---|
| 1959 | 1939 | select EFI_RUNTIME_WRAPPERS |
|---|
| 1960 | 1940 | select ARCH_USE_MEMREMAP_PROT |
|---|
| 1961 | | - ---help--- |
|---|
| 1941 | + help |
|---|
| 1962 | 1942 | This enables the kernel to use EFI runtime services that are |
|---|
| 1963 | 1943 | available (such as the EFI variable services). |
|---|
| 1964 | 1944 | |
|---|
| .. | .. |
|---|
| 1970 | 1950 | platforms. |
|---|
| 1971 | 1951 | |
|---|
| 1972 | 1952 | config EFI_STUB |
|---|
| 1973 | | - bool "EFI stub support" |
|---|
| 1974 | | - depends on EFI && !X86_USE_3DNOW |
|---|
| 1975 | | - select RELOCATABLE |
|---|
| 1976 | | - ---help--- |
|---|
| 1977 | | - This kernel feature allows a bzImage to be loaded directly |
|---|
| 1953 | + bool "EFI stub support" |
|---|
| 1954 | + depends on EFI && !X86_USE_3DNOW |
|---|
| 1955 | + select RELOCATABLE |
|---|
| 1956 | + help |
|---|
| 1957 | + This kernel feature allows a bzImage to be loaded directly |
|---|
| 1978 | 1958 | by EFI firmware without the use of a bootloader. |
|---|
| 1979 | 1959 | |
|---|
| 1980 | | - See Documentation/efi-stub.txt for more information. |
|---|
| 1960 | + See Documentation/admin-guide/efi-stub.rst for more information. |
|---|
| 1981 | 1961 | |
|---|
| 1982 | 1962 | config EFI_MIXED |
|---|
| 1983 | 1963 | bool "EFI mixed-mode support" |
|---|
| 1984 | 1964 | depends on EFI_STUB && X86_64 |
|---|
| 1985 | | - ---help--- |
|---|
| 1965 | + help |
|---|
| 1986 | 1966 | Enabling this feature allows a 64-bit kernel to be booted |
|---|
| 1987 | 1967 | on a 32-bit firmware, provided that your CPU supports 64-bit |
|---|
| 1988 | 1968 | mode. |
|---|
| .. | .. |
|---|
| 1993 | 1973 | |
|---|
| 1994 | 1974 | If unsure, say N. |
|---|
| 1995 | 1975 | |
|---|
| 1996 | | -config SECCOMP |
|---|
| 1997 | | - def_bool y |
|---|
| 1998 | | - prompt "Enable seccomp to safely compute untrusted bytecode" |
|---|
| 1999 | | - ---help--- |
|---|
| 2000 | | - This kernel feature is useful for number crunching applications |
|---|
| 2001 | | - that may need to compute untrusted bytecode during their |
|---|
| 2002 | | - execution. By using pipes or other transports made available to |
|---|
| 2003 | | - the process as file descriptors supporting the read/write |
|---|
| 2004 | | - syscalls, it's possible to isolate those applications in |
|---|
| 2005 | | - their own address space using seccomp. Once seccomp is |
|---|
| 2006 | | - enabled via prctl(PR_SET_SECCOMP), it cannot be disabled |
|---|
| 2007 | | - and the task is only allowed to execute a few safe syscalls |
|---|
| 2008 | | - defined by each seccomp mode. |
|---|
| 2009 | | - |
|---|
| 2010 | | - If unsure, say Y. Only embedded should say N here. |
|---|
| 2011 | | - |
|---|
| 2012 | | -source kernel/Kconfig.hz |
|---|
| 1976 | +source "kernel/Kconfig.hz" |
|---|
| 2013 | 1977 | |
|---|
| 2014 | 1978 | config KEXEC |
|---|
| 2015 | 1979 | bool "kexec system call" |
|---|
| 2016 | 1980 | select KEXEC_CORE |
|---|
| 2017 | | - ---help--- |
|---|
| 1981 | + help |
|---|
| 2018 | 1982 | kexec is a system call that implements the ability to shutdown your |
|---|
| 2019 | 1983 | current kernel, and to start another kernel. It is like a reboot |
|---|
| 2020 | 1984 | but it is independent of the system firmware. And like a reboot |
|---|
| .. | .. |
|---|
| 2035 | 1999 | depends on X86_64 |
|---|
| 2036 | 2000 | depends on CRYPTO=y |
|---|
| 2037 | 2001 | depends on CRYPTO_SHA256=y |
|---|
| 2038 | | - ---help--- |
|---|
| 2002 | + help |
|---|
| 2039 | 2003 | This is new version of kexec system call. This system call is |
|---|
| 2040 | 2004 | file based and takes file descriptors as system call argument |
|---|
| 2041 | 2005 | for kernel and initramfs as opposed to list of segments as |
|---|
| .. | .. |
|---|
| 2044 | 2008 | config ARCH_HAS_KEXEC_PURGATORY |
|---|
| 2045 | 2009 | def_bool KEXEC_FILE |
|---|
| 2046 | 2010 | |
|---|
| 2047 | | -config KEXEC_VERIFY_SIG |
|---|
| 2011 | +config KEXEC_SIG |
|---|
| 2048 | 2012 | bool "Verify kernel signature during kexec_file_load() syscall" |
|---|
| 2049 | 2013 | depends on KEXEC_FILE |
|---|
| 2050 | | - ---help--- |
|---|
| 2051 | | - This option makes kernel signature verification mandatory for |
|---|
| 2052 | | - the kexec_file_load() syscall. |
|---|
| 2014 | + help |
|---|
| 2053 | 2015 | |
|---|
| 2054 | | - In addition to that option, you need to enable signature |
|---|
| 2016 | + This option makes the kexec_file_load() syscall check for a valid |
|---|
| 2017 | + signature of the kernel image. The image can still be loaded without |
|---|
| 2018 | + a valid signature unless you also enable KEXEC_SIG_FORCE, though if |
|---|
| 2019 | + there's a signature that we can check, then it must be valid. |
|---|
| 2020 | + |
|---|
| 2021 | + In addition to this option, you need to enable signature |
|---|
| 2055 | 2022 | verification for the corresponding kernel image type being |
|---|
| 2056 | 2023 | loaded in order for this to work. |
|---|
| 2057 | 2024 | |
|---|
| 2025 | +config KEXEC_SIG_FORCE |
|---|
| 2026 | + bool "Require a valid signature in kexec_file_load() syscall" |
|---|
| 2027 | + depends on KEXEC_SIG |
|---|
| 2028 | + help |
|---|
| 2029 | + This option makes kernel signature verification mandatory for |
|---|
| 2030 | + the kexec_file_load() syscall. |
|---|
| 2031 | + |
|---|
| 2058 | 2032 | config KEXEC_BZIMAGE_VERIFY_SIG |
|---|
| 2059 | 2033 | bool "Enable bzImage signature verification support" |
|---|
| 2060 | | - depends on KEXEC_VERIFY_SIG |
|---|
| 2034 | + depends on KEXEC_SIG |
|---|
| 2061 | 2035 | depends on SIGNED_PE_FILE_VERIFICATION |
|---|
| 2062 | 2036 | select SYSTEM_TRUSTED_KEYRING |
|---|
| 2063 | | - ---help--- |
|---|
| 2037 | + help |
|---|
| 2064 | 2038 | Enable bzImage signature verification support. |
|---|
| 2065 | 2039 | |
|---|
| 2066 | 2040 | config CRASH_DUMP |
|---|
| 2067 | 2041 | bool "kernel crash dumps" |
|---|
| 2068 | 2042 | depends on X86_64 || (X86_32 && HIGHMEM) |
|---|
| 2069 | | - ---help--- |
|---|
| 2043 | + help |
|---|
| 2070 | 2044 | Generate crash dump after being started by kexec. |
|---|
| 2071 | 2045 | This should be normally only set in special crash dump kernels |
|---|
| 2072 | 2046 | which are loaded in the main kernel with kexec-tools into |
|---|
| .. | .. |
|---|
| 2075 | 2049 | to a memory address not used by the main kernel or BIOS using |
|---|
| 2076 | 2050 | PHYSICAL_START, or it must be built as a relocatable image |
|---|
| 2077 | 2051 | (CONFIG_RELOCATABLE=y). |
|---|
| 2078 | | - For more details see Documentation/kdump/kdump.txt |
|---|
| 2052 | + For more details see Documentation/admin-guide/kdump/kdump.rst |
|---|
| 2079 | 2053 | |
|---|
| 2080 | 2054 | config KEXEC_JUMP |
|---|
| 2081 | 2055 | bool "kexec jump" |
|---|
| 2082 | 2056 | depends on KEXEC && HIBERNATION |
|---|
| 2083 | | - ---help--- |
|---|
| 2057 | + help |
|---|
| 2084 | 2058 | Jump between original kernel and kexeced kernel and invoke |
|---|
| 2085 | 2059 | code in physical address mode via KEXEC |
|---|
| 2086 | 2060 | |
|---|
| 2087 | 2061 | config PHYSICAL_START |
|---|
| 2088 | 2062 | hex "Physical address where the kernel is loaded" if (EXPERT || CRASH_DUMP) |
|---|
| 2089 | 2063 | default "0x1000000" |
|---|
| 2090 | | - ---help--- |
|---|
| 2064 | + help |
|---|
| 2091 | 2065 | This gives the physical address where the kernel is loaded. |
|---|
| 2092 | 2066 | |
|---|
| 2093 | 2067 | If kernel is a not relocatable (CONFIG_RELOCATABLE=n) then |
|---|
| .. | .. |
|---|
| 2112 | 2086 | the reserved region. In other words, it can be set based on |
|---|
| 2113 | 2087 | the "X" value as specified in the "crashkernel=YM@XM" |
|---|
| 2114 | 2088 | command line boot parameter passed to the panic-ed |
|---|
| 2115 | | - kernel. Please take a look at Documentation/kdump/kdump.txt |
|---|
| 2089 | + kernel. Please take a look at Documentation/admin-guide/kdump/kdump.rst |
|---|
| 2116 | 2090 | for more details about crash dumps. |
|---|
| 2117 | 2091 | |
|---|
| 2118 | 2092 | Usage of bzImage for capturing the crash dump is recommended as |
|---|
| .. | .. |
|---|
| 2128 | 2102 | config RELOCATABLE |
|---|
| 2129 | 2103 | bool "Build a relocatable kernel" |
|---|
| 2130 | 2104 | default y |
|---|
| 2131 | | - ---help--- |
|---|
| 2105 | + help |
|---|
| 2132 | 2106 | This builds a kernel image that retains relocation information |
|---|
| 2133 | 2107 | so it can be loaded someplace besides the default 1MB. |
|---|
| 2134 | 2108 | The relocations tend to make the kernel binary about 10% larger, |
|---|
| .. | .. |
|---|
| 2146 | 2120 | bool "Randomize the address of the kernel image (KASLR)" |
|---|
| 2147 | 2121 | depends on RELOCATABLE |
|---|
| 2148 | 2122 | default y |
|---|
| 2149 | | - ---help--- |
|---|
| 2123 | + help |
|---|
| 2150 | 2124 | In support of Kernel Address Space Layout Randomization (KASLR), |
|---|
| 2151 | 2125 | this randomizes the physical address at which the kernel image |
|---|
| 2152 | 2126 | is decompressed and the virtual address where the kernel |
|---|
| .. | .. |
|---|
| 2187 | 2161 | default "0x200000" |
|---|
| 2188 | 2162 | range 0x2000 0x1000000 if X86_32 |
|---|
| 2189 | 2163 | range 0x200000 0x1000000 if X86_64 |
|---|
| 2190 | | - ---help--- |
|---|
| 2164 | + help |
|---|
| 2191 | 2165 | This value puts the alignment restrictions on physical address |
|---|
| 2192 | 2166 | where kernel is loaded and run from. Kernel is compiled for an |
|---|
| 2193 | 2167 | address which meets above alignment restriction. |
|---|
| .. | .. |
|---|
| 2211 | 2185 | |
|---|
| 2212 | 2186 | config DYNAMIC_MEMORY_LAYOUT |
|---|
| 2213 | 2187 | bool |
|---|
| 2214 | | - ---help--- |
|---|
| 2188 | + help |
|---|
| 2215 | 2189 | This option makes base addresses of vmalloc and vmemmap as well as |
|---|
| 2216 | 2190 | __PAGE_OFFSET movable during boot. |
|---|
| 2217 | 2191 | |
|---|
| .. | .. |
|---|
| 2221 | 2195 | depends on RANDOMIZE_BASE |
|---|
| 2222 | 2196 | select DYNAMIC_MEMORY_LAYOUT |
|---|
| 2223 | 2197 | default RANDOMIZE_BASE |
|---|
| 2224 | | - ---help--- |
|---|
| 2198 | + help |
|---|
| 2225 | 2199 | Randomizes the base virtual address of kernel memory sections |
|---|
| 2226 | 2200 | (physical memory mapping, vmalloc & vmemmap). This security feature |
|---|
| 2227 | 2201 | makes exploits relying on predictable memory locations less reliable. |
|---|
| .. | .. |
|---|
| 2240 | 2214 | default "0x0" |
|---|
| 2241 | 2215 | range 0x1 0x40 if MEMORY_HOTPLUG |
|---|
| 2242 | 2216 | range 0x0 0x40 |
|---|
| 2243 | | - ---help--- |
|---|
| 2217 | + help |
|---|
| 2244 | 2218 | Define the padding in terabytes added to the existing physical |
|---|
| 2245 | 2219 | memory size during kernel memory randomization. It is useful |
|---|
| 2246 | 2220 | for memory hotplug support but reduces the entropy available for |
|---|
| .. | .. |
|---|
| 2254 | 2228 | |
|---|
| 2255 | 2229 | config BOOTPARAM_HOTPLUG_CPU0 |
|---|
| 2256 | 2230 | bool "Set default setting of cpu0_hotpluggable" |
|---|
| 2257 | | - default n |
|---|
| 2258 | 2231 | depends on HOTPLUG_CPU |
|---|
| 2259 | | - ---help--- |
|---|
| 2232 | + help |
|---|
| 2260 | 2233 | Set whether default state of cpu0_hotpluggable is on or off. |
|---|
| 2261 | 2234 | |
|---|
| 2262 | 2235 | Say Y here to enable CPU0 hotplug by default. If this switch |
|---|
| .. | .. |
|---|
| 2285 | 2258 | def_bool n |
|---|
| 2286 | 2259 | prompt "Debug CPU0 hotplug" |
|---|
| 2287 | 2260 | depends on HOTPLUG_CPU |
|---|
| 2288 | | - ---help--- |
|---|
| 2261 | + help |
|---|
| 2289 | 2262 | Enabling this option offlines CPU0 (if CPU0 can be offlined) as |
|---|
| 2290 | 2263 | soon as possible and boots up userspace with CPU0 offlined. User |
|---|
| 2291 | 2264 | can online CPU0 back after boot time. |
|---|
| .. | .. |
|---|
| 2300 | 2273 | def_bool n |
|---|
| 2301 | 2274 | prompt "Disable the 32-bit vDSO (needed for glibc 2.3.3)" |
|---|
| 2302 | 2275 | depends on COMPAT_32 |
|---|
| 2303 | | - ---help--- |
|---|
| 2276 | + help |
|---|
| 2304 | 2277 | Certain buggy versions of glibc will crash if they are |
|---|
| 2305 | 2278 | presented with a 32-bit vDSO that is not mapped at the address |
|---|
| 2306 | 2279 | indicated in its segment table. |
|---|
| .. | .. |
|---|
| 2324 | 2297 | choice |
|---|
| 2325 | 2298 | prompt "vsyscall table for legacy applications" |
|---|
| 2326 | 2299 | depends on X86_64 |
|---|
| 2327 | | - default LEGACY_VSYSCALL_EMULATE |
|---|
| 2300 | + default LEGACY_VSYSCALL_XONLY |
|---|
| 2328 | 2301 | help |
|---|
| 2329 | 2302 | Legacy user code that does not know how to find the vDSO expects |
|---|
| 2330 | 2303 | to be able to issue three syscalls by calling fixed addresses in |
|---|
| .. | .. |
|---|
| 2332 | 2305 | it can be used to assist security vulnerability exploitation. |
|---|
| 2333 | 2306 | |
|---|
| 2334 | 2307 | This setting can be changed at boot time via the kernel command |
|---|
| 2335 | | - line parameter vsyscall=[emulate|none]. |
|---|
| 2308 | + line parameter vsyscall=[emulate|xonly|none]. |
|---|
| 2336 | 2309 | |
|---|
| 2337 | 2310 | On a system with recent enough glibc (2.14 or newer) and no |
|---|
| 2338 | 2311 | static binaries, you can say None without a performance penalty |
|---|
| 2339 | 2312 | to improve security. |
|---|
| 2340 | 2313 | |
|---|
| 2341 | | - If unsure, select "Emulate". |
|---|
| 2314 | + If unsure, select "Emulate execution only". |
|---|
| 2342 | 2315 | |
|---|
| 2343 | 2316 | config LEGACY_VSYSCALL_EMULATE |
|---|
| 2344 | | - bool "Emulate" |
|---|
| 2317 | + bool "Full emulation" |
|---|
| 2345 | 2318 | help |
|---|
| 2346 | | - The kernel traps and emulates calls into the fixed |
|---|
| 2347 | | - vsyscall address mapping. This makes the mapping |
|---|
| 2348 | | - non-executable, but it still contains known contents, |
|---|
| 2349 | | - which could be used in certain rare security vulnerability |
|---|
| 2350 | | - exploits. This configuration is recommended when userspace |
|---|
| 2351 | | - still uses the vsyscall area. |
|---|
| 2319 | + The kernel traps and emulates calls into the fixed vsyscall |
|---|
| 2320 | + address mapping. This makes the mapping non-executable, but |
|---|
| 2321 | + it still contains readable known contents, which could be |
|---|
| 2322 | + used in certain rare security vulnerability exploits. This |
|---|
| 2323 | + configuration is recommended when using legacy userspace |
|---|
| 2324 | + that still uses vsyscalls along with legacy binary |
|---|
| 2325 | + instrumentation tools that require code to be readable. |
|---|
| 2326 | + |
|---|
| 2327 | + An example of this type of legacy userspace is running |
|---|
| 2328 | + Pin on an old binary that still uses vsyscalls. |
|---|
| 2329 | + |
|---|
| 2330 | + config LEGACY_VSYSCALL_XONLY |
|---|
| 2331 | + bool "Emulate execution only" |
|---|
| 2332 | + help |
|---|
| 2333 | + The kernel traps and emulates calls into the fixed vsyscall |
|---|
| 2334 | + address mapping and does not allow reads. This |
|---|
| 2335 | + configuration is recommended when userspace might use the |
|---|
| 2336 | + legacy vsyscall area but support for legacy binary |
|---|
| 2337 | + instrumentation of legacy code is not needed. It mitigates |
|---|
| 2338 | + certain uses of the vsyscall area as an ASLR-bypassing |
|---|
| 2339 | + buffer. |
|---|
| 2352 | 2340 | |
|---|
| 2353 | 2341 | config LEGACY_VSYSCALL_NONE |
|---|
| 2354 | 2342 | bool "None" |
|---|
| .. | .. |
|---|
| 2363 | 2351 | |
|---|
| 2364 | 2352 | config CMDLINE_BOOL |
|---|
| 2365 | 2353 | bool "Built-in kernel command line" |
|---|
| 2366 | | - ---help--- |
|---|
| 2354 | + help |
|---|
| 2367 | 2355 | Allow for specifying boot arguments to the kernel at |
|---|
| 2368 | 2356 | build time. On some systems (e.g. embedded ones), it is |
|---|
| 2369 | 2357 | necessary or convenient to provide some or all of the |
|---|
| .. | .. |
|---|
| 2381 | 2369 | string "Built-in kernel command string" |
|---|
| 2382 | 2370 | depends on CMDLINE_BOOL |
|---|
| 2383 | 2371 | default "" |
|---|
| 2384 | | - ---help--- |
|---|
| 2372 | + help |
|---|
| 2385 | 2373 | Enter arguments here that should be compiled into the kernel |
|---|
| 2386 | 2374 | image and used at boot time. If the boot loader provides a |
|---|
| 2387 | 2375 | command line at boot time, it is appended to this string to |
|---|
| .. | .. |
|---|
| 2396 | 2384 | |
|---|
| 2397 | 2385 | config CMDLINE_OVERRIDE |
|---|
| 2398 | 2386 | bool "Built-in command line overrides boot loader arguments" |
|---|
| 2399 | | - depends on CMDLINE_BOOL |
|---|
| 2400 | | - ---help--- |
|---|
| 2387 | + depends on CMDLINE_BOOL && CMDLINE != "" |
|---|
| 2388 | + help |
|---|
| 2401 | 2389 | Set this option to 'Y' to have the kernel ignore the boot loader |
|---|
| 2402 | 2390 | command line, and use ONLY the built-in command line. |
|---|
| 2403 | 2391 | |
|---|
| .. | .. |
|---|
| 2407 | 2395 | config MODIFY_LDT_SYSCALL |
|---|
| 2408 | 2396 | bool "Enable the LDT (local descriptor table)" if EXPERT |
|---|
| 2409 | 2397 | default y |
|---|
| 2410 | | - ---help--- |
|---|
| 2398 | + help |
|---|
| 2411 | 2399 | Linux can allow user programs to install a per-process x86 |
|---|
| 2412 | 2400 | Local Descriptor Table (LDT) using the modify_ldt(2) system |
|---|
| 2413 | 2401 | call. This is required to run 16-bit or segmented code such as |
|---|
| .. | .. |
|---|
| 2423 | 2411 | source "kernel/livepatch/Kconfig" |
|---|
| 2424 | 2412 | |
|---|
| 2425 | 2413 | endmenu |
|---|
| 2414 | + |
|---|
| 2415 | +config CC_HAS_SLS |
|---|
| 2416 | + def_bool $(cc-option,-mharden-sls=all) |
|---|
| 2417 | + |
|---|
| 2418 | +config CC_HAS_RETURN_THUNK |
|---|
| 2419 | + def_bool $(cc-option,-mfunction-return=thunk-extern) |
|---|
| 2420 | + |
|---|
| 2421 | +menuconfig SPECULATION_MITIGATIONS |
|---|
| 2422 | + bool "Mitigations for speculative execution vulnerabilities" |
|---|
| 2423 | + default y |
|---|
| 2424 | + help |
|---|
| 2425 | + Say Y here to enable options which enable mitigations for |
|---|
| 2426 | + speculative execution hardware vulnerabilities. |
|---|
| 2427 | + |
|---|
| 2428 | + If you say N, all mitigations will be disabled. You really |
|---|
| 2429 | + should know what you are doing to say so. |
|---|
| 2430 | + |
|---|
| 2431 | +if SPECULATION_MITIGATIONS |
|---|
| 2432 | + |
|---|
| 2433 | +config PAGE_TABLE_ISOLATION |
|---|
| 2434 | + bool "Remove the kernel mapping in user mode" |
|---|
| 2435 | + default y |
|---|
| 2436 | + depends on (X86_64 || X86_PAE) |
|---|
| 2437 | + help |
|---|
| 2438 | + This feature reduces the number of hardware side channels by |
|---|
| 2439 | + ensuring that the majority of kernel addresses are not mapped |
|---|
| 2440 | + into userspace. |
|---|
| 2441 | + |
|---|
| 2442 | + See Documentation/x86/pti.rst for more details. |
|---|
| 2443 | + |
|---|
| 2444 | +config RETPOLINE |
|---|
| 2445 | + bool "Avoid speculative indirect branches in kernel" |
|---|
| 2446 | + default y |
|---|
| 2447 | + help |
|---|
| 2448 | + Compile kernel with the retpoline compiler options to guard against |
|---|
| 2449 | + kernel-to-user data leaks by avoiding speculative indirect |
|---|
| 2450 | + branches. Requires a compiler with -mindirect-branch=thunk-extern |
|---|
| 2451 | + support for full protection. The kernel may run slower. |
|---|
| 2452 | + |
|---|
| 2453 | +config RETHUNK |
|---|
| 2454 | + bool "Enable return-thunks" |
|---|
| 2455 | + depends on RETPOLINE && CC_HAS_RETURN_THUNK |
|---|
| 2456 | + default y if X86_64 |
|---|
| 2457 | + help |
|---|
| 2458 | + Compile the kernel with the return-thunks compiler option to guard |
|---|
| 2459 | + against kernel-to-user data leaks by avoiding return speculation. |
|---|
| 2460 | + Requires a compiler with -mfunction-return=thunk-extern |
|---|
| 2461 | + support for full protection. The kernel may run slower. |
|---|
| 2462 | + |
|---|
| 2463 | +config CPU_UNRET_ENTRY |
|---|
| 2464 | + bool "Enable UNRET on kernel entry" |
|---|
| 2465 | + depends on CPU_SUP_AMD && RETHUNK && X86_64 |
|---|
| 2466 | + default y |
|---|
| 2467 | + help |
|---|
| 2468 | + Compile the kernel with support for the retbleed=unret mitigation. |
|---|
| 2469 | + |
|---|
| 2470 | +config CPU_IBPB_ENTRY |
|---|
| 2471 | + bool "Enable IBPB on kernel entry" |
|---|
| 2472 | + depends on CPU_SUP_AMD && X86_64 |
|---|
| 2473 | + default y |
|---|
| 2474 | + help |
|---|
| 2475 | + Compile the kernel with support for the retbleed=ibpb mitigation. |
|---|
| 2476 | + |
|---|
| 2477 | +config CPU_IBRS_ENTRY |
|---|
| 2478 | + bool "Enable IBRS on kernel entry" |
|---|
| 2479 | + depends on CPU_SUP_INTEL && X86_64 |
|---|
| 2480 | + default y |
|---|
| 2481 | + help |
|---|
| 2482 | + Compile the kernel with support for the spectre_v2=ibrs mitigation. |
|---|
| 2483 | + This mitigates both spectre_v2 and retbleed at great cost to |
|---|
| 2484 | + performance. |
|---|
| 2485 | + |
|---|
| 2486 | +config SLS |
|---|
| 2487 | + bool "Mitigate Straight-Line-Speculation" |
|---|
| 2488 | + depends on CC_HAS_SLS && X86_64 |
|---|
| 2489 | + default n |
|---|
| 2490 | + help |
|---|
| 2491 | + Compile the kernel with straight-line-speculation options to guard |
|---|
| 2492 | + against straight line speculation. The kernel image might be slightly |
|---|
| 2493 | + larger. |
|---|
| 2494 | + |
|---|
| 2495 | +endif |
|---|
| 2426 | 2496 | |
|---|
| 2427 | 2497 | config ARCH_HAS_ADD_PAGES |
|---|
| 2428 | 2498 | def_bool y |
|---|
| .. | .. |
|---|
| 2456 | 2526 | |
|---|
| 2457 | 2527 | config ARCH_HIBERNATION_HEADER |
|---|
| 2458 | 2528 | def_bool y |
|---|
| 2459 | | - depends on X86_64 && HIBERNATION |
|---|
| 2529 | + depends on HIBERNATION |
|---|
| 2460 | 2530 | |
|---|
| 2461 | 2531 | source "kernel/power/Kconfig" |
|---|
| 2462 | 2532 | |
|---|
| .. | .. |
|---|
| 2471 | 2541 | menuconfig APM |
|---|
| 2472 | 2542 | tristate "APM (Advanced Power Management) BIOS support" |
|---|
| 2473 | 2543 | depends on X86_32 && PM_SLEEP |
|---|
| 2474 | | - ---help--- |
|---|
| 2544 | + help |
|---|
| 2475 | 2545 | APM is a BIOS specification for saving power using several different |
|---|
| 2476 | 2546 | techniques. This is mostly useful for battery powered laptops with |
|---|
| 2477 | 2547 | APM compliant BIOSes. If you say Y here, the system time will be |
|---|
| .. | .. |
|---|
| 2486 | 2556 | machines with more than one CPU. |
|---|
| 2487 | 2557 | |
|---|
| 2488 | 2558 | In order to use APM, you will need supporting software. For location |
|---|
| 2489 | | - and more information, read <file:Documentation/power/apm-acpi.txt> |
|---|
| 2559 | + and more information, read <file:Documentation/power/apm-acpi.rst> |
|---|
| 2490 | 2560 | and the Battery Powered Linux mini-HOWTO, available from |
|---|
| 2491 | 2561 | <http://www.tldp.org/docs.html#howto>. |
|---|
| 2492 | 2562 | |
|---|
| .. | .. |
|---|
| 2531 | 2601 | |
|---|
| 2532 | 2602 | config APM_IGNORE_USER_SUSPEND |
|---|
| 2533 | 2603 | bool "Ignore USER SUSPEND" |
|---|
| 2534 | | - ---help--- |
|---|
| 2604 | + help |
|---|
| 2535 | 2605 | This option will ignore USER SUSPEND requests. On machines with a |
|---|
| 2536 | 2606 | compliant APM BIOS, you want to say N. However, on the NEC Versa M |
|---|
| 2537 | 2607 | series notebooks, it is necessary to say Y because of a BIOS bug. |
|---|
| 2538 | 2608 | |
|---|
| 2539 | 2609 | config APM_DO_ENABLE |
|---|
| 2540 | 2610 | bool "Enable PM at boot time" |
|---|
| 2541 | | - ---help--- |
|---|
| 2611 | + help |
|---|
| 2542 | 2612 | Enable APM features at boot time. From page 36 of the APM BIOS |
|---|
| 2543 | 2613 | specification: "When disabled, the APM BIOS does not automatically |
|---|
| 2544 | 2614 | power manage devices, enter the Standby State, enter the Suspend |
|---|
| .. | .. |
|---|
| 2556 | 2626 | config APM_CPU_IDLE |
|---|
| 2557 | 2627 | depends on CPU_IDLE |
|---|
| 2558 | 2628 | bool "Make CPU Idle calls when idle" |
|---|
| 2559 | | - ---help--- |
|---|
| 2629 | + help |
|---|
| 2560 | 2630 | Enable calls to APM CPU Idle/CPU Busy inside the kernel's idle loop. |
|---|
| 2561 | 2631 | On some machines, this can activate improved power savings, such as |
|---|
| 2562 | 2632 | a slowed CPU clock rate, when the machine is idle. These idle calls |
|---|
| .. | .. |
|---|
| 2567 | 2637 | |
|---|
| 2568 | 2638 | config APM_DISPLAY_BLANK |
|---|
| 2569 | 2639 | bool "Enable console blanking using APM" |
|---|
| 2570 | | - ---help--- |
|---|
| 2640 | + help |
|---|
| 2571 | 2641 | Enable console blanking using the APM. Some laptops can use this to |
|---|
| 2572 | 2642 | turn off the LCD backlight when the screen blanker of the Linux |
|---|
| 2573 | 2643 | virtual console blanks the screen. Note that this is only used by |
|---|
| .. | .. |
|---|
| 2580 | 2650 | |
|---|
| 2581 | 2651 | config APM_ALLOW_INTS |
|---|
| 2582 | 2652 | bool "Allow interrupts during APM BIOS calls" |
|---|
| 2583 | | - ---help--- |
|---|
| 2653 | + help |
|---|
| 2584 | 2654 | Normally we disable external interrupts while we are making calls to |
|---|
| 2585 | 2655 | the APM BIOS as a measure to lessen the effects of a badly behaving |
|---|
| 2586 | 2656 | BIOS implementation. The BIOS should reenable interrupts if it |
|---|
| .. | .. |
|---|
| 2601 | 2671 | |
|---|
| 2602 | 2672 | menu "Bus options (PCI etc.)" |
|---|
| 2603 | 2673 | |
|---|
| 2604 | | -config PCI |
|---|
| 2605 | | - bool "PCI support" |
|---|
| 2606 | | - default y |
|---|
| 2607 | | - ---help--- |
|---|
| 2608 | | - Find out whether you have a PCI motherboard. PCI is the name of a |
|---|
| 2609 | | - bus system, i.e. the way the CPU talks to the other stuff inside |
|---|
| 2610 | | - your box. Other bus systems are ISA, EISA, MicroChannel (MCA) or |
|---|
| 2611 | | - VESA. If you have PCI, say Y, otherwise N. |
|---|
| 2612 | | - |
|---|
| 2613 | 2674 | choice |
|---|
| 2614 | 2675 | prompt "PCI access mode" |
|---|
| 2615 | 2676 | depends on X86_32 && PCI |
|---|
| 2616 | 2677 | default PCI_GOANY |
|---|
| 2617 | | - ---help--- |
|---|
| 2678 | + help |
|---|
| 2618 | 2679 | On PCI systems, the BIOS can be used to detect the PCI devices and |
|---|
| 2619 | 2680 | determine their configuration. However, some old PCI motherboards |
|---|
| 2620 | 2681 | have BIOS bugs and may crash if this is done. Also, some embedded |
|---|
| .. | .. |
|---|
| 2671 | 2732 | depends on PCI && XEN |
|---|
| 2672 | 2733 | select SWIOTLB_XEN |
|---|
| 2673 | 2734 | |
|---|
| 2674 | | -config PCI_DOMAINS |
|---|
| 2675 | | - def_bool y |
|---|
| 2676 | | - depends on PCI |
|---|
| 2677 | | - |
|---|
| 2678 | 2735 | config MMCONF_FAM10H |
|---|
| 2679 | 2736 | def_bool y |
|---|
| 2680 | 2737 | depends on X86_64 && PCI_MMCONFIG && ACPI |
|---|
| .. | .. |
|---|
| 2691 | 2748 | is known to be incomplete. |
|---|
| 2692 | 2749 | |
|---|
| 2693 | 2750 | You should say N unless you know you need this. |
|---|
| 2694 | | - |
|---|
| 2695 | | -source "drivers/pci/Kconfig" |
|---|
| 2696 | 2751 | |
|---|
| 2697 | 2752 | config ISA_BUS |
|---|
| 2698 | 2753 | bool "ISA bus support on modern systems" if EXPERT |
|---|
| .. | .. |
|---|
| 2717 | 2772 | |
|---|
| 2718 | 2773 | config ISA |
|---|
| 2719 | 2774 | bool "ISA support" |
|---|
| 2720 | | - ---help--- |
|---|
| 2775 | + help |
|---|
| 2721 | 2776 | Find out whether you have ISA slots on your motherboard. ISA is the |
|---|
| 2722 | 2777 | name of a bus system, i.e. the way the CPU talks to the other stuff |
|---|
| 2723 | 2778 | inside your box. Other bus systems are PCI, EISA, MicroChannel |
|---|
| 2724 | 2779 | (MCA) or VESA. ISA is an older system, now being displaced by PCI; |
|---|
| 2725 | 2780 | newer boards don't support it. If you have ISA, say Y, otherwise N. |
|---|
| 2726 | 2781 | |
|---|
| 2727 | | -config EISA |
|---|
| 2728 | | - bool "EISA support" |
|---|
| 2729 | | - depends on ISA |
|---|
| 2730 | | - ---help--- |
|---|
| 2731 | | - The Extended Industry Standard Architecture (EISA) bus was |
|---|
| 2732 | | - developed as an open alternative to the IBM MicroChannel bus. |
|---|
| 2733 | | - |
|---|
| 2734 | | - The EISA bus provided some of the features of the IBM MicroChannel |
|---|
| 2735 | | - bus while maintaining backward compatibility with cards made for |
|---|
| 2736 | | - the older ISA bus. The EISA bus saw limited use between 1988 and |
|---|
| 2737 | | - 1995 when it was made obsolete by the PCI bus. |
|---|
| 2738 | | - |
|---|
| 2739 | | - Say Y here if you are building a kernel for an EISA-based machine. |
|---|
| 2740 | | - |
|---|
| 2741 | | - Otherwise, say N. |
|---|
| 2742 | | - |
|---|
| 2743 | | -source "drivers/eisa/Kconfig" |
|---|
| 2744 | | - |
|---|
| 2745 | 2782 | config SCx200 |
|---|
| 2746 | 2783 | tristate "NatSemi SCx200 support" |
|---|
| 2747 | | - ---help--- |
|---|
| 2784 | + help |
|---|
| 2748 | 2785 | This provides basic support for National Semiconductor's |
|---|
| 2749 | 2786 | (now AMD's) Geode processors. The driver probes for the |
|---|
| 2750 | 2787 | PCI-IDs of several on-chip devices, so its a good dependency |
|---|
| .. | .. |
|---|
| 2756 | 2793 | tristate "NatSemi SCx200 27MHz High-Resolution Timer Support" |
|---|
| 2757 | 2794 | depends on SCx200 |
|---|
| 2758 | 2795 | default y |
|---|
| 2759 | | - ---help--- |
|---|
| 2796 | + help |
|---|
| 2760 | 2797 | This driver provides a clocksource built upon the on-chip |
|---|
| 2761 | 2798 | 27MHz high-resolution timer. Its also a workaround for |
|---|
| 2762 | 2799 | NSC Geode SC-1100's buggy TSC, which loses time when the |
|---|
| .. | .. |
|---|
| 2770 | 2807 | select OF |
|---|
| 2771 | 2808 | select OF_PROMTREE |
|---|
| 2772 | 2809 | select IRQ_DOMAIN |
|---|
| 2773 | | - ---help--- |
|---|
| 2810 | + select OLPC_EC |
|---|
| 2811 | + help |
|---|
| 2774 | 2812 | Add support for detecting the unique features of the OLPC |
|---|
| 2775 | 2813 | XO hardware. |
|---|
| 2776 | 2814 | |
|---|
| 2777 | 2815 | config OLPC_XO1_PM |
|---|
| 2778 | 2816 | bool "OLPC XO-1 Power Management" |
|---|
| 2779 | 2817 | depends on OLPC && MFD_CS5535=y && PM_SLEEP |
|---|
| 2780 | | - ---help--- |
|---|
| 2818 | + help |
|---|
| 2781 | 2819 | Add support for poweroff and suspend of the OLPC XO-1 laptop. |
|---|
| 2782 | 2820 | |
|---|
| 2783 | 2821 | config OLPC_XO1_RTC |
|---|
| 2784 | 2822 | bool "OLPC XO-1 Real Time Clock" |
|---|
| 2785 | 2823 | depends on OLPC_XO1_PM && RTC_DRV_CMOS |
|---|
| 2786 | | - ---help--- |
|---|
| 2824 | + help |
|---|
| 2787 | 2825 | Add support for the XO-1 real time clock, which can be used as a |
|---|
| 2788 | 2826 | programmable wakeup source. |
|---|
| 2789 | 2827 | |
|---|
| .. | .. |
|---|
| 2792 | 2830 | depends on OLPC && OLPC_XO1_PM && GPIO_CS5535=y |
|---|
| 2793 | 2831 | depends on INPUT=y |
|---|
| 2794 | 2832 | select POWER_SUPPLY |
|---|
| 2795 | | - ---help--- |
|---|
| 2833 | + help |
|---|
| 2796 | 2834 | Add support for SCI-based features of the OLPC XO-1 laptop: |
|---|
| 2797 | 2835 | - EC-driven system wakeups |
|---|
| 2798 | 2836 | - Power button |
|---|
| .. | .. |
|---|
| 2805 | 2843 | bool "OLPC XO-1.5 SCI extras" |
|---|
| 2806 | 2844 | depends on OLPC && ACPI |
|---|
| 2807 | 2845 | select POWER_SUPPLY |
|---|
| 2808 | | - ---help--- |
|---|
| 2846 | + help |
|---|
| 2809 | 2847 | Add support for SCI-based features of the OLPC XO-1.5 laptop: |
|---|
| 2810 | 2848 | - EC-driven system wakeups |
|---|
| 2811 | 2849 | - AC adapter status updates |
|---|
| .. | .. |
|---|
| 2814 | 2852 | config ALIX |
|---|
| 2815 | 2853 | bool "PCEngines ALIX System Support (LED setup)" |
|---|
| 2816 | 2854 | select GPIOLIB |
|---|
| 2817 | | - ---help--- |
|---|
| 2855 | + help |
|---|
| 2818 | 2856 | This option enables system support for the PCEngines ALIX. |
|---|
| 2819 | 2857 | At present this just sets up LEDs for GPIO control on |
|---|
| 2820 | 2858 | ALIX2/3/6 boards. However, other system specific setup should |
|---|
| .. | .. |
|---|
| 2828 | 2866 | config NET5501 |
|---|
| 2829 | 2867 | bool "Soekris Engineering net5501 System Support (LEDS, GPIO, etc)" |
|---|
| 2830 | 2868 | select GPIOLIB |
|---|
| 2831 | | - ---help--- |
|---|
| 2869 | + help |
|---|
| 2832 | 2870 | This option enables system support for the Soekris Engineering net5501. |
|---|
| 2833 | 2871 | |
|---|
| 2834 | 2872 | config GEOS |
|---|
| 2835 | 2873 | bool "Traverse Technologies GEOS System Support (LEDS, GPIO, etc)" |
|---|
| 2836 | 2874 | select GPIOLIB |
|---|
| 2837 | 2875 | depends on DMI |
|---|
| 2838 | | - ---help--- |
|---|
| 2876 | + help |
|---|
| 2839 | 2877 | This option enables system support for the Traverse Technologies GEOS. |
|---|
| 2840 | 2878 | |
|---|
| 2841 | 2879 | config TS5500 |
|---|
| .. | .. |
|---|
| 2844 | 2882 | select CHECK_SIGNATURE |
|---|
| 2845 | 2883 | select NEW_LEDS |
|---|
| 2846 | 2884 | select LEDS_CLASS |
|---|
| 2847 | | - ---help--- |
|---|
| 2885 | + help |
|---|
| 2848 | 2886 | This option enables system support for the Technologic Systems TS-5500. |
|---|
| 2849 | 2887 | |
|---|
| 2850 | 2888 | endif # X86_32 |
|---|
| .. | .. |
|---|
| 2852 | 2890 | config AMD_NB |
|---|
| 2853 | 2891 | def_bool y |
|---|
| 2854 | 2892 | depends on CPU_SUP_AMD && PCI |
|---|
| 2855 | | - |
|---|
| 2856 | | -source "drivers/pcmcia/Kconfig" |
|---|
| 2857 | | - |
|---|
| 2858 | | -config RAPIDIO |
|---|
| 2859 | | - tristate "RapidIO support" |
|---|
| 2860 | | - depends on PCI |
|---|
| 2861 | | - default n |
|---|
| 2862 | | - help |
|---|
| 2863 | | - If enabled this option will include drivers and the core |
|---|
| 2864 | | - infrastructure code to support RapidIO interconnect devices. |
|---|
| 2865 | | - |
|---|
| 2866 | | -source "drivers/rapidio/Kconfig" |
|---|
| 2867 | 2893 | |
|---|
| 2868 | 2894 | config X86_SYSFB |
|---|
| 2869 | 2895 | bool "Mark VGA/VBE/EFI FB as generic system framebuffer" |
|---|
| .. | .. |
|---|
| 2903 | 2929 | select BINFMT_ELF |
|---|
| 2904 | 2930 | select COMPAT_BINFMT_ELF |
|---|
| 2905 | 2931 | select COMPAT_OLD_SIGACTION |
|---|
| 2906 | | - ---help--- |
|---|
| 2932 | + help |
|---|
| 2907 | 2933 | Include code to run legacy 32-bit programs under a |
|---|
| 2908 | 2934 | 64-bit kernel. You should likely turn this on, unless you're |
|---|
| 2909 | 2935 | 100% sure that you don't have any 32-bit programs left. |
|---|
| .. | .. |
|---|
| 2911 | 2937 | config IA32_AOUT |
|---|
| 2912 | 2938 | tristate "IA32 a.out support" |
|---|
| 2913 | 2939 | depends on IA32_EMULATION |
|---|
| 2914 | | - ---help--- |
|---|
| 2940 | + depends on BROKEN |
|---|
| 2941 | + help |
|---|
| 2915 | 2942 | Support old a.out binaries in the 32bit emulation. |
|---|
| 2916 | 2943 | |
|---|
| 2917 | 2944 | config X86_X32 |
|---|
| 2918 | 2945 | bool "x32 ABI for 64-bit mode" |
|---|
| 2919 | 2946 | depends on X86_64 |
|---|
| 2920 | | - ---help--- |
|---|
| 2947 | + # llvm-objcopy does not convert x86_64 .note.gnu.property or |
|---|
| 2948 | + # compressed debug sections to x86_x32 properly: |
|---|
| 2949 | + # https://github.com/ClangBuiltLinux/linux/issues/514 |
|---|
| 2950 | + # https://github.com/ClangBuiltLinux/linux/issues/1141 |
|---|
| 2951 | + depends on $(success,$(OBJCOPY) --version | head -n1 | grep -qv llvm) |
|---|
| 2952 | + help |
|---|
| 2921 | 2953 | Include code to run binaries for the x32 native 32-bit ABI |
|---|
| 2922 | 2954 | for 64-bit processors. An x32 process gets access to the |
|---|
| 2923 | 2955 | full 64-bit register file and wide data path while leaving |
|---|
| .. | .. |
|---|
| 2953 | 2985 | def_bool y |
|---|
| 2954 | 2986 | depends on X86_32 |
|---|
| 2955 | 2987 | |
|---|
| 2956 | | -config X86_DEV_DMA_OPS |
|---|
| 2957 | | - bool |
|---|
| 2958 | | - depends on X86_64 || STA2X11 |
|---|
| 2959 | | - |
|---|
| 2960 | | -config X86_DMA_REMAP |
|---|
| 2961 | | - bool |
|---|
| 2962 | | - depends on STA2X11 |
|---|
| 2963 | | - |
|---|
| 2964 | | -config HAVE_GENERIC_GUP |
|---|
| 2965 | | - def_bool y |
|---|
| 2966 | | - |
|---|
| 2967 | 2988 | source "drivers/firmware/Kconfig" |
|---|
| 2968 | 2989 | |
|---|
| 2969 | 2990 | source "arch/x86/kvm/Kconfig" |
|---|
| 2991 | + |
|---|
| 2992 | +source "arch/x86/Kconfig.assembler" |
|---|