|
13 | 13 | /*
|
14 | 14 | * Defines x86 CPU feature bits
|
15 | 15 | */
|
16 |
| -#define NCAPINTS 19 /* N 32-bit words worth of info */ |
| 16 | +#define NCAPINTS 20 /* N 32-bit words worth of info */ |
17 | 17 | #define NBUGINTS 1 /* N 32-bit bug flags */
|
18 | 18 |
|
19 | 19 | /*
|
|
96 | 96 | #define X86_FEATURE_SYSCALL32 ( 3*32+14) /* "" syscall in IA32 userspace */
|
97 | 97 | #define X86_FEATURE_SYSENTER32 ( 3*32+15) /* "" sysenter in IA32 userspace */
|
98 | 98 | #define X86_FEATURE_REP_GOOD ( 3*32+16) /* REP microcode works well */
|
99 |
| -#define X86_FEATURE_SME_COHERENT ( 3*32+17) /* "" AMD hardware-enforced cache coherency */ |
| 99 | +/* FREE! ( 3*32+17) */ |
100 | 100 | #define X86_FEATURE_LFENCE_RDTSC ( 3*32+18) /* "" LFENCE synchronizes RDTSC */
|
101 | 101 | #define X86_FEATURE_ACC_POWER ( 3*32+19) /* AMD Accumulated Power Mechanism */
|
102 | 102 | #define X86_FEATURE_NOPL ( 3*32+20) /* The NOPL (0F 1F) instructions */
|
|
201 | 201 | #define X86_FEATURE_INVPCID_SINGLE ( 7*32+ 7) /* Effectively INVPCID && CR4.PCIDE=1 */
|
202 | 202 | #define X86_FEATURE_HW_PSTATE ( 7*32+ 8) /* AMD HW-PState */
|
203 | 203 | #define X86_FEATURE_PROC_FEEDBACK ( 7*32+ 9) /* AMD ProcFeedbackInterface */
|
204 |
| -#define X86_FEATURE_SME ( 7*32+10) /* AMD Secure Memory Encryption */ |
| 204 | +/* FREE! ( 7*32+10) */ |
205 | 205 | #define X86_FEATURE_PTI ( 7*32+11) /* Kernel Page Table Isolation enabled */
|
206 | 206 | #define X86_FEATURE_RETPOLINE ( 7*32+12) /* "" Generic Retpoline mitigation for Spectre variant 2 */
|
207 | 207 | #define X86_FEATURE_RETPOLINE_AMD ( 7*32+13) /* "" AMD Retpoline mitigation for Spectre variant 2 */
|
|
211 | 211 | #define X86_FEATURE_SSBD ( 7*32+17) /* Speculative Store Bypass Disable */
|
212 | 212 | #define X86_FEATURE_MBA ( 7*32+18) /* Memory Bandwidth Allocation */
|
213 | 213 | #define X86_FEATURE_RSB_CTXSW ( 7*32+19) /* "" Fill RSB on context switches */
|
214 |
| -#define X86_FEATURE_SEV ( 7*32+20) /* AMD Secure Encrypted Virtualization */ |
| 214 | +/* FREE! ( 7*32+20) */ |
215 | 215 | #define X86_FEATURE_USE_IBPB ( 7*32+21) /* "" Indirect Branch Prediction Barrier enabled */
|
216 | 216 | #define X86_FEATURE_USE_IBRS_FW ( 7*32+22) /* "" Use IBRS during runtime firmware calls */
|
217 | 217 | #define X86_FEATURE_SPEC_STORE_BYPASS_DISABLE ( 7*32+23) /* "" Disable Speculative Store Bypass. */
|
|
236 | 236 | #define X86_FEATURE_EPT_AD ( 8*32+17) /* Intel Extended Page Table access-dirty bit */
|
237 | 237 | #define X86_FEATURE_VMCALL ( 8*32+18) /* "" Hypervisor supports the VMCALL instruction */
|
238 | 238 | #define X86_FEATURE_VMW_VMMCALL ( 8*32+19) /* "" VMware prefers VMMCALL hypercall instruction */
|
239 |
| -#define X86_FEATURE_SEV_ES ( 8*32+20) /* AMD Secure Encrypted Virtualization - Encrypted State */ |
240 |
| -#define X86_FEATURE_VM_PAGE_FLUSH ( 8*32+21) /* "" VM Page Flush MSR is supported */ |
241 | 239 |
|
242 | 240 | /* Intel-defined CPU features, CPUID level 0x00000007:0 (EBX), word 9 */
|
243 | 241 | #define X86_FEATURE_FSGSBASE ( 9*32+ 0) /* RDFSBASE, WRFSBASE, RDGSBASE, WRGSBASE instructions*/
|
|
294 | 292 | #define X86_FEATURE_PER_THREAD_MBA (11*32+ 7) /* "" Per-thread Memory Bandwidth Allocation */
|
295 | 293 |
|
296 | 294 | /* Intel-defined CPU features, CPUID level 0x00000007:1 (EAX), word 12 */
|
| 295 | +#define X86_FEATURE_AVX_VNNI (12*32+ 4) /* AVX VNNI instructions */ |
297 | 296 | #define X86_FEATURE_AVX512_BF16 (12*32+ 5) /* AVX512 BFLOAT16 instructions */
|
298 | 297 |
|
299 | 298 | /* AMD-defined CPU features, CPUID level 0x80000008 (EBX), word 13 */
|
|
337 | 336 | #define X86_FEATURE_AVIC (15*32+13) /* Virtual Interrupt Controller */
|
338 | 337 | #define X86_FEATURE_V_VMSAVE_VMLOAD (15*32+15) /* Virtual VMSAVE VMLOAD */
|
339 | 338 | #define X86_FEATURE_VGIF (15*32+16) /* Virtual GIF */
|
| 339 | +#define X86_FEATURE_SVME_ADDR_CHK (15*32+28) /* "" SVME addr check */ |
340 | 340 |
|
341 | 341 | /* Intel-defined CPU features, CPUID level 0x00000007:0 (ECX), word 16 */
|
342 | 342 | #define X86_FEATURE_AVX512VBMI (16*32+ 1) /* AVX512 Vector Bit Manipulation instructions*/
|
|
385 | 385 | #define X86_FEATURE_CORE_CAPABILITIES (18*32+30) /* "" IA32_CORE_CAPABILITIES MSR */
|
386 | 386 | #define X86_FEATURE_SPEC_CTRL_SSBD (18*32+31) /* "" Speculative Store Bypass Disable */
|
387 | 387 |
|
| 388 | +/* AMD-defined memory encryption features, CPUID level 0x8000001f (EAX), word 19 */ |
| 389 | +#define X86_FEATURE_SME (19*32+ 0) /* AMD Secure Memory Encryption */ |
| 390 | +#define X86_FEATURE_SEV (19*32+ 1) /* AMD Secure Encrypted Virtualization */ |
| 391 | +#define X86_FEATURE_VM_PAGE_FLUSH (19*32+ 2) /* "" VM Page Flush MSR is supported */ |
| 392 | +#define X86_FEATURE_SEV_ES (19*32+ 3) /* AMD Secure Encrypted Virtualization - Encrypted State */ |
| 393 | +#define X86_FEATURE_SME_COHERENT (19*32+10) /* "" AMD hardware-enforced cache coherency */ |
| 394 | + |
388 | 395 | /*
|
389 | 396 | * BUG word(s)
|
390 | 397 | */
|
|
0 commit comments