Orange Pi5 kernel

Deprecated Linux kernel 5.10.110 for OrangePi 5/5B/5+ boards

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