18c2ecf20Sopenharmony_ci# SPDX-License-Identifier: GPL-2.0 28c2ecf20Sopenharmony_ci# Select 32 or 64 bit 38c2ecf20Sopenharmony_ciconfig 64BIT 48c2ecf20Sopenharmony_ci bool "64-bit kernel" if "$(ARCH)" = "x86" 58c2ecf20Sopenharmony_ci default "$(ARCH)" != "i386" 68c2ecf20Sopenharmony_ci help 78c2ecf20Sopenharmony_ci Say yes to build a 64-bit kernel - formerly known as x86_64 88c2ecf20Sopenharmony_ci Say no to build a 32-bit kernel - formerly known as i386 98c2ecf20Sopenharmony_ci 108c2ecf20Sopenharmony_ciconfig X86_32 118c2ecf20Sopenharmony_ci def_bool y 128c2ecf20Sopenharmony_ci depends on !64BIT 138c2ecf20Sopenharmony_ci # Options that are inherently 32-bit kernel only: 148c2ecf20Sopenharmony_ci select ARCH_WANT_IPC_PARSE_VERSION 158c2ecf20Sopenharmony_ci select CLKSRC_I8253 168c2ecf20Sopenharmony_ci select CLONE_BACKWARDS 178c2ecf20Sopenharmony_ci select HAVE_DEBUG_STACKOVERFLOW 188c2ecf20Sopenharmony_ci select MODULES_USE_ELF_REL 198c2ecf20Sopenharmony_ci select OLD_SIGACTION 208c2ecf20Sopenharmony_ci select GENERIC_VDSO_32 218c2ecf20Sopenharmony_ci select ARCH_SPLIT_ARG64 228c2ecf20Sopenharmony_ci 238c2ecf20Sopenharmony_ciconfig X86_64 248c2ecf20Sopenharmony_ci def_bool y 258c2ecf20Sopenharmony_ci depends on 64BIT 268c2ecf20Sopenharmony_ci # Options that are inherently 64-bit kernel only: 278c2ecf20Sopenharmony_ci select ARCH_HAS_GIGANTIC_PAGE 288c2ecf20Sopenharmony_ci select ARCH_SUPPORTS_INT128 if CC_HAS_INT128 298c2ecf20Sopenharmony_ci select ARCH_USE_CMPXCHG_LOCKREF 308c2ecf20Sopenharmony_ci select HAVE_ARCH_SOFT_DIRTY 318c2ecf20Sopenharmony_ci select MODULES_USE_ELF_RELA 328c2ecf20Sopenharmony_ci select NEED_DMA_MAP_STATE 338c2ecf20Sopenharmony_ci select SWIOTLB 348c2ecf20Sopenharmony_ci 358c2ecf20Sopenharmony_ciconfig FORCE_DYNAMIC_FTRACE 368c2ecf20Sopenharmony_ci def_bool y 378c2ecf20Sopenharmony_ci depends on X86_32 388c2ecf20Sopenharmony_ci depends on FUNCTION_TRACER 398c2ecf20Sopenharmony_ci select DYNAMIC_FTRACE 408c2ecf20Sopenharmony_ci help 418c2ecf20Sopenharmony_ci We keep the static function tracing (!DYNAMIC_FTRACE) around 428c2ecf20Sopenharmony_ci in order to test the non static function tracing in the 438c2ecf20Sopenharmony_ci generic code, as other architectures still use it. But we 448c2ecf20Sopenharmony_ci only need to keep it around for x86_64. No need to keep it 458c2ecf20Sopenharmony_ci for x86_32. For x86_32, force DYNAMIC_FTRACE. 468c2ecf20Sopenharmony_ci# 478c2ecf20Sopenharmony_ci# Arch settings 488c2ecf20Sopenharmony_ci# 498c2ecf20Sopenharmony_ci# ( Note that options that are marked 'if X86_64' could in principle be 508c2ecf20Sopenharmony_ci# ported to 32-bit as well. ) 518c2ecf20Sopenharmony_ci# 528c2ecf20Sopenharmony_ciconfig X86 538c2ecf20Sopenharmony_ci def_bool y 548c2ecf20Sopenharmony_ci # 558c2ecf20Sopenharmony_ci # Note: keep this list sorted alphabetically 568c2ecf20Sopenharmony_ci # 578c2ecf20Sopenharmony_ci select ACPI_LEGACY_TABLES_LOOKUP if ACPI 588c2ecf20Sopenharmony_ci select ACPI_SYSTEM_POWER_STATES_SUPPORT if ACPI 598c2ecf20Sopenharmony_ci select ARCH_32BIT_OFF_T if X86_32 608c2ecf20Sopenharmony_ci select ARCH_CLOCKSOURCE_INIT 618c2ecf20Sopenharmony_ci select ARCH_HAS_ACPI_TABLE_UPGRADE if ACPI 628c2ecf20Sopenharmony_ci select ARCH_HAS_CPU_FINALIZE_INIT 638c2ecf20Sopenharmony_ci select ARCH_HAS_DEBUG_VIRTUAL 648c2ecf20Sopenharmony_ci select ARCH_HAS_DEBUG_VM_PGTABLE if !X86_PAE 658c2ecf20Sopenharmony_ci select ARCH_HAS_DEVMEM_IS_ALLOWED 668c2ecf20Sopenharmony_ci select ARCH_HAS_EARLY_DEBUG if KGDB 678c2ecf20Sopenharmony_ci select ARCH_HAS_ELF_RANDOMIZE 688c2ecf20Sopenharmony_ci select ARCH_HAS_FAST_MULTIPLIER 698c2ecf20Sopenharmony_ci select ARCH_HAS_FILTER_PGPROT 708c2ecf20Sopenharmony_ci select ARCH_HAS_FORTIFY_SOURCE 718c2ecf20Sopenharmony_ci select ARCH_HAS_GCOV_PROFILE_ALL 728c2ecf20Sopenharmony_ci select ARCH_HAS_KCOV if X86_64 && STACK_VALIDATION 738c2ecf20Sopenharmony_ci select ARCH_HAS_MEM_ENCRYPT 748c2ecf20Sopenharmony_ci select ARCH_HAS_MEMBARRIER_SYNC_CORE 758c2ecf20Sopenharmony_ci select ARCH_HAS_NON_OVERLAPPING_ADDRESS_SPACE 768c2ecf20Sopenharmony_ci select ARCH_HAS_PMEM_API if X86_64 778c2ecf20Sopenharmony_ci select ARCH_HAS_PTE_DEVMAP if X86_64 788c2ecf20Sopenharmony_ci select ARCH_HAS_PTE_SPECIAL 798c2ecf20Sopenharmony_ci select ARCH_HAS_UACCESS_FLUSHCACHE if X86_64 808c2ecf20Sopenharmony_ci select ARCH_HAS_COPY_MC if X86_64 818c2ecf20Sopenharmony_ci select ARCH_HAS_SET_MEMORY 828c2ecf20Sopenharmony_ci select ARCH_HAS_SET_DIRECT_MAP 838c2ecf20Sopenharmony_ci select ARCH_HAS_STRICT_KERNEL_RWX 848c2ecf20Sopenharmony_ci select ARCH_HAS_STRICT_MODULE_RWX 858c2ecf20Sopenharmony_ci select ARCH_HAS_SYNC_CORE_BEFORE_USERMODE 868c2ecf20Sopenharmony_ci select ARCH_HAS_SYSCALL_WRAPPER 878c2ecf20Sopenharmony_ci select ARCH_HAS_UBSAN_SANITIZE_ALL 888c2ecf20Sopenharmony_ci select ARCH_HAS_DEBUG_WX 898c2ecf20Sopenharmony_ci select ARCH_HAVE_NMI_SAFE_CMPXCHG 908c2ecf20Sopenharmony_ci select ARCH_MIGHT_HAVE_ACPI_PDC if ACPI 918c2ecf20Sopenharmony_ci select ARCH_MIGHT_HAVE_PC_PARPORT 928c2ecf20Sopenharmony_ci select ARCH_MIGHT_HAVE_PC_SERIO 938c2ecf20Sopenharmony_ci select ARCH_STACKWALK 948c2ecf20Sopenharmony_ci select ARCH_SUPPORTS_ACPI 958c2ecf20Sopenharmony_ci select ARCH_SUPPORTS_ATOMIC_RMW 968c2ecf20Sopenharmony_ci select ARCH_SUPPORTS_NUMA_BALANCING if X86_64 978c2ecf20Sopenharmony_ci select ARCH_USE_BUILTIN_BSWAP 988c2ecf20Sopenharmony_ci select ARCH_USE_QUEUED_RWLOCKS 998c2ecf20Sopenharmony_ci select ARCH_USE_QUEUED_SPINLOCKS 1008c2ecf20Sopenharmony_ci select ARCH_USE_SYM_ANNOTATIONS 1018c2ecf20Sopenharmony_ci select ARCH_WANT_BATCHED_UNMAP_TLB_FLUSH 1028c2ecf20Sopenharmony_ci select ARCH_WANT_DEFAULT_BPF_JIT if X86_64 1038c2ecf20Sopenharmony_ci select ARCH_WANTS_DYNAMIC_TASK_STRUCT 1048c2ecf20Sopenharmony_ci select ARCH_WANT_HUGE_PMD_SHARE 1058c2ecf20Sopenharmony_ci select ARCH_WANT_LD_ORPHAN_WARN 1068c2ecf20Sopenharmony_ci select ARCH_WANTS_THP_SWAP if X86_64 1078c2ecf20Sopenharmony_ci select BUILDTIME_TABLE_SORT 1088c2ecf20Sopenharmony_ci select CLKEVT_I8253 1098c2ecf20Sopenharmony_ci select CLOCKSOURCE_VALIDATE_LAST_CYCLE 1108c2ecf20Sopenharmony_ci select CLOCKSOURCE_WATCHDOG 1118c2ecf20Sopenharmony_ci select DCACHE_WORD_ACCESS 1128c2ecf20Sopenharmony_ci select EDAC_ATOMIC_SCRUB 1138c2ecf20Sopenharmony_ci select EDAC_SUPPORT 1148c2ecf20Sopenharmony_ci select GENERIC_CLOCKEVENTS 1158c2ecf20Sopenharmony_ci select GENERIC_CLOCKEVENTS_BROADCAST if X86_64 || (X86_32 && X86_LOCAL_APIC) 1168c2ecf20Sopenharmony_ci select GENERIC_CLOCKEVENTS_MIN_ADJUST 1178c2ecf20Sopenharmony_ci select GENERIC_CMOS_UPDATE 1188c2ecf20Sopenharmony_ci select GENERIC_CPU_AUTOPROBE 1198c2ecf20Sopenharmony_ci select GENERIC_CPU_VULNERABILITIES 1208c2ecf20Sopenharmony_ci select GENERIC_EARLY_IOREMAP 1218c2ecf20Sopenharmony_ci select GENERIC_ENTRY 1228c2ecf20Sopenharmony_ci select GENERIC_FIND_FIRST_BIT 1238c2ecf20Sopenharmony_ci select GENERIC_IOMAP 1248c2ecf20Sopenharmony_ci select GENERIC_IRQ_EFFECTIVE_AFF_MASK if SMP 1258c2ecf20Sopenharmony_ci select GENERIC_IRQ_MATRIX_ALLOCATOR if X86_LOCAL_APIC 1268c2ecf20Sopenharmony_ci select GENERIC_IRQ_MIGRATION if SMP 1278c2ecf20Sopenharmony_ci select GENERIC_IRQ_PROBE 1288c2ecf20Sopenharmony_ci select GENERIC_IRQ_RESERVATION_MODE 1298c2ecf20Sopenharmony_ci select GENERIC_IRQ_SHOW 1308c2ecf20Sopenharmony_ci select GENERIC_PENDING_IRQ if SMP 1318c2ecf20Sopenharmony_ci select GENERIC_PTDUMP 1328c2ecf20Sopenharmony_ci select GENERIC_SMP_IDLE_THREAD 1338c2ecf20Sopenharmony_ci select GENERIC_STRNCPY_FROM_USER 1348c2ecf20Sopenharmony_ci select GENERIC_STRNLEN_USER 1358c2ecf20Sopenharmony_ci select GENERIC_TIME_VSYSCALL 1368c2ecf20Sopenharmony_ci select GENERIC_GETTIMEOFDAY 1378c2ecf20Sopenharmony_ci select GENERIC_VDSO_TIME_NS 1388c2ecf20Sopenharmony_ci select GUP_GET_PTE_LOW_HIGH if X86_PAE 1398c2ecf20Sopenharmony_ci select HARDIRQS_SW_RESEND 1408c2ecf20Sopenharmony_ci select HARDLOCKUP_CHECK_TIMESTAMP if X86_64 1418c2ecf20Sopenharmony_ci select HAVE_ACPI_APEI if ACPI 1428c2ecf20Sopenharmony_ci select HAVE_ACPI_APEI_NMI if ACPI 1438c2ecf20Sopenharmony_ci select HAVE_ALIGNED_STRUCT_PAGE if SLUB 1448c2ecf20Sopenharmony_ci select HAVE_ARCH_AUDITSYSCALL 1458c2ecf20Sopenharmony_ci select HAVE_ARCH_HUGE_VMAP if X86_64 || X86_PAE 1468c2ecf20Sopenharmony_ci select HAVE_ARCH_JUMP_LABEL 1478c2ecf20Sopenharmony_ci select HAVE_ARCH_JUMP_LABEL_RELATIVE 1488c2ecf20Sopenharmony_ci select HAVE_ARCH_KASAN if X86_64 1498c2ecf20Sopenharmony_ci select HAVE_ARCH_KASAN_VMALLOC if X86_64 1508c2ecf20Sopenharmony_ci select HAVE_ARCH_KGDB 1518c2ecf20Sopenharmony_ci select HAVE_ARCH_MMAP_RND_BITS if MMU 1528c2ecf20Sopenharmony_ci select HAVE_ARCH_MMAP_RND_COMPAT_BITS if MMU && COMPAT 1538c2ecf20Sopenharmony_ci select HAVE_ARCH_COMPAT_MMAP_BASES if MMU && COMPAT 1548c2ecf20Sopenharmony_ci select HAVE_ARCH_PREL32_RELOCATIONS 1558c2ecf20Sopenharmony_ci select HAVE_ARCH_SECCOMP_FILTER 1568c2ecf20Sopenharmony_ci select HAVE_ARCH_THREAD_STRUCT_WHITELIST 1578c2ecf20Sopenharmony_ci select HAVE_ARCH_STACKLEAK 1588c2ecf20Sopenharmony_ci select HAVE_ARCH_TRACEHOOK 1598c2ecf20Sopenharmony_ci select HAVE_ARCH_TRANSPARENT_HUGEPAGE 1608c2ecf20Sopenharmony_ci select HAVE_ARCH_TRANSPARENT_HUGEPAGE_PUD if X86_64 1618c2ecf20Sopenharmony_ci select HAVE_ARCH_USERFAULTFD_WP if X86_64 && USERFAULTFD 1628c2ecf20Sopenharmony_ci select HAVE_ARCH_VMAP_STACK if X86_64 1638c2ecf20Sopenharmony_ci select HAVE_ARCH_WITHIN_STACK_FRAMES 1648c2ecf20Sopenharmony_ci select HAVE_ASM_MODVERSIONS 1658c2ecf20Sopenharmony_ci select HAVE_CMPXCHG_DOUBLE 1668c2ecf20Sopenharmony_ci select HAVE_CMPXCHG_LOCAL 1678c2ecf20Sopenharmony_ci select HAVE_CONTEXT_TRACKING if X86_64 1688c2ecf20Sopenharmony_ci select HAVE_C_RECORDMCOUNT 1698c2ecf20Sopenharmony_ci select HAVE_DEBUG_KMEMLEAK 1708c2ecf20Sopenharmony_ci select HAVE_DMA_CONTIGUOUS 1718c2ecf20Sopenharmony_ci select HAVE_DYNAMIC_FTRACE 1728c2ecf20Sopenharmony_ci select HAVE_DYNAMIC_FTRACE_WITH_REGS 1738c2ecf20Sopenharmony_ci select HAVE_DYNAMIC_FTRACE_WITH_DIRECT_CALLS 1748c2ecf20Sopenharmony_ci select HAVE_EBPF_JIT 1758c2ecf20Sopenharmony_ci select HAVE_EFFICIENT_UNALIGNED_ACCESS 1768c2ecf20Sopenharmony_ci select HAVE_EISA 1778c2ecf20Sopenharmony_ci select HAVE_EXIT_THREAD 1788c2ecf20Sopenharmony_ci select HAVE_FAST_GUP 1798c2ecf20Sopenharmony_ci select HAVE_FENTRY if X86_64 || DYNAMIC_FTRACE 1808c2ecf20Sopenharmony_ci select HAVE_FTRACE_MCOUNT_RECORD 1818c2ecf20Sopenharmony_ci select HAVE_FUNCTION_GRAPH_TRACER 1828c2ecf20Sopenharmony_ci select HAVE_FUNCTION_TRACER 1838c2ecf20Sopenharmony_ci select HAVE_GCC_PLUGINS 1848c2ecf20Sopenharmony_ci select HAVE_HW_BREAKPOINT 1858c2ecf20Sopenharmony_ci select HAVE_IDE 1868c2ecf20Sopenharmony_ci select HAVE_IOREMAP_PROT 1878c2ecf20Sopenharmony_ci select HAVE_IRQ_TIME_ACCOUNTING 1888c2ecf20Sopenharmony_ci select HAVE_KERNEL_BZIP2 1898c2ecf20Sopenharmony_ci select HAVE_KERNEL_GZIP 1908c2ecf20Sopenharmony_ci select HAVE_KERNEL_LZ4 1918c2ecf20Sopenharmony_ci select HAVE_KERNEL_LZMA 1928c2ecf20Sopenharmony_ci select HAVE_KERNEL_LZO 1938c2ecf20Sopenharmony_ci select HAVE_KERNEL_XZ 1948c2ecf20Sopenharmony_ci select HAVE_KERNEL_ZSTD 1958c2ecf20Sopenharmony_ci select HAVE_KPROBES 1968c2ecf20Sopenharmony_ci select HAVE_KPROBES_ON_FTRACE 1978c2ecf20Sopenharmony_ci select HAVE_FUNCTION_ERROR_INJECTION 1988c2ecf20Sopenharmony_ci select HAVE_KRETPROBES 1998c2ecf20Sopenharmony_ci select HAVE_KVM 2008c2ecf20Sopenharmony_ci select HAVE_LIVEPATCH if X86_64 2018c2ecf20Sopenharmony_ci select HAVE_MIXED_BREAKPOINTS_REGS 2028c2ecf20Sopenharmony_ci select HAVE_MOD_ARCH_SPECIFIC 2038c2ecf20Sopenharmony_ci select HAVE_MOVE_PMD 2048c2ecf20Sopenharmony_ci select HAVE_NMI 2058c2ecf20Sopenharmony_ci select HAVE_OPROFILE 2068c2ecf20Sopenharmony_ci select HAVE_OPTPROBES 2078c2ecf20Sopenharmony_ci select HAVE_PCSPKR_PLATFORM 2088c2ecf20Sopenharmony_ci select HAVE_PERF_EVENTS 2098c2ecf20Sopenharmony_ci select HAVE_PERF_EVENTS_NMI 2108c2ecf20Sopenharmony_ci select HAVE_HARDLOCKUP_DETECTOR_PERF if PERF_EVENTS && HAVE_PERF_EVENTS_NMI 2118c2ecf20Sopenharmony_ci select HAVE_PCI 2128c2ecf20Sopenharmony_ci select HAVE_PERF_REGS 2138c2ecf20Sopenharmony_ci select HAVE_PERF_USER_STACK_DUMP 2148c2ecf20Sopenharmony_ci select MMU_GATHER_RCU_TABLE_FREE if PARAVIRT 2158c2ecf20Sopenharmony_ci select HAVE_POSIX_CPU_TIMERS_TASK_WORK 2168c2ecf20Sopenharmony_ci select HAVE_REGS_AND_STACK_ACCESS_API 2178c2ecf20Sopenharmony_ci select HAVE_RELIABLE_STACKTRACE if X86_64 && (UNWINDER_FRAME_POINTER || UNWINDER_ORC) && STACK_VALIDATION 2188c2ecf20Sopenharmony_ci select HAVE_FUNCTION_ARG_ACCESS_API 2198c2ecf20Sopenharmony_ci select HAVE_STACKPROTECTOR if CC_HAS_SANE_STACKPROTECTOR 2208c2ecf20Sopenharmony_ci select HAVE_STACK_VALIDATION if X86_64 2218c2ecf20Sopenharmony_ci select HAVE_STATIC_CALL 2228c2ecf20Sopenharmony_ci select HAVE_STATIC_CALL_INLINE if HAVE_STACK_VALIDATION 2238c2ecf20Sopenharmony_ci select HAVE_RSEQ 2248c2ecf20Sopenharmony_ci select HAVE_SYSCALL_TRACEPOINTS 2258c2ecf20Sopenharmony_ci select HAVE_UNSTABLE_SCHED_CLOCK 2268c2ecf20Sopenharmony_ci select HAVE_USER_RETURN_NOTIFIER 2278c2ecf20Sopenharmony_ci select HAVE_GENERIC_VDSO 2288c2ecf20Sopenharmony_ci select HOTPLUG_SMT if SMP 2298c2ecf20Sopenharmony_ci select IRQ_FORCED_THREADING 2308c2ecf20Sopenharmony_ci select NEED_SG_DMA_LENGTH 2318c2ecf20Sopenharmony_ci select PCI_DOMAINS if PCI 2328c2ecf20Sopenharmony_ci select PCI_LOCKLESS_CONFIG if PCI 2338c2ecf20Sopenharmony_ci select PERF_EVENTS 2348c2ecf20Sopenharmony_ci select RTC_LIB 2358c2ecf20Sopenharmony_ci select RTC_MC146818_LIB 2368c2ecf20Sopenharmony_ci select SPARSE_IRQ 2378c2ecf20Sopenharmony_ci select SRCU 2388c2ecf20Sopenharmony_ci select STACK_VALIDATION if HAVE_STACK_VALIDATION && (HAVE_STATIC_CALL_INLINE || RETPOLINE) 2398c2ecf20Sopenharmony_ci select SYSCTL_EXCEPTION_TRACE 2408c2ecf20Sopenharmony_ci select THREAD_INFO_IN_TASK 2418c2ecf20Sopenharmony_ci select USER_STACKTRACE_SUPPORT 2428c2ecf20Sopenharmony_ci select VIRT_TO_BUS 2438c2ecf20Sopenharmony_ci select HAVE_ARCH_KCSAN if X86_64 2448c2ecf20Sopenharmony_ci select X86_FEATURE_NAMES if PROC_FS 2458c2ecf20Sopenharmony_ci select PROC_PID_ARCH_STATUS if PROC_FS 2468c2ecf20Sopenharmony_ci imply IMA_SECURE_AND_OR_TRUSTED_BOOT if EFI 2478c2ecf20Sopenharmony_ci 2488c2ecf20Sopenharmony_ciconfig INSTRUCTION_DECODER 2498c2ecf20Sopenharmony_ci def_bool y 2508c2ecf20Sopenharmony_ci depends on KPROBES || PERF_EVENTS || UPROBES 2518c2ecf20Sopenharmony_ci 2528c2ecf20Sopenharmony_ciconfig OUTPUT_FORMAT 2538c2ecf20Sopenharmony_ci string 2548c2ecf20Sopenharmony_ci default "elf32-i386" if X86_32 2558c2ecf20Sopenharmony_ci default "elf64-x86-64" if X86_64 2568c2ecf20Sopenharmony_ci 2578c2ecf20Sopenharmony_ciconfig LOCKDEP_SUPPORT 2588c2ecf20Sopenharmony_ci def_bool y 2598c2ecf20Sopenharmony_ci 2608c2ecf20Sopenharmony_ciconfig STACKTRACE_SUPPORT 2618c2ecf20Sopenharmony_ci def_bool y 2628c2ecf20Sopenharmony_ci 2638c2ecf20Sopenharmony_ciconfig MMU 2648c2ecf20Sopenharmony_ci def_bool y 2658c2ecf20Sopenharmony_ci 2668c2ecf20Sopenharmony_ciconfig ARCH_MMAP_RND_BITS_MIN 2678c2ecf20Sopenharmony_ci default 28 if 64BIT 2688c2ecf20Sopenharmony_ci default 8 2698c2ecf20Sopenharmony_ci 2708c2ecf20Sopenharmony_ciconfig ARCH_MMAP_RND_BITS_MAX 2718c2ecf20Sopenharmony_ci default 32 if 64BIT 2728c2ecf20Sopenharmony_ci default 16 2738c2ecf20Sopenharmony_ci 2748c2ecf20Sopenharmony_ciconfig ARCH_MMAP_RND_COMPAT_BITS_MIN 2758c2ecf20Sopenharmony_ci default 8 2768c2ecf20Sopenharmony_ci 2778c2ecf20Sopenharmony_ciconfig ARCH_MMAP_RND_COMPAT_BITS_MAX 2788c2ecf20Sopenharmony_ci default 16 2798c2ecf20Sopenharmony_ci 2808c2ecf20Sopenharmony_ciconfig SBUS 2818c2ecf20Sopenharmony_ci bool 2828c2ecf20Sopenharmony_ci 2838c2ecf20Sopenharmony_ciconfig GENERIC_ISA_DMA 2848c2ecf20Sopenharmony_ci def_bool y 2858c2ecf20Sopenharmony_ci depends on ISA_DMA_API 2868c2ecf20Sopenharmony_ci 2878c2ecf20Sopenharmony_ciconfig GENERIC_BUG 2888c2ecf20Sopenharmony_ci def_bool y 2898c2ecf20Sopenharmony_ci depends on BUG 2908c2ecf20Sopenharmony_ci select GENERIC_BUG_RELATIVE_POINTERS if X86_64 2918c2ecf20Sopenharmony_ci 2928c2ecf20Sopenharmony_ciconfig GENERIC_BUG_RELATIVE_POINTERS 2938c2ecf20Sopenharmony_ci bool 2948c2ecf20Sopenharmony_ci 2958c2ecf20Sopenharmony_ciconfig ARCH_MAY_HAVE_PC_FDC 2968c2ecf20Sopenharmony_ci def_bool y 2978c2ecf20Sopenharmony_ci depends on ISA_DMA_API 2988c2ecf20Sopenharmony_ci 2998c2ecf20Sopenharmony_ciconfig GENERIC_CALIBRATE_DELAY 3008c2ecf20Sopenharmony_ci def_bool y 3018c2ecf20Sopenharmony_ci 3028c2ecf20Sopenharmony_ciconfig ARCH_HAS_CPU_RELAX 3038c2ecf20Sopenharmony_ci def_bool y 3048c2ecf20Sopenharmony_ci 3058c2ecf20Sopenharmony_ciconfig ARCH_HAS_CACHE_LINE_SIZE 3068c2ecf20Sopenharmony_ci def_bool y 3078c2ecf20Sopenharmony_ci 3088c2ecf20Sopenharmony_ciconfig ARCH_HAS_FILTER_PGPROT 3098c2ecf20Sopenharmony_ci def_bool y 3108c2ecf20Sopenharmony_ci 3118c2ecf20Sopenharmony_ciconfig HAVE_SETUP_PER_CPU_AREA 3128c2ecf20Sopenharmony_ci def_bool y 3138c2ecf20Sopenharmony_ci 3148c2ecf20Sopenharmony_ciconfig NEED_PER_CPU_EMBED_FIRST_CHUNK 3158c2ecf20Sopenharmony_ci def_bool y 3168c2ecf20Sopenharmony_ci 3178c2ecf20Sopenharmony_ciconfig NEED_PER_CPU_PAGE_FIRST_CHUNK 3188c2ecf20Sopenharmony_ci def_bool y 3198c2ecf20Sopenharmony_ci 3208c2ecf20Sopenharmony_ciconfig ARCH_HIBERNATION_POSSIBLE 3218c2ecf20Sopenharmony_ci def_bool y 3228c2ecf20Sopenharmony_ci 3238c2ecf20Sopenharmony_ciconfig ARCH_SUSPEND_POSSIBLE 3248c2ecf20Sopenharmony_ci def_bool y 3258c2ecf20Sopenharmony_ci 3268c2ecf20Sopenharmony_ciconfig ARCH_WANT_GENERAL_HUGETLB 3278c2ecf20Sopenharmony_ci def_bool y 3288c2ecf20Sopenharmony_ci 3298c2ecf20Sopenharmony_ciconfig ZONE_DMA32 3308c2ecf20Sopenharmony_ci def_bool y if X86_64 3318c2ecf20Sopenharmony_ci 3328c2ecf20Sopenharmony_ciconfig AUDIT_ARCH 3338c2ecf20Sopenharmony_ci def_bool y if X86_64 3348c2ecf20Sopenharmony_ci 3358c2ecf20Sopenharmony_ciconfig ARCH_SUPPORTS_DEBUG_PAGEALLOC 3368c2ecf20Sopenharmony_ci def_bool y 3378c2ecf20Sopenharmony_ci 3388c2ecf20Sopenharmony_ciconfig KASAN_SHADOW_OFFSET 3398c2ecf20Sopenharmony_ci hex 3408c2ecf20Sopenharmony_ci depends on KASAN 3418c2ecf20Sopenharmony_ci default 0xdffffc0000000000 3428c2ecf20Sopenharmony_ci 3438c2ecf20Sopenharmony_ciconfig HAVE_INTEL_TXT 3448c2ecf20Sopenharmony_ci def_bool y 3458c2ecf20Sopenharmony_ci depends on INTEL_IOMMU && ACPI 3468c2ecf20Sopenharmony_ci 3478c2ecf20Sopenharmony_ciconfig X86_32_SMP 3488c2ecf20Sopenharmony_ci def_bool y 3498c2ecf20Sopenharmony_ci depends on X86_32 && SMP 3508c2ecf20Sopenharmony_ci 3518c2ecf20Sopenharmony_ciconfig X86_64_SMP 3528c2ecf20Sopenharmony_ci def_bool y 3538c2ecf20Sopenharmony_ci depends on X86_64 && SMP 3548c2ecf20Sopenharmony_ci 3558c2ecf20Sopenharmony_ciconfig X86_32_LAZY_GS 3568c2ecf20Sopenharmony_ci def_bool y 3578c2ecf20Sopenharmony_ci depends on X86_32 && !STACKPROTECTOR 3588c2ecf20Sopenharmony_ci 3598c2ecf20Sopenharmony_ciconfig ARCH_SUPPORTS_UPROBES 3608c2ecf20Sopenharmony_ci def_bool y 3618c2ecf20Sopenharmony_ci 3628c2ecf20Sopenharmony_ciconfig FIX_EARLYCON_MEM 3638c2ecf20Sopenharmony_ci def_bool y 3648c2ecf20Sopenharmony_ci 3658c2ecf20Sopenharmony_ciconfig DYNAMIC_PHYSICAL_MASK 3668c2ecf20Sopenharmony_ci bool 3678c2ecf20Sopenharmony_ci 3688c2ecf20Sopenharmony_ciconfig PGTABLE_LEVELS 3698c2ecf20Sopenharmony_ci int 3708c2ecf20Sopenharmony_ci default 5 if X86_5LEVEL 3718c2ecf20Sopenharmony_ci default 4 if X86_64 3728c2ecf20Sopenharmony_ci default 3 if X86_PAE 3738c2ecf20Sopenharmony_ci default 2 3748c2ecf20Sopenharmony_ci 3758c2ecf20Sopenharmony_ciconfig CC_HAS_SANE_STACKPROTECTOR 3768c2ecf20Sopenharmony_ci bool 3778c2ecf20Sopenharmony_ci default $(success,$(srctree)/scripts/gcc-x86_64-has-stack-protector.sh $(CC)) if 64BIT 3788c2ecf20Sopenharmony_ci default $(success,$(srctree)/scripts/gcc-x86_32-has-stack-protector.sh $(CC)) 3798c2ecf20Sopenharmony_ci help 3808c2ecf20Sopenharmony_ci We have to make sure stack protector is unconditionally disabled if 3818c2ecf20Sopenharmony_ci the compiler produces broken code. 3828c2ecf20Sopenharmony_ci 3838c2ecf20Sopenharmony_cimenu "Processor type and features" 3848c2ecf20Sopenharmony_ci 3858c2ecf20Sopenharmony_ciconfig ZONE_DMA 3868c2ecf20Sopenharmony_ci bool "DMA memory allocation support" if EXPERT 3878c2ecf20Sopenharmony_ci default y 3888c2ecf20Sopenharmony_ci help 3898c2ecf20Sopenharmony_ci DMA memory allocation support allows devices with less than 32-bit 3908c2ecf20Sopenharmony_ci addressing to allocate within the first 16MB of address space. 3918c2ecf20Sopenharmony_ci Disable if no such devices will be used. 3928c2ecf20Sopenharmony_ci 3938c2ecf20Sopenharmony_ci If unsure, say Y. 3948c2ecf20Sopenharmony_ci 3958c2ecf20Sopenharmony_ciconfig SMP 3968c2ecf20Sopenharmony_ci bool "Symmetric multi-processing support" 3978c2ecf20Sopenharmony_ci help 3988c2ecf20Sopenharmony_ci This enables support for systems with more than one CPU. If you have 3998c2ecf20Sopenharmony_ci a system with only one CPU, say N. If you have a system with more 4008c2ecf20Sopenharmony_ci than one CPU, say Y. 4018c2ecf20Sopenharmony_ci 4028c2ecf20Sopenharmony_ci If you say N here, the kernel will run on uni- and multiprocessor 4038c2ecf20Sopenharmony_ci machines, but will use only one CPU of a multiprocessor machine. If 4048c2ecf20Sopenharmony_ci you say Y here, the kernel will run on many, but not all, 4058c2ecf20Sopenharmony_ci uniprocessor machines. On a uniprocessor machine, the kernel 4068c2ecf20Sopenharmony_ci will run faster if you say N here. 4078c2ecf20Sopenharmony_ci 4088c2ecf20Sopenharmony_ci Note that if you say Y here and choose architecture "586" or 4098c2ecf20Sopenharmony_ci "Pentium" under "Processor family", the kernel will not work on 486 4108c2ecf20Sopenharmony_ci architectures. Similarly, multiprocessor kernels for the "PPro" 4118c2ecf20Sopenharmony_ci architecture may not work on all Pentium based boards. 4128c2ecf20Sopenharmony_ci 4138c2ecf20Sopenharmony_ci People using multiprocessor machines who say Y here should also say 4148c2ecf20Sopenharmony_ci Y to "Enhanced Real Time Clock Support", below. The "Advanced Power 4158c2ecf20Sopenharmony_ci Management" code will be disabled if you say Y here. 4168c2ecf20Sopenharmony_ci 4178c2ecf20Sopenharmony_ci See also <file:Documentation/x86/i386/IO-APIC.rst>, 4188c2ecf20Sopenharmony_ci <file:Documentation/admin-guide/lockup-watchdogs.rst> and the SMP-HOWTO available at 4198c2ecf20Sopenharmony_ci <http://www.tldp.org/docs.html#howto>. 4208c2ecf20Sopenharmony_ci 4218c2ecf20Sopenharmony_ci If you don't know what to do here, say N. 4228c2ecf20Sopenharmony_ci 4238c2ecf20Sopenharmony_ciconfig X86_FEATURE_NAMES 4248c2ecf20Sopenharmony_ci bool "Processor feature human-readable names" if EMBEDDED 4258c2ecf20Sopenharmony_ci default y 4268c2ecf20Sopenharmony_ci help 4278c2ecf20Sopenharmony_ci This option compiles in a table of x86 feature bits and corresponding 4288c2ecf20Sopenharmony_ci names. This is required to support /proc/cpuinfo and a few kernel 4298c2ecf20Sopenharmony_ci messages. You can disable this to save space, at the expense of 4308c2ecf20Sopenharmony_ci making those few kernel messages show numeric feature bits instead. 4318c2ecf20Sopenharmony_ci 4328c2ecf20Sopenharmony_ci If in doubt, say Y. 4338c2ecf20Sopenharmony_ci 4348c2ecf20Sopenharmony_ciconfig X86_X2APIC 4358c2ecf20Sopenharmony_ci bool "Support x2apic" 4368c2ecf20Sopenharmony_ci depends on X86_LOCAL_APIC && X86_64 && (IRQ_REMAP || HYPERVISOR_GUEST) 4378c2ecf20Sopenharmony_ci help 4388c2ecf20Sopenharmony_ci This enables x2apic support on CPUs that have this feature. 4398c2ecf20Sopenharmony_ci 4408c2ecf20Sopenharmony_ci This allows 32-bit apic IDs (so it can support very large systems), 4418c2ecf20Sopenharmony_ci and accesses the local apic via MSRs not via mmio. 4428c2ecf20Sopenharmony_ci 4438c2ecf20Sopenharmony_ci If you don't know what to do here, say N. 4448c2ecf20Sopenharmony_ci 4458c2ecf20Sopenharmony_ciconfig X86_MPPARSE 4468c2ecf20Sopenharmony_ci bool "Enable MPS table" if ACPI || SFI 4478c2ecf20Sopenharmony_ci default y 4488c2ecf20Sopenharmony_ci depends on X86_LOCAL_APIC 4498c2ecf20Sopenharmony_ci help 4508c2ecf20Sopenharmony_ci For old smp systems that do not have proper acpi support. Newer systems 4518c2ecf20Sopenharmony_ci (esp with 64bit cpus) with acpi support, MADT and DSDT will override it 4528c2ecf20Sopenharmony_ci 4538c2ecf20Sopenharmony_ciconfig GOLDFISH 4548c2ecf20Sopenharmony_ci def_bool y 4558c2ecf20Sopenharmony_ci depends on X86_GOLDFISH 4568c2ecf20Sopenharmony_ci 4578c2ecf20Sopenharmony_ciconfig X86_CPU_RESCTRL 4588c2ecf20Sopenharmony_ci bool "x86 CPU resource control support" 4598c2ecf20Sopenharmony_ci depends on X86 && (CPU_SUP_INTEL || CPU_SUP_AMD) 4608c2ecf20Sopenharmony_ci select KERNFS 4618c2ecf20Sopenharmony_ci select PROC_CPU_RESCTRL if PROC_FS 4628c2ecf20Sopenharmony_ci help 4638c2ecf20Sopenharmony_ci Enable x86 CPU resource control support. 4648c2ecf20Sopenharmony_ci 4658c2ecf20Sopenharmony_ci Provide support for the allocation and monitoring of system resources 4668c2ecf20Sopenharmony_ci usage by the CPU. 4678c2ecf20Sopenharmony_ci 4688c2ecf20Sopenharmony_ci Intel calls this Intel Resource Director Technology 4698c2ecf20Sopenharmony_ci (Intel(R) RDT). More information about RDT can be found in the 4708c2ecf20Sopenharmony_ci Intel x86 Architecture Software Developer Manual. 4718c2ecf20Sopenharmony_ci 4728c2ecf20Sopenharmony_ci AMD calls this AMD Platform Quality of Service (AMD QoS). 4738c2ecf20Sopenharmony_ci More information about AMD QoS can be found in the AMD64 Technology 4748c2ecf20Sopenharmony_ci Platform Quality of Service Extensions manual. 4758c2ecf20Sopenharmony_ci 4768c2ecf20Sopenharmony_ci Say N if unsure. 4778c2ecf20Sopenharmony_ci 4788c2ecf20Sopenharmony_ciif X86_32 4798c2ecf20Sopenharmony_ciconfig X86_BIGSMP 4808c2ecf20Sopenharmony_ci bool "Support for big SMP systems with more than 8 CPUs" 4818c2ecf20Sopenharmony_ci depends on SMP 4828c2ecf20Sopenharmony_ci help 4838c2ecf20Sopenharmony_ci This option is needed for the systems that have more than 8 CPUs. 4848c2ecf20Sopenharmony_ci 4858c2ecf20Sopenharmony_ciconfig X86_EXTENDED_PLATFORM 4868c2ecf20Sopenharmony_ci bool "Support for extended (non-PC) x86 platforms" 4878c2ecf20Sopenharmony_ci default y 4888c2ecf20Sopenharmony_ci help 4898c2ecf20Sopenharmony_ci If you disable this option then the kernel will only support 4908c2ecf20Sopenharmony_ci standard PC platforms. (which covers the vast majority of 4918c2ecf20Sopenharmony_ci systems out there.) 4928c2ecf20Sopenharmony_ci 4938c2ecf20Sopenharmony_ci If you enable this option then you'll be able to select support 4948c2ecf20Sopenharmony_ci for the following (non-PC) 32 bit x86 platforms: 4958c2ecf20Sopenharmony_ci Goldfish (Android emulator) 4968c2ecf20Sopenharmony_ci AMD Elan 4978c2ecf20Sopenharmony_ci RDC R-321x SoC 4988c2ecf20Sopenharmony_ci SGI 320/540 (Visual Workstation) 4998c2ecf20Sopenharmony_ci STA2X11-based (e.g. Northville) 5008c2ecf20Sopenharmony_ci Moorestown MID devices 5018c2ecf20Sopenharmony_ci 5028c2ecf20Sopenharmony_ci If you have one of these systems, or if you want to build a 5038c2ecf20Sopenharmony_ci generic distribution kernel, say Y here - otherwise say N. 5048c2ecf20Sopenharmony_ciendif 5058c2ecf20Sopenharmony_ci 5068c2ecf20Sopenharmony_ciif X86_64 5078c2ecf20Sopenharmony_ciconfig X86_EXTENDED_PLATFORM 5088c2ecf20Sopenharmony_ci bool "Support for extended (non-PC) x86 platforms" 5098c2ecf20Sopenharmony_ci default y 5108c2ecf20Sopenharmony_ci help 5118c2ecf20Sopenharmony_ci If you disable this option then the kernel will only support 5128c2ecf20Sopenharmony_ci standard PC platforms. (which covers the vast majority of 5138c2ecf20Sopenharmony_ci systems out there.) 5148c2ecf20Sopenharmony_ci 5158c2ecf20Sopenharmony_ci If you enable this option then you'll be able to select support 5168c2ecf20Sopenharmony_ci for the following (non-PC) 64 bit x86 platforms: 5178c2ecf20Sopenharmony_ci Numascale NumaChip 5188c2ecf20Sopenharmony_ci ScaleMP vSMP 5198c2ecf20Sopenharmony_ci SGI Ultraviolet 5208c2ecf20Sopenharmony_ci 5218c2ecf20Sopenharmony_ci If you have one of these systems, or if you want to build a 5228c2ecf20Sopenharmony_ci generic distribution kernel, say Y here - otherwise say N. 5238c2ecf20Sopenharmony_ciendif 5248c2ecf20Sopenharmony_ci# This is an alphabetically sorted list of 64 bit extended platforms 5258c2ecf20Sopenharmony_ci# Please maintain the alphabetic order if and when there are additions 5268c2ecf20Sopenharmony_ciconfig X86_NUMACHIP 5278c2ecf20Sopenharmony_ci bool "Numascale NumaChip" 5288c2ecf20Sopenharmony_ci depends on X86_64 5298c2ecf20Sopenharmony_ci depends on X86_EXTENDED_PLATFORM 5308c2ecf20Sopenharmony_ci depends on NUMA 5318c2ecf20Sopenharmony_ci depends on SMP 5328c2ecf20Sopenharmony_ci depends on X86_X2APIC 5338c2ecf20Sopenharmony_ci depends on PCI_MMCONFIG 5348c2ecf20Sopenharmony_ci help 5358c2ecf20Sopenharmony_ci Adds support for Numascale NumaChip large-SMP systems. Needed to 5368c2ecf20Sopenharmony_ci enable more than ~168 cores. 5378c2ecf20Sopenharmony_ci If you don't have one of these, you should say N here. 5388c2ecf20Sopenharmony_ci 5398c2ecf20Sopenharmony_ciconfig X86_VSMP 5408c2ecf20Sopenharmony_ci bool "ScaleMP vSMP" 5418c2ecf20Sopenharmony_ci select HYPERVISOR_GUEST 5428c2ecf20Sopenharmony_ci select PARAVIRT 5438c2ecf20Sopenharmony_ci depends on X86_64 && PCI 5448c2ecf20Sopenharmony_ci depends on X86_EXTENDED_PLATFORM 5458c2ecf20Sopenharmony_ci depends on SMP 5468c2ecf20Sopenharmony_ci help 5478c2ecf20Sopenharmony_ci Support for ScaleMP vSMP systems. Say 'Y' here if this kernel is 5488c2ecf20Sopenharmony_ci supposed to run on these EM64T-based machines. Only choose this option 5498c2ecf20Sopenharmony_ci if you have one of these machines. 5508c2ecf20Sopenharmony_ci 5518c2ecf20Sopenharmony_ciconfig X86_UV 5528c2ecf20Sopenharmony_ci bool "SGI Ultraviolet" 5538c2ecf20Sopenharmony_ci depends on X86_64 5548c2ecf20Sopenharmony_ci depends on X86_EXTENDED_PLATFORM 5558c2ecf20Sopenharmony_ci depends on NUMA 5568c2ecf20Sopenharmony_ci depends on EFI 5578c2ecf20Sopenharmony_ci depends on KEXEC_CORE 5588c2ecf20Sopenharmony_ci depends on X86_X2APIC 5598c2ecf20Sopenharmony_ci depends on PCI 5608c2ecf20Sopenharmony_ci help 5618c2ecf20Sopenharmony_ci This option is needed in order to support SGI Ultraviolet systems. 5628c2ecf20Sopenharmony_ci If you don't have one of these, you should say N here. 5638c2ecf20Sopenharmony_ci 5648c2ecf20Sopenharmony_ci# Following is an alphabetically sorted list of 32 bit extended platforms 5658c2ecf20Sopenharmony_ci# Please maintain the alphabetic order if and when there are additions 5668c2ecf20Sopenharmony_ci 5678c2ecf20Sopenharmony_ciconfig X86_GOLDFISH 5688c2ecf20Sopenharmony_ci bool "Goldfish (Virtual Platform)" 5698c2ecf20Sopenharmony_ci depends on X86_EXTENDED_PLATFORM 5708c2ecf20Sopenharmony_ci help 5718c2ecf20Sopenharmony_ci Enable support for the Goldfish virtual platform used primarily 5728c2ecf20Sopenharmony_ci for Android development. Unless you are building for the Android 5738c2ecf20Sopenharmony_ci Goldfish emulator say N here. 5748c2ecf20Sopenharmony_ci 5758c2ecf20Sopenharmony_ciconfig X86_INTEL_CE 5768c2ecf20Sopenharmony_ci bool "CE4100 TV platform" 5778c2ecf20Sopenharmony_ci depends on PCI 5788c2ecf20Sopenharmony_ci depends on PCI_GODIRECT 5798c2ecf20Sopenharmony_ci depends on X86_IO_APIC 5808c2ecf20Sopenharmony_ci depends on X86_32 5818c2ecf20Sopenharmony_ci depends on X86_EXTENDED_PLATFORM 5828c2ecf20Sopenharmony_ci select X86_REBOOTFIXUPS 5838c2ecf20Sopenharmony_ci select OF 5848c2ecf20Sopenharmony_ci select OF_EARLY_FLATTREE 5858c2ecf20Sopenharmony_ci help 5868c2ecf20Sopenharmony_ci Select for the Intel CE media processor (CE4100) SOC. 5878c2ecf20Sopenharmony_ci This option compiles in support for the CE4100 SOC for settop 5888c2ecf20Sopenharmony_ci boxes and media devices. 5898c2ecf20Sopenharmony_ci 5908c2ecf20Sopenharmony_ciconfig X86_INTEL_MID 5918c2ecf20Sopenharmony_ci bool "Intel MID platform support" 5928c2ecf20Sopenharmony_ci depends on X86_EXTENDED_PLATFORM 5938c2ecf20Sopenharmony_ci depends on X86_PLATFORM_DEVICES 5948c2ecf20Sopenharmony_ci depends on PCI 5958c2ecf20Sopenharmony_ci depends on X86_64 || (PCI_GOANY && X86_32) 5968c2ecf20Sopenharmony_ci depends on X86_IO_APIC 5978c2ecf20Sopenharmony_ci select SFI 5988c2ecf20Sopenharmony_ci select I2C 5998c2ecf20Sopenharmony_ci select DW_APB_TIMER 6008c2ecf20Sopenharmony_ci select APB_TIMER 6018c2ecf20Sopenharmony_ci select INTEL_SCU_PCI 6028c2ecf20Sopenharmony_ci select MFD_INTEL_MSIC 6038c2ecf20Sopenharmony_ci help 6048c2ecf20Sopenharmony_ci Select to build a kernel capable of supporting Intel MID (Mobile 6058c2ecf20Sopenharmony_ci Internet Device) platform systems which do not have the PCI legacy 6068c2ecf20Sopenharmony_ci interfaces. If you are building for a PC class system say N here. 6078c2ecf20Sopenharmony_ci 6088c2ecf20Sopenharmony_ci Intel MID platforms are based on an Intel processor and chipset which 6098c2ecf20Sopenharmony_ci consume less power than most of the x86 derivatives. 6108c2ecf20Sopenharmony_ci 6118c2ecf20Sopenharmony_ciconfig X86_INTEL_QUARK 6128c2ecf20Sopenharmony_ci bool "Intel Quark platform support" 6138c2ecf20Sopenharmony_ci depends on X86_32 6148c2ecf20Sopenharmony_ci depends on X86_EXTENDED_PLATFORM 6158c2ecf20Sopenharmony_ci depends on X86_PLATFORM_DEVICES 6168c2ecf20Sopenharmony_ci depends on X86_TSC 6178c2ecf20Sopenharmony_ci depends on PCI 6188c2ecf20Sopenharmony_ci depends on PCI_GOANY 6198c2ecf20Sopenharmony_ci depends on X86_IO_APIC 6208c2ecf20Sopenharmony_ci select IOSF_MBI 6218c2ecf20Sopenharmony_ci select INTEL_IMR 6228c2ecf20Sopenharmony_ci select COMMON_CLK 6238c2ecf20Sopenharmony_ci help 6248c2ecf20Sopenharmony_ci Select to include support for Quark X1000 SoC. 6258c2ecf20Sopenharmony_ci Say Y here if you have a Quark based system such as the Arduino 6268c2ecf20Sopenharmony_ci compatible Intel Galileo. 6278c2ecf20Sopenharmony_ci 6288c2ecf20Sopenharmony_ciconfig X86_INTEL_LPSS 6298c2ecf20Sopenharmony_ci bool "Intel Low Power Subsystem Support" 6308c2ecf20Sopenharmony_ci depends on X86 && ACPI && PCI 6318c2ecf20Sopenharmony_ci select COMMON_CLK 6328c2ecf20Sopenharmony_ci select PINCTRL 6338c2ecf20Sopenharmony_ci select IOSF_MBI 6348c2ecf20Sopenharmony_ci help 6358c2ecf20Sopenharmony_ci Select to build support for Intel Low Power Subsystem such as 6368c2ecf20Sopenharmony_ci found on Intel Lynxpoint PCH. Selecting this option enables 6378c2ecf20Sopenharmony_ci things like clock tree (common clock framework) and pincontrol 6388c2ecf20Sopenharmony_ci which are needed by the LPSS peripheral drivers. 6398c2ecf20Sopenharmony_ci 6408c2ecf20Sopenharmony_ciconfig X86_AMD_PLATFORM_DEVICE 6418c2ecf20Sopenharmony_ci bool "AMD ACPI2Platform devices support" 6428c2ecf20Sopenharmony_ci depends on ACPI 6438c2ecf20Sopenharmony_ci select COMMON_CLK 6448c2ecf20Sopenharmony_ci select PINCTRL 6458c2ecf20Sopenharmony_ci help 6468c2ecf20Sopenharmony_ci Select to interpret AMD specific ACPI device to platform device 6478c2ecf20Sopenharmony_ci such as I2C, UART, GPIO found on AMD Carrizo and later chipsets. 6488c2ecf20Sopenharmony_ci I2C and UART depend on COMMON_CLK to set clock. GPIO driver is 6498c2ecf20Sopenharmony_ci implemented under PINCTRL subsystem. 6508c2ecf20Sopenharmony_ci 6518c2ecf20Sopenharmony_ciconfig IOSF_MBI 6528c2ecf20Sopenharmony_ci tristate "Intel SoC IOSF Sideband support for SoC platforms" 6538c2ecf20Sopenharmony_ci depends on PCI 6548c2ecf20Sopenharmony_ci help 6558c2ecf20Sopenharmony_ci This option enables sideband register access support for Intel SoC 6568c2ecf20Sopenharmony_ci platforms. On these platforms the IOSF sideband is used in lieu of 6578c2ecf20Sopenharmony_ci MSR's for some register accesses, mostly but not limited to thermal 6588c2ecf20Sopenharmony_ci and power. Drivers may query the availability of this device to 6598c2ecf20Sopenharmony_ci determine if they need the sideband in order to work on these 6608c2ecf20Sopenharmony_ci platforms. The sideband is available on the following SoC products. 6618c2ecf20Sopenharmony_ci This list is not meant to be exclusive. 6628c2ecf20Sopenharmony_ci - BayTrail 6638c2ecf20Sopenharmony_ci - Braswell 6648c2ecf20Sopenharmony_ci - Quark 6658c2ecf20Sopenharmony_ci 6668c2ecf20Sopenharmony_ci You should say Y if you are running a kernel on one of these SoC's. 6678c2ecf20Sopenharmony_ci 6688c2ecf20Sopenharmony_ciconfig IOSF_MBI_DEBUG 6698c2ecf20Sopenharmony_ci bool "Enable IOSF sideband access through debugfs" 6708c2ecf20Sopenharmony_ci depends on IOSF_MBI && DEBUG_FS 6718c2ecf20Sopenharmony_ci help 6728c2ecf20Sopenharmony_ci Select this option to expose the IOSF sideband access registers (MCR, 6738c2ecf20Sopenharmony_ci MDR, MCRX) through debugfs to write and read register information from 6748c2ecf20Sopenharmony_ci different units on the SoC. This is most useful for obtaining device 6758c2ecf20Sopenharmony_ci state information for debug and analysis. As this is a general access 6768c2ecf20Sopenharmony_ci mechanism, users of this option would have specific knowledge of the 6778c2ecf20Sopenharmony_ci device they want to access. 6788c2ecf20Sopenharmony_ci 6798c2ecf20Sopenharmony_ci If you don't require the option or are in doubt, say N. 6808c2ecf20Sopenharmony_ci 6818c2ecf20Sopenharmony_ciconfig X86_RDC321X 6828c2ecf20Sopenharmony_ci bool "RDC R-321x SoC" 6838c2ecf20Sopenharmony_ci depends on X86_32 6848c2ecf20Sopenharmony_ci depends on X86_EXTENDED_PLATFORM 6858c2ecf20Sopenharmony_ci select M486 6868c2ecf20Sopenharmony_ci select X86_REBOOTFIXUPS 6878c2ecf20Sopenharmony_ci help 6888c2ecf20Sopenharmony_ci This option is needed for RDC R-321x system-on-chip, also known 6898c2ecf20Sopenharmony_ci as R-8610-(G). 6908c2ecf20Sopenharmony_ci If you don't have one of these chips, you should say N here. 6918c2ecf20Sopenharmony_ci 6928c2ecf20Sopenharmony_ciconfig X86_32_NON_STANDARD 6938c2ecf20Sopenharmony_ci bool "Support non-standard 32-bit SMP architectures" 6948c2ecf20Sopenharmony_ci depends on X86_32 && SMP 6958c2ecf20Sopenharmony_ci depends on X86_EXTENDED_PLATFORM 6968c2ecf20Sopenharmony_ci help 6978c2ecf20Sopenharmony_ci This option compiles in the bigsmp and STA2X11 default 6988c2ecf20Sopenharmony_ci subarchitectures. It is intended for a generic binary 6998c2ecf20Sopenharmony_ci kernel. If you select them all, kernel will probe it one by 7008c2ecf20Sopenharmony_ci one and will fallback to default. 7018c2ecf20Sopenharmony_ci 7028c2ecf20Sopenharmony_ci# Alphabetically sorted list of Non standard 32 bit platforms 7038c2ecf20Sopenharmony_ci 7048c2ecf20Sopenharmony_ciconfig X86_SUPPORTS_MEMORY_FAILURE 7058c2ecf20Sopenharmony_ci def_bool y 7068c2ecf20Sopenharmony_ci # MCE code calls memory_failure(): 7078c2ecf20Sopenharmony_ci depends on X86_MCE 7088c2ecf20Sopenharmony_ci # On 32-bit this adds too big of NODES_SHIFT and we run out of page flags: 7098c2ecf20Sopenharmony_ci # On 32-bit SPARSEMEM adds too big of SECTIONS_WIDTH: 7108c2ecf20Sopenharmony_ci depends on X86_64 || !SPARSEMEM 7118c2ecf20Sopenharmony_ci select ARCH_SUPPORTS_MEMORY_FAILURE 7128c2ecf20Sopenharmony_ci 7138c2ecf20Sopenharmony_ciconfig STA2X11 7148c2ecf20Sopenharmony_ci bool "STA2X11 Companion Chip Support" 7158c2ecf20Sopenharmony_ci depends on X86_32_NON_STANDARD && PCI 7168c2ecf20Sopenharmony_ci select SWIOTLB 7178c2ecf20Sopenharmony_ci select MFD_STA2X11 7188c2ecf20Sopenharmony_ci select GPIOLIB 7198c2ecf20Sopenharmony_ci help 7208c2ecf20Sopenharmony_ci This adds support for boards based on the STA2X11 IO-Hub, 7218c2ecf20Sopenharmony_ci a.k.a. "ConneXt". The chip is used in place of the standard 7228c2ecf20Sopenharmony_ci PC chipset, so all "standard" peripherals are missing. If this 7238c2ecf20Sopenharmony_ci option is selected the kernel will still be able to boot on 7248c2ecf20Sopenharmony_ci standard PC machines. 7258c2ecf20Sopenharmony_ci 7268c2ecf20Sopenharmony_ciconfig X86_32_IRIS 7278c2ecf20Sopenharmony_ci tristate "Eurobraille/Iris poweroff module" 7288c2ecf20Sopenharmony_ci depends on X86_32 7298c2ecf20Sopenharmony_ci help 7308c2ecf20Sopenharmony_ci The Iris machines from EuroBraille do not have APM or ACPI support 7318c2ecf20Sopenharmony_ci to shut themselves down properly. A special I/O sequence is 7328c2ecf20Sopenharmony_ci needed to do so, which is what this module does at 7338c2ecf20Sopenharmony_ci kernel shutdown. 7348c2ecf20Sopenharmony_ci 7358c2ecf20Sopenharmony_ci This is only for Iris machines from EuroBraille. 7368c2ecf20Sopenharmony_ci 7378c2ecf20Sopenharmony_ci If unused, say N. 7388c2ecf20Sopenharmony_ci 7398c2ecf20Sopenharmony_ciconfig SCHED_OMIT_FRAME_POINTER 7408c2ecf20Sopenharmony_ci def_bool y 7418c2ecf20Sopenharmony_ci prompt "Single-depth WCHAN output" 7428c2ecf20Sopenharmony_ci depends on X86 7438c2ecf20Sopenharmony_ci help 7448c2ecf20Sopenharmony_ci Calculate simpler /proc/<PID>/wchan values. If this option 7458c2ecf20Sopenharmony_ci is disabled then wchan values will recurse back to the 7468c2ecf20Sopenharmony_ci caller function. This provides more accurate wchan values, 7478c2ecf20Sopenharmony_ci at the expense of slightly more scheduling overhead. 7488c2ecf20Sopenharmony_ci 7498c2ecf20Sopenharmony_ci If in doubt, say "Y". 7508c2ecf20Sopenharmony_ci 7518c2ecf20Sopenharmony_cimenuconfig HYPERVISOR_GUEST 7528c2ecf20Sopenharmony_ci bool "Linux guest support" 7538c2ecf20Sopenharmony_ci help 7548c2ecf20Sopenharmony_ci Say Y here to enable options for running Linux under various hyper- 7558c2ecf20Sopenharmony_ci visors. This option enables basic hypervisor detection and platform 7568c2ecf20Sopenharmony_ci setup. 7578c2ecf20Sopenharmony_ci 7588c2ecf20Sopenharmony_ci If you say N, all options in this submenu will be skipped and 7598c2ecf20Sopenharmony_ci disabled, and Linux guest support won't be built in. 7608c2ecf20Sopenharmony_ci 7618c2ecf20Sopenharmony_ciif HYPERVISOR_GUEST 7628c2ecf20Sopenharmony_ci 7638c2ecf20Sopenharmony_ciconfig PARAVIRT 7648c2ecf20Sopenharmony_ci bool "Enable paravirtualization code" 7658c2ecf20Sopenharmony_ci help 7668c2ecf20Sopenharmony_ci This changes the kernel so it can modify itself when it is run 7678c2ecf20Sopenharmony_ci under a hypervisor, potentially improving performance significantly 7688c2ecf20Sopenharmony_ci over full virtualization. However, when run without a hypervisor 7698c2ecf20Sopenharmony_ci the kernel is theoretically slower and slightly larger. 7708c2ecf20Sopenharmony_ci 7718c2ecf20Sopenharmony_ciconfig PARAVIRT_XXL 7728c2ecf20Sopenharmony_ci bool 7738c2ecf20Sopenharmony_ci 7748c2ecf20Sopenharmony_ciconfig PARAVIRT_DEBUG 7758c2ecf20Sopenharmony_ci bool "paravirt-ops debugging" 7768c2ecf20Sopenharmony_ci depends on PARAVIRT && DEBUG_KERNEL 7778c2ecf20Sopenharmony_ci help 7788c2ecf20Sopenharmony_ci Enable to debug paravirt_ops internals. Specifically, BUG if 7798c2ecf20Sopenharmony_ci a paravirt_op is missing when it is called. 7808c2ecf20Sopenharmony_ci 7818c2ecf20Sopenharmony_ciconfig PARAVIRT_SPINLOCKS 7828c2ecf20Sopenharmony_ci bool "Paravirtualization layer for spinlocks" 7838c2ecf20Sopenharmony_ci depends on PARAVIRT && SMP 7848c2ecf20Sopenharmony_ci help 7858c2ecf20Sopenharmony_ci Paravirtualized spinlocks allow a pvops backend to replace the 7868c2ecf20Sopenharmony_ci spinlock implementation with something virtualization-friendly 7878c2ecf20Sopenharmony_ci (for example, block the virtual CPU rather than spinning). 7888c2ecf20Sopenharmony_ci 7898c2ecf20Sopenharmony_ci It has a minimal impact on native kernels and gives a nice performance 7908c2ecf20Sopenharmony_ci benefit on paravirtualized KVM / Xen kernels. 7918c2ecf20Sopenharmony_ci 7928c2ecf20Sopenharmony_ci If you are unsure how to answer this question, answer Y. 7938c2ecf20Sopenharmony_ci 7948c2ecf20Sopenharmony_ciconfig X86_HV_CALLBACK_VECTOR 7958c2ecf20Sopenharmony_ci def_bool n 7968c2ecf20Sopenharmony_ci 7978c2ecf20Sopenharmony_cisource "arch/x86/xen/Kconfig" 7988c2ecf20Sopenharmony_ci 7998c2ecf20Sopenharmony_ciconfig KVM_GUEST 8008c2ecf20Sopenharmony_ci bool "KVM Guest support (including kvmclock)" 8018c2ecf20Sopenharmony_ci depends on PARAVIRT 8028c2ecf20Sopenharmony_ci select PARAVIRT_CLOCK 8038c2ecf20Sopenharmony_ci select ARCH_CPUIDLE_HALTPOLL 8048c2ecf20Sopenharmony_ci select X86_HV_CALLBACK_VECTOR 8058c2ecf20Sopenharmony_ci default y 8068c2ecf20Sopenharmony_ci help 8078c2ecf20Sopenharmony_ci This option enables various optimizations for running under the KVM 8088c2ecf20Sopenharmony_ci hypervisor. It includes a paravirtualized clock, so that instead 8098c2ecf20Sopenharmony_ci of relying on a PIT (or probably other) emulation by the 8108c2ecf20Sopenharmony_ci underlying device model, the host provides the guest with 8118c2ecf20Sopenharmony_ci timing infrastructure such as time of day, and system time 8128c2ecf20Sopenharmony_ci 8138c2ecf20Sopenharmony_ciconfig ARCH_CPUIDLE_HALTPOLL 8148c2ecf20Sopenharmony_ci def_bool n 8158c2ecf20Sopenharmony_ci prompt "Disable host haltpoll when loading haltpoll driver" 8168c2ecf20Sopenharmony_ci help 8178c2ecf20Sopenharmony_ci If virtualized under KVM, disable host haltpoll. 8188c2ecf20Sopenharmony_ci 8198c2ecf20Sopenharmony_ciconfig PVH 8208c2ecf20Sopenharmony_ci bool "Support for running PVH guests" 8218c2ecf20Sopenharmony_ci help 8228c2ecf20Sopenharmony_ci This option enables the PVH entry point for guest virtual machines 8238c2ecf20Sopenharmony_ci as specified in the x86/HVM direct boot ABI. 8248c2ecf20Sopenharmony_ci 8258c2ecf20Sopenharmony_ciconfig PARAVIRT_TIME_ACCOUNTING 8268c2ecf20Sopenharmony_ci bool "Paravirtual steal time accounting" 8278c2ecf20Sopenharmony_ci depends on PARAVIRT 8288c2ecf20Sopenharmony_ci help 8298c2ecf20Sopenharmony_ci Select this option to enable fine granularity task steal time 8308c2ecf20Sopenharmony_ci accounting. Time spent executing other tasks in parallel with 8318c2ecf20Sopenharmony_ci the current vCPU is discounted from the vCPU power. To account for 8328c2ecf20Sopenharmony_ci that, there can be a small performance impact. 8338c2ecf20Sopenharmony_ci 8348c2ecf20Sopenharmony_ci If in doubt, say N here. 8358c2ecf20Sopenharmony_ci 8368c2ecf20Sopenharmony_ciconfig PARAVIRT_CLOCK 8378c2ecf20Sopenharmony_ci bool 8388c2ecf20Sopenharmony_ci 8398c2ecf20Sopenharmony_ciconfig JAILHOUSE_GUEST 8408c2ecf20Sopenharmony_ci bool "Jailhouse non-root cell support" 8418c2ecf20Sopenharmony_ci depends on X86_64 && PCI 8428c2ecf20Sopenharmony_ci select X86_PM_TIMER 8438c2ecf20Sopenharmony_ci help 8448c2ecf20Sopenharmony_ci This option allows to run Linux as guest in a Jailhouse non-root 8458c2ecf20Sopenharmony_ci cell. You can leave this option disabled if you only want to start 8468c2ecf20Sopenharmony_ci Jailhouse and run Linux afterwards in the root cell. 8478c2ecf20Sopenharmony_ci 8488c2ecf20Sopenharmony_ciconfig ACRN_GUEST 8498c2ecf20Sopenharmony_ci bool "ACRN Guest support" 8508c2ecf20Sopenharmony_ci depends on X86_64 8518c2ecf20Sopenharmony_ci select X86_HV_CALLBACK_VECTOR 8528c2ecf20Sopenharmony_ci help 8538c2ecf20Sopenharmony_ci This option allows to run Linux as guest in the ACRN hypervisor. ACRN is 8548c2ecf20Sopenharmony_ci a flexible, lightweight reference open-source hypervisor, built with 8558c2ecf20Sopenharmony_ci real-time and safety-criticality in mind. It is built for embedded 8568c2ecf20Sopenharmony_ci IOT with small footprint and real-time features. More details can be 8578c2ecf20Sopenharmony_ci found in https://projectacrn.org/. 8588c2ecf20Sopenharmony_ci 8598c2ecf20Sopenharmony_ciendif #HYPERVISOR_GUEST 8608c2ecf20Sopenharmony_ci 8618c2ecf20Sopenharmony_cisource "arch/x86/Kconfig.cpu" 8628c2ecf20Sopenharmony_ci 8638c2ecf20Sopenharmony_ciconfig HPET_TIMER 8648c2ecf20Sopenharmony_ci def_bool X86_64 8658c2ecf20Sopenharmony_ci prompt "HPET Timer Support" if X86_32 8668c2ecf20Sopenharmony_ci help 8678c2ecf20Sopenharmony_ci Use the IA-PC HPET (High Precision Event Timer) to manage 8688c2ecf20Sopenharmony_ci time in preference to the PIT and RTC, if a HPET is 8698c2ecf20Sopenharmony_ci present. 8708c2ecf20Sopenharmony_ci HPET is the next generation timer replacing legacy 8254s. 8718c2ecf20Sopenharmony_ci The HPET provides a stable time base on SMP 8728c2ecf20Sopenharmony_ci systems, unlike the TSC, but it is more expensive to access, 8738c2ecf20Sopenharmony_ci as it is off-chip. The interface used is documented 8748c2ecf20Sopenharmony_ci in the HPET spec, revision 1. 8758c2ecf20Sopenharmony_ci 8768c2ecf20Sopenharmony_ci You can safely choose Y here. However, HPET will only be 8778c2ecf20Sopenharmony_ci activated if the platform and the BIOS support this feature. 8788c2ecf20Sopenharmony_ci Otherwise the 8254 will be used for timing services. 8798c2ecf20Sopenharmony_ci 8808c2ecf20Sopenharmony_ci Choose N to continue using the legacy 8254 timer. 8818c2ecf20Sopenharmony_ci 8828c2ecf20Sopenharmony_ciconfig HPET_EMULATE_RTC 8838c2ecf20Sopenharmony_ci def_bool y 8848c2ecf20Sopenharmony_ci depends on HPET_TIMER && (RTC=y || RTC=m || RTC_DRV_CMOS=m || RTC_DRV_CMOS=y) 8858c2ecf20Sopenharmony_ci 8868c2ecf20Sopenharmony_ciconfig APB_TIMER 8878c2ecf20Sopenharmony_ci def_bool y if X86_INTEL_MID 8888c2ecf20Sopenharmony_ci prompt "Intel MID APB Timer Support" if X86_INTEL_MID 8898c2ecf20Sopenharmony_ci select DW_APB_TIMER 8908c2ecf20Sopenharmony_ci depends on X86_INTEL_MID && SFI 8918c2ecf20Sopenharmony_ci help 8928c2ecf20Sopenharmony_ci APB timer is the replacement for 8254, HPET on X86 MID platforms. 8938c2ecf20Sopenharmony_ci The APBT provides a stable time base on SMP 8948c2ecf20Sopenharmony_ci systems, unlike the TSC, but it is more expensive to access, 8958c2ecf20Sopenharmony_ci as it is off-chip. APB timers are always running regardless of CPU 8968c2ecf20Sopenharmony_ci C states, they are used as per CPU clockevent device when possible. 8978c2ecf20Sopenharmony_ci 8988c2ecf20Sopenharmony_ci# Mark as expert because too many people got it wrong. 8998c2ecf20Sopenharmony_ci# The code disables itself when not needed. 9008c2ecf20Sopenharmony_ciconfig DMI 9018c2ecf20Sopenharmony_ci default y 9028c2ecf20Sopenharmony_ci select DMI_SCAN_MACHINE_NON_EFI_FALLBACK 9038c2ecf20Sopenharmony_ci bool "Enable DMI scanning" if EXPERT 9048c2ecf20Sopenharmony_ci help 9058c2ecf20Sopenharmony_ci Enabled scanning of DMI to identify machine quirks. Say Y 9068c2ecf20Sopenharmony_ci here unless you have verified that your setup is not 9078c2ecf20Sopenharmony_ci affected by entries in the DMI blacklist. Required by PNP 9088c2ecf20Sopenharmony_ci BIOS code. 9098c2ecf20Sopenharmony_ci 9108c2ecf20Sopenharmony_ciconfig GART_IOMMU 9118c2ecf20Sopenharmony_ci bool "Old AMD GART IOMMU support" 9128c2ecf20Sopenharmony_ci select DMA_OPS 9138c2ecf20Sopenharmony_ci select IOMMU_HELPER 9148c2ecf20Sopenharmony_ci select SWIOTLB 9158c2ecf20Sopenharmony_ci depends on X86_64 && PCI && AMD_NB 9168c2ecf20Sopenharmony_ci help 9178c2ecf20Sopenharmony_ci Provides a driver for older AMD Athlon64/Opteron/Turion/Sempron 9188c2ecf20Sopenharmony_ci GART based hardware IOMMUs. 9198c2ecf20Sopenharmony_ci 9208c2ecf20Sopenharmony_ci The GART supports full DMA access for devices with 32-bit access 9218c2ecf20Sopenharmony_ci limitations, on systems with more than 3 GB. This is usually needed 9228c2ecf20Sopenharmony_ci for USB, sound, many IDE/SATA chipsets and some other devices. 9238c2ecf20Sopenharmony_ci 9248c2ecf20Sopenharmony_ci Newer systems typically have a modern AMD IOMMU, supported via 9258c2ecf20Sopenharmony_ci the CONFIG_AMD_IOMMU=y config option. 9268c2ecf20Sopenharmony_ci 9278c2ecf20Sopenharmony_ci In normal configurations this driver is only active when needed: 9288c2ecf20Sopenharmony_ci there's more than 3 GB of memory and the system contains a 9298c2ecf20Sopenharmony_ci 32-bit limited device. 9308c2ecf20Sopenharmony_ci 9318c2ecf20Sopenharmony_ci If unsure, say Y. 9328c2ecf20Sopenharmony_ci 9338c2ecf20Sopenharmony_ciconfig MAXSMP 9348c2ecf20Sopenharmony_ci bool "Enable Maximum number of SMP Processors and NUMA Nodes" 9358c2ecf20Sopenharmony_ci depends on X86_64 && SMP && DEBUG_KERNEL 9368c2ecf20Sopenharmony_ci select CPUMASK_OFFSTACK 9378c2ecf20Sopenharmony_ci help 9388c2ecf20Sopenharmony_ci Enable maximum number of CPUS and NUMA Nodes for this architecture. 9398c2ecf20Sopenharmony_ci If unsure, say N. 9408c2ecf20Sopenharmony_ci 9418c2ecf20Sopenharmony_ci# 9428c2ecf20Sopenharmony_ci# The maximum number of CPUs supported: 9438c2ecf20Sopenharmony_ci# 9448c2ecf20Sopenharmony_ci# The main config value is NR_CPUS, which defaults to NR_CPUS_DEFAULT, 9458c2ecf20Sopenharmony_ci# and which can be configured interactively in the 9468c2ecf20Sopenharmony_ci# [NR_CPUS_RANGE_BEGIN ... NR_CPUS_RANGE_END] range. 9478c2ecf20Sopenharmony_ci# 9488c2ecf20Sopenharmony_ci# The ranges are different on 32-bit and 64-bit kernels, depending on 9498c2ecf20Sopenharmony_ci# hardware capabilities and scalability features of the kernel. 9508c2ecf20Sopenharmony_ci# 9518c2ecf20Sopenharmony_ci# ( If MAXSMP is enabled we just use the highest possible value and disable 9528c2ecf20Sopenharmony_ci# interactive configuration. ) 9538c2ecf20Sopenharmony_ci# 9548c2ecf20Sopenharmony_ci 9558c2ecf20Sopenharmony_ciconfig NR_CPUS_RANGE_BEGIN 9568c2ecf20Sopenharmony_ci int 9578c2ecf20Sopenharmony_ci default NR_CPUS_RANGE_END if MAXSMP 9588c2ecf20Sopenharmony_ci default 1 if !SMP 9598c2ecf20Sopenharmony_ci default 2 9608c2ecf20Sopenharmony_ci 9618c2ecf20Sopenharmony_ciconfig NR_CPUS_RANGE_END 9628c2ecf20Sopenharmony_ci int 9638c2ecf20Sopenharmony_ci depends on X86_32 9648c2ecf20Sopenharmony_ci default 64 if SMP && X86_BIGSMP 9658c2ecf20Sopenharmony_ci default 8 if SMP && !X86_BIGSMP 9668c2ecf20Sopenharmony_ci default 1 if !SMP 9678c2ecf20Sopenharmony_ci 9688c2ecf20Sopenharmony_ciconfig NR_CPUS_RANGE_END 9698c2ecf20Sopenharmony_ci int 9708c2ecf20Sopenharmony_ci depends on X86_64 9718c2ecf20Sopenharmony_ci default 8192 if SMP && CPUMASK_OFFSTACK 9728c2ecf20Sopenharmony_ci default 512 if SMP && !CPUMASK_OFFSTACK 9738c2ecf20Sopenharmony_ci default 1 if !SMP 9748c2ecf20Sopenharmony_ci 9758c2ecf20Sopenharmony_ciconfig NR_CPUS_DEFAULT 9768c2ecf20Sopenharmony_ci int 9778c2ecf20Sopenharmony_ci depends on X86_32 9788c2ecf20Sopenharmony_ci default 32 if X86_BIGSMP 9798c2ecf20Sopenharmony_ci default 8 if SMP 9808c2ecf20Sopenharmony_ci default 1 if !SMP 9818c2ecf20Sopenharmony_ci 9828c2ecf20Sopenharmony_ciconfig NR_CPUS_DEFAULT 9838c2ecf20Sopenharmony_ci int 9848c2ecf20Sopenharmony_ci depends on X86_64 9858c2ecf20Sopenharmony_ci default 8192 if MAXSMP 9868c2ecf20Sopenharmony_ci default 64 if SMP 9878c2ecf20Sopenharmony_ci default 1 if !SMP 9888c2ecf20Sopenharmony_ci 9898c2ecf20Sopenharmony_ciconfig NR_CPUS 9908c2ecf20Sopenharmony_ci int "Maximum number of CPUs" if SMP && !MAXSMP 9918c2ecf20Sopenharmony_ci range NR_CPUS_RANGE_BEGIN NR_CPUS_RANGE_END 9928c2ecf20Sopenharmony_ci default NR_CPUS_DEFAULT 9938c2ecf20Sopenharmony_ci help 9948c2ecf20Sopenharmony_ci This allows you to specify the maximum number of CPUs which this 9958c2ecf20Sopenharmony_ci kernel will support. If CPUMASK_OFFSTACK is enabled, the maximum 9968c2ecf20Sopenharmony_ci supported value is 8192, otherwise the maximum value is 512. The 9978c2ecf20Sopenharmony_ci minimum value which makes sense is 2. 9988c2ecf20Sopenharmony_ci 9998c2ecf20Sopenharmony_ci This is purely to save memory: each supported CPU adds about 8KB 10008c2ecf20Sopenharmony_ci to the kernel image. 10018c2ecf20Sopenharmony_ci 10028c2ecf20Sopenharmony_ciconfig SCHED_SMT 10038c2ecf20Sopenharmony_ci def_bool y if SMP 10048c2ecf20Sopenharmony_ci 10058c2ecf20Sopenharmony_ciconfig SCHED_MC 10068c2ecf20Sopenharmony_ci def_bool y 10078c2ecf20Sopenharmony_ci prompt "Multi-core scheduler support" 10088c2ecf20Sopenharmony_ci depends on SMP 10098c2ecf20Sopenharmony_ci help 10108c2ecf20Sopenharmony_ci Multi-core scheduler support improves the CPU scheduler's decision 10118c2ecf20Sopenharmony_ci making when dealing with multi-core CPU chips at a cost of slightly 10128c2ecf20Sopenharmony_ci increased overhead in some places. If unsure say N here. 10138c2ecf20Sopenharmony_ci 10148c2ecf20Sopenharmony_ciconfig SCHED_MC_PRIO 10158c2ecf20Sopenharmony_ci bool "CPU core priorities scheduler support" 10168c2ecf20Sopenharmony_ci depends on SCHED_MC && CPU_SUP_INTEL 10178c2ecf20Sopenharmony_ci select X86_INTEL_PSTATE 10188c2ecf20Sopenharmony_ci select CPU_FREQ 10198c2ecf20Sopenharmony_ci default y 10208c2ecf20Sopenharmony_ci help 10218c2ecf20Sopenharmony_ci Intel Turbo Boost Max Technology 3.0 enabled CPUs have a 10228c2ecf20Sopenharmony_ci core ordering determined at manufacturing time, which allows 10238c2ecf20Sopenharmony_ci certain cores to reach higher turbo frequencies (when running 10248c2ecf20Sopenharmony_ci single threaded workloads) than others. 10258c2ecf20Sopenharmony_ci 10268c2ecf20Sopenharmony_ci Enabling this kernel feature teaches the scheduler about 10278c2ecf20Sopenharmony_ci the TBM3 (aka ITMT) priority order of the CPU cores and adjusts the 10288c2ecf20Sopenharmony_ci scheduler's CPU selection logic accordingly, so that higher 10298c2ecf20Sopenharmony_ci overall system performance can be achieved. 10308c2ecf20Sopenharmony_ci 10318c2ecf20Sopenharmony_ci This feature will have no effect on CPUs without this feature. 10328c2ecf20Sopenharmony_ci 10338c2ecf20Sopenharmony_ci If unsure say Y here. 10348c2ecf20Sopenharmony_ci 10358c2ecf20Sopenharmony_ciconfig UP_LATE_INIT 10368c2ecf20Sopenharmony_ci def_bool y 10378c2ecf20Sopenharmony_ci depends on !SMP && X86_LOCAL_APIC 10388c2ecf20Sopenharmony_ci 10398c2ecf20Sopenharmony_ciconfig X86_UP_APIC 10408c2ecf20Sopenharmony_ci bool "Local APIC support on uniprocessors" if !PCI_MSI 10418c2ecf20Sopenharmony_ci default PCI_MSI 10428c2ecf20Sopenharmony_ci depends on X86_32 && !SMP && !X86_32_NON_STANDARD 10438c2ecf20Sopenharmony_ci help 10448c2ecf20Sopenharmony_ci A local APIC (Advanced Programmable Interrupt Controller) is an 10458c2ecf20Sopenharmony_ci integrated interrupt controller in the CPU. If you have a single-CPU 10468c2ecf20Sopenharmony_ci system which has a processor with a local APIC, you can say Y here to 10478c2ecf20Sopenharmony_ci enable and use it. If you say Y here even though your machine doesn't 10488c2ecf20Sopenharmony_ci have a local APIC, then the kernel will still run with no slowdown at 10498c2ecf20Sopenharmony_ci all. The local APIC supports CPU-generated self-interrupts (timer, 10508c2ecf20Sopenharmony_ci performance counters), and the NMI watchdog which detects hard 10518c2ecf20Sopenharmony_ci lockups. 10528c2ecf20Sopenharmony_ci 10538c2ecf20Sopenharmony_ciconfig X86_UP_IOAPIC 10548c2ecf20Sopenharmony_ci bool "IO-APIC support on uniprocessors" 10558c2ecf20Sopenharmony_ci depends on X86_UP_APIC 10568c2ecf20Sopenharmony_ci help 10578c2ecf20Sopenharmony_ci An IO-APIC (I/O Advanced Programmable Interrupt Controller) is an 10588c2ecf20Sopenharmony_ci SMP-capable replacement for PC-style interrupt controllers. Most 10598c2ecf20Sopenharmony_ci SMP systems and many recent uniprocessor systems have one. 10608c2ecf20Sopenharmony_ci 10618c2ecf20Sopenharmony_ci If you have a single-CPU system with an IO-APIC, you can say Y here 10628c2ecf20Sopenharmony_ci to use it. If you say Y here even though your machine doesn't have 10638c2ecf20Sopenharmony_ci an IO-APIC, then the kernel will still run with no slowdown at all. 10648c2ecf20Sopenharmony_ci 10658c2ecf20Sopenharmony_ciconfig X86_LOCAL_APIC 10668c2ecf20Sopenharmony_ci def_bool y 10678c2ecf20Sopenharmony_ci depends on X86_64 || SMP || X86_32_NON_STANDARD || X86_UP_APIC || PCI_MSI 10688c2ecf20Sopenharmony_ci select IRQ_DOMAIN_HIERARCHY 10698c2ecf20Sopenharmony_ci select PCI_MSI_IRQ_DOMAIN if PCI_MSI 10708c2ecf20Sopenharmony_ci 10718c2ecf20Sopenharmony_ciconfig X86_IO_APIC 10728c2ecf20Sopenharmony_ci def_bool y 10738c2ecf20Sopenharmony_ci depends on X86_LOCAL_APIC || X86_UP_IOAPIC 10748c2ecf20Sopenharmony_ci 10758c2ecf20Sopenharmony_ciconfig X86_REROUTE_FOR_BROKEN_BOOT_IRQS 10768c2ecf20Sopenharmony_ci bool "Reroute for broken boot IRQs" 10778c2ecf20Sopenharmony_ci depends on X86_IO_APIC 10788c2ecf20Sopenharmony_ci help 10798c2ecf20Sopenharmony_ci This option enables a workaround that fixes a source of 10808c2ecf20Sopenharmony_ci spurious interrupts. This is recommended when threaded 10818c2ecf20Sopenharmony_ci interrupt handling is used on systems where the generation of 10828c2ecf20Sopenharmony_ci superfluous "boot interrupts" cannot be disabled. 10838c2ecf20Sopenharmony_ci 10848c2ecf20Sopenharmony_ci Some chipsets generate a legacy INTx "boot IRQ" when the IRQ 10858c2ecf20Sopenharmony_ci entry in the chipset's IO-APIC is masked (as, e.g. the RT 10868c2ecf20Sopenharmony_ci kernel does during interrupt handling). On chipsets where this 10878c2ecf20Sopenharmony_ci boot IRQ generation cannot be disabled, this workaround keeps 10888c2ecf20Sopenharmony_ci the original IRQ line masked so that only the equivalent "boot 10898c2ecf20Sopenharmony_ci IRQ" is delivered to the CPUs. The workaround also tells the 10908c2ecf20Sopenharmony_ci kernel to set up the IRQ handler on the boot IRQ line. In this 10918c2ecf20Sopenharmony_ci way only one interrupt is delivered to the kernel. Otherwise 10928c2ecf20Sopenharmony_ci the spurious second interrupt may cause the kernel to bring 10938c2ecf20Sopenharmony_ci down (vital) interrupt lines. 10948c2ecf20Sopenharmony_ci 10958c2ecf20Sopenharmony_ci Only affects "broken" chipsets. Interrupt sharing may be 10968c2ecf20Sopenharmony_ci increased on these systems. 10978c2ecf20Sopenharmony_ci 10988c2ecf20Sopenharmony_ciconfig X86_MCE 10998c2ecf20Sopenharmony_ci bool "Machine Check / overheating reporting" 11008c2ecf20Sopenharmony_ci select GENERIC_ALLOCATOR 11018c2ecf20Sopenharmony_ci default y 11028c2ecf20Sopenharmony_ci help 11038c2ecf20Sopenharmony_ci Machine Check support allows the processor to notify the 11048c2ecf20Sopenharmony_ci kernel if it detects a problem (e.g. overheating, data corruption). 11058c2ecf20Sopenharmony_ci The action the kernel takes depends on the severity of the problem, 11068c2ecf20Sopenharmony_ci ranging from warning messages to halting the machine. 11078c2ecf20Sopenharmony_ci 11088c2ecf20Sopenharmony_ciconfig X86_MCELOG_LEGACY 11098c2ecf20Sopenharmony_ci bool "Support for deprecated /dev/mcelog character device" 11108c2ecf20Sopenharmony_ci depends on X86_MCE 11118c2ecf20Sopenharmony_ci help 11128c2ecf20Sopenharmony_ci Enable support for /dev/mcelog which is needed by the old mcelog 11138c2ecf20Sopenharmony_ci userspace logging daemon. Consider switching to the new generation 11148c2ecf20Sopenharmony_ci rasdaemon solution. 11158c2ecf20Sopenharmony_ci 11168c2ecf20Sopenharmony_ciconfig X86_MCE_INTEL 11178c2ecf20Sopenharmony_ci def_bool y 11188c2ecf20Sopenharmony_ci prompt "Intel MCE features" 11198c2ecf20Sopenharmony_ci depends on X86_MCE && X86_LOCAL_APIC 11208c2ecf20Sopenharmony_ci help 11218c2ecf20Sopenharmony_ci Additional support for intel specific MCE features such as 11228c2ecf20Sopenharmony_ci the thermal monitor. 11238c2ecf20Sopenharmony_ci 11248c2ecf20Sopenharmony_ciconfig X86_MCE_AMD 11258c2ecf20Sopenharmony_ci def_bool y 11268c2ecf20Sopenharmony_ci prompt "AMD MCE features" 11278c2ecf20Sopenharmony_ci depends on X86_MCE && X86_LOCAL_APIC && AMD_NB 11288c2ecf20Sopenharmony_ci help 11298c2ecf20Sopenharmony_ci Additional support for AMD specific MCE features such as 11308c2ecf20Sopenharmony_ci the DRAM Error Threshold. 11318c2ecf20Sopenharmony_ci 11328c2ecf20Sopenharmony_ciconfig X86_ANCIENT_MCE 11338c2ecf20Sopenharmony_ci bool "Support for old Pentium 5 / WinChip machine checks" 11348c2ecf20Sopenharmony_ci depends on X86_32 && X86_MCE 11358c2ecf20Sopenharmony_ci help 11368c2ecf20Sopenharmony_ci Include support for machine check handling on old Pentium 5 or WinChip 11378c2ecf20Sopenharmony_ci systems. These typically need to be enabled explicitly on the command 11388c2ecf20Sopenharmony_ci line. 11398c2ecf20Sopenharmony_ci 11408c2ecf20Sopenharmony_ciconfig X86_MCE_THRESHOLD 11418c2ecf20Sopenharmony_ci depends on X86_MCE_AMD || X86_MCE_INTEL 11428c2ecf20Sopenharmony_ci def_bool y 11438c2ecf20Sopenharmony_ci 11448c2ecf20Sopenharmony_ciconfig X86_MCE_INJECT 11458c2ecf20Sopenharmony_ci depends on X86_MCE && X86_LOCAL_APIC && DEBUG_FS 11468c2ecf20Sopenharmony_ci tristate "Machine check injector support" 11478c2ecf20Sopenharmony_ci help 11488c2ecf20Sopenharmony_ci Provide support for injecting machine checks for testing purposes. 11498c2ecf20Sopenharmony_ci If you don't know what a machine check is and you don't do kernel 11508c2ecf20Sopenharmony_ci QA it is safe to say n. 11518c2ecf20Sopenharmony_ci 11528c2ecf20Sopenharmony_ciconfig X86_THERMAL_VECTOR 11538c2ecf20Sopenharmony_ci def_bool y 11548c2ecf20Sopenharmony_ci depends on X86_MCE_INTEL 11558c2ecf20Sopenharmony_ci 11568c2ecf20Sopenharmony_cisource "arch/x86/events/Kconfig" 11578c2ecf20Sopenharmony_ci 11588c2ecf20Sopenharmony_ciconfig X86_LEGACY_VM86 11598c2ecf20Sopenharmony_ci bool "Legacy VM86 support" 11608c2ecf20Sopenharmony_ci depends on X86_32 11618c2ecf20Sopenharmony_ci help 11628c2ecf20Sopenharmony_ci This option allows user programs to put the CPU into V8086 11638c2ecf20Sopenharmony_ci mode, which is an 80286-era approximation of 16-bit real mode. 11648c2ecf20Sopenharmony_ci 11658c2ecf20Sopenharmony_ci Some very old versions of X and/or vbetool require this option 11668c2ecf20Sopenharmony_ci for user mode setting. Similarly, DOSEMU will use it if 11678c2ecf20Sopenharmony_ci available to accelerate real mode DOS programs. However, any 11688c2ecf20Sopenharmony_ci recent version of DOSEMU, X, or vbetool should be fully 11698c2ecf20Sopenharmony_ci functional even without kernel VM86 support, as they will all 11708c2ecf20Sopenharmony_ci fall back to software emulation. Nevertheless, if you are using 11718c2ecf20Sopenharmony_ci a 16-bit DOS program where 16-bit performance matters, vm86 11728c2ecf20Sopenharmony_ci mode might be faster than emulation and you might want to 11738c2ecf20Sopenharmony_ci enable this option. 11748c2ecf20Sopenharmony_ci 11758c2ecf20Sopenharmony_ci Note that any app that works on a 64-bit kernel is unlikely to 11768c2ecf20Sopenharmony_ci need this option, as 64-bit kernels don't, and can't, support 11778c2ecf20Sopenharmony_ci V8086 mode. This option is also unrelated to 16-bit protected 11788c2ecf20Sopenharmony_ci mode and is not needed to run most 16-bit programs under Wine. 11798c2ecf20Sopenharmony_ci 11808c2ecf20Sopenharmony_ci Enabling this option increases the complexity of the kernel 11818c2ecf20Sopenharmony_ci and slows down exception handling a tiny bit. 11828c2ecf20Sopenharmony_ci 11838c2ecf20Sopenharmony_ci If unsure, say N here. 11848c2ecf20Sopenharmony_ci 11858c2ecf20Sopenharmony_ciconfig VM86 11868c2ecf20Sopenharmony_ci bool 11878c2ecf20Sopenharmony_ci default X86_LEGACY_VM86 11888c2ecf20Sopenharmony_ci 11898c2ecf20Sopenharmony_ciconfig X86_16BIT 11908c2ecf20Sopenharmony_ci bool "Enable support for 16-bit segments" if EXPERT 11918c2ecf20Sopenharmony_ci default y 11928c2ecf20Sopenharmony_ci depends on MODIFY_LDT_SYSCALL 11938c2ecf20Sopenharmony_ci help 11948c2ecf20Sopenharmony_ci This option is required by programs like Wine to run 16-bit 11958c2ecf20Sopenharmony_ci protected mode legacy code on x86 processors. Disabling 11968c2ecf20Sopenharmony_ci this option saves about 300 bytes on i386, or around 6K text 11978c2ecf20Sopenharmony_ci plus 16K runtime memory on x86-64, 11988c2ecf20Sopenharmony_ci 11998c2ecf20Sopenharmony_ciconfig X86_ESPFIX32 12008c2ecf20Sopenharmony_ci def_bool y 12018c2ecf20Sopenharmony_ci depends on X86_16BIT && X86_32 12028c2ecf20Sopenharmony_ci 12038c2ecf20Sopenharmony_ciconfig X86_ESPFIX64 12048c2ecf20Sopenharmony_ci def_bool y 12058c2ecf20Sopenharmony_ci depends on X86_16BIT && X86_64 12068c2ecf20Sopenharmony_ci 12078c2ecf20Sopenharmony_ciconfig X86_VSYSCALL_EMULATION 12088c2ecf20Sopenharmony_ci bool "Enable vsyscall emulation" if EXPERT 12098c2ecf20Sopenharmony_ci default y 12108c2ecf20Sopenharmony_ci depends on X86_64 12118c2ecf20Sopenharmony_ci help 12128c2ecf20Sopenharmony_ci This enables emulation of the legacy vsyscall page. Disabling 12138c2ecf20Sopenharmony_ci it is roughly equivalent to booting with vsyscall=none, except 12148c2ecf20Sopenharmony_ci that it will also disable the helpful warning if a program 12158c2ecf20Sopenharmony_ci tries to use a vsyscall. With this option set to N, offending 12168c2ecf20Sopenharmony_ci programs will just segfault, citing addresses of the form 12178c2ecf20Sopenharmony_ci 0xffffffffff600?00. 12188c2ecf20Sopenharmony_ci 12198c2ecf20Sopenharmony_ci This option is required by many programs built before 2013, and 12208c2ecf20Sopenharmony_ci care should be used even with newer programs if set to N. 12218c2ecf20Sopenharmony_ci 12228c2ecf20Sopenharmony_ci Disabling this option saves about 7K of kernel size and 12238c2ecf20Sopenharmony_ci possibly 4K of additional runtime pagetable memory. 12248c2ecf20Sopenharmony_ci 12258c2ecf20Sopenharmony_ciconfig X86_IOPL_IOPERM 12268c2ecf20Sopenharmony_ci bool "IOPERM and IOPL Emulation" 12278c2ecf20Sopenharmony_ci default y 12288c2ecf20Sopenharmony_ci help 12298c2ecf20Sopenharmony_ci This enables the ioperm() and iopl() syscalls which are necessary 12308c2ecf20Sopenharmony_ci for legacy applications. 12318c2ecf20Sopenharmony_ci 12328c2ecf20Sopenharmony_ci Legacy IOPL support is an overbroad mechanism which allows user 12338c2ecf20Sopenharmony_ci space aside of accessing all 65536 I/O ports also to disable 12348c2ecf20Sopenharmony_ci interrupts. To gain this access the caller needs CAP_SYS_RAWIO 12358c2ecf20Sopenharmony_ci capabilities and permission from potentially active security 12368c2ecf20Sopenharmony_ci modules. 12378c2ecf20Sopenharmony_ci 12388c2ecf20Sopenharmony_ci The emulation restricts the functionality of the syscall to 12398c2ecf20Sopenharmony_ci only allowing the full range I/O port access, but prevents the 12408c2ecf20Sopenharmony_ci ability to disable interrupts from user space which would be 12418c2ecf20Sopenharmony_ci granted if the hardware IOPL mechanism would be used. 12428c2ecf20Sopenharmony_ci 12438c2ecf20Sopenharmony_ciconfig TOSHIBA 12448c2ecf20Sopenharmony_ci tristate "Toshiba Laptop support" 12458c2ecf20Sopenharmony_ci depends on X86_32 12468c2ecf20Sopenharmony_ci help 12478c2ecf20Sopenharmony_ci This adds a driver to safely access the System Management Mode of 12488c2ecf20Sopenharmony_ci the CPU on Toshiba portables with a genuine Toshiba BIOS. It does 12498c2ecf20Sopenharmony_ci not work on models with a Phoenix BIOS. The System Management Mode 12508c2ecf20Sopenharmony_ci is used to set the BIOS and power saving options on Toshiba portables. 12518c2ecf20Sopenharmony_ci 12528c2ecf20Sopenharmony_ci For information on utilities to make use of this driver see the 12538c2ecf20Sopenharmony_ci Toshiba Linux utilities web site at: 12548c2ecf20Sopenharmony_ci <http://www.buzzard.org.uk/toshiba/>. 12558c2ecf20Sopenharmony_ci 12568c2ecf20Sopenharmony_ci Say Y if you intend to run this kernel on a Toshiba portable. 12578c2ecf20Sopenharmony_ci Say N otherwise. 12588c2ecf20Sopenharmony_ci 12598c2ecf20Sopenharmony_ciconfig I8K 12608c2ecf20Sopenharmony_ci tristate "Dell i8k legacy laptop support" 12618c2ecf20Sopenharmony_ci depends on HWMON 12628c2ecf20Sopenharmony_ci depends on PROC_FS 12638c2ecf20Sopenharmony_ci select SENSORS_DELL_SMM 12648c2ecf20Sopenharmony_ci help 12658c2ecf20Sopenharmony_ci This option enables legacy /proc/i8k userspace interface in hwmon 12668c2ecf20Sopenharmony_ci dell-smm-hwmon driver. Character file /proc/i8k reports bios version, 12678c2ecf20Sopenharmony_ci temperature and allows controlling fan speeds of Dell laptops via 12688c2ecf20Sopenharmony_ci System Management Mode. For old Dell laptops (like Dell Inspiron 8000) 12698c2ecf20Sopenharmony_ci it reports also power and hotkey status. For fan speed control is 12708c2ecf20Sopenharmony_ci needed userspace package i8kutils. 12718c2ecf20Sopenharmony_ci 12728c2ecf20Sopenharmony_ci Say Y if you intend to run this kernel on old Dell laptops or want to 12738c2ecf20Sopenharmony_ci use userspace package i8kutils. 12748c2ecf20Sopenharmony_ci Say N otherwise. 12758c2ecf20Sopenharmony_ci 12768c2ecf20Sopenharmony_ciconfig X86_REBOOTFIXUPS 12778c2ecf20Sopenharmony_ci bool "Enable X86 board specific fixups for reboot" 12788c2ecf20Sopenharmony_ci depends on X86_32 12798c2ecf20Sopenharmony_ci help 12808c2ecf20Sopenharmony_ci This enables chipset and/or board specific fixups to be done 12818c2ecf20Sopenharmony_ci in order to get reboot to work correctly. This is only needed on 12828c2ecf20Sopenharmony_ci some combinations of hardware and BIOS. The symptom, for which 12838c2ecf20Sopenharmony_ci this config is intended, is when reboot ends with a stalled/hung 12848c2ecf20Sopenharmony_ci system. 12858c2ecf20Sopenharmony_ci 12868c2ecf20Sopenharmony_ci Currently, the only fixup is for the Geode machines using 12878c2ecf20Sopenharmony_ci CS5530A and CS5536 chipsets and the RDC R-321x SoC. 12888c2ecf20Sopenharmony_ci 12898c2ecf20Sopenharmony_ci Say Y if you want to enable the fixup. Currently, it's safe to 12908c2ecf20Sopenharmony_ci enable this option even if you don't need it. 12918c2ecf20Sopenharmony_ci Say N otherwise. 12928c2ecf20Sopenharmony_ci 12938c2ecf20Sopenharmony_ciconfig MICROCODE 12948c2ecf20Sopenharmony_ci bool "CPU microcode loading support" 12958c2ecf20Sopenharmony_ci default y 12968c2ecf20Sopenharmony_ci depends on CPU_SUP_AMD || CPU_SUP_INTEL 12978c2ecf20Sopenharmony_ci help 12988c2ecf20Sopenharmony_ci If you say Y here, you will be able to update the microcode on 12998c2ecf20Sopenharmony_ci Intel and AMD processors. The Intel support is for the IA32 family, 13008c2ecf20Sopenharmony_ci e.g. Pentium Pro, Pentium II, Pentium III, Pentium 4, Xeon etc. The 13018c2ecf20Sopenharmony_ci AMD support is for families 0x10 and later. You will obviously need 13028c2ecf20Sopenharmony_ci the actual microcode binary data itself which is not shipped with 13038c2ecf20Sopenharmony_ci the Linux kernel. 13048c2ecf20Sopenharmony_ci 13058c2ecf20Sopenharmony_ci The preferred method to load microcode from a detached initrd is described 13068c2ecf20Sopenharmony_ci in Documentation/x86/microcode.rst. For that you need to enable 13078c2ecf20Sopenharmony_ci CONFIG_BLK_DEV_INITRD in order for the loader to be able to scan the 13088c2ecf20Sopenharmony_ci initrd for microcode blobs. 13098c2ecf20Sopenharmony_ci 13108c2ecf20Sopenharmony_ci In addition, you can build the microcode into the kernel. For that you 13118c2ecf20Sopenharmony_ci need to add the vendor-supplied microcode to the CONFIG_EXTRA_FIRMWARE 13128c2ecf20Sopenharmony_ci config option. 13138c2ecf20Sopenharmony_ci 13148c2ecf20Sopenharmony_ciconfig MICROCODE_INTEL 13158c2ecf20Sopenharmony_ci bool "Intel microcode loading support" 13168c2ecf20Sopenharmony_ci depends on CPU_SUP_INTEL && MICROCODE 13178c2ecf20Sopenharmony_ci default MICROCODE 13188c2ecf20Sopenharmony_ci help 13198c2ecf20Sopenharmony_ci This options enables microcode patch loading support for Intel 13208c2ecf20Sopenharmony_ci processors. 13218c2ecf20Sopenharmony_ci 13228c2ecf20Sopenharmony_ci For the current Intel microcode data package go to 13238c2ecf20Sopenharmony_ci <https://downloadcenter.intel.com> and search for 13248c2ecf20Sopenharmony_ci 'Linux Processor Microcode Data File'. 13258c2ecf20Sopenharmony_ci 13268c2ecf20Sopenharmony_ciconfig MICROCODE_AMD 13278c2ecf20Sopenharmony_ci bool "AMD microcode loading support" 13288c2ecf20Sopenharmony_ci depends on CPU_SUP_AMD && MICROCODE 13298c2ecf20Sopenharmony_ci help 13308c2ecf20Sopenharmony_ci If you select this option, microcode patch loading support for AMD 13318c2ecf20Sopenharmony_ci processors will be enabled. 13328c2ecf20Sopenharmony_ci 13338c2ecf20Sopenharmony_ciconfig MICROCODE_LATE_LOADING 13348c2ecf20Sopenharmony_ci bool "Late microcode loading (DANGEROUS)" 13358c2ecf20Sopenharmony_ci default n 13368c2ecf20Sopenharmony_ci depends on MICROCODE 13378c2ecf20Sopenharmony_ci help 13388c2ecf20Sopenharmony_ci Loading microcode late, when the system is up and executing instructions 13398c2ecf20Sopenharmony_ci is a tricky business and should be avoided if possible. Just the sequence 13408c2ecf20Sopenharmony_ci of synchronizing all cores and SMT threads is one fragile dance which does 13418c2ecf20Sopenharmony_ci not guarantee that cores might not softlock after the loading. Therefore, 13428c2ecf20Sopenharmony_ci use this at your own risk. Late loading taints the kernel too. 13438c2ecf20Sopenharmony_ci 13448c2ecf20Sopenharmony_ciconfig X86_MSR 13458c2ecf20Sopenharmony_ci tristate "/dev/cpu/*/msr - Model-specific register support" 13468c2ecf20Sopenharmony_ci help 13478c2ecf20Sopenharmony_ci This device gives privileged processes access to the x86 13488c2ecf20Sopenharmony_ci Model-Specific Registers (MSRs). It is a character device with 13498c2ecf20Sopenharmony_ci major 202 and minors 0 to 31 for /dev/cpu/0/msr to /dev/cpu/31/msr. 13508c2ecf20Sopenharmony_ci MSR accesses are directed to a specific CPU on multi-processor 13518c2ecf20Sopenharmony_ci systems. 13528c2ecf20Sopenharmony_ci 13538c2ecf20Sopenharmony_ciconfig X86_CPUID 13548c2ecf20Sopenharmony_ci tristate "/dev/cpu/*/cpuid - CPU information support" 13558c2ecf20Sopenharmony_ci help 13568c2ecf20Sopenharmony_ci This device gives processes access to the x86 CPUID instruction to 13578c2ecf20Sopenharmony_ci be executed on a specific processor. It is a character device 13588c2ecf20Sopenharmony_ci with major 203 and minors 0 to 31 for /dev/cpu/0/cpuid to 13598c2ecf20Sopenharmony_ci /dev/cpu/31/cpuid. 13608c2ecf20Sopenharmony_ci 13618c2ecf20Sopenharmony_cichoice 13628c2ecf20Sopenharmony_ci prompt "High Memory Support" 13638c2ecf20Sopenharmony_ci default HIGHMEM4G 13648c2ecf20Sopenharmony_ci depends on X86_32 13658c2ecf20Sopenharmony_ci 13668c2ecf20Sopenharmony_ciconfig NOHIGHMEM 13678c2ecf20Sopenharmony_ci bool "off" 13688c2ecf20Sopenharmony_ci help 13698c2ecf20Sopenharmony_ci Linux can use up to 64 Gigabytes of physical memory on x86 systems. 13708c2ecf20Sopenharmony_ci However, the address space of 32-bit x86 processors is only 4 13718c2ecf20Sopenharmony_ci Gigabytes large. That means that, if you have a large amount of 13728c2ecf20Sopenharmony_ci physical memory, not all of it can be "permanently mapped" by the 13738c2ecf20Sopenharmony_ci kernel. The physical memory that's not permanently mapped is called 13748c2ecf20Sopenharmony_ci "high memory". 13758c2ecf20Sopenharmony_ci 13768c2ecf20Sopenharmony_ci If you are compiling a kernel which will never run on a machine with 13778c2ecf20Sopenharmony_ci more than 1 Gigabyte total physical RAM, answer "off" here (default 13788c2ecf20Sopenharmony_ci choice and suitable for most users). This will result in a "3GB/1GB" 13798c2ecf20Sopenharmony_ci split: 3GB are mapped so that each process sees a 3GB virtual memory 13808c2ecf20Sopenharmony_ci space and the remaining part of the 4GB virtual memory space is used 13818c2ecf20Sopenharmony_ci by the kernel to permanently map as much physical memory as 13828c2ecf20Sopenharmony_ci possible. 13838c2ecf20Sopenharmony_ci 13848c2ecf20Sopenharmony_ci If the machine has between 1 and 4 Gigabytes physical RAM, then 13858c2ecf20Sopenharmony_ci answer "4GB" here. 13868c2ecf20Sopenharmony_ci 13878c2ecf20Sopenharmony_ci If more than 4 Gigabytes is used then answer "64GB" here. This 13888c2ecf20Sopenharmony_ci selection turns Intel PAE (Physical Address Extension) mode on. 13898c2ecf20Sopenharmony_ci PAE implements 3-level paging on IA32 processors. PAE is fully 13908c2ecf20Sopenharmony_ci supported by Linux, PAE mode is implemented on all recent Intel 13918c2ecf20Sopenharmony_ci processors (Pentium Pro and better). NOTE: If you say "64GB" here, 13928c2ecf20Sopenharmony_ci then the kernel will not boot on CPUs that don't support PAE! 13938c2ecf20Sopenharmony_ci 13948c2ecf20Sopenharmony_ci The actual amount of total physical memory will either be 13958c2ecf20Sopenharmony_ci auto detected or can be forced by using a kernel command line option 13968c2ecf20Sopenharmony_ci such as "mem=256M". (Try "man bootparam" or see the documentation of 13978c2ecf20Sopenharmony_ci your boot loader (lilo or loadlin) about how to pass options to the 13988c2ecf20Sopenharmony_ci kernel at boot time.) 13998c2ecf20Sopenharmony_ci 14008c2ecf20Sopenharmony_ci If unsure, say "off". 14018c2ecf20Sopenharmony_ci 14028c2ecf20Sopenharmony_ciconfig HIGHMEM4G 14038c2ecf20Sopenharmony_ci bool "4GB" 14048c2ecf20Sopenharmony_ci help 14058c2ecf20Sopenharmony_ci Select this if you have a 32-bit processor and between 1 and 4 14068c2ecf20Sopenharmony_ci gigabytes of physical RAM. 14078c2ecf20Sopenharmony_ci 14088c2ecf20Sopenharmony_ciconfig HIGHMEM64G 14098c2ecf20Sopenharmony_ci bool "64GB" 14108c2ecf20Sopenharmony_ci depends on !M486SX && !M486 && !M586 && !M586TSC && !M586MMX && !MGEODE_LX && !MGEODEGX1 && !MCYRIXIII && !MELAN && !MWINCHIPC6 && !MWINCHIP3D && !MK6 14118c2ecf20Sopenharmony_ci select X86_PAE 14128c2ecf20Sopenharmony_ci help 14138c2ecf20Sopenharmony_ci Select this if you have a 32-bit processor and more than 4 14148c2ecf20Sopenharmony_ci gigabytes of physical RAM. 14158c2ecf20Sopenharmony_ci 14168c2ecf20Sopenharmony_ciendchoice 14178c2ecf20Sopenharmony_ci 14188c2ecf20Sopenharmony_cichoice 14198c2ecf20Sopenharmony_ci prompt "Memory split" if EXPERT 14208c2ecf20Sopenharmony_ci default VMSPLIT_3G 14218c2ecf20Sopenharmony_ci depends on X86_32 14228c2ecf20Sopenharmony_ci help 14238c2ecf20Sopenharmony_ci Select the desired split between kernel and user memory. 14248c2ecf20Sopenharmony_ci 14258c2ecf20Sopenharmony_ci If the address range available to the kernel is less than the 14268c2ecf20Sopenharmony_ci physical memory installed, the remaining memory will be available 14278c2ecf20Sopenharmony_ci as "high memory". Accessing high memory is a little more costly 14288c2ecf20Sopenharmony_ci than low memory, as it needs to be mapped into the kernel first. 14298c2ecf20Sopenharmony_ci Note that increasing the kernel address space limits the range 14308c2ecf20Sopenharmony_ci available to user programs, making the address space there 14318c2ecf20Sopenharmony_ci tighter. Selecting anything other than the default 3G/1G split 14328c2ecf20Sopenharmony_ci will also likely make your kernel incompatible with binary-only 14338c2ecf20Sopenharmony_ci kernel modules. 14348c2ecf20Sopenharmony_ci 14358c2ecf20Sopenharmony_ci If you are not absolutely sure what you are doing, leave this 14368c2ecf20Sopenharmony_ci option alone! 14378c2ecf20Sopenharmony_ci 14388c2ecf20Sopenharmony_ci config VMSPLIT_3G 14398c2ecf20Sopenharmony_ci bool "3G/1G user/kernel split" 14408c2ecf20Sopenharmony_ci config VMSPLIT_3G_OPT 14418c2ecf20Sopenharmony_ci depends on !X86_PAE 14428c2ecf20Sopenharmony_ci bool "3G/1G user/kernel split (for full 1G low memory)" 14438c2ecf20Sopenharmony_ci config VMSPLIT_2G 14448c2ecf20Sopenharmony_ci bool "2G/2G user/kernel split" 14458c2ecf20Sopenharmony_ci config VMSPLIT_2G_OPT 14468c2ecf20Sopenharmony_ci depends on !X86_PAE 14478c2ecf20Sopenharmony_ci bool "2G/2G user/kernel split (for full 2G low memory)" 14488c2ecf20Sopenharmony_ci config VMSPLIT_1G 14498c2ecf20Sopenharmony_ci bool "1G/3G user/kernel split" 14508c2ecf20Sopenharmony_ciendchoice 14518c2ecf20Sopenharmony_ci 14528c2ecf20Sopenharmony_ciconfig PAGE_OFFSET 14538c2ecf20Sopenharmony_ci hex 14548c2ecf20Sopenharmony_ci default 0xB0000000 if VMSPLIT_3G_OPT 14558c2ecf20Sopenharmony_ci default 0x80000000 if VMSPLIT_2G 14568c2ecf20Sopenharmony_ci default 0x78000000 if VMSPLIT_2G_OPT 14578c2ecf20Sopenharmony_ci default 0x40000000 if VMSPLIT_1G 14588c2ecf20Sopenharmony_ci default 0xC0000000 14598c2ecf20Sopenharmony_ci depends on X86_32 14608c2ecf20Sopenharmony_ci 14618c2ecf20Sopenharmony_ciconfig HIGHMEM 14628c2ecf20Sopenharmony_ci def_bool y 14638c2ecf20Sopenharmony_ci depends on X86_32 && (HIGHMEM64G || HIGHMEM4G) 14648c2ecf20Sopenharmony_ci 14658c2ecf20Sopenharmony_ciconfig X86_PAE 14668c2ecf20Sopenharmony_ci bool "PAE (Physical Address Extension) Support" 14678c2ecf20Sopenharmony_ci depends on X86_32 && !HIGHMEM4G 14688c2ecf20Sopenharmony_ci select PHYS_ADDR_T_64BIT 14698c2ecf20Sopenharmony_ci select SWIOTLB 14708c2ecf20Sopenharmony_ci help 14718c2ecf20Sopenharmony_ci PAE is required for NX support, and furthermore enables 14728c2ecf20Sopenharmony_ci larger swapspace support for non-overcommit purposes. It 14738c2ecf20Sopenharmony_ci has the cost of more pagetable lookup overhead, and also 14748c2ecf20Sopenharmony_ci consumes more pagetable space per process. 14758c2ecf20Sopenharmony_ci 14768c2ecf20Sopenharmony_ciconfig X86_5LEVEL 14778c2ecf20Sopenharmony_ci bool "Enable 5-level page tables support" 14788c2ecf20Sopenharmony_ci default y 14798c2ecf20Sopenharmony_ci select DYNAMIC_MEMORY_LAYOUT 14808c2ecf20Sopenharmony_ci select SPARSEMEM_VMEMMAP 14818c2ecf20Sopenharmony_ci depends on X86_64 14828c2ecf20Sopenharmony_ci help 14838c2ecf20Sopenharmony_ci 5-level paging enables access to larger address space: 14848c2ecf20Sopenharmony_ci upto 128 PiB of virtual address space and 4 PiB of 14858c2ecf20Sopenharmony_ci physical address space. 14868c2ecf20Sopenharmony_ci 14878c2ecf20Sopenharmony_ci It will be supported by future Intel CPUs. 14888c2ecf20Sopenharmony_ci 14898c2ecf20Sopenharmony_ci A kernel with the option enabled can be booted on machines that 14908c2ecf20Sopenharmony_ci support 4- or 5-level paging. 14918c2ecf20Sopenharmony_ci 14928c2ecf20Sopenharmony_ci See Documentation/x86/x86_64/5level-paging.rst for more 14938c2ecf20Sopenharmony_ci information. 14948c2ecf20Sopenharmony_ci 14958c2ecf20Sopenharmony_ci Say N if unsure. 14968c2ecf20Sopenharmony_ci 14978c2ecf20Sopenharmony_ciconfig X86_DIRECT_GBPAGES 14988c2ecf20Sopenharmony_ci def_bool y 14998c2ecf20Sopenharmony_ci depends on X86_64 15008c2ecf20Sopenharmony_ci help 15018c2ecf20Sopenharmony_ci Certain kernel features effectively disable kernel 15028c2ecf20Sopenharmony_ci linear 1 GB mappings (even if the CPU otherwise 15038c2ecf20Sopenharmony_ci supports them), so don't confuse the user by printing 15048c2ecf20Sopenharmony_ci that we have them enabled. 15058c2ecf20Sopenharmony_ci 15068c2ecf20Sopenharmony_ciconfig X86_CPA_STATISTICS 15078c2ecf20Sopenharmony_ci bool "Enable statistic for Change Page Attribute" 15088c2ecf20Sopenharmony_ci depends on DEBUG_FS 15098c2ecf20Sopenharmony_ci help 15108c2ecf20Sopenharmony_ci Expose statistics about the Change Page Attribute mechanism, which 15118c2ecf20Sopenharmony_ci helps to determine the effectiveness of preserving large and huge 15128c2ecf20Sopenharmony_ci page mappings when mapping protections are changed. 15138c2ecf20Sopenharmony_ci 15148c2ecf20Sopenharmony_ciconfig AMD_MEM_ENCRYPT 15158c2ecf20Sopenharmony_ci bool "AMD Secure Memory Encryption (SME) support" 15168c2ecf20Sopenharmony_ci depends on X86_64 && CPU_SUP_AMD 15178c2ecf20Sopenharmony_ci select DMA_COHERENT_POOL 15188c2ecf20Sopenharmony_ci select DYNAMIC_PHYSICAL_MASK 15198c2ecf20Sopenharmony_ci select ARCH_USE_MEMREMAP_PROT 15208c2ecf20Sopenharmony_ci select ARCH_HAS_FORCE_DMA_UNENCRYPTED 15218c2ecf20Sopenharmony_ci select INSTRUCTION_DECODER 15228c2ecf20Sopenharmony_ci select ARCH_HAS_CC_PLATFORM 15238c2ecf20Sopenharmony_ci help 15248c2ecf20Sopenharmony_ci Say yes to enable support for the encryption of system memory. 15258c2ecf20Sopenharmony_ci This requires an AMD processor that supports Secure Memory 15268c2ecf20Sopenharmony_ci Encryption (SME). 15278c2ecf20Sopenharmony_ci 15288c2ecf20Sopenharmony_ciconfig AMD_MEM_ENCRYPT_ACTIVE_BY_DEFAULT 15298c2ecf20Sopenharmony_ci bool "Activate AMD Secure Memory Encryption (SME) by default" 15308c2ecf20Sopenharmony_ci depends on AMD_MEM_ENCRYPT 15318c2ecf20Sopenharmony_ci help 15328c2ecf20Sopenharmony_ci Say yes to have system memory encrypted by default if running on 15338c2ecf20Sopenharmony_ci an AMD processor that supports Secure Memory Encryption (SME). 15348c2ecf20Sopenharmony_ci 15358c2ecf20Sopenharmony_ci If set to Y, then the encryption of system memory can be 15368c2ecf20Sopenharmony_ci deactivated with the mem_encrypt=off command line option. 15378c2ecf20Sopenharmony_ci 15388c2ecf20Sopenharmony_ci If set to N, then the encryption of system memory can be 15398c2ecf20Sopenharmony_ci activated with the mem_encrypt=on command line option. 15408c2ecf20Sopenharmony_ci 15418c2ecf20Sopenharmony_ci# Common NUMA Features 15428c2ecf20Sopenharmony_ciconfig NUMA 15438c2ecf20Sopenharmony_ci bool "NUMA Memory Allocation and Scheduler Support" 15448c2ecf20Sopenharmony_ci depends on SMP 15458c2ecf20Sopenharmony_ci depends on X86_64 || (X86_32 && HIGHMEM64G && X86_BIGSMP) 15468c2ecf20Sopenharmony_ci default y if X86_BIGSMP 15478c2ecf20Sopenharmony_ci help 15488c2ecf20Sopenharmony_ci Enable NUMA (Non-Uniform Memory Access) support. 15498c2ecf20Sopenharmony_ci 15508c2ecf20Sopenharmony_ci The kernel will try to allocate memory used by a CPU on the 15518c2ecf20Sopenharmony_ci local memory controller of the CPU and add some more 15528c2ecf20Sopenharmony_ci NUMA awareness to the kernel. 15538c2ecf20Sopenharmony_ci 15548c2ecf20Sopenharmony_ci For 64-bit this is recommended if the system is Intel Core i7 15558c2ecf20Sopenharmony_ci (or later), AMD Opteron, or EM64T NUMA. 15568c2ecf20Sopenharmony_ci 15578c2ecf20Sopenharmony_ci For 32-bit this is only needed if you boot a 32-bit 15588c2ecf20Sopenharmony_ci kernel on a 64-bit NUMA platform. 15598c2ecf20Sopenharmony_ci 15608c2ecf20Sopenharmony_ci Otherwise, you should say N. 15618c2ecf20Sopenharmony_ci 15628c2ecf20Sopenharmony_ciconfig AMD_NUMA 15638c2ecf20Sopenharmony_ci def_bool y 15648c2ecf20Sopenharmony_ci prompt "Old style AMD Opteron NUMA detection" 15658c2ecf20Sopenharmony_ci depends on X86_64 && NUMA && PCI 15668c2ecf20Sopenharmony_ci help 15678c2ecf20Sopenharmony_ci Enable AMD NUMA node topology detection. You should say Y here if 15688c2ecf20Sopenharmony_ci you have a multi processor AMD system. This uses an old method to 15698c2ecf20Sopenharmony_ci read the NUMA configuration directly from the builtin Northbridge 15708c2ecf20Sopenharmony_ci of Opteron. It is recommended to use X86_64_ACPI_NUMA instead, 15718c2ecf20Sopenharmony_ci which also takes priority if both are compiled in. 15728c2ecf20Sopenharmony_ci 15738c2ecf20Sopenharmony_ciconfig X86_64_ACPI_NUMA 15748c2ecf20Sopenharmony_ci def_bool y 15758c2ecf20Sopenharmony_ci prompt "ACPI NUMA detection" 15768c2ecf20Sopenharmony_ci depends on X86_64 && NUMA && ACPI && PCI 15778c2ecf20Sopenharmony_ci select ACPI_NUMA 15788c2ecf20Sopenharmony_ci help 15798c2ecf20Sopenharmony_ci Enable ACPI SRAT based node topology detection. 15808c2ecf20Sopenharmony_ci 15818c2ecf20Sopenharmony_ciconfig NUMA_EMU 15828c2ecf20Sopenharmony_ci bool "NUMA emulation" 15838c2ecf20Sopenharmony_ci depends on NUMA 15848c2ecf20Sopenharmony_ci help 15858c2ecf20Sopenharmony_ci Enable NUMA emulation. A flat machine will be split 15868c2ecf20Sopenharmony_ci into virtual nodes when booted with "numa=fake=N", where N is the 15878c2ecf20Sopenharmony_ci number of nodes. This is only useful for debugging. 15888c2ecf20Sopenharmony_ci 15898c2ecf20Sopenharmony_ciconfig NODES_SHIFT 15908c2ecf20Sopenharmony_ci int "Maximum NUMA Nodes (as a power of 2)" if !MAXSMP 15918c2ecf20Sopenharmony_ci range 1 10 15928c2ecf20Sopenharmony_ci default "10" if MAXSMP 15938c2ecf20Sopenharmony_ci default "6" if X86_64 15948c2ecf20Sopenharmony_ci default "3" 15958c2ecf20Sopenharmony_ci depends on NEED_MULTIPLE_NODES 15968c2ecf20Sopenharmony_ci help 15978c2ecf20Sopenharmony_ci Specify the maximum number of NUMA Nodes available on the target 15988c2ecf20Sopenharmony_ci system. Increases memory reserved to accommodate various tables. 15998c2ecf20Sopenharmony_ci 16008c2ecf20Sopenharmony_ciconfig ARCH_FLATMEM_ENABLE 16018c2ecf20Sopenharmony_ci def_bool y 16028c2ecf20Sopenharmony_ci depends on X86_32 && !NUMA 16038c2ecf20Sopenharmony_ci 16048c2ecf20Sopenharmony_ciconfig ARCH_SPARSEMEM_ENABLE 16058c2ecf20Sopenharmony_ci def_bool y 16068c2ecf20Sopenharmony_ci depends on X86_64 || NUMA || X86_32 || X86_32_NON_STANDARD 16078c2ecf20Sopenharmony_ci select SPARSEMEM_STATIC if X86_32 16088c2ecf20Sopenharmony_ci select SPARSEMEM_VMEMMAP_ENABLE if X86_64 16098c2ecf20Sopenharmony_ci 16108c2ecf20Sopenharmony_ciconfig ARCH_SPARSEMEM_DEFAULT 16118c2ecf20Sopenharmony_ci def_bool X86_64 || (NUMA && X86_32) 16128c2ecf20Sopenharmony_ci 16138c2ecf20Sopenharmony_ciconfig ARCH_SELECT_MEMORY_MODEL 16148c2ecf20Sopenharmony_ci def_bool y 16158c2ecf20Sopenharmony_ci depends on ARCH_SPARSEMEM_ENABLE 16168c2ecf20Sopenharmony_ci 16178c2ecf20Sopenharmony_ciconfig ARCH_MEMORY_PROBE 16188c2ecf20Sopenharmony_ci bool "Enable sysfs memory/probe interface" 16198c2ecf20Sopenharmony_ci depends on X86_64 && MEMORY_HOTPLUG 16208c2ecf20Sopenharmony_ci help 16218c2ecf20Sopenharmony_ci This option enables a sysfs memory/probe interface for testing. 16228c2ecf20Sopenharmony_ci See Documentation/admin-guide/mm/memory-hotplug.rst for more information. 16238c2ecf20Sopenharmony_ci If you are unsure how to answer this question, answer N. 16248c2ecf20Sopenharmony_ci 16258c2ecf20Sopenharmony_ciconfig ARCH_PROC_KCORE_TEXT 16268c2ecf20Sopenharmony_ci def_bool y 16278c2ecf20Sopenharmony_ci depends on X86_64 && PROC_KCORE 16288c2ecf20Sopenharmony_ci 16298c2ecf20Sopenharmony_ciconfig ILLEGAL_POINTER_VALUE 16308c2ecf20Sopenharmony_ci hex 16318c2ecf20Sopenharmony_ci default 0 if X86_32 16328c2ecf20Sopenharmony_ci default 0xdead000000000000 if X86_64 16338c2ecf20Sopenharmony_ci 16348c2ecf20Sopenharmony_ciconfig X86_PMEM_LEGACY_DEVICE 16358c2ecf20Sopenharmony_ci bool 16368c2ecf20Sopenharmony_ci 16378c2ecf20Sopenharmony_ciconfig X86_PMEM_LEGACY 16388c2ecf20Sopenharmony_ci tristate "Support non-standard NVDIMMs and ADR protected memory" 16398c2ecf20Sopenharmony_ci depends on PHYS_ADDR_T_64BIT 16408c2ecf20Sopenharmony_ci depends on BLK_DEV 16418c2ecf20Sopenharmony_ci select X86_PMEM_LEGACY_DEVICE 16428c2ecf20Sopenharmony_ci select NUMA_KEEP_MEMINFO if NUMA 16438c2ecf20Sopenharmony_ci select LIBNVDIMM 16448c2ecf20Sopenharmony_ci help 16458c2ecf20Sopenharmony_ci Treat memory marked using the non-standard e820 type of 12 as used 16468c2ecf20Sopenharmony_ci by the Intel Sandy Bridge-EP reference BIOS as protected memory. 16478c2ecf20Sopenharmony_ci The kernel will offer these regions to the 'pmem' driver so 16488c2ecf20Sopenharmony_ci they can be used for persistent storage. 16498c2ecf20Sopenharmony_ci 16508c2ecf20Sopenharmony_ci Say Y if unsure. 16518c2ecf20Sopenharmony_ci 16528c2ecf20Sopenharmony_ciconfig HIGHPTE 16538c2ecf20Sopenharmony_ci bool "Allocate 3rd-level pagetables from highmem" 16548c2ecf20Sopenharmony_ci depends on HIGHMEM 16558c2ecf20Sopenharmony_ci help 16568c2ecf20Sopenharmony_ci The VM uses one page table entry for each page of physical memory. 16578c2ecf20Sopenharmony_ci For systems with a lot of RAM, this can be wasteful of precious 16588c2ecf20Sopenharmony_ci low memory. Setting this option will put user-space page table 16598c2ecf20Sopenharmony_ci entries in high memory. 16608c2ecf20Sopenharmony_ci 16618c2ecf20Sopenharmony_ciconfig X86_CHECK_BIOS_CORRUPTION 16628c2ecf20Sopenharmony_ci bool "Check for low memory corruption" 16638c2ecf20Sopenharmony_ci help 16648c2ecf20Sopenharmony_ci Periodically check for memory corruption in low memory, which 16658c2ecf20Sopenharmony_ci is suspected to be caused by BIOS. Even when enabled in the 16668c2ecf20Sopenharmony_ci configuration, it is disabled at runtime. Enable it by 16678c2ecf20Sopenharmony_ci setting "memory_corruption_check=1" on the kernel command 16688c2ecf20Sopenharmony_ci line. By default it scans the low 64k of memory every 60 16698c2ecf20Sopenharmony_ci seconds; see the memory_corruption_check_size and 16708c2ecf20Sopenharmony_ci memory_corruption_check_period parameters in 16718c2ecf20Sopenharmony_ci Documentation/admin-guide/kernel-parameters.rst to adjust this. 16728c2ecf20Sopenharmony_ci 16738c2ecf20Sopenharmony_ci When enabled with the default parameters, this option has 16748c2ecf20Sopenharmony_ci almost no overhead, as it reserves a relatively small amount 16758c2ecf20Sopenharmony_ci of memory and scans it infrequently. It both detects corruption 16768c2ecf20Sopenharmony_ci and prevents it from affecting the running system. 16778c2ecf20Sopenharmony_ci 16788c2ecf20Sopenharmony_ci It is, however, intended as a diagnostic tool; if repeatable 16798c2ecf20Sopenharmony_ci BIOS-originated corruption always affects the same memory, 16808c2ecf20Sopenharmony_ci you can use memmap= to prevent the kernel from using that 16818c2ecf20Sopenharmony_ci memory. 16828c2ecf20Sopenharmony_ci 16838c2ecf20Sopenharmony_ciconfig X86_BOOTPARAM_MEMORY_CORRUPTION_CHECK 16848c2ecf20Sopenharmony_ci bool "Set the default setting of memory_corruption_check" 16858c2ecf20Sopenharmony_ci depends on X86_CHECK_BIOS_CORRUPTION 16868c2ecf20Sopenharmony_ci default y 16878c2ecf20Sopenharmony_ci help 16888c2ecf20Sopenharmony_ci Set whether the default state of memory_corruption_check is 16898c2ecf20Sopenharmony_ci on or off. 16908c2ecf20Sopenharmony_ci 16918c2ecf20Sopenharmony_ciconfig X86_RESERVE_LOW 16928c2ecf20Sopenharmony_ci int "Amount of low memory, in kilobytes, to reserve for the BIOS" 16938c2ecf20Sopenharmony_ci default 64 16948c2ecf20Sopenharmony_ci range 4 640 16958c2ecf20Sopenharmony_ci help 16968c2ecf20Sopenharmony_ci Specify the amount of low memory to reserve for the BIOS. 16978c2ecf20Sopenharmony_ci 16988c2ecf20Sopenharmony_ci The first page contains BIOS data structures that the kernel 16998c2ecf20Sopenharmony_ci must not use, so that page must always be reserved. 17008c2ecf20Sopenharmony_ci 17018c2ecf20Sopenharmony_ci By default we reserve the first 64K of physical RAM, as a 17028c2ecf20Sopenharmony_ci number of BIOSes are known to corrupt that memory range 17038c2ecf20Sopenharmony_ci during events such as suspend/resume or monitor cable 17048c2ecf20Sopenharmony_ci insertion, so it must not be used by the kernel. 17058c2ecf20Sopenharmony_ci 17068c2ecf20Sopenharmony_ci You can set this to 4 if you are absolutely sure that you 17078c2ecf20Sopenharmony_ci trust the BIOS to get all its memory reservations and usages 17088c2ecf20Sopenharmony_ci right. If you know your BIOS have problems beyond the 17098c2ecf20Sopenharmony_ci default 64K area, you can set this to 640 to avoid using the 17108c2ecf20Sopenharmony_ci entire low memory range. 17118c2ecf20Sopenharmony_ci 17128c2ecf20Sopenharmony_ci If you have doubts about the BIOS (e.g. suspend/resume does 17138c2ecf20Sopenharmony_ci not work or there's kernel crashes after certain hardware 17148c2ecf20Sopenharmony_ci hotplug events) then you might want to enable 17158c2ecf20Sopenharmony_ci X86_CHECK_BIOS_CORRUPTION=y to allow the kernel to check 17168c2ecf20Sopenharmony_ci typical corruption patterns. 17178c2ecf20Sopenharmony_ci 17188c2ecf20Sopenharmony_ci Leave this to the default value of 64 if you are unsure. 17198c2ecf20Sopenharmony_ci 17208c2ecf20Sopenharmony_ciconfig MATH_EMULATION 17218c2ecf20Sopenharmony_ci bool 17228c2ecf20Sopenharmony_ci depends on MODIFY_LDT_SYSCALL 17238c2ecf20Sopenharmony_ci prompt "Math emulation" if X86_32 && (M486SX || MELAN) 17248c2ecf20Sopenharmony_ci help 17258c2ecf20Sopenharmony_ci Linux can emulate a math coprocessor (used for floating point 17268c2ecf20Sopenharmony_ci operations) if you don't have one. 486DX and Pentium processors have 17278c2ecf20Sopenharmony_ci a math coprocessor built in, 486SX and 386 do not, unless you added 17288c2ecf20Sopenharmony_ci a 487DX or 387, respectively. (The messages during boot time can 17298c2ecf20Sopenharmony_ci give you some hints here ["man dmesg"].) Everyone needs either a 17308c2ecf20Sopenharmony_ci coprocessor or this emulation. 17318c2ecf20Sopenharmony_ci 17328c2ecf20Sopenharmony_ci If you don't have a math coprocessor, you need to say Y here; if you 17338c2ecf20Sopenharmony_ci say Y here even though you have a coprocessor, the coprocessor will 17348c2ecf20Sopenharmony_ci be used nevertheless. (This behavior can be changed with the kernel 17358c2ecf20Sopenharmony_ci command line option "no387", which comes handy if your coprocessor 17368c2ecf20Sopenharmony_ci is broken. Try "man bootparam" or see the documentation of your boot 17378c2ecf20Sopenharmony_ci loader (lilo or loadlin) about how to pass options to the kernel at 17388c2ecf20Sopenharmony_ci boot time.) This means that it is a good idea to say Y here if you 17398c2ecf20Sopenharmony_ci intend to use this kernel on different machines. 17408c2ecf20Sopenharmony_ci 17418c2ecf20Sopenharmony_ci More information about the internals of the Linux math coprocessor 17428c2ecf20Sopenharmony_ci emulation can be found in <file:arch/x86/math-emu/README>. 17438c2ecf20Sopenharmony_ci 17448c2ecf20Sopenharmony_ci If you are not sure, say Y; apart from resulting in a 66 KB bigger 17458c2ecf20Sopenharmony_ci kernel, it won't hurt. 17468c2ecf20Sopenharmony_ci 17478c2ecf20Sopenharmony_ciconfig MTRR 17488c2ecf20Sopenharmony_ci def_bool y 17498c2ecf20Sopenharmony_ci prompt "MTRR (Memory Type Range Register) support" if EXPERT 17508c2ecf20Sopenharmony_ci help 17518c2ecf20Sopenharmony_ci On Intel P6 family processors (Pentium Pro, Pentium II and later) 17528c2ecf20Sopenharmony_ci the Memory Type Range Registers (MTRRs) may be used to control 17538c2ecf20Sopenharmony_ci processor access to memory ranges. This is most useful if you have 17548c2ecf20Sopenharmony_ci a video (VGA) card on a PCI or AGP bus. Enabling write-combining 17558c2ecf20Sopenharmony_ci allows bus write transfers to be combined into a larger transfer 17568c2ecf20Sopenharmony_ci before bursting over the PCI/AGP bus. This can increase performance 17578c2ecf20Sopenharmony_ci of image write operations 2.5 times or more. Saying Y here creates a 17588c2ecf20Sopenharmony_ci /proc/mtrr file which may be used to manipulate your processor's 17598c2ecf20Sopenharmony_ci MTRRs. Typically the X server should use this. 17608c2ecf20Sopenharmony_ci 17618c2ecf20Sopenharmony_ci This code has a reasonably generic interface so that similar 17628c2ecf20Sopenharmony_ci control registers on other processors can be easily supported 17638c2ecf20Sopenharmony_ci as well: 17648c2ecf20Sopenharmony_ci 17658c2ecf20Sopenharmony_ci The Cyrix 6x86, 6x86MX and M II processors have Address Range 17668c2ecf20Sopenharmony_ci Registers (ARRs) which provide a similar functionality to MTRRs. For 17678c2ecf20Sopenharmony_ci these, the ARRs are used to emulate the MTRRs. 17688c2ecf20Sopenharmony_ci The AMD K6-2 (stepping 8 and above) and K6-3 processors have two 17698c2ecf20Sopenharmony_ci MTRRs. The Centaur C6 (WinChip) has 8 MCRs, allowing 17708c2ecf20Sopenharmony_ci write-combining. All of these processors are supported by this code 17718c2ecf20Sopenharmony_ci and it makes sense to say Y here if you have one of them. 17728c2ecf20Sopenharmony_ci 17738c2ecf20Sopenharmony_ci Saying Y here also fixes a problem with buggy SMP BIOSes which only 17748c2ecf20Sopenharmony_ci set the MTRRs for the boot CPU and not for the secondary CPUs. This 17758c2ecf20Sopenharmony_ci can lead to all sorts of problems, so it's good to say Y here. 17768c2ecf20Sopenharmony_ci 17778c2ecf20Sopenharmony_ci You can safely say Y even if your machine doesn't have MTRRs, you'll 17788c2ecf20Sopenharmony_ci just add about 9 KB to your kernel. 17798c2ecf20Sopenharmony_ci 17808c2ecf20Sopenharmony_ci See <file:Documentation/x86/mtrr.rst> for more information. 17818c2ecf20Sopenharmony_ci 17828c2ecf20Sopenharmony_ciconfig MTRR_SANITIZER 17838c2ecf20Sopenharmony_ci def_bool y 17848c2ecf20Sopenharmony_ci prompt "MTRR cleanup support" 17858c2ecf20Sopenharmony_ci depends on MTRR 17868c2ecf20Sopenharmony_ci help 17878c2ecf20Sopenharmony_ci Convert MTRR layout from continuous to discrete, so X drivers can 17888c2ecf20Sopenharmony_ci add writeback entries. 17898c2ecf20Sopenharmony_ci 17908c2ecf20Sopenharmony_ci Can be disabled with disable_mtrr_cleanup on the kernel command line. 17918c2ecf20Sopenharmony_ci The largest mtrr entry size for a continuous block can be set with 17928c2ecf20Sopenharmony_ci mtrr_chunk_size. 17938c2ecf20Sopenharmony_ci 17948c2ecf20Sopenharmony_ci If unsure, say Y. 17958c2ecf20Sopenharmony_ci 17968c2ecf20Sopenharmony_ciconfig MTRR_SANITIZER_ENABLE_DEFAULT 17978c2ecf20Sopenharmony_ci int "MTRR cleanup enable value (0-1)" 17988c2ecf20Sopenharmony_ci range 0 1 17998c2ecf20Sopenharmony_ci default "0" 18008c2ecf20Sopenharmony_ci depends on MTRR_SANITIZER 18018c2ecf20Sopenharmony_ci help 18028c2ecf20Sopenharmony_ci Enable mtrr cleanup default value 18038c2ecf20Sopenharmony_ci 18048c2ecf20Sopenharmony_ciconfig MTRR_SANITIZER_SPARE_REG_NR_DEFAULT 18058c2ecf20Sopenharmony_ci int "MTRR cleanup spare reg num (0-7)" 18068c2ecf20Sopenharmony_ci range 0 7 18078c2ecf20Sopenharmony_ci default "1" 18088c2ecf20Sopenharmony_ci depends on MTRR_SANITIZER 18098c2ecf20Sopenharmony_ci help 18108c2ecf20Sopenharmony_ci mtrr cleanup spare entries default, it can be changed via 18118c2ecf20Sopenharmony_ci mtrr_spare_reg_nr=N on the kernel command line. 18128c2ecf20Sopenharmony_ci 18138c2ecf20Sopenharmony_ciconfig X86_PAT 18148c2ecf20Sopenharmony_ci def_bool y 18158c2ecf20Sopenharmony_ci prompt "x86 PAT support" if EXPERT 18168c2ecf20Sopenharmony_ci depends on MTRR 18178c2ecf20Sopenharmony_ci help 18188c2ecf20Sopenharmony_ci Use PAT attributes to setup page level cache control. 18198c2ecf20Sopenharmony_ci 18208c2ecf20Sopenharmony_ci PATs are the modern equivalents of MTRRs and are much more 18218c2ecf20Sopenharmony_ci flexible than MTRRs. 18228c2ecf20Sopenharmony_ci 18238c2ecf20Sopenharmony_ci Say N here if you see bootup problems (boot crash, boot hang, 18248c2ecf20Sopenharmony_ci spontaneous reboots) or a non-working video driver. 18258c2ecf20Sopenharmony_ci 18268c2ecf20Sopenharmony_ci If unsure, say Y. 18278c2ecf20Sopenharmony_ci 18288c2ecf20Sopenharmony_ciconfig ARCH_USES_PG_UNCACHED 18298c2ecf20Sopenharmony_ci def_bool y 18308c2ecf20Sopenharmony_ci depends on X86_PAT 18318c2ecf20Sopenharmony_ci 18328c2ecf20Sopenharmony_ciconfig ARCH_RANDOM 18338c2ecf20Sopenharmony_ci def_bool y 18348c2ecf20Sopenharmony_ci prompt "x86 architectural random number generator" if EXPERT 18358c2ecf20Sopenharmony_ci help 18368c2ecf20Sopenharmony_ci Enable the x86 architectural RDRAND instruction 18378c2ecf20Sopenharmony_ci (Intel Bull Mountain technology) to generate random numbers. 18388c2ecf20Sopenharmony_ci If supported, this is a high bandwidth, cryptographically 18398c2ecf20Sopenharmony_ci secure hardware random number generator. 18408c2ecf20Sopenharmony_ci 18418c2ecf20Sopenharmony_ciconfig X86_SMAP 18428c2ecf20Sopenharmony_ci def_bool y 18438c2ecf20Sopenharmony_ci prompt "Supervisor Mode Access Prevention" if EXPERT 18448c2ecf20Sopenharmony_ci help 18458c2ecf20Sopenharmony_ci Supervisor Mode Access Prevention (SMAP) is a security 18468c2ecf20Sopenharmony_ci feature in newer Intel processors. There is a small 18478c2ecf20Sopenharmony_ci performance cost if this enabled and turned on; there is 18488c2ecf20Sopenharmony_ci also a small increase in the kernel size if this is enabled. 18498c2ecf20Sopenharmony_ci 18508c2ecf20Sopenharmony_ci If unsure, say Y. 18518c2ecf20Sopenharmony_ci 18528c2ecf20Sopenharmony_ciconfig X86_UMIP 18538c2ecf20Sopenharmony_ci def_bool y 18548c2ecf20Sopenharmony_ci prompt "User Mode Instruction Prevention" if EXPERT 18558c2ecf20Sopenharmony_ci help 18568c2ecf20Sopenharmony_ci User Mode Instruction Prevention (UMIP) is a security feature in 18578c2ecf20Sopenharmony_ci some x86 processors. If enabled, a general protection fault is 18588c2ecf20Sopenharmony_ci issued if the SGDT, SLDT, SIDT, SMSW or STR instructions are 18598c2ecf20Sopenharmony_ci executed in user mode. These instructions unnecessarily expose 18608c2ecf20Sopenharmony_ci information about the hardware state. 18618c2ecf20Sopenharmony_ci 18628c2ecf20Sopenharmony_ci The vast majority of applications do not use these instructions. 18638c2ecf20Sopenharmony_ci For the very few that do, software emulation is provided in 18648c2ecf20Sopenharmony_ci specific cases in protected and virtual-8086 modes. Emulated 18658c2ecf20Sopenharmony_ci results are dummy. 18668c2ecf20Sopenharmony_ci 18678c2ecf20Sopenharmony_ciconfig X86_INTEL_MEMORY_PROTECTION_KEYS 18688c2ecf20Sopenharmony_ci prompt "Memory Protection Keys" 18698c2ecf20Sopenharmony_ci def_bool y 18708c2ecf20Sopenharmony_ci # Note: only available in 64-bit mode 18718c2ecf20Sopenharmony_ci depends on X86_64 && (CPU_SUP_INTEL || CPU_SUP_AMD) 18728c2ecf20Sopenharmony_ci select ARCH_USES_HIGH_VMA_FLAGS 18738c2ecf20Sopenharmony_ci select ARCH_HAS_PKEYS 18748c2ecf20Sopenharmony_ci help 18758c2ecf20Sopenharmony_ci Memory Protection Keys provides a mechanism for enforcing 18768c2ecf20Sopenharmony_ci page-based protections, but without requiring modification of the 18778c2ecf20Sopenharmony_ci page tables when an application changes protection domains. 18788c2ecf20Sopenharmony_ci 18798c2ecf20Sopenharmony_ci For details, see Documentation/core-api/protection-keys.rst 18808c2ecf20Sopenharmony_ci 18818c2ecf20Sopenharmony_ci If unsure, say y. 18828c2ecf20Sopenharmony_ci 18838c2ecf20Sopenharmony_cichoice 18848c2ecf20Sopenharmony_ci prompt "TSX enable mode" 18858c2ecf20Sopenharmony_ci depends on CPU_SUP_INTEL 18868c2ecf20Sopenharmony_ci default X86_INTEL_TSX_MODE_OFF 18878c2ecf20Sopenharmony_ci help 18888c2ecf20Sopenharmony_ci Intel's TSX (Transactional Synchronization Extensions) feature 18898c2ecf20Sopenharmony_ci allows to optimize locking protocols through lock elision which 18908c2ecf20Sopenharmony_ci can lead to a noticeable performance boost. 18918c2ecf20Sopenharmony_ci 18928c2ecf20Sopenharmony_ci On the other hand it has been shown that TSX can be exploited 18938c2ecf20Sopenharmony_ci to form side channel attacks (e.g. TAA) and chances are there 18948c2ecf20Sopenharmony_ci will be more of those attacks discovered in the future. 18958c2ecf20Sopenharmony_ci 18968c2ecf20Sopenharmony_ci Therefore TSX is not enabled by default (aka tsx=off). An admin 18978c2ecf20Sopenharmony_ci might override this decision by tsx=on the command line parameter. 18988c2ecf20Sopenharmony_ci Even with TSX enabled, the kernel will attempt to enable the best 18998c2ecf20Sopenharmony_ci possible TAA mitigation setting depending on the microcode available 19008c2ecf20Sopenharmony_ci for the particular machine. 19018c2ecf20Sopenharmony_ci 19028c2ecf20Sopenharmony_ci This option allows to set the default tsx mode between tsx=on, =off 19038c2ecf20Sopenharmony_ci and =auto. See Documentation/admin-guide/kernel-parameters.txt for more 19048c2ecf20Sopenharmony_ci details. 19058c2ecf20Sopenharmony_ci 19068c2ecf20Sopenharmony_ci Say off if not sure, auto if TSX is in use but it should be used on safe 19078c2ecf20Sopenharmony_ci platforms or on if TSX is in use and the security aspect of tsx is not 19088c2ecf20Sopenharmony_ci relevant. 19098c2ecf20Sopenharmony_ci 19108c2ecf20Sopenharmony_ciconfig X86_INTEL_TSX_MODE_OFF 19118c2ecf20Sopenharmony_ci bool "off" 19128c2ecf20Sopenharmony_ci help 19138c2ecf20Sopenharmony_ci TSX is disabled if possible - equals to tsx=off command line parameter. 19148c2ecf20Sopenharmony_ci 19158c2ecf20Sopenharmony_ciconfig X86_INTEL_TSX_MODE_ON 19168c2ecf20Sopenharmony_ci bool "on" 19178c2ecf20Sopenharmony_ci help 19188c2ecf20Sopenharmony_ci TSX is always enabled on TSX capable HW - equals the tsx=on command 19198c2ecf20Sopenharmony_ci line parameter. 19208c2ecf20Sopenharmony_ci 19218c2ecf20Sopenharmony_ciconfig X86_INTEL_TSX_MODE_AUTO 19228c2ecf20Sopenharmony_ci bool "auto" 19238c2ecf20Sopenharmony_ci help 19248c2ecf20Sopenharmony_ci TSX is enabled on TSX capable HW that is believed to be safe against 19258c2ecf20Sopenharmony_ci side channel attacks- equals the tsx=auto command line parameter. 19268c2ecf20Sopenharmony_ciendchoice 19278c2ecf20Sopenharmony_ci 19288c2ecf20Sopenharmony_ciconfig EFI 19298c2ecf20Sopenharmony_ci bool "EFI runtime service support" 19308c2ecf20Sopenharmony_ci depends on ACPI 19318c2ecf20Sopenharmony_ci select UCS2_STRING 19328c2ecf20Sopenharmony_ci select EFI_RUNTIME_WRAPPERS 19338c2ecf20Sopenharmony_ci select ARCH_USE_MEMREMAP_PROT 19348c2ecf20Sopenharmony_ci help 19358c2ecf20Sopenharmony_ci This enables the kernel to use EFI runtime services that are 19368c2ecf20Sopenharmony_ci available (such as the EFI variable services). 19378c2ecf20Sopenharmony_ci 19388c2ecf20Sopenharmony_ci This option is only useful on systems that have EFI firmware. 19398c2ecf20Sopenharmony_ci In addition, you should use the latest ELILO loader available 19408c2ecf20Sopenharmony_ci at <http://elilo.sourceforge.net> in order to take advantage 19418c2ecf20Sopenharmony_ci of EFI runtime services. However, even with this option, the 19428c2ecf20Sopenharmony_ci resultant kernel should continue to boot on existing non-EFI 19438c2ecf20Sopenharmony_ci platforms. 19448c2ecf20Sopenharmony_ci 19458c2ecf20Sopenharmony_ciconfig EFI_STUB 19468c2ecf20Sopenharmony_ci bool "EFI stub support" 19478c2ecf20Sopenharmony_ci depends on EFI && !X86_USE_3DNOW 19488c2ecf20Sopenharmony_ci select RELOCATABLE 19498c2ecf20Sopenharmony_ci help 19508c2ecf20Sopenharmony_ci This kernel feature allows a bzImage to be loaded directly 19518c2ecf20Sopenharmony_ci by EFI firmware without the use of a bootloader. 19528c2ecf20Sopenharmony_ci 19538c2ecf20Sopenharmony_ci See Documentation/admin-guide/efi-stub.rst for more information. 19548c2ecf20Sopenharmony_ci 19558c2ecf20Sopenharmony_ciconfig EFI_MIXED 19568c2ecf20Sopenharmony_ci bool "EFI mixed-mode support" 19578c2ecf20Sopenharmony_ci depends on EFI_STUB && X86_64 19588c2ecf20Sopenharmony_ci help 19598c2ecf20Sopenharmony_ci Enabling this feature allows a 64-bit kernel to be booted 19608c2ecf20Sopenharmony_ci on a 32-bit firmware, provided that your CPU supports 64-bit 19618c2ecf20Sopenharmony_ci mode. 19628c2ecf20Sopenharmony_ci 19638c2ecf20Sopenharmony_ci Note that it is not possible to boot a mixed-mode enabled 19648c2ecf20Sopenharmony_ci kernel via the EFI boot stub - a bootloader that supports 19658c2ecf20Sopenharmony_ci the EFI handover protocol must be used. 19668c2ecf20Sopenharmony_ci 19678c2ecf20Sopenharmony_ci If unsure, say N. 19688c2ecf20Sopenharmony_ci 19698c2ecf20Sopenharmony_cisource "kernel/Kconfig.hz" 19708c2ecf20Sopenharmony_ci 19718c2ecf20Sopenharmony_ciconfig KEXEC 19728c2ecf20Sopenharmony_ci bool "kexec system call" 19738c2ecf20Sopenharmony_ci select KEXEC_CORE 19748c2ecf20Sopenharmony_ci help 19758c2ecf20Sopenharmony_ci kexec is a system call that implements the ability to shutdown your 19768c2ecf20Sopenharmony_ci current kernel, and to start another kernel. It is like a reboot 19778c2ecf20Sopenharmony_ci but it is independent of the system firmware. And like a reboot 19788c2ecf20Sopenharmony_ci you can start any kernel with it, not just Linux. 19798c2ecf20Sopenharmony_ci 19808c2ecf20Sopenharmony_ci The name comes from the similarity to the exec system call. 19818c2ecf20Sopenharmony_ci 19828c2ecf20Sopenharmony_ci It is an ongoing process to be certain the hardware in a machine 19838c2ecf20Sopenharmony_ci is properly shutdown, so do not be surprised if this code does not 19848c2ecf20Sopenharmony_ci initially work for you. As of this writing the exact hardware 19858c2ecf20Sopenharmony_ci interface is strongly in flux, so no good recommendation can be 19868c2ecf20Sopenharmony_ci made. 19878c2ecf20Sopenharmony_ci 19888c2ecf20Sopenharmony_ciconfig KEXEC_FILE 19898c2ecf20Sopenharmony_ci bool "kexec file based system call" 19908c2ecf20Sopenharmony_ci select KEXEC_CORE 19918c2ecf20Sopenharmony_ci select BUILD_BIN2C 19928c2ecf20Sopenharmony_ci depends on X86_64 19938c2ecf20Sopenharmony_ci depends on CRYPTO=y 19948c2ecf20Sopenharmony_ci depends on CRYPTO_SHA256=y 19958c2ecf20Sopenharmony_ci help 19968c2ecf20Sopenharmony_ci This is new version of kexec system call. This system call is 19978c2ecf20Sopenharmony_ci file based and takes file descriptors as system call argument 19988c2ecf20Sopenharmony_ci for kernel and initramfs as opposed to list of segments as 19998c2ecf20Sopenharmony_ci accepted by previous system call. 20008c2ecf20Sopenharmony_ci 20018c2ecf20Sopenharmony_ciconfig ARCH_HAS_KEXEC_PURGATORY 20028c2ecf20Sopenharmony_ci def_bool KEXEC_FILE 20038c2ecf20Sopenharmony_ci 20048c2ecf20Sopenharmony_ciconfig KEXEC_SIG 20058c2ecf20Sopenharmony_ci bool "Verify kernel signature during kexec_file_load() syscall" 20068c2ecf20Sopenharmony_ci depends on KEXEC_FILE 20078c2ecf20Sopenharmony_ci help 20088c2ecf20Sopenharmony_ci 20098c2ecf20Sopenharmony_ci This option makes the kexec_file_load() syscall check for a valid 20108c2ecf20Sopenharmony_ci signature of the kernel image. The image can still be loaded without 20118c2ecf20Sopenharmony_ci a valid signature unless you also enable KEXEC_SIG_FORCE, though if 20128c2ecf20Sopenharmony_ci there's a signature that we can check, then it must be valid. 20138c2ecf20Sopenharmony_ci 20148c2ecf20Sopenharmony_ci In addition to this option, you need to enable signature 20158c2ecf20Sopenharmony_ci verification for the corresponding kernel image type being 20168c2ecf20Sopenharmony_ci loaded in order for this to work. 20178c2ecf20Sopenharmony_ci 20188c2ecf20Sopenharmony_ciconfig KEXEC_SIG_FORCE 20198c2ecf20Sopenharmony_ci bool "Require a valid signature in kexec_file_load() syscall" 20208c2ecf20Sopenharmony_ci depends on KEXEC_SIG 20218c2ecf20Sopenharmony_ci help 20228c2ecf20Sopenharmony_ci This option makes kernel signature verification mandatory for 20238c2ecf20Sopenharmony_ci the kexec_file_load() syscall. 20248c2ecf20Sopenharmony_ci 20258c2ecf20Sopenharmony_ciconfig KEXEC_BZIMAGE_VERIFY_SIG 20268c2ecf20Sopenharmony_ci bool "Enable bzImage signature verification support" 20278c2ecf20Sopenharmony_ci depends on KEXEC_SIG 20288c2ecf20Sopenharmony_ci depends on SIGNED_PE_FILE_VERIFICATION 20298c2ecf20Sopenharmony_ci select SYSTEM_TRUSTED_KEYRING 20308c2ecf20Sopenharmony_ci help 20318c2ecf20Sopenharmony_ci Enable bzImage signature verification support. 20328c2ecf20Sopenharmony_ci 20338c2ecf20Sopenharmony_ciconfig CRASH_DUMP 20348c2ecf20Sopenharmony_ci bool "kernel crash dumps" 20358c2ecf20Sopenharmony_ci depends on X86_64 || (X86_32 && HIGHMEM) 20368c2ecf20Sopenharmony_ci help 20378c2ecf20Sopenharmony_ci Generate crash dump after being started by kexec. 20388c2ecf20Sopenharmony_ci This should be normally only set in special crash dump kernels 20398c2ecf20Sopenharmony_ci which are loaded in the main kernel with kexec-tools into 20408c2ecf20Sopenharmony_ci a specially reserved region and then later executed after 20418c2ecf20Sopenharmony_ci a crash by kdump/kexec. The crash dump kernel must be compiled 20428c2ecf20Sopenharmony_ci to a memory address not used by the main kernel or BIOS using 20438c2ecf20Sopenharmony_ci PHYSICAL_START, or it must be built as a relocatable image 20448c2ecf20Sopenharmony_ci (CONFIG_RELOCATABLE=y). 20458c2ecf20Sopenharmony_ci For more details see Documentation/admin-guide/kdump/kdump.rst 20468c2ecf20Sopenharmony_ci 20478c2ecf20Sopenharmony_ciconfig KEXEC_JUMP 20488c2ecf20Sopenharmony_ci bool "kexec jump" 20498c2ecf20Sopenharmony_ci depends on KEXEC && HIBERNATION 20508c2ecf20Sopenharmony_ci help 20518c2ecf20Sopenharmony_ci Jump between original kernel and kexeced kernel and invoke 20528c2ecf20Sopenharmony_ci code in physical address mode via KEXEC 20538c2ecf20Sopenharmony_ci 20548c2ecf20Sopenharmony_ciconfig PHYSICAL_START 20558c2ecf20Sopenharmony_ci hex "Physical address where the kernel is loaded" if (EXPERT || CRASH_DUMP) 20568c2ecf20Sopenharmony_ci default "0x1000000" 20578c2ecf20Sopenharmony_ci help 20588c2ecf20Sopenharmony_ci This gives the physical address where the kernel is loaded. 20598c2ecf20Sopenharmony_ci 20608c2ecf20Sopenharmony_ci If kernel is a not relocatable (CONFIG_RELOCATABLE=n) then 20618c2ecf20Sopenharmony_ci bzImage will decompress itself to above physical address and 20628c2ecf20Sopenharmony_ci run from there. Otherwise, bzImage will run from the address where 20638c2ecf20Sopenharmony_ci it has been loaded by the boot loader and will ignore above physical 20648c2ecf20Sopenharmony_ci address. 20658c2ecf20Sopenharmony_ci 20668c2ecf20Sopenharmony_ci In normal kdump cases one does not have to set/change this option 20678c2ecf20Sopenharmony_ci as now bzImage can be compiled as a completely relocatable image 20688c2ecf20Sopenharmony_ci (CONFIG_RELOCATABLE=y) and be used to load and run from a different 20698c2ecf20Sopenharmony_ci address. This option is mainly useful for the folks who don't want 20708c2ecf20Sopenharmony_ci to use a bzImage for capturing the crash dump and want to use a 20718c2ecf20Sopenharmony_ci vmlinux instead. vmlinux is not relocatable hence a kernel needs 20728c2ecf20Sopenharmony_ci to be specifically compiled to run from a specific memory area 20738c2ecf20Sopenharmony_ci (normally a reserved region) and this option comes handy. 20748c2ecf20Sopenharmony_ci 20758c2ecf20Sopenharmony_ci So if you are using bzImage for capturing the crash dump, 20768c2ecf20Sopenharmony_ci leave the value here unchanged to 0x1000000 and set 20778c2ecf20Sopenharmony_ci CONFIG_RELOCATABLE=y. Otherwise if you plan to use vmlinux 20788c2ecf20Sopenharmony_ci for capturing the crash dump change this value to start of 20798c2ecf20Sopenharmony_ci the reserved region. In other words, it can be set based on 20808c2ecf20Sopenharmony_ci the "X" value as specified in the "crashkernel=YM@XM" 20818c2ecf20Sopenharmony_ci command line boot parameter passed to the panic-ed 20828c2ecf20Sopenharmony_ci kernel. Please take a look at Documentation/admin-guide/kdump/kdump.rst 20838c2ecf20Sopenharmony_ci for more details about crash dumps. 20848c2ecf20Sopenharmony_ci 20858c2ecf20Sopenharmony_ci Usage of bzImage for capturing the crash dump is recommended as 20868c2ecf20Sopenharmony_ci one does not have to build two kernels. Same kernel can be used 20878c2ecf20Sopenharmony_ci as production kernel and capture kernel. Above option should have 20888c2ecf20Sopenharmony_ci gone away after relocatable bzImage support is introduced. But it 20898c2ecf20Sopenharmony_ci is present because there are users out there who continue to use 20908c2ecf20Sopenharmony_ci vmlinux for dump capture. This option should go away down the 20918c2ecf20Sopenharmony_ci line. 20928c2ecf20Sopenharmony_ci 20938c2ecf20Sopenharmony_ci Don't change this unless you know what you are doing. 20948c2ecf20Sopenharmony_ci 20958c2ecf20Sopenharmony_ciconfig RELOCATABLE 20968c2ecf20Sopenharmony_ci bool "Build a relocatable kernel" 20978c2ecf20Sopenharmony_ci default y 20988c2ecf20Sopenharmony_ci help 20998c2ecf20Sopenharmony_ci This builds a kernel image that retains relocation information 21008c2ecf20Sopenharmony_ci so it can be loaded someplace besides the default 1MB. 21018c2ecf20Sopenharmony_ci The relocations tend to make the kernel binary about 10% larger, 21028c2ecf20Sopenharmony_ci but are discarded at runtime. 21038c2ecf20Sopenharmony_ci 21048c2ecf20Sopenharmony_ci One use is for the kexec on panic case where the recovery kernel 21058c2ecf20Sopenharmony_ci must live at a different physical address than the primary 21068c2ecf20Sopenharmony_ci kernel. 21078c2ecf20Sopenharmony_ci 21088c2ecf20Sopenharmony_ci Note: If CONFIG_RELOCATABLE=y, then the kernel runs from the address 21098c2ecf20Sopenharmony_ci it has been loaded at and the compile time physical address 21108c2ecf20Sopenharmony_ci (CONFIG_PHYSICAL_START) is used as the minimum location. 21118c2ecf20Sopenharmony_ci 21128c2ecf20Sopenharmony_ciconfig RANDOMIZE_BASE 21138c2ecf20Sopenharmony_ci bool "Randomize the address of the kernel image (KASLR)" 21148c2ecf20Sopenharmony_ci depends on RELOCATABLE 21158c2ecf20Sopenharmony_ci default y 21168c2ecf20Sopenharmony_ci help 21178c2ecf20Sopenharmony_ci In support of Kernel Address Space Layout Randomization (KASLR), 21188c2ecf20Sopenharmony_ci this randomizes the physical address at which the kernel image 21198c2ecf20Sopenharmony_ci is decompressed and the virtual address where the kernel 21208c2ecf20Sopenharmony_ci image is mapped, as a security feature that deters exploit 21218c2ecf20Sopenharmony_ci attempts relying on knowledge of the location of kernel 21228c2ecf20Sopenharmony_ci code internals. 21238c2ecf20Sopenharmony_ci 21248c2ecf20Sopenharmony_ci On 64-bit, the kernel physical and virtual addresses are 21258c2ecf20Sopenharmony_ci randomized separately. The physical address will be anywhere 21268c2ecf20Sopenharmony_ci between 16MB and the top of physical memory (up to 64TB). The 21278c2ecf20Sopenharmony_ci virtual address will be randomized from 16MB up to 1GB (9 bits 21288c2ecf20Sopenharmony_ci of entropy). Note that this also reduces the memory space 21298c2ecf20Sopenharmony_ci available to kernel modules from 1.5GB to 1GB. 21308c2ecf20Sopenharmony_ci 21318c2ecf20Sopenharmony_ci On 32-bit, the kernel physical and virtual addresses are 21328c2ecf20Sopenharmony_ci randomized together. They will be randomized from 16MB up to 21338c2ecf20Sopenharmony_ci 512MB (8 bits of entropy). 21348c2ecf20Sopenharmony_ci 21358c2ecf20Sopenharmony_ci Entropy is generated using the RDRAND instruction if it is 21368c2ecf20Sopenharmony_ci supported. If RDTSC is supported, its value is mixed into 21378c2ecf20Sopenharmony_ci the entropy pool as well. If neither RDRAND nor RDTSC are 21388c2ecf20Sopenharmony_ci supported, then entropy is read from the i8254 timer. The 21398c2ecf20Sopenharmony_ci usable entropy is limited by the kernel being built using 21408c2ecf20Sopenharmony_ci 2GB addressing, and that PHYSICAL_ALIGN must be at a 21418c2ecf20Sopenharmony_ci minimum of 2MB. As a result, only 10 bits of entropy are 21428c2ecf20Sopenharmony_ci theoretically possible, but the implementations are further 21438c2ecf20Sopenharmony_ci limited due to memory layouts. 21448c2ecf20Sopenharmony_ci 21458c2ecf20Sopenharmony_ci If unsure, say Y. 21468c2ecf20Sopenharmony_ci 21478c2ecf20Sopenharmony_ci# Relocation on x86 needs some additional build support 21488c2ecf20Sopenharmony_ciconfig X86_NEED_RELOCS 21498c2ecf20Sopenharmony_ci def_bool y 21508c2ecf20Sopenharmony_ci depends on RANDOMIZE_BASE || (X86_32 && RELOCATABLE) 21518c2ecf20Sopenharmony_ci 21528c2ecf20Sopenharmony_ciconfig PHYSICAL_ALIGN 21538c2ecf20Sopenharmony_ci hex "Alignment value to which kernel should be aligned" 21548c2ecf20Sopenharmony_ci default "0x200000" 21558c2ecf20Sopenharmony_ci range 0x2000 0x1000000 if X86_32 21568c2ecf20Sopenharmony_ci range 0x200000 0x1000000 if X86_64 21578c2ecf20Sopenharmony_ci help 21588c2ecf20Sopenharmony_ci This value puts the alignment restrictions on physical address 21598c2ecf20Sopenharmony_ci where kernel is loaded and run from. Kernel is compiled for an 21608c2ecf20Sopenharmony_ci address which meets above alignment restriction. 21618c2ecf20Sopenharmony_ci 21628c2ecf20Sopenharmony_ci If bootloader loads the kernel at a non-aligned address and 21638c2ecf20Sopenharmony_ci CONFIG_RELOCATABLE is set, kernel will move itself to nearest 21648c2ecf20Sopenharmony_ci address aligned to above value and run from there. 21658c2ecf20Sopenharmony_ci 21668c2ecf20Sopenharmony_ci If bootloader loads the kernel at a non-aligned address and 21678c2ecf20Sopenharmony_ci CONFIG_RELOCATABLE is not set, kernel will ignore the run time 21688c2ecf20Sopenharmony_ci load address and decompress itself to the address it has been 21698c2ecf20Sopenharmony_ci compiled for and run from there. The address for which kernel is 21708c2ecf20Sopenharmony_ci compiled already meets above alignment restrictions. Hence the 21718c2ecf20Sopenharmony_ci end result is that kernel runs from a physical address meeting 21728c2ecf20Sopenharmony_ci above alignment restrictions. 21738c2ecf20Sopenharmony_ci 21748c2ecf20Sopenharmony_ci On 32-bit this value must be a multiple of 0x2000. On 64-bit 21758c2ecf20Sopenharmony_ci this value must be a multiple of 0x200000. 21768c2ecf20Sopenharmony_ci 21778c2ecf20Sopenharmony_ci Don't change this unless you know what you are doing. 21788c2ecf20Sopenharmony_ci 21798c2ecf20Sopenharmony_ciconfig DYNAMIC_MEMORY_LAYOUT 21808c2ecf20Sopenharmony_ci bool 21818c2ecf20Sopenharmony_ci help 21828c2ecf20Sopenharmony_ci This option makes base addresses of vmalloc and vmemmap as well as 21838c2ecf20Sopenharmony_ci __PAGE_OFFSET movable during boot. 21848c2ecf20Sopenharmony_ci 21858c2ecf20Sopenharmony_ciconfig RANDOMIZE_MEMORY 21868c2ecf20Sopenharmony_ci bool "Randomize the kernel memory sections" 21878c2ecf20Sopenharmony_ci depends on X86_64 21888c2ecf20Sopenharmony_ci depends on RANDOMIZE_BASE 21898c2ecf20Sopenharmony_ci select DYNAMIC_MEMORY_LAYOUT 21908c2ecf20Sopenharmony_ci default RANDOMIZE_BASE 21918c2ecf20Sopenharmony_ci help 21928c2ecf20Sopenharmony_ci Randomizes the base virtual address of kernel memory sections 21938c2ecf20Sopenharmony_ci (physical memory mapping, vmalloc & vmemmap). This security feature 21948c2ecf20Sopenharmony_ci makes exploits relying on predictable memory locations less reliable. 21958c2ecf20Sopenharmony_ci 21968c2ecf20Sopenharmony_ci The order of allocations remains unchanged. Entropy is generated in 21978c2ecf20Sopenharmony_ci the same way as RANDOMIZE_BASE. Current implementation in the optimal 21988c2ecf20Sopenharmony_ci configuration have in average 30,000 different possible virtual 21998c2ecf20Sopenharmony_ci addresses for each memory section. 22008c2ecf20Sopenharmony_ci 22018c2ecf20Sopenharmony_ci If unsure, say Y. 22028c2ecf20Sopenharmony_ci 22038c2ecf20Sopenharmony_ciconfig RANDOMIZE_MEMORY_PHYSICAL_PADDING 22048c2ecf20Sopenharmony_ci hex "Physical memory mapping padding" if EXPERT 22058c2ecf20Sopenharmony_ci depends on RANDOMIZE_MEMORY 22068c2ecf20Sopenharmony_ci default "0xa" if MEMORY_HOTPLUG 22078c2ecf20Sopenharmony_ci default "0x0" 22088c2ecf20Sopenharmony_ci range 0x1 0x40 if MEMORY_HOTPLUG 22098c2ecf20Sopenharmony_ci range 0x0 0x40 22108c2ecf20Sopenharmony_ci help 22118c2ecf20Sopenharmony_ci Define the padding in terabytes added to the existing physical 22128c2ecf20Sopenharmony_ci memory size during kernel memory randomization. It is useful 22138c2ecf20Sopenharmony_ci for memory hotplug support but reduces the entropy available for 22148c2ecf20Sopenharmony_ci address randomization. 22158c2ecf20Sopenharmony_ci 22168c2ecf20Sopenharmony_ci If unsure, leave at the default value. 22178c2ecf20Sopenharmony_ci 22188c2ecf20Sopenharmony_ciconfig HOTPLUG_CPU 22198c2ecf20Sopenharmony_ci def_bool y 22208c2ecf20Sopenharmony_ci depends on SMP 22218c2ecf20Sopenharmony_ci 22228c2ecf20Sopenharmony_ciconfig BOOTPARAM_HOTPLUG_CPU0 22238c2ecf20Sopenharmony_ci bool "Set default setting of cpu0_hotpluggable" 22248c2ecf20Sopenharmony_ci depends on HOTPLUG_CPU 22258c2ecf20Sopenharmony_ci help 22268c2ecf20Sopenharmony_ci Set whether default state of cpu0_hotpluggable is on or off. 22278c2ecf20Sopenharmony_ci 22288c2ecf20Sopenharmony_ci Say Y here to enable CPU0 hotplug by default. If this switch 22298c2ecf20Sopenharmony_ci is turned on, there is no need to give cpu0_hotplug kernel 22308c2ecf20Sopenharmony_ci parameter and the CPU0 hotplug feature is enabled by default. 22318c2ecf20Sopenharmony_ci 22328c2ecf20Sopenharmony_ci Please note: there are two known CPU0 dependencies if you want 22338c2ecf20Sopenharmony_ci to enable the CPU0 hotplug feature either by this switch or by 22348c2ecf20Sopenharmony_ci cpu0_hotplug kernel parameter. 22358c2ecf20Sopenharmony_ci 22368c2ecf20Sopenharmony_ci First, resume from hibernate or suspend always starts from CPU0. 22378c2ecf20Sopenharmony_ci So hibernate and suspend are prevented if CPU0 is offline. 22388c2ecf20Sopenharmony_ci 22398c2ecf20Sopenharmony_ci Second dependency is PIC interrupts always go to CPU0. CPU0 can not 22408c2ecf20Sopenharmony_ci offline if any interrupt can not migrate out of CPU0. There may 22418c2ecf20Sopenharmony_ci be other CPU0 dependencies. 22428c2ecf20Sopenharmony_ci 22438c2ecf20Sopenharmony_ci Please make sure the dependencies are under your control before 22448c2ecf20Sopenharmony_ci you enable this feature. 22458c2ecf20Sopenharmony_ci 22468c2ecf20Sopenharmony_ci Say N if you don't want to enable CPU0 hotplug feature by default. 22478c2ecf20Sopenharmony_ci You still can enable the CPU0 hotplug feature at boot by kernel 22488c2ecf20Sopenharmony_ci parameter cpu0_hotplug. 22498c2ecf20Sopenharmony_ci 22508c2ecf20Sopenharmony_ciconfig DEBUG_HOTPLUG_CPU0 22518c2ecf20Sopenharmony_ci def_bool n 22528c2ecf20Sopenharmony_ci prompt "Debug CPU0 hotplug" 22538c2ecf20Sopenharmony_ci depends on HOTPLUG_CPU 22548c2ecf20Sopenharmony_ci help 22558c2ecf20Sopenharmony_ci Enabling this option offlines CPU0 (if CPU0 can be offlined) as 22568c2ecf20Sopenharmony_ci soon as possible and boots up userspace with CPU0 offlined. User 22578c2ecf20Sopenharmony_ci can online CPU0 back after boot time. 22588c2ecf20Sopenharmony_ci 22598c2ecf20Sopenharmony_ci To debug CPU0 hotplug, you need to enable CPU0 offline/online 22608c2ecf20Sopenharmony_ci feature by either turning on CONFIG_BOOTPARAM_HOTPLUG_CPU0 during 22618c2ecf20Sopenharmony_ci compilation or giving cpu0_hotplug kernel parameter at boot. 22628c2ecf20Sopenharmony_ci 22638c2ecf20Sopenharmony_ci If unsure, say N. 22648c2ecf20Sopenharmony_ci 22658c2ecf20Sopenharmony_ciconfig COMPAT_VDSO 22668c2ecf20Sopenharmony_ci def_bool n 22678c2ecf20Sopenharmony_ci prompt "Disable the 32-bit vDSO (needed for glibc 2.3.3)" 22688c2ecf20Sopenharmony_ci depends on COMPAT_32 22698c2ecf20Sopenharmony_ci help 22708c2ecf20Sopenharmony_ci Certain buggy versions of glibc will crash if they are 22718c2ecf20Sopenharmony_ci presented with a 32-bit vDSO that is not mapped at the address 22728c2ecf20Sopenharmony_ci indicated in its segment table. 22738c2ecf20Sopenharmony_ci 22748c2ecf20Sopenharmony_ci The bug was introduced by f866314b89d56845f55e6f365e18b31ec978ec3a 22758c2ecf20Sopenharmony_ci and fixed by 3b3ddb4f7db98ec9e912ccdf54d35df4aa30e04a and 22768c2ecf20Sopenharmony_ci 49ad572a70b8aeb91e57483a11dd1b77e31c4468. Glibc 2.3.3 is 22778c2ecf20Sopenharmony_ci the only released version with the bug, but OpenSUSE 9 22788c2ecf20Sopenharmony_ci contains a buggy "glibc 2.3.2". 22798c2ecf20Sopenharmony_ci 22808c2ecf20Sopenharmony_ci The symptom of the bug is that everything crashes on startup, saying: 22818c2ecf20Sopenharmony_ci dl_main: Assertion `(void *) ph->p_vaddr == _rtld_local._dl_sysinfo_dso' failed! 22828c2ecf20Sopenharmony_ci 22838c2ecf20Sopenharmony_ci Saying Y here changes the default value of the vdso32 boot 22848c2ecf20Sopenharmony_ci option from 1 to 0, which turns off the 32-bit vDSO entirely. 22858c2ecf20Sopenharmony_ci This works around the glibc bug but hurts performance. 22868c2ecf20Sopenharmony_ci 22878c2ecf20Sopenharmony_ci If unsure, say N: if you are compiling your own kernel, you 22888c2ecf20Sopenharmony_ci are unlikely to be using a buggy version of glibc. 22898c2ecf20Sopenharmony_ci 22908c2ecf20Sopenharmony_cichoice 22918c2ecf20Sopenharmony_ci prompt "vsyscall table for legacy applications" 22928c2ecf20Sopenharmony_ci depends on X86_64 22938c2ecf20Sopenharmony_ci default LEGACY_VSYSCALL_XONLY 22948c2ecf20Sopenharmony_ci help 22958c2ecf20Sopenharmony_ci Legacy user code that does not know how to find the vDSO expects 22968c2ecf20Sopenharmony_ci to be able to issue three syscalls by calling fixed addresses in 22978c2ecf20Sopenharmony_ci kernel space. Since this location is not randomized with ASLR, 22988c2ecf20Sopenharmony_ci it can be used to assist security vulnerability exploitation. 22998c2ecf20Sopenharmony_ci 23008c2ecf20Sopenharmony_ci This setting can be changed at boot time via the kernel command 23018c2ecf20Sopenharmony_ci line parameter vsyscall=[emulate|xonly|none]. 23028c2ecf20Sopenharmony_ci 23038c2ecf20Sopenharmony_ci On a system with recent enough glibc (2.14 or newer) and no 23048c2ecf20Sopenharmony_ci static binaries, you can say None without a performance penalty 23058c2ecf20Sopenharmony_ci to improve security. 23068c2ecf20Sopenharmony_ci 23078c2ecf20Sopenharmony_ci If unsure, select "Emulate execution only". 23088c2ecf20Sopenharmony_ci 23098c2ecf20Sopenharmony_ci config LEGACY_VSYSCALL_EMULATE 23108c2ecf20Sopenharmony_ci bool "Full emulation" 23118c2ecf20Sopenharmony_ci help 23128c2ecf20Sopenharmony_ci The kernel traps and emulates calls into the fixed vsyscall 23138c2ecf20Sopenharmony_ci address mapping. This makes the mapping non-executable, but 23148c2ecf20Sopenharmony_ci it still contains readable known contents, which could be 23158c2ecf20Sopenharmony_ci used in certain rare security vulnerability exploits. This 23168c2ecf20Sopenharmony_ci configuration is recommended when using legacy userspace 23178c2ecf20Sopenharmony_ci that still uses vsyscalls along with legacy binary 23188c2ecf20Sopenharmony_ci instrumentation tools that require code to be readable. 23198c2ecf20Sopenharmony_ci 23208c2ecf20Sopenharmony_ci An example of this type of legacy userspace is running 23218c2ecf20Sopenharmony_ci Pin on an old binary that still uses vsyscalls. 23228c2ecf20Sopenharmony_ci 23238c2ecf20Sopenharmony_ci config LEGACY_VSYSCALL_XONLY 23248c2ecf20Sopenharmony_ci bool "Emulate execution only" 23258c2ecf20Sopenharmony_ci help 23268c2ecf20Sopenharmony_ci The kernel traps and emulates calls into the fixed vsyscall 23278c2ecf20Sopenharmony_ci address mapping and does not allow reads. This 23288c2ecf20Sopenharmony_ci configuration is recommended when userspace might use the 23298c2ecf20Sopenharmony_ci legacy vsyscall area but support for legacy binary 23308c2ecf20Sopenharmony_ci instrumentation of legacy code is not needed. It mitigates 23318c2ecf20Sopenharmony_ci certain uses of the vsyscall area as an ASLR-bypassing 23328c2ecf20Sopenharmony_ci buffer. 23338c2ecf20Sopenharmony_ci 23348c2ecf20Sopenharmony_ci config LEGACY_VSYSCALL_NONE 23358c2ecf20Sopenharmony_ci bool "None" 23368c2ecf20Sopenharmony_ci help 23378c2ecf20Sopenharmony_ci There will be no vsyscall mapping at all. This will 23388c2ecf20Sopenharmony_ci eliminate any risk of ASLR bypass due to the vsyscall 23398c2ecf20Sopenharmony_ci fixed address mapping. Attempts to use the vsyscalls 23408c2ecf20Sopenharmony_ci will be reported to dmesg, so that either old or 23418c2ecf20Sopenharmony_ci malicious userspace programs can be identified. 23428c2ecf20Sopenharmony_ci 23438c2ecf20Sopenharmony_ciendchoice 23448c2ecf20Sopenharmony_ci 23458c2ecf20Sopenharmony_ciconfig CMDLINE_BOOL 23468c2ecf20Sopenharmony_ci bool "Built-in kernel command line" 23478c2ecf20Sopenharmony_ci help 23488c2ecf20Sopenharmony_ci Allow for specifying boot arguments to the kernel at 23498c2ecf20Sopenharmony_ci build time. On some systems (e.g. embedded ones), it is 23508c2ecf20Sopenharmony_ci necessary or convenient to provide some or all of the 23518c2ecf20Sopenharmony_ci kernel boot arguments with the kernel itself (that is, 23528c2ecf20Sopenharmony_ci to not rely on the boot loader to provide them.) 23538c2ecf20Sopenharmony_ci 23548c2ecf20Sopenharmony_ci To compile command line arguments into the kernel, 23558c2ecf20Sopenharmony_ci set this option to 'Y', then fill in the 23568c2ecf20Sopenharmony_ci boot arguments in CONFIG_CMDLINE. 23578c2ecf20Sopenharmony_ci 23588c2ecf20Sopenharmony_ci Systems with fully functional boot loaders (i.e. non-embedded) 23598c2ecf20Sopenharmony_ci should leave this option set to 'N'. 23608c2ecf20Sopenharmony_ci 23618c2ecf20Sopenharmony_ciconfig CMDLINE 23628c2ecf20Sopenharmony_ci string "Built-in kernel command string" 23638c2ecf20Sopenharmony_ci depends on CMDLINE_BOOL 23648c2ecf20Sopenharmony_ci default "" 23658c2ecf20Sopenharmony_ci help 23668c2ecf20Sopenharmony_ci Enter arguments here that should be compiled into the kernel 23678c2ecf20Sopenharmony_ci image and used at boot time. If the boot loader provides a 23688c2ecf20Sopenharmony_ci command line at boot time, it is appended to this string to 23698c2ecf20Sopenharmony_ci form the full kernel command line, when the system boots. 23708c2ecf20Sopenharmony_ci 23718c2ecf20Sopenharmony_ci However, you can use the CONFIG_CMDLINE_OVERRIDE option to 23728c2ecf20Sopenharmony_ci change this behavior. 23738c2ecf20Sopenharmony_ci 23748c2ecf20Sopenharmony_ci In most cases, the command line (whether built-in or provided 23758c2ecf20Sopenharmony_ci by the boot loader) should specify the device for the root 23768c2ecf20Sopenharmony_ci file system. 23778c2ecf20Sopenharmony_ci 23788c2ecf20Sopenharmony_ciconfig CMDLINE_OVERRIDE 23798c2ecf20Sopenharmony_ci bool "Built-in command line overrides boot loader arguments" 23808c2ecf20Sopenharmony_ci depends on CMDLINE_BOOL && CMDLINE != "" 23818c2ecf20Sopenharmony_ci help 23828c2ecf20Sopenharmony_ci Set this option to 'Y' to have the kernel ignore the boot loader 23838c2ecf20Sopenharmony_ci command line, and use ONLY the built-in command line. 23848c2ecf20Sopenharmony_ci 23858c2ecf20Sopenharmony_ci This is used to work around broken boot loaders. This should 23868c2ecf20Sopenharmony_ci be set to 'N' under normal conditions. 23878c2ecf20Sopenharmony_ci 23888c2ecf20Sopenharmony_ciconfig MODIFY_LDT_SYSCALL 23898c2ecf20Sopenharmony_ci bool "Enable the LDT (local descriptor table)" if EXPERT 23908c2ecf20Sopenharmony_ci default y 23918c2ecf20Sopenharmony_ci help 23928c2ecf20Sopenharmony_ci Linux can allow user programs to install a per-process x86 23938c2ecf20Sopenharmony_ci Local Descriptor Table (LDT) using the modify_ldt(2) system 23948c2ecf20Sopenharmony_ci call. This is required to run 16-bit or segmented code such as 23958c2ecf20Sopenharmony_ci DOSEMU or some Wine programs. It is also used by some very old 23968c2ecf20Sopenharmony_ci threading libraries. 23978c2ecf20Sopenharmony_ci 23988c2ecf20Sopenharmony_ci Enabling this feature adds a small amount of overhead to 23998c2ecf20Sopenharmony_ci context switches and increases the low-level kernel attack 24008c2ecf20Sopenharmony_ci surface. Disabling it removes the modify_ldt(2) system call. 24018c2ecf20Sopenharmony_ci 24028c2ecf20Sopenharmony_ci Saying 'N' here may make sense for embedded or server kernels. 24038c2ecf20Sopenharmony_ci 24048c2ecf20Sopenharmony_cisource "kernel/livepatch/Kconfig" 24058c2ecf20Sopenharmony_ci 24068c2ecf20Sopenharmony_ciendmenu 24078c2ecf20Sopenharmony_ci 24088c2ecf20Sopenharmony_ciconfig CC_HAS_SLS 24098c2ecf20Sopenharmony_ci def_bool $(cc-option,-mharden-sls=all) 24108c2ecf20Sopenharmony_ci 24118c2ecf20Sopenharmony_ciconfig CC_HAS_RETURN_THUNK 24128c2ecf20Sopenharmony_ci def_bool $(cc-option,-mfunction-return=thunk-extern) 24138c2ecf20Sopenharmony_ci 24148c2ecf20Sopenharmony_cimenuconfig SPECULATION_MITIGATIONS 24158c2ecf20Sopenharmony_ci bool "Mitigations for speculative execution vulnerabilities" 24168c2ecf20Sopenharmony_ci default y 24178c2ecf20Sopenharmony_ci help 24188c2ecf20Sopenharmony_ci Say Y here to enable options which enable mitigations for 24198c2ecf20Sopenharmony_ci speculative execution hardware vulnerabilities. 24208c2ecf20Sopenharmony_ci 24218c2ecf20Sopenharmony_ci If you say N, all mitigations will be disabled. You really 24228c2ecf20Sopenharmony_ci should know what you are doing to say so. 24238c2ecf20Sopenharmony_ci 24248c2ecf20Sopenharmony_ciif SPECULATION_MITIGATIONS 24258c2ecf20Sopenharmony_ci 24268c2ecf20Sopenharmony_ciconfig PAGE_TABLE_ISOLATION 24278c2ecf20Sopenharmony_ci bool "Remove the kernel mapping in user mode" 24288c2ecf20Sopenharmony_ci default y 24298c2ecf20Sopenharmony_ci depends on (X86_64 || X86_PAE) 24308c2ecf20Sopenharmony_ci help 24318c2ecf20Sopenharmony_ci This feature reduces the number of hardware side channels by 24328c2ecf20Sopenharmony_ci ensuring that the majority of kernel addresses are not mapped 24338c2ecf20Sopenharmony_ci into userspace. 24348c2ecf20Sopenharmony_ci 24358c2ecf20Sopenharmony_ci See Documentation/x86/pti.rst for more details. 24368c2ecf20Sopenharmony_ci 24378c2ecf20Sopenharmony_ciconfig RETPOLINE 24388c2ecf20Sopenharmony_ci bool "Avoid speculative indirect branches in kernel" 24398c2ecf20Sopenharmony_ci default y 24408c2ecf20Sopenharmony_ci help 24418c2ecf20Sopenharmony_ci Compile kernel with the retpoline compiler options to guard against 24428c2ecf20Sopenharmony_ci kernel-to-user data leaks by avoiding speculative indirect 24438c2ecf20Sopenharmony_ci branches. Requires a compiler with -mindirect-branch=thunk-extern 24448c2ecf20Sopenharmony_ci support for full protection. The kernel may run slower. 24458c2ecf20Sopenharmony_ci 24468c2ecf20Sopenharmony_ciconfig RETHUNK 24478c2ecf20Sopenharmony_ci bool "Enable return-thunks" 24488c2ecf20Sopenharmony_ci depends on RETPOLINE && CC_HAS_RETURN_THUNK 24498c2ecf20Sopenharmony_ci default y if X86_64 24508c2ecf20Sopenharmony_ci help 24518c2ecf20Sopenharmony_ci Compile the kernel with the return-thunks compiler option to guard 24528c2ecf20Sopenharmony_ci against kernel-to-user data leaks by avoiding return speculation. 24538c2ecf20Sopenharmony_ci Requires a compiler with -mfunction-return=thunk-extern 24548c2ecf20Sopenharmony_ci support for full protection. The kernel may run slower. 24558c2ecf20Sopenharmony_ci 24568c2ecf20Sopenharmony_ciconfig CPU_UNRET_ENTRY 24578c2ecf20Sopenharmony_ci bool "Enable UNRET on kernel entry" 24588c2ecf20Sopenharmony_ci depends on CPU_SUP_AMD && RETHUNK && X86_64 24598c2ecf20Sopenharmony_ci default y 24608c2ecf20Sopenharmony_ci help 24618c2ecf20Sopenharmony_ci Compile the kernel with support for the retbleed=unret mitigation. 24628c2ecf20Sopenharmony_ci 24638c2ecf20Sopenharmony_ciconfig CPU_IBPB_ENTRY 24648c2ecf20Sopenharmony_ci bool "Enable IBPB on kernel entry" 24658c2ecf20Sopenharmony_ci depends on CPU_SUP_AMD && X86_64 24668c2ecf20Sopenharmony_ci default y 24678c2ecf20Sopenharmony_ci help 24688c2ecf20Sopenharmony_ci Compile the kernel with support for the retbleed=ibpb mitigation. 24698c2ecf20Sopenharmony_ci 24708c2ecf20Sopenharmony_ciconfig CPU_IBRS_ENTRY 24718c2ecf20Sopenharmony_ci bool "Enable IBRS on kernel entry" 24728c2ecf20Sopenharmony_ci depends on CPU_SUP_INTEL && X86_64 24738c2ecf20Sopenharmony_ci default y 24748c2ecf20Sopenharmony_ci help 24758c2ecf20Sopenharmony_ci Compile the kernel with support for the spectre_v2=ibrs mitigation. 24768c2ecf20Sopenharmony_ci This mitigates both spectre_v2 and retbleed at great cost to 24778c2ecf20Sopenharmony_ci performance. 24788c2ecf20Sopenharmony_ci 24798c2ecf20Sopenharmony_ciconfig CPU_SRSO 24808c2ecf20Sopenharmony_ci bool "Mitigate speculative RAS overflow on AMD" 24818c2ecf20Sopenharmony_ci depends on CPU_SUP_AMD && X86_64 && RETHUNK 24828c2ecf20Sopenharmony_ci default y 24838c2ecf20Sopenharmony_ci help 24848c2ecf20Sopenharmony_ci Enable the SRSO mitigation needed on AMD Zen1-4 machines. 24858c2ecf20Sopenharmony_ci 24868c2ecf20Sopenharmony_ciconfig SLS 24878c2ecf20Sopenharmony_ci bool "Mitigate Straight-Line-Speculation" 24888c2ecf20Sopenharmony_ci depends on CC_HAS_SLS && X86_64 24898c2ecf20Sopenharmony_ci default n 24908c2ecf20Sopenharmony_ci help 24918c2ecf20Sopenharmony_ci Compile the kernel with straight-line-speculation options to guard 24928c2ecf20Sopenharmony_ci against straight line speculation. The kernel image might be slightly 24938c2ecf20Sopenharmony_ci larger. 24948c2ecf20Sopenharmony_ci 24958c2ecf20Sopenharmony_ciconfig GDS_FORCE_MITIGATION 24968c2ecf20Sopenharmony_ci bool "Force GDS Mitigation" 24978c2ecf20Sopenharmony_ci depends on CPU_SUP_INTEL 24988c2ecf20Sopenharmony_ci default n 24998c2ecf20Sopenharmony_ci help 25008c2ecf20Sopenharmony_ci Gather Data Sampling (GDS) is a hardware vulnerability which allows 25018c2ecf20Sopenharmony_ci unprivileged speculative access to data which was previously stored in 25028c2ecf20Sopenharmony_ci vector registers. 25038c2ecf20Sopenharmony_ci 25048c2ecf20Sopenharmony_ci This option is equivalent to setting gather_data_sampling=force on the 25058c2ecf20Sopenharmony_ci command line. The microcode mitigation is used if present, otherwise 25068c2ecf20Sopenharmony_ci AVX is disabled as a mitigation. On affected systems that are missing 25078c2ecf20Sopenharmony_ci the microcode any userspace code that unconditionally uses AVX will 25088c2ecf20Sopenharmony_ci break with this option set. 25098c2ecf20Sopenharmony_ci 25108c2ecf20Sopenharmony_ci Setting this option on systems not vulnerable to GDS has no effect. 25118c2ecf20Sopenharmony_ci 25128c2ecf20Sopenharmony_ci If in doubt, say N. 25138c2ecf20Sopenharmony_ci 25148c2ecf20Sopenharmony_ciconfig MITIGATION_RFDS 25158c2ecf20Sopenharmony_ci bool "RFDS Mitigation" 25168c2ecf20Sopenharmony_ci depends on CPU_SUP_INTEL 25178c2ecf20Sopenharmony_ci default y 25188c2ecf20Sopenharmony_ci help 25198c2ecf20Sopenharmony_ci Enable mitigation for Register File Data Sampling (RFDS) by default. 25208c2ecf20Sopenharmony_ci RFDS is a hardware vulnerability which affects Intel Atom CPUs. It 25218c2ecf20Sopenharmony_ci allows unprivileged speculative access to stale data previously 25228c2ecf20Sopenharmony_ci stored in floating point, vector and integer registers. 25238c2ecf20Sopenharmony_ci See also <file:Documentation/admin-guide/hw-vuln/reg-file-data-sampling.rst> 25248c2ecf20Sopenharmony_ci 25258c2ecf20Sopenharmony_ciendif 25268c2ecf20Sopenharmony_ci 25278c2ecf20Sopenharmony_ciconfig ARCH_HAS_ADD_PAGES 25288c2ecf20Sopenharmony_ci def_bool y 25298c2ecf20Sopenharmony_ci depends on X86_64 && ARCH_ENABLE_MEMORY_HOTPLUG 25308c2ecf20Sopenharmony_ci 25318c2ecf20Sopenharmony_ciconfig ARCH_ENABLE_MEMORY_HOTPLUG 25328c2ecf20Sopenharmony_ci def_bool y 25338c2ecf20Sopenharmony_ci depends on X86_64 || (X86_32 && HIGHMEM) 25348c2ecf20Sopenharmony_ci 25358c2ecf20Sopenharmony_ciconfig ARCH_ENABLE_MEMORY_HOTREMOVE 25368c2ecf20Sopenharmony_ci def_bool y 25378c2ecf20Sopenharmony_ci depends on MEMORY_HOTPLUG 25388c2ecf20Sopenharmony_ci 25398c2ecf20Sopenharmony_ciconfig USE_PERCPU_NUMA_NODE_ID 25408c2ecf20Sopenharmony_ci def_bool y 25418c2ecf20Sopenharmony_ci depends on NUMA 25428c2ecf20Sopenharmony_ci 25438c2ecf20Sopenharmony_ciconfig ARCH_ENABLE_SPLIT_PMD_PTLOCK 25448c2ecf20Sopenharmony_ci def_bool y 25458c2ecf20Sopenharmony_ci depends on X86_64 || X86_PAE 25468c2ecf20Sopenharmony_ci 25478c2ecf20Sopenharmony_ciconfig ARCH_ENABLE_HUGEPAGE_MIGRATION 25488c2ecf20Sopenharmony_ci def_bool y 25498c2ecf20Sopenharmony_ci depends on X86_64 && HUGETLB_PAGE && MIGRATION 25508c2ecf20Sopenharmony_ci 25518c2ecf20Sopenharmony_ciconfig ARCH_ENABLE_THP_MIGRATION 25528c2ecf20Sopenharmony_ci def_bool y 25538c2ecf20Sopenharmony_ci depends on X86_64 && TRANSPARENT_HUGEPAGE 25548c2ecf20Sopenharmony_ci 25558c2ecf20Sopenharmony_cimenu "Power management and ACPI options" 25568c2ecf20Sopenharmony_ci 25578c2ecf20Sopenharmony_ciconfig ARCH_HIBERNATION_HEADER 25588c2ecf20Sopenharmony_ci def_bool y 25598c2ecf20Sopenharmony_ci depends on HIBERNATION 25608c2ecf20Sopenharmony_ci 25618c2ecf20Sopenharmony_cisource "kernel/power/Kconfig" 25628c2ecf20Sopenharmony_ci 25638c2ecf20Sopenharmony_cisource "drivers/acpi/Kconfig" 25648c2ecf20Sopenharmony_ci 25658c2ecf20Sopenharmony_cisource "drivers/sfi/Kconfig" 25668c2ecf20Sopenharmony_ci 25678c2ecf20Sopenharmony_ciconfig X86_APM_BOOT 25688c2ecf20Sopenharmony_ci def_bool y 25698c2ecf20Sopenharmony_ci depends on APM 25708c2ecf20Sopenharmony_ci 25718c2ecf20Sopenharmony_cimenuconfig APM 25728c2ecf20Sopenharmony_ci tristate "APM (Advanced Power Management) BIOS support" 25738c2ecf20Sopenharmony_ci depends on X86_32 && PM_SLEEP 25748c2ecf20Sopenharmony_ci help 25758c2ecf20Sopenharmony_ci APM is a BIOS specification for saving power using several different 25768c2ecf20Sopenharmony_ci techniques. This is mostly useful for battery powered laptops with 25778c2ecf20Sopenharmony_ci APM compliant BIOSes. If you say Y here, the system time will be 25788c2ecf20Sopenharmony_ci reset after a RESUME operation, the /proc/apm device will provide 25798c2ecf20Sopenharmony_ci battery status information, and user-space programs will receive 25808c2ecf20Sopenharmony_ci notification of APM "events" (e.g. battery status change). 25818c2ecf20Sopenharmony_ci 25828c2ecf20Sopenharmony_ci If you select "Y" here, you can disable actual use of the APM 25838c2ecf20Sopenharmony_ci BIOS by passing the "apm=off" option to the kernel at boot time. 25848c2ecf20Sopenharmony_ci 25858c2ecf20Sopenharmony_ci Note that the APM support is almost completely disabled for 25868c2ecf20Sopenharmony_ci machines with more than one CPU. 25878c2ecf20Sopenharmony_ci 25888c2ecf20Sopenharmony_ci In order to use APM, you will need supporting software. For location 25898c2ecf20Sopenharmony_ci and more information, read <file:Documentation/power/apm-acpi.rst> 25908c2ecf20Sopenharmony_ci and the Battery Powered Linux mini-HOWTO, available from 25918c2ecf20Sopenharmony_ci <http://www.tldp.org/docs.html#howto>. 25928c2ecf20Sopenharmony_ci 25938c2ecf20Sopenharmony_ci This driver does not spin down disk drives (see the hdparm(8) 25948c2ecf20Sopenharmony_ci manpage ("man 8 hdparm") for that), and it doesn't turn off 25958c2ecf20Sopenharmony_ci VESA-compliant "green" monitors. 25968c2ecf20Sopenharmony_ci 25978c2ecf20Sopenharmony_ci This driver does not support the TI 4000M TravelMate and the ACER 25988c2ecf20Sopenharmony_ci 486/DX4/75 because they don't have compliant BIOSes. Many "green" 25998c2ecf20Sopenharmony_ci desktop machines also don't have compliant BIOSes, and this driver 26008c2ecf20Sopenharmony_ci may cause those machines to panic during the boot phase. 26018c2ecf20Sopenharmony_ci 26028c2ecf20Sopenharmony_ci Generally, if you don't have a battery in your machine, there isn't 26038c2ecf20Sopenharmony_ci much point in using this driver and you should say N. If you get 26048c2ecf20Sopenharmony_ci random kernel OOPSes or reboots that don't seem to be related to 26058c2ecf20Sopenharmony_ci anything, try disabling/enabling this option (or disabling/enabling 26068c2ecf20Sopenharmony_ci APM in your BIOS). 26078c2ecf20Sopenharmony_ci 26088c2ecf20Sopenharmony_ci Some other things you should try when experiencing seemingly random, 26098c2ecf20Sopenharmony_ci "weird" problems: 26108c2ecf20Sopenharmony_ci 26118c2ecf20Sopenharmony_ci 1) make sure that you have enough swap space and that it is 26128c2ecf20Sopenharmony_ci enabled. 26138c2ecf20Sopenharmony_ci 2) pass the "no-hlt" option to the kernel 26148c2ecf20Sopenharmony_ci 3) switch on floating point emulation in the kernel and pass 26158c2ecf20Sopenharmony_ci the "no387" option to the kernel 26168c2ecf20Sopenharmony_ci 4) pass the "floppy=nodma" option to the kernel 26178c2ecf20Sopenharmony_ci 5) pass the "mem=4M" option to the kernel (thereby disabling 26188c2ecf20Sopenharmony_ci all but the first 4 MB of RAM) 26198c2ecf20Sopenharmony_ci 6) make sure that the CPU is not over clocked. 26208c2ecf20Sopenharmony_ci 7) read the sig11 FAQ at <http://www.bitwizard.nl/sig11/> 26218c2ecf20Sopenharmony_ci 8) disable the cache from your BIOS settings 26228c2ecf20Sopenharmony_ci 9) install a fan for the video card or exchange video RAM 26238c2ecf20Sopenharmony_ci 10) install a better fan for the CPU 26248c2ecf20Sopenharmony_ci 11) exchange RAM chips 26258c2ecf20Sopenharmony_ci 12) exchange the motherboard. 26268c2ecf20Sopenharmony_ci 26278c2ecf20Sopenharmony_ci To compile this driver as a module, choose M here: the 26288c2ecf20Sopenharmony_ci module will be called apm. 26298c2ecf20Sopenharmony_ci 26308c2ecf20Sopenharmony_ciif APM 26318c2ecf20Sopenharmony_ci 26328c2ecf20Sopenharmony_ciconfig APM_IGNORE_USER_SUSPEND 26338c2ecf20Sopenharmony_ci bool "Ignore USER SUSPEND" 26348c2ecf20Sopenharmony_ci help 26358c2ecf20Sopenharmony_ci This option will ignore USER SUSPEND requests. On machines with a 26368c2ecf20Sopenharmony_ci compliant APM BIOS, you want to say N. However, on the NEC Versa M 26378c2ecf20Sopenharmony_ci series notebooks, it is necessary to say Y because of a BIOS bug. 26388c2ecf20Sopenharmony_ci 26398c2ecf20Sopenharmony_ciconfig APM_DO_ENABLE 26408c2ecf20Sopenharmony_ci bool "Enable PM at boot time" 26418c2ecf20Sopenharmony_ci help 26428c2ecf20Sopenharmony_ci Enable APM features at boot time. From page 36 of the APM BIOS 26438c2ecf20Sopenharmony_ci specification: "When disabled, the APM BIOS does not automatically 26448c2ecf20Sopenharmony_ci power manage devices, enter the Standby State, enter the Suspend 26458c2ecf20Sopenharmony_ci State, or take power saving steps in response to CPU Idle calls." 26468c2ecf20Sopenharmony_ci This driver will make CPU Idle calls when Linux is idle (unless this 26478c2ecf20Sopenharmony_ci feature is turned off -- see "Do CPU IDLE calls", below). This 26488c2ecf20Sopenharmony_ci should always save battery power, but more complicated APM features 26498c2ecf20Sopenharmony_ci will be dependent on your BIOS implementation. You may need to turn 26508c2ecf20Sopenharmony_ci this option off if your computer hangs at boot time when using APM 26518c2ecf20Sopenharmony_ci support, or if it beeps continuously instead of suspending. Turn 26528c2ecf20Sopenharmony_ci this off if you have a NEC UltraLite Versa 33/C or a Toshiba 26538c2ecf20Sopenharmony_ci T400CDT. This is off by default since most machines do fine without 26548c2ecf20Sopenharmony_ci this feature. 26558c2ecf20Sopenharmony_ci 26568c2ecf20Sopenharmony_ciconfig APM_CPU_IDLE 26578c2ecf20Sopenharmony_ci depends on CPU_IDLE 26588c2ecf20Sopenharmony_ci bool "Make CPU Idle calls when idle" 26598c2ecf20Sopenharmony_ci help 26608c2ecf20Sopenharmony_ci Enable calls to APM CPU Idle/CPU Busy inside the kernel's idle loop. 26618c2ecf20Sopenharmony_ci On some machines, this can activate improved power savings, such as 26628c2ecf20Sopenharmony_ci a slowed CPU clock rate, when the machine is idle. These idle calls 26638c2ecf20Sopenharmony_ci are made after the idle loop has run for some length of time (e.g., 26648c2ecf20Sopenharmony_ci 333 mS). On some machines, this will cause a hang at boot time or 26658c2ecf20Sopenharmony_ci whenever the CPU becomes idle. (On machines with more than one CPU, 26668c2ecf20Sopenharmony_ci this option does nothing.) 26678c2ecf20Sopenharmony_ci 26688c2ecf20Sopenharmony_ciconfig APM_DISPLAY_BLANK 26698c2ecf20Sopenharmony_ci bool "Enable console blanking using APM" 26708c2ecf20Sopenharmony_ci help 26718c2ecf20Sopenharmony_ci Enable console blanking using the APM. Some laptops can use this to 26728c2ecf20Sopenharmony_ci turn off the LCD backlight when the screen blanker of the Linux 26738c2ecf20Sopenharmony_ci virtual console blanks the screen. Note that this is only used by 26748c2ecf20Sopenharmony_ci the virtual console screen blanker, and won't turn off the backlight 26758c2ecf20Sopenharmony_ci when using the X Window system. This also doesn't have anything to 26768c2ecf20Sopenharmony_ci do with your VESA-compliant power-saving monitor. Further, this 26778c2ecf20Sopenharmony_ci option doesn't work for all laptops -- it might not turn off your 26788c2ecf20Sopenharmony_ci backlight at all, or it might print a lot of errors to the console, 26798c2ecf20Sopenharmony_ci especially if you are using gpm. 26808c2ecf20Sopenharmony_ci 26818c2ecf20Sopenharmony_ciconfig APM_ALLOW_INTS 26828c2ecf20Sopenharmony_ci bool "Allow interrupts during APM BIOS calls" 26838c2ecf20Sopenharmony_ci help 26848c2ecf20Sopenharmony_ci Normally we disable external interrupts while we are making calls to 26858c2ecf20Sopenharmony_ci the APM BIOS as a measure to lessen the effects of a badly behaving 26868c2ecf20Sopenharmony_ci BIOS implementation. The BIOS should reenable interrupts if it 26878c2ecf20Sopenharmony_ci needs to. Unfortunately, some BIOSes do not -- especially those in 26888c2ecf20Sopenharmony_ci many of the newer IBM Thinkpads. If you experience hangs when you 26898c2ecf20Sopenharmony_ci suspend, try setting this to Y. Otherwise, say N. 26908c2ecf20Sopenharmony_ci 26918c2ecf20Sopenharmony_ciendif # APM 26928c2ecf20Sopenharmony_ci 26938c2ecf20Sopenharmony_cisource "drivers/cpufreq/Kconfig" 26948c2ecf20Sopenharmony_ci 26958c2ecf20Sopenharmony_cisource "drivers/cpuidle/Kconfig" 26968c2ecf20Sopenharmony_ci 26978c2ecf20Sopenharmony_cisource "drivers/idle/Kconfig" 26988c2ecf20Sopenharmony_ci 26998c2ecf20Sopenharmony_ciendmenu 27008c2ecf20Sopenharmony_ci 27018c2ecf20Sopenharmony_ci 27028c2ecf20Sopenharmony_cimenu "Bus options (PCI etc.)" 27038c2ecf20Sopenharmony_ci 27048c2ecf20Sopenharmony_cichoice 27058c2ecf20Sopenharmony_ci prompt "PCI access mode" 27068c2ecf20Sopenharmony_ci depends on X86_32 && PCI 27078c2ecf20Sopenharmony_ci default PCI_GOANY 27088c2ecf20Sopenharmony_ci help 27098c2ecf20Sopenharmony_ci On PCI systems, the BIOS can be used to detect the PCI devices and 27108c2ecf20Sopenharmony_ci determine their configuration. However, some old PCI motherboards 27118c2ecf20Sopenharmony_ci have BIOS bugs and may crash if this is done. Also, some embedded 27128c2ecf20Sopenharmony_ci PCI-based systems don't have any BIOS at all. Linux can also try to 27138c2ecf20Sopenharmony_ci detect the PCI hardware directly without using the BIOS. 27148c2ecf20Sopenharmony_ci 27158c2ecf20Sopenharmony_ci With this option, you can specify how Linux should detect the 27168c2ecf20Sopenharmony_ci PCI devices. If you choose "BIOS", the BIOS will be used, 27178c2ecf20Sopenharmony_ci if you choose "Direct", the BIOS won't be used, and if you 27188c2ecf20Sopenharmony_ci choose "MMConfig", then PCI Express MMCONFIG will be used. 27198c2ecf20Sopenharmony_ci If you choose "Any", the kernel will try MMCONFIG, then the 27208c2ecf20Sopenharmony_ci direct access method and falls back to the BIOS if that doesn't 27218c2ecf20Sopenharmony_ci work. If unsure, go with the default, which is "Any". 27228c2ecf20Sopenharmony_ci 27238c2ecf20Sopenharmony_ciconfig PCI_GOBIOS 27248c2ecf20Sopenharmony_ci bool "BIOS" 27258c2ecf20Sopenharmony_ci 27268c2ecf20Sopenharmony_ciconfig PCI_GOMMCONFIG 27278c2ecf20Sopenharmony_ci bool "MMConfig" 27288c2ecf20Sopenharmony_ci 27298c2ecf20Sopenharmony_ciconfig PCI_GODIRECT 27308c2ecf20Sopenharmony_ci bool "Direct" 27318c2ecf20Sopenharmony_ci 27328c2ecf20Sopenharmony_ciconfig PCI_GOOLPC 27338c2ecf20Sopenharmony_ci bool "OLPC XO-1" 27348c2ecf20Sopenharmony_ci depends on OLPC 27358c2ecf20Sopenharmony_ci 27368c2ecf20Sopenharmony_ciconfig PCI_GOANY 27378c2ecf20Sopenharmony_ci bool "Any" 27388c2ecf20Sopenharmony_ci 27398c2ecf20Sopenharmony_ciendchoice 27408c2ecf20Sopenharmony_ci 27418c2ecf20Sopenharmony_ciconfig PCI_BIOS 27428c2ecf20Sopenharmony_ci def_bool y 27438c2ecf20Sopenharmony_ci depends on X86_32 && PCI && (PCI_GOBIOS || PCI_GOANY) 27448c2ecf20Sopenharmony_ci 27458c2ecf20Sopenharmony_ci# x86-64 doesn't support PCI BIOS access from long mode so always go direct. 27468c2ecf20Sopenharmony_ciconfig PCI_DIRECT 27478c2ecf20Sopenharmony_ci def_bool y 27488c2ecf20Sopenharmony_ci depends on PCI && (X86_64 || (PCI_GODIRECT || PCI_GOANY || PCI_GOOLPC || PCI_GOMMCONFIG)) 27498c2ecf20Sopenharmony_ci 27508c2ecf20Sopenharmony_ciconfig PCI_MMCONFIG 27518c2ecf20Sopenharmony_ci bool "Support mmconfig PCI config space access" if X86_64 27528c2ecf20Sopenharmony_ci default y 27538c2ecf20Sopenharmony_ci depends on PCI && (ACPI || SFI || JAILHOUSE_GUEST) 27548c2ecf20Sopenharmony_ci depends on X86_64 || (PCI_GOANY || PCI_GOMMCONFIG) 27558c2ecf20Sopenharmony_ci 27568c2ecf20Sopenharmony_ciconfig PCI_OLPC 27578c2ecf20Sopenharmony_ci def_bool y 27588c2ecf20Sopenharmony_ci depends on PCI && OLPC && (PCI_GOOLPC || PCI_GOANY) 27598c2ecf20Sopenharmony_ci 27608c2ecf20Sopenharmony_ciconfig PCI_XEN 27618c2ecf20Sopenharmony_ci def_bool y 27628c2ecf20Sopenharmony_ci depends on PCI && XEN 27638c2ecf20Sopenharmony_ci select SWIOTLB_XEN 27648c2ecf20Sopenharmony_ci 27658c2ecf20Sopenharmony_ciconfig MMCONF_FAM10H 27668c2ecf20Sopenharmony_ci def_bool y 27678c2ecf20Sopenharmony_ci depends on X86_64 && PCI_MMCONFIG && ACPI 27688c2ecf20Sopenharmony_ci 27698c2ecf20Sopenharmony_ciconfig PCI_CNB20LE_QUIRK 27708c2ecf20Sopenharmony_ci bool "Read CNB20LE Host Bridge Windows" if EXPERT 27718c2ecf20Sopenharmony_ci depends on PCI 27728c2ecf20Sopenharmony_ci help 27738c2ecf20Sopenharmony_ci Read the PCI windows out of the CNB20LE host bridge. This allows 27748c2ecf20Sopenharmony_ci PCI hotplug to work on systems with the CNB20LE chipset which do 27758c2ecf20Sopenharmony_ci not have ACPI. 27768c2ecf20Sopenharmony_ci 27778c2ecf20Sopenharmony_ci There's no public spec for this chipset, and this functionality 27788c2ecf20Sopenharmony_ci is known to be incomplete. 27798c2ecf20Sopenharmony_ci 27808c2ecf20Sopenharmony_ci You should say N unless you know you need this. 27818c2ecf20Sopenharmony_ci 27828c2ecf20Sopenharmony_ciconfig ISA_BUS 27838c2ecf20Sopenharmony_ci bool "ISA bus support on modern systems" if EXPERT 27848c2ecf20Sopenharmony_ci help 27858c2ecf20Sopenharmony_ci Expose ISA bus device drivers and options available for selection and 27868c2ecf20Sopenharmony_ci configuration. Enable this option if your target machine has an ISA 27878c2ecf20Sopenharmony_ci bus. ISA is an older system, displaced by PCI and newer bus 27888c2ecf20Sopenharmony_ci architectures -- if your target machine is modern, it probably does 27898c2ecf20Sopenharmony_ci not have an ISA bus. 27908c2ecf20Sopenharmony_ci 27918c2ecf20Sopenharmony_ci If unsure, say N. 27928c2ecf20Sopenharmony_ci 27938c2ecf20Sopenharmony_ci# x86_64 have no ISA slots, but can have ISA-style DMA. 27948c2ecf20Sopenharmony_ciconfig ISA_DMA_API 27958c2ecf20Sopenharmony_ci bool "ISA-style DMA support" if (X86_64 && EXPERT) 27968c2ecf20Sopenharmony_ci default y 27978c2ecf20Sopenharmony_ci help 27988c2ecf20Sopenharmony_ci Enables ISA-style DMA support for devices requiring such controllers. 27998c2ecf20Sopenharmony_ci If unsure, say Y. 28008c2ecf20Sopenharmony_ci 28018c2ecf20Sopenharmony_ciif X86_32 28028c2ecf20Sopenharmony_ci 28038c2ecf20Sopenharmony_ciconfig ISA 28048c2ecf20Sopenharmony_ci bool "ISA support" 28058c2ecf20Sopenharmony_ci help 28068c2ecf20Sopenharmony_ci Find out whether you have ISA slots on your motherboard. ISA is the 28078c2ecf20Sopenharmony_ci name of a bus system, i.e. the way the CPU talks to the other stuff 28088c2ecf20Sopenharmony_ci inside your box. Other bus systems are PCI, EISA, MicroChannel 28098c2ecf20Sopenharmony_ci (MCA) or VESA. ISA is an older system, now being displaced by PCI; 28108c2ecf20Sopenharmony_ci newer boards don't support it. If you have ISA, say Y, otherwise N. 28118c2ecf20Sopenharmony_ci 28128c2ecf20Sopenharmony_ciconfig SCx200 28138c2ecf20Sopenharmony_ci tristate "NatSemi SCx200 support" 28148c2ecf20Sopenharmony_ci help 28158c2ecf20Sopenharmony_ci This provides basic support for National Semiconductor's 28168c2ecf20Sopenharmony_ci (now AMD's) Geode processors. The driver probes for the 28178c2ecf20Sopenharmony_ci PCI-IDs of several on-chip devices, so its a good dependency 28188c2ecf20Sopenharmony_ci for other scx200_* drivers. 28198c2ecf20Sopenharmony_ci 28208c2ecf20Sopenharmony_ci If compiled as a module, the driver is named scx200. 28218c2ecf20Sopenharmony_ci 28228c2ecf20Sopenharmony_ciconfig SCx200HR_TIMER 28238c2ecf20Sopenharmony_ci tristate "NatSemi SCx200 27MHz High-Resolution Timer Support" 28248c2ecf20Sopenharmony_ci depends on SCx200 28258c2ecf20Sopenharmony_ci default y 28268c2ecf20Sopenharmony_ci help 28278c2ecf20Sopenharmony_ci This driver provides a clocksource built upon the on-chip 28288c2ecf20Sopenharmony_ci 27MHz high-resolution timer. Its also a workaround for 28298c2ecf20Sopenharmony_ci NSC Geode SC-1100's buggy TSC, which loses time when the 28308c2ecf20Sopenharmony_ci processor goes idle (as is done by the scheduler). The 28318c2ecf20Sopenharmony_ci other workaround is idle=poll boot option. 28328c2ecf20Sopenharmony_ci 28338c2ecf20Sopenharmony_ciconfig OLPC 28348c2ecf20Sopenharmony_ci bool "One Laptop Per Child support" 28358c2ecf20Sopenharmony_ci depends on !X86_PAE 28368c2ecf20Sopenharmony_ci select GPIOLIB 28378c2ecf20Sopenharmony_ci select OF 28388c2ecf20Sopenharmony_ci select OF_PROMTREE 28398c2ecf20Sopenharmony_ci select IRQ_DOMAIN 28408c2ecf20Sopenharmony_ci select OLPC_EC 28418c2ecf20Sopenharmony_ci help 28428c2ecf20Sopenharmony_ci Add support for detecting the unique features of the OLPC 28438c2ecf20Sopenharmony_ci XO hardware. 28448c2ecf20Sopenharmony_ci 28458c2ecf20Sopenharmony_ciconfig OLPC_XO1_PM 28468c2ecf20Sopenharmony_ci bool "OLPC XO-1 Power Management" 28478c2ecf20Sopenharmony_ci depends on OLPC && MFD_CS5535=y && PM_SLEEP 28488c2ecf20Sopenharmony_ci help 28498c2ecf20Sopenharmony_ci Add support for poweroff and suspend of the OLPC XO-1 laptop. 28508c2ecf20Sopenharmony_ci 28518c2ecf20Sopenharmony_ciconfig OLPC_XO1_RTC 28528c2ecf20Sopenharmony_ci bool "OLPC XO-1 Real Time Clock" 28538c2ecf20Sopenharmony_ci depends on OLPC_XO1_PM && RTC_DRV_CMOS 28548c2ecf20Sopenharmony_ci help 28558c2ecf20Sopenharmony_ci Add support for the XO-1 real time clock, which can be used as a 28568c2ecf20Sopenharmony_ci programmable wakeup source. 28578c2ecf20Sopenharmony_ci 28588c2ecf20Sopenharmony_ciconfig OLPC_XO1_SCI 28598c2ecf20Sopenharmony_ci bool "OLPC XO-1 SCI extras" 28608c2ecf20Sopenharmony_ci depends on OLPC && OLPC_XO1_PM && GPIO_CS5535=y 28618c2ecf20Sopenharmony_ci depends on INPUT=y 28628c2ecf20Sopenharmony_ci select POWER_SUPPLY 28638c2ecf20Sopenharmony_ci help 28648c2ecf20Sopenharmony_ci Add support for SCI-based features of the OLPC XO-1 laptop: 28658c2ecf20Sopenharmony_ci - EC-driven system wakeups 28668c2ecf20Sopenharmony_ci - Power button 28678c2ecf20Sopenharmony_ci - Ebook switch 28688c2ecf20Sopenharmony_ci - Lid switch 28698c2ecf20Sopenharmony_ci - AC adapter status updates 28708c2ecf20Sopenharmony_ci - Battery status updates 28718c2ecf20Sopenharmony_ci 28728c2ecf20Sopenharmony_ciconfig OLPC_XO15_SCI 28738c2ecf20Sopenharmony_ci bool "OLPC XO-1.5 SCI extras" 28748c2ecf20Sopenharmony_ci depends on OLPC && ACPI 28758c2ecf20Sopenharmony_ci select POWER_SUPPLY 28768c2ecf20Sopenharmony_ci help 28778c2ecf20Sopenharmony_ci Add support for SCI-based features of the OLPC XO-1.5 laptop: 28788c2ecf20Sopenharmony_ci - EC-driven system wakeups 28798c2ecf20Sopenharmony_ci - AC adapter status updates 28808c2ecf20Sopenharmony_ci - Battery status updates 28818c2ecf20Sopenharmony_ci 28828c2ecf20Sopenharmony_ciconfig ALIX 28838c2ecf20Sopenharmony_ci bool "PCEngines ALIX System Support (LED setup)" 28848c2ecf20Sopenharmony_ci select GPIOLIB 28858c2ecf20Sopenharmony_ci help 28868c2ecf20Sopenharmony_ci This option enables system support for the PCEngines ALIX. 28878c2ecf20Sopenharmony_ci At present this just sets up LEDs for GPIO control on 28888c2ecf20Sopenharmony_ci ALIX2/3/6 boards. However, other system specific setup should 28898c2ecf20Sopenharmony_ci get added here. 28908c2ecf20Sopenharmony_ci 28918c2ecf20Sopenharmony_ci Note: You must still enable the drivers for GPIO and LED support 28928c2ecf20Sopenharmony_ci (GPIO_CS5535 & LEDS_GPIO) to actually use the LEDs 28938c2ecf20Sopenharmony_ci 28948c2ecf20Sopenharmony_ci Note: You have to set alix.force=1 for boards with Award BIOS. 28958c2ecf20Sopenharmony_ci 28968c2ecf20Sopenharmony_ciconfig NET5501 28978c2ecf20Sopenharmony_ci bool "Soekris Engineering net5501 System Support (LEDS, GPIO, etc)" 28988c2ecf20Sopenharmony_ci select GPIOLIB 28998c2ecf20Sopenharmony_ci help 29008c2ecf20Sopenharmony_ci This option enables system support for the Soekris Engineering net5501. 29018c2ecf20Sopenharmony_ci 29028c2ecf20Sopenharmony_ciconfig GEOS 29038c2ecf20Sopenharmony_ci bool "Traverse Technologies GEOS System Support (LEDS, GPIO, etc)" 29048c2ecf20Sopenharmony_ci select GPIOLIB 29058c2ecf20Sopenharmony_ci depends on DMI 29068c2ecf20Sopenharmony_ci help 29078c2ecf20Sopenharmony_ci This option enables system support for the Traverse Technologies GEOS. 29088c2ecf20Sopenharmony_ci 29098c2ecf20Sopenharmony_ciconfig TS5500 29108c2ecf20Sopenharmony_ci bool "Technologic Systems TS-5500 platform support" 29118c2ecf20Sopenharmony_ci depends on MELAN 29128c2ecf20Sopenharmony_ci select CHECK_SIGNATURE 29138c2ecf20Sopenharmony_ci select NEW_LEDS 29148c2ecf20Sopenharmony_ci select LEDS_CLASS 29158c2ecf20Sopenharmony_ci help 29168c2ecf20Sopenharmony_ci This option enables system support for the Technologic Systems TS-5500. 29178c2ecf20Sopenharmony_ci 29188c2ecf20Sopenharmony_ciendif # X86_32 29198c2ecf20Sopenharmony_ci 29208c2ecf20Sopenharmony_ciconfig AMD_NB 29218c2ecf20Sopenharmony_ci def_bool y 29228c2ecf20Sopenharmony_ci depends on CPU_SUP_AMD && PCI 29238c2ecf20Sopenharmony_ci 29248c2ecf20Sopenharmony_ciconfig X86_SYSFB 29258c2ecf20Sopenharmony_ci bool "Mark VGA/VBE/EFI FB as generic system framebuffer" 29268c2ecf20Sopenharmony_ci help 29278c2ecf20Sopenharmony_ci Firmwares often provide initial graphics framebuffers so the BIOS, 29288c2ecf20Sopenharmony_ci bootloader or kernel can show basic video-output during boot for 29298c2ecf20Sopenharmony_ci user-guidance and debugging. Historically, x86 used the VESA BIOS 29308c2ecf20Sopenharmony_ci Extensions and EFI-framebuffers for this, which are mostly limited 29318c2ecf20Sopenharmony_ci to x86. 29328c2ecf20Sopenharmony_ci This option, if enabled, marks VGA/VBE/EFI framebuffers as generic 29338c2ecf20Sopenharmony_ci framebuffers so the new generic system-framebuffer drivers can be 29348c2ecf20Sopenharmony_ci used on x86. If the framebuffer is not compatible with the generic 29358c2ecf20Sopenharmony_ci modes, it is advertised as fallback platform framebuffer so legacy 29368c2ecf20Sopenharmony_ci drivers like efifb, vesafb and uvesafb can pick it up. 29378c2ecf20Sopenharmony_ci If this option is not selected, all system framebuffers are always 29388c2ecf20Sopenharmony_ci marked as fallback platform framebuffers as usual. 29398c2ecf20Sopenharmony_ci 29408c2ecf20Sopenharmony_ci Note: Legacy fbdev drivers, including vesafb, efifb, uvesafb, will 29418c2ecf20Sopenharmony_ci not be able to pick up generic system framebuffers if this option 29428c2ecf20Sopenharmony_ci is selected. You are highly encouraged to enable simplefb as 29438c2ecf20Sopenharmony_ci replacement if you select this option. simplefb can correctly deal 29448c2ecf20Sopenharmony_ci with generic system framebuffers. But you should still keep vesafb 29458c2ecf20Sopenharmony_ci and others enabled as fallback if a system framebuffer is 29468c2ecf20Sopenharmony_ci incompatible with simplefb. 29478c2ecf20Sopenharmony_ci 29488c2ecf20Sopenharmony_ci If unsure, say Y. 29498c2ecf20Sopenharmony_ci 29508c2ecf20Sopenharmony_ciendmenu 29518c2ecf20Sopenharmony_ci 29528c2ecf20Sopenharmony_ci 29538c2ecf20Sopenharmony_cimenu "Binary Emulations" 29548c2ecf20Sopenharmony_ci 29558c2ecf20Sopenharmony_ciconfig IA32_EMULATION 29568c2ecf20Sopenharmony_ci bool "IA32 Emulation" 29578c2ecf20Sopenharmony_ci depends on X86_64 29588c2ecf20Sopenharmony_ci select ARCH_WANT_OLD_COMPAT_IPC 29598c2ecf20Sopenharmony_ci select BINFMT_ELF 29608c2ecf20Sopenharmony_ci select COMPAT_BINFMT_ELF 29618c2ecf20Sopenharmony_ci select COMPAT_OLD_SIGACTION 29628c2ecf20Sopenharmony_ci help 29638c2ecf20Sopenharmony_ci Include code to run legacy 32-bit programs under a 29648c2ecf20Sopenharmony_ci 64-bit kernel. You should likely turn this on, unless you're 29658c2ecf20Sopenharmony_ci 100% sure that you don't have any 32-bit programs left. 29668c2ecf20Sopenharmony_ci 29678c2ecf20Sopenharmony_ciconfig IA32_AOUT 29688c2ecf20Sopenharmony_ci tristate "IA32 a.out support" 29698c2ecf20Sopenharmony_ci depends on IA32_EMULATION 29708c2ecf20Sopenharmony_ci depends on BROKEN 29718c2ecf20Sopenharmony_ci help 29728c2ecf20Sopenharmony_ci Support old a.out binaries in the 32bit emulation. 29738c2ecf20Sopenharmony_ci 29748c2ecf20Sopenharmony_ciconfig X86_X32 29758c2ecf20Sopenharmony_ci bool "x32 ABI for 64-bit mode" 29768c2ecf20Sopenharmony_ci depends on X86_64 29778c2ecf20Sopenharmony_ci # llvm-objcopy does not convert x86_64 .note.gnu.property or 29788c2ecf20Sopenharmony_ci # compressed debug sections to x86_x32 properly: 29798c2ecf20Sopenharmony_ci # https://github.com/ClangBuiltLinux/linux/issues/514 29808c2ecf20Sopenharmony_ci # https://github.com/ClangBuiltLinux/linux/issues/1141 29818c2ecf20Sopenharmony_ci depends on $(success,$(OBJCOPY) --version | head -n1 | grep -qv llvm) 29828c2ecf20Sopenharmony_ci help 29838c2ecf20Sopenharmony_ci Include code to run binaries for the x32 native 32-bit ABI 29848c2ecf20Sopenharmony_ci for 64-bit processors. An x32 process gets access to the 29858c2ecf20Sopenharmony_ci full 64-bit register file and wide data path while leaving 29868c2ecf20Sopenharmony_ci pointers at 32 bits for smaller memory footprint. 29878c2ecf20Sopenharmony_ci 29888c2ecf20Sopenharmony_ci You will need a recent binutils (2.22 or later) with 29898c2ecf20Sopenharmony_ci elf32_x86_64 support enabled to compile a kernel with this 29908c2ecf20Sopenharmony_ci option set. 29918c2ecf20Sopenharmony_ci 29928c2ecf20Sopenharmony_ciconfig COMPAT_32 29938c2ecf20Sopenharmony_ci def_bool y 29948c2ecf20Sopenharmony_ci depends on IA32_EMULATION || X86_32 29958c2ecf20Sopenharmony_ci select HAVE_UID16 29968c2ecf20Sopenharmony_ci select OLD_SIGSUSPEND3 29978c2ecf20Sopenharmony_ci 29988c2ecf20Sopenharmony_ciconfig COMPAT 29998c2ecf20Sopenharmony_ci def_bool y 30008c2ecf20Sopenharmony_ci depends on IA32_EMULATION || X86_X32 30018c2ecf20Sopenharmony_ci 30028c2ecf20Sopenharmony_ciif COMPAT 30038c2ecf20Sopenharmony_ciconfig COMPAT_FOR_U64_ALIGNMENT 30048c2ecf20Sopenharmony_ci def_bool y 30058c2ecf20Sopenharmony_ci 30068c2ecf20Sopenharmony_ciconfig SYSVIPC_COMPAT 30078c2ecf20Sopenharmony_ci def_bool y 30088c2ecf20Sopenharmony_ci depends on SYSVIPC 30098c2ecf20Sopenharmony_ciendif 30108c2ecf20Sopenharmony_ci 30118c2ecf20Sopenharmony_ciendmenu 30128c2ecf20Sopenharmony_ci 30138c2ecf20Sopenharmony_ci 30148c2ecf20Sopenharmony_ciconfig HAVE_ATOMIC_IOMAP 30158c2ecf20Sopenharmony_ci def_bool y 30168c2ecf20Sopenharmony_ci depends on X86_32 30178c2ecf20Sopenharmony_ci 30188c2ecf20Sopenharmony_cisource "drivers/firmware/Kconfig" 30198c2ecf20Sopenharmony_ci 30208c2ecf20Sopenharmony_cisource "arch/x86/kvm/Kconfig" 30218c2ecf20Sopenharmony_ci 30228c2ecf20Sopenharmony_cisource "arch/x86/Kconfig.assembler" 3023