Print this page
10208 Add x86 features for L1TF

@@ -25,11 +25,11 @@
 /*
  * Copyright (c) 2010, Intel Corporation.
  * All rights reserved.
  */
 /*
- * Copyright 2018 Joyent, Inc.
+ * Copyright (c) 2019, Joyent, Inc.
  * Copyright 2012 Jens Elkner <jel+illumos@cs.uni-magdeburg.de>
  * Copyright 2012 Hans Rosenfeld <rosenfeld@grumpf.hope-2000.org>
  * Copyright 2014 Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
  * Copyright 2018 Nexenta Systems, Inc.
  */

@@ -252,10 +252,11 @@
 
 #define CPUID_INTC_EDX_7_0_AVX5124NNIW  0x00000004      /* AVX512 4NNIW */
 #define CPUID_INTC_EDX_7_0_AVX5124FMAPS 0x00000008      /* AVX512 4FMAPS */
 #define CPUID_INTC_EDX_7_0_SPEC_CTRL    0x04000000      /* Spec, IBPB, IBRS */
 #define CPUID_INTC_EDX_7_0_STIBP        0x08000000      /* STIBP */
+#define CPUID_INTC_EDX_7_0_FLUSH_CMD    0x10000000      /* IA32_FLUSH_CMD */
 #define CPUID_INTC_EDX_7_0_ARCH_CAPS    0x20000000      /* IA32_ARCH_CAPS */
 #define CPUID_INTC_EDX_7_0_SSBD         0x80000000      /* SSBD */
 
 #define CPUID_INTC_EDX_7_0_ALL_AVX512 \
         (CPUID_INTC_EDX_7_0_AVX5124NNIW | CPUID_INTC_EDX_7_0_AVX5124FMAPS)

@@ -352,10 +353,11 @@
  */
 #define MSR_IA32_ARCH_CAPABILITIES      0x10a
 #define IA32_ARCH_CAP_RDCL_NO           0x0001
 #define IA32_ARCH_CAP_IBRS_ALL          0x0002
 #define IA32_ARCH_CAP_RSBA              0x0004
+#define IA32_ARCH_CAP_SKIP_L1DFL_VMENTRY        0x0008
 #define IA32_ARCH_CAP_SSB_NO            0x0010
 
 /*
  * Intel Speculation related MSRs
  */

@@ -365,10 +367,13 @@
 #define IA32_SPEC_CTRL_SSBD     0x04
 
 #define MSR_IA32_PRED_CMD       0x49
 #define IA32_PRED_CMD_IBPB      0x01
 
+#define MSR_IA32_FLUSH_CMD      0x10b
+#define IA32_FLUSH_CMD_L1D      0x01
+
 #define MCI_CTL_VALUE           0xffffffff
 
 #define MTRR_TYPE_UC            0
 #define MTRR_TYPE_WC            1
 #define MTRR_TYPE_WT            4

@@ -477,10 +482,12 @@
 #define X86FSET_RDCL_NO         76
 #define X86FSET_IBRS_ALL        77
 #define X86FSET_RSBA            78
 #define X86FSET_SSB_NO          79
 #define X86FSET_STIBP_ALL       80
+#define X86FSET_FLUSH_CMD       81
+#define X86FSET_L1D_VM_NO       82
 
 /*
  * Intel Deep C-State invariant TSC in leaf 0x80000007.
  */
 #define CPUID_TSC_CSTATE_INVARIANCE     (0x100)

@@ -746,11 +753,11 @@
 
 #if !defined(_ASM)
 
 #if defined(_KERNEL) || defined(_KMEMUSER)
 
-#define NUM_X86_FEATURES        81
+#define NUM_X86_FEATURES        83
 extern uchar_t x86_featureset[];
 
 extern void free_x86_featureset(void *featureset);
 extern boolean_t is_x86_feature(void *featureset, uint_t feature);
 extern void add_x86_feature(void *featureset, uint_t feature);