arch/x86/Kconfig.cpufeatures

Source file repositories/reference/linux-study-clean/arch/x86/Kconfig.cpufeatures

File Facts

System
Linux kernel
Corpus path
arch/x86/Kconfig.cpufeatures
Extension
.cpufeatures
Size
5028 bytes
Lines
208
Domain
Architecture Layer
Bucket
arch/x86
Inferred role
Architecture Layer: arch/x86
Status
atlas-only

Why This File Exists

CPU and platform-specific kernel glue: boot entry, traps, syscall entry, interrupts, page tables, context switch, and low-level barriers.

Dependency Surface

Detected Declarations

Annotated Snippet

# SPDX-License-Identifier: GPL-2.0
#
# x86 feature bits (see arch/x86/include/asm/cpufeatures.h) that are
# either REQUIRED to be enabled, or DISABLED (always ignored) for this
# particular compile-time configuration.  The tests for these features
# are turned into compile-time constants via the generated
# <asm/cpufeaturemasks.h>.
#
# The naming of these variables *must* match asm/cpufeatures.h, e.g.,
#     X86_FEATURE_ALWAYS <==> X86_REQUIRED_FEATURE_ALWAYS
#     X86_FEATURE_FRED   <==> X86_DISABLED_FEATURE_FRED
#
# And these REQUIRED and DISABLED config options are manipulated in an
# AWK script as the following example:
#
#                          +----------------------+
#                          |    X86_FRED = y ?    |
#                          +----------------------+
#                              /             \
#                           Y /               \ N
#  +-------------------------------------+   +-------------------------------+
#  | X86_DISABLED_FEATURE_FRED undefined |   | X86_DISABLED_FEATURE_FRED = y |
#  +-------------------------------------+   +-------------------------------+
#                                                        |
#                                                        |
#     +-------------------------------------------+      |
#     | X86_FEATURE_FRED: feature word 12, bit 17 | ---->|
#     +-------------------------------------------+      |
#                                                        |
#                                                        |
#                                     +-------------------------------+
#                                     | set bit 17 of DISABLED_MASK12 |
#                                     +-------------------------------+
#

config X86_REQUIRED_FEATURE_ALWAYS
	def_bool y

config X86_REQUIRED_FEATURE_NOPL
	def_bool y
	depends on X86_64

config X86_REQUIRED_FEATURE_CX8
	def_bool y

# this should be set for all -march=.. options where the compiler
# generates cmov.
config X86_REQUIRED_FEATURE_CMOV
	def_bool y
	depends on X86_CMOV

# this should be set for all -march= options where the compiler
# generates movbe.
config X86_REQUIRED_FEATURE_MOVBE
	def_bool y
	depends on MATOM

config X86_REQUIRED_FEATURE_SYSFAST32
	def_bool y
	depends on X86_64 && !X86_FRED

config X86_REQUIRED_FEATURE_CPUID
	def_bool y
	depends on X86_64

config X86_REQUIRED_FEATURE_UP
	def_bool y
	depends on !SMP

config X86_REQUIRED_FEATURE_FPU

Annotation

Implementation Notes