Source-Changes-HG archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

[src/trunk]: src/sys/arch/x86/include Add some CPUID bits from the latest Int...



details:   https://anonhg.NetBSD.org/src/rev/95350393e2bd
branches:  trunk
changeset: 359604:95350393e2bd
user:      msaitoh <msaitoh%NetBSD.org@localhost>
date:      Thu Jan 13 16:03:38 2022 +0000

description:
Add some CPUID bits from the latest Intel SDM.

 - Last Branch Record.
 - Thread Director.
 - AVX version of VNNI.
 - Fast short REP MOV.
 - HRESET.
 - PPIN.

diffstat:

 sys/arch/x86/include/specialreg.h |  31 +++++++++++++++++++++++++------
 1 files changed, 25 insertions(+), 6 deletions(-)

diffs (81 lines):

diff -r a2965e233a12 -r 95350393e2bd sys/arch/x86/include/specialreg.h
--- a/sys/arch/x86/include/specialreg.h Thu Jan 13 16:02:44 2022 +0000
+++ b/sys/arch/x86/include/specialreg.h Thu Jan 13 16:03:38 2022 +0000
@@ -1,4 +1,4 @@
-/*     $NetBSD: specialreg.h,v 1.179 2022/01/13 00:21:41 msaitoh Exp $ */
+/*     $NetBSD: specialreg.h,v 1.180 2022/01/13 16:03:38 msaitoh Exp $ */
 
 /*
  * Copyright (c) 2014-2020 The NetBSD Foundation, Inc.
@@ -137,13 +137,14 @@
 #define XCR0_CET_U     0x00000800      /* User CET state */
 #define XCR0_CET_S     0x00001000      /* Kern CET state */
 #define XCR0_HDC       0x00002000      /* Hardware Duty Cycle state */
+#define XCR0_LBR       0x00008000      /* Last Branch Record */
 #define XCR0_HWP       0x00010000      /* Hardware P-states */
 
 #define XCR0_FLAGS1    "\20"                                             \
        "\1" "x87"      "\2" "SSE"      "\3" "AVX"      "\4" "BNDREGS"    \
        "\5" "BNDCSR"   "\6" "Opmask"   "\7" "ZMM_Hi256" "\10" "Hi16_ZMM" \
        "\11" "PT"      "\12" "PKRU"                    "\14" "CET_U"     \
-       "\15" "CET_S"   "\16" "HDC"                                       \
+       "\15" "CET_S"   "\16" "HDC"                     "\20" "LBR"       \
        "\21" "HWP"
 
 /*
@@ -370,6 +371,7 @@
 #define CPUID_DSPM_HWP_FAST   __BIT(18)        /* Fast access for IA32_HWP_REQUEST */
 #define CPUID_DSPM_HW_FEEDBACK __BIT(19) /* HW_FEEDBACK*, IA32_PACKAGE_TERM* */
 #define CPUID_DSPM_HWP_IGNIDL __BIT(20)        /* Ignore Idle Logical Processor HWP */
+#define CPUID_DSPM_TD  __BIT(23)       /* Thread Director */
 
 #define CPUID_DSPM_FLAGS       "\20"                                         \
        "\1" "DTS"      "\2" "IDA"      "\3" "ARAT"                           \
@@ -377,7 +379,7 @@
        "\11" "HWP_NOTIFY" "\12" "HWP_ACTWIN" "\13" "HWP_EPP" "\14" "HWP_PLR" \
                        "\16" "HDC"     "\17" "TBM3"    "\20" "HWP_CAP"       \
        "\21" "HWP_PECI" "\22" "HWP_FLEX" "\23" "HWP_FAST" "\24HW_FEEDBACK"   \
-       "\25" "HWP_IGNIDL"
+       "\25" "HWP_IGNIDL"                              "\30" "TD"
 
 /*
  * Intel/AMD Digital Thermal Sensor and
@@ -385,8 +387,11 @@
  */
 #define CPUID_DSPM_HWF __BIT(0)        /* MSR_APERF/MSR_MPERF available */
 #define CPUID_DSPM_EPB __BIT(3)        /* Energy Performance Bias */
+#define CPUID_DSPM_NTDC        __BITS(15, 8)   /* Number of Thread Director Classes */
 
-#define CPUID_DSPM_FLAGS1      "\20" "\1" "HWF" "\4" "EPB"
+#define CPUID_DSPM_FLAGS1      "\177\20"                               \
+       "b\0HWF\0"                                      "b\3EPB\0"      \
+       "f\10\10NTDC\0"
 
 /*
  * Intel/AMD Structured Extended Feature leaf Fn0000_0007
@@ -511,9 +516,23 @@
        "\35" "L1D_FLUSH" "\36" "ARCH_CAP" "\37CORE_CAP" "\40" "SSBD"
 
 /* %ecx = 1, %eax */
+#define CPUID_SEF_AVXVNNI      __BIT(4)  /* AVX version of VNNI */
 #define CPUID_SEF_AVX512_BF16  __BIT(5)
-#define CPUID_SEF1_FLAGS_A     "\20"                   \
-                               "\6" "AVX512_BF16"
+#define CPUID_SEF_FZLRMS       __BIT(10) /* fast zero-length REP MOVSB */
+#define CPUID_SEF_FSRSB                __BIT(11) /* fast short REP STOSB */
+#define CPUID_SEF_FSRCS                __BIT(12) /* fast short REP CMPSB, REP SCASB */
+#define CPUID_SEF_HRESET       __BIT(22) /* HREST & IA32_HRESET_ENABLE MSR */
+
+#define CPUID_SEF1_FLAGS_A     "\20"                                   \
+       "\5" "AVXVNNI"  "\6" "AVX512_BF16"                              \
+                                       "\13" "FZLRMS"  "\14" "FSRSB"   \
+       "\15" "FSRCS"                   "\27" "HRESET"
+/* %ecx = 1, %ebx */
+#define CPUID_SEF_PPIN         __BIT(0)  /* IA32_PPIN & IA32_PPIN_CTL MSRs */
+
+#define CPUID_SEF1_FLAGS_B     "\20"                           \
+                               "\1" "PPIN"
+
 /*
  * Intel CPUID Architectural Performance Monitoring Fn0000000a
  *



Home | Main Index | Thread Index | Old Index