xref: /linux/arch/x86/Kconfig.cpufeatures (revision 2bebd986eddb31f9ff1e02e9245a318036280759)
1# SPDX-License-Identifier: GPL-2.0
2#
3# x86 feature bits (see arch/x86/include/asm/cpufeatures.h) that are
4# either REQUIRED to be enabled, or DISABLED (always ignored) for this
5# particular compile-time configuration.  The tests for these features
6# are turned into compile-time constants via the generated
7# <asm/cpufeaturemasks.h>.
8#
9# The naming of these variables *must* match asm/cpufeatures.h, e.g.,
10#     X86_FEATURE_ALWAYS <==> X86_REQUIRED_FEATURE_ALWAYS
11#     X86_FEATURE_FRED   <==> X86_DISABLED_FEATURE_FRED
12#
13# And these REQUIRED and DISABLED config options are manipulated in an
14# AWK script as the following example:
15#
16#                          +----------------------+
17#                          |    X86_FRED = y ?    |
18#                          +----------------------+
19#                              /             \
20#                           Y /               \ N
21#  +-------------------------------------+   +-------------------------------+
22#  | X86_DISABLED_FEATURE_FRED undefined |   | X86_DISABLED_FEATURE_FRED = y |
23#  +-------------------------------------+   +-------------------------------+
24#                                                        |
25#                                                        |
26#     +-------------------------------------------+      |
27#     | X86_FEATURE_FRED: feature word 12, bit 17 | ---->|
28#     +-------------------------------------------+      |
29#                                                        |
30#                                                        |
31#                                     +-------------------------------+
32#                                     | set bit 17 of DISABLED_MASK12 |
33#                                     +-------------------------------+
34#
35
36config X86_REQUIRED_FEATURE_ALWAYS
37	def_bool y
38
39config X86_REQUIRED_FEATURE_NOPL
40	def_bool y
41	depends on X86_64
42
43config X86_REQUIRED_FEATURE_CX8
44	def_bool y
45
46# this should be set for all -march=.. options where the compiler
47# generates cmov.
48config X86_REQUIRED_FEATURE_CMOV
49	def_bool y
50	depends on X86_CMOV
51
52# this should be set for all -march= options where the compiler
53# generates movbe.
54config X86_REQUIRED_FEATURE_MOVBE
55	def_bool y
56	depends on MATOM
57
58config X86_REQUIRED_FEATURE_SYSFAST32
59	def_bool y
60	depends on X86_64 && !X86_FRED
61
62config X86_REQUIRED_FEATURE_CPUID
63	def_bool y
64	depends on X86_64
65
66config X86_REQUIRED_FEATURE_UP
67	def_bool y
68	depends on !SMP
69
70config X86_REQUIRED_FEATURE_FPU
71	def_bool y
72
73config X86_REQUIRED_FEATURE_PAE
74	def_bool y
75	depends on X86_64 || X86_PAE
76
77config X86_REQUIRED_FEATURE_PSE
78	def_bool y
79	depends on X86_64 && !PARAVIRT_XXL
80
81config X86_REQUIRED_FEATURE_PGE
82	def_bool y
83	depends on X86_64 && !PARAVIRT_XXL
84
85config X86_REQUIRED_FEATURE_MSR
86	def_bool y
87	depends on X86_64
88
89config X86_REQUIRED_FEATURE_FXSR
90	def_bool y
91	depends on X86_64
92
93config X86_REQUIRED_FEATURE_XMM
94	def_bool y
95	depends on X86_64
96
97config X86_REQUIRED_FEATURE_XMM2
98	def_bool y
99	depends on X86_64
100
101config X86_REQUIRED_FEATURE_LM
102	def_bool y
103	depends on X86_64
104
105config X86_DISABLED_FEATURE_UMIP
106	def_bool y
107	depends on !X86_UMIP
108
109config X86_DISABLED_FEATURE_VME
110	def_bool y
111	depends on X86_64
112
113config X86_DISABLED_FEATURE_K6_MTRR
114	def_bool y
115	depends on X86_64
116
117config X86_DISABLED_FEATURE_CYRIX_ARR
118	def_bool y
119	depends on X86_64
120
121config X86_DISABLED_FEATURE_CENTAUR_MCR
122	def_bool y
123	depends on X86_64
124
125config X86_DISABLED_FEATURE_SYSCALL32
126	def_bool y
127	depends on !X86_64
128
129config X86_DISABLED_FEATURE_PCID
130	def_bool y
131	depends on !X86_64
132
133config X86_DISABLED_FEATURE_LASS
134	def_bool y
135	depends on X86_32
136
137config X86_DISABLED_FEATURE_PKU
138	def_bool y
139	depends on !X86_INTEL_MEMORY_PROTECTION_KEYS
140
141config X86_DISABLED_FEATURE_OSPKE
142	def_bool y
143	depends on !X86_INTEL_MEMORY_PROTECTION_KEYS
144
145config X86_DISABLED_FEATURE_PTI
146	def_bool y
147	depends on !MITIGATION_PAGE_TABLE_ISOLATION
148
149config X86_DISABLED_FEATURE_RETPOLINE
150	def_bool y
151	depends on !MITIGATION_RETPOLINE
152
153config X86_DISABLED_FEATURE_RETPOLINE_LFENCE
154	def_bool y
155	depends on !MITIGATION_RETPOLINE
156
157config X86_DISABLED_FEATURE_RETHUNK
158	def_bool y
159	depends on !MITIGATION_RETHUNK
160
161config X86_DISABLED_FEATURE_UNRET
162	def_bool y
163	depends on !MITIGATION_UNRET_ENTRY
164
165config X86_DISABLED_FEATURE_CALL_DEPTH
166	def_bool y
167	depends on !MITIGATION_CALL_DEPTH_TRACKING
168
169config X86_DISABLED_FEATURE_LAM
170	def_bool y
171	depends on !ADDRESS_MASKING
172
173config X86_DISABLED_FEATURE_ENQCMD
174	def_bool y
175	depends on !INTEL_IOMMU_SVM
176
177config X86_DISABLED_FEATURE_SGX
178	def_bool y
179	depends on !X86_SGX
180
181config X86_DISABLED_FEATURE_XENPV
182	def_bool y
183	depends on !XEN_PV
184
185config X86_DISABLED_FEATURE_TDX_GUEST
186	def_bool y
187	depends on !INTEL_TDX_GUEST
188
189config X86_DISABLED_FEATURE_USER_SHSTK
190	def_bool y
191	depends on !X86_USER_SHADOW_STACK
192
193config X86_DISABLED_FEATURE_IBT
194	def_bool y
195	depends on !X86_KERNEL_IBT
196
197config X86_DISABLED_FEATURE_FRED
198	def_bool y
199	depends on !X86_FRED
200
201config X86_DISABLED_FEATURE_SEV_SNP
202	def_bool y
203	depends on !KVM_AMD_SEV
204
205config X86_DISABLED_FEATURE_INVLPGB
206	def_bool y
207	depends on !BROADCAST_TLB_FLUSH
208