|
13 | 13 | /*
|
14 | 14 | * Defines x86 CPU feature bits
|
15 | 15 | */
|
16 |
| -#define NCAPINTS 18 /* N 32-bit words worth of info */ |
| 16 | +#define NCAPINTS 19 /* N 32-bit words worth of info */ |
17 | 17 | #define NBUGINTS 1 /* N 32-bit bug flags */
|
18 | 18 |
|
19 | 19 | /*
|
|
203 | 203 | #define X86_FEATURE_PROC_FEEDBACK ( 7*32+ 9) /* AMD ProcFeedbackInterface */
|
204 | 204 | #define X86_FEATURE_SME ( 7*32+10) /* AMD Secure Memory Encryption */
|
205 | 205 | #define X86_FEATURE_PTI ( 7*32+11) /* Kernel Page Table Isolation enabled */
|
| 206 | +#define X86_FEATURE_RETPOLINE ( 7*32+12) /* "" Generic Retpoline mitigation for Spectre variant 2 */ |
| 207 | +#define X86_FEATURE_RETPOLINE_AMD ( 7*32+13) /* "" AMD Retpoline mitigation for Spectre variant 2 */ |
206 | 208 | #define X86_FEATURE_INTEL_PPIN ( 7*32+14) /* Intel Processor Inventory Number */
|
207 |
| -#define X86_FEATURE_INTEL_PT ( 7*32+15) /* Intel Processor Trace */ |
208 |
| -#define X86_FEATURE_AVX512_4VNNIW ( 7*32+16) /* AVX-512 Neural Network Instructions */ |
209 |
| -#define X86_FEATURE_AVX512_4FMAPS ( 7*32+17) /* AVX-512 Multiply Accumulation Single precision */ |
| 209 | +#define X86_FEATURE_CDP_L2 ( 7*32+15) /* Code and Data Prioritization L2 */ |
210 | 210 |
|
211 | 211 | #define X86_FEATURE_MBA ( 7*32+18) /* Memory Bandwidth Allocation */
|
| 212 | +#define X86_FEATURE_RSB_CTXSW ( 7*32+19) /* "" Fill RSB on context switches */ |
| 213 | + |
| 214 | +#define X86_FEATURE_USE_IBPB ( 7*32+21) /* "" Indirect Branch Prediction Barrier enabled */ |
212 | 215 |
|
213 | 216 | /* Virtualization flags: Linux defined, word 8 */
|
214 | 217 | #define X86_FEATURE_TPR_SHADOW ( 8*32+ 0) /* Intel TPR Shadow */
|
|
243 | 246 | #define X86_FEATURE_AVX512IFMA ( 9*32+21) /* AVX-512 Integer Fused Multiply-Add instructions */
|
244 | 247 | #define X86_FEATURE_CLFLUSHOPT ( 9*32+23) /* CLFLUSHOPT instruction */
|
245 | 248 | #define X86_FEATURE_CLWB ( 9*32+24) /* CLWB instruction */
|
| 249 | +#define X86_FEATURE_INTEL_PT ( 9*32+25) /* Intel Processor Trace */ |
246 | 250 | #define X86_FEATURE_AVX512PF ( 9*32+26) /* AVX-512 Prefetch */
|
247 | 251 | #define X86_FEATURE_AVX512ER ( 9*32+27) /* AVX-512 Exponential and Reciprocal */
|
248 | 252 | #define X86_FEATURE_AVX512CD ( 9*32+28) /* AVX-512 Conflict Detection */
|
|
268 | 272 | #define X86_FEATURE_CLZERO (13*32+ 0) /* CLZERO instruction */
|
269 | 273 | #define X86_FEATURE_IRPERF (13*32+ 1) /* Instructions Retired Count */
|
270 | 274 | #define X86_FEATURE_XSAVEERPTR (13*32+ 2) /* Always save/restore FP error pointers */
|
| 275 | +#define X86_FEATURE_IBPB (13*32+12) /* Indirect Branch Prediction Barrier */ |
| 276 | +#define X86_FEATURE_IBRS (13*32+14) /* Indirect Branch Restricted Speculation */ |
| 277 | +#define X86_FEATURE_STIBP (13*32+15) /* Single Thread Indirect Branch Predictors */ |
271 | 278 |
|
272 | 279 | /* Thermal and Power Management Leaf, CPUID level 0x00000006 (EAX), word 14 */
|
273 | 280 | #define X86_FEATURE_DTHERM (14*32+ 0) /* Digital Thermal Sensor */
|
|
316 | 323 | #define X86_FEATURE_SUCCOR (17*32+ 1) /* Uncorrectable error containment and recovery */
|
317 | 324 | #define X86_FEATURE_SMCA (17*32+ 3) /* Scalable MCA */
|
318 | 325 |
|
| 326 | +/* Intel-defined CPU features, CPUID level 0x00000007:0 (EDX), word 18 */ |
| 327 | +#define X86_FEATURE_AVX512_4VNNIW (18*32+ 2) /* AVX-512 Neural Network Instructions */ |
| 328 | +#define X86_FEATURE_AVX512_4FMAPS (18*32+ 3) /* AVX-512 Multiply Accumulation Single precision */ |
| 329 | +#define X86_FEATURE_SPEC_CTRL (18*32+26) /* "" Speculation Control (IBRS + IBPB) */ |
| 330 | +#define X86_FEATURE_INTEL_STIBP (18*32+27) /* "" Single Thread Indirect Branch Predictors */ |
| 331 | +#define X86_FEATURE_ARCH_CAPABILITIES (18*32+29) /* IA32_ARCH_CAPABILITIES MSR (Intel) */ |
| 332 | + |
319 | 333 | /*
|
320 | 334 | * BUG word(s)
|
321 | 335 | */
|
|
342 | 356 | #define X86_BUG_MONITOR X86_BUG(12) /* IPI required to wake up remote CPU */
|
343 | 357 | #define X86_BUG_AMD_E400 X86_BUG(13) /* CPU is among the affected by Erratum 400 */
|
344 | 358 | #define X86_BUG_CPU_MELTDOWN X86_BUG(14) /* CPU is affected by meltdown attack and needs kernel page table isolation */
|
| 359 | +#define X86_BUG_SPECTRE_V1 X86_BUG(15) /* CPU is affected by Spectre variant 1 attack with conditional branches */ |
| 360 | +#define X86_BUG_SPECTRE_V2 X86_BUG(16) /* CPU is affected by Spectre variant 2 attack with indirect branches */ |
345 | 361 |
|
346 | 362 | #endif /* _ASM_X86_CPUFEATURES_H */
|
0 commit comments