Print this page
4806 define x2apic feature flag
4807 pcplusmp & apix should use x2apic feature flag
Reviewed by: Robert Mustacchi <rm@joyent.com>

@@ -114,10 +114,11 @@
                                                 /* 0x00010000 - reserved */
                                                 /* 0x00020000 - reserved */
 #define CPUID_INTC_ECX_DCA      0x00040000      /* direct cache access */
 #define CPUID_INTC_ECX_SSE4_1   0x00080000      /* SSE4.1 insns */
 #define CPUID_INTC_ECX_SSE4_2   0x00100000      /* SSE4.2 insns */
+#define CPUID_INTC_ECX_X2APIC   0x00200000      /* x2APIC */
 #define CPUID_INTC_ECX_MOVBE    0x00400000      /* MOVBE insn */
 #define CPUID_INTC_ECX_POPCNT   0x00800000      /* POPCNT insn */
 #define CPUID_INTC_ECX_AES      0x02000000      /* AES insns */
 #define CPUID_INTC_ECX_XSAVE    0x04000000      /* XSAVE/XRESTOR insns */
 #define CPUID_INTC_ECX_OSXSAVE  0x08000000      /* OS supports XSAVE insns */

@@ -128,11 +129,11 @@
 
 #define FMT_CPUID_INTC_ECX                                      \
         "\20"                                                   \
         "\37rdrand\36f16c\35avx\34osxsav\33xsave"               \
         "\32aes"                                                \
-        "\30popcnt\27movbe\25sse4.2\24sse4.1\23dca"             \
+        "\30popcnt\27movbe\26x2apic\25sse4.2\24sse4.1\23dca"    \
         "\20\17etprd\16cx16\13cid\12ssse3\11tm2"                \
         "\10est\7smx\6vmx\5dscpl\4mon\2pclmulqdq\1sse3"
 
 /*
  * cpuid instruction feature flags in %edx (extended function 0x80000001)

@@ -377,10 +378,11 @@
 #define X86FSET_VMX             35
 #define X86FSET_SVM             36
 #define X86FSET_TOPOEXT         37
 #define X86FSET_F16C            38
 #define X86FSET_RDRAND          39
+#define X86FSET_X2APIC          40
 
 /*
  * flags to patch tsc_read routine.
  */
 #define X86_NO_TSC              0x0

@@ -637,11 +639,11 @@
 
 #if !defined(_ASM)
 
 #if defined(_KERNEL) || defined(_KMEMUSER)
 
-#define NUM_X86_FEATURES        40
+#define NUM_X86_FEATURES        41
 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);