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 No functional change.



details:   https://anonhg.NetBSD.org/src/rev/53af75c41183
branches:  trunk
changeset: 359638:53af75c41183
user:      msaitoh <msaitoh%NetBSD.org@localhost>
date:      Sat Jan 15 09:55:13 2022 +0000

description:
No functional change.

 - Modify comment. Add comment. Fix typo. Mainly taken from dragonfly.
 - Use __BIT().

diffstat:

 sys/arch/x86/include/specialreg.h |  236 ++++++++++++++++++++-----------------
 1 files changed, 125 insertions(+), 111 deletions(-)

diffs (truncated from 508 to 300 lines):

diff -r 323a241fdb77 -r 53af75c41183 sys/arch/x86/include/specialreg.h
--- a/sys/arch/x86/include/specialreg.h Sat Jan 15 09:08:57 2022 +0000
+++ b/sys/arch/x86/include/specialreg.h Sat Jan 15 09:55:13 2022 +0000
@@ -1,4 +1,4 @@
-/*     $NetBSD: specialreg.h,v 1.182 2022/01/14 15:46:41 msaitoh Exp $ */
+/*     $NetBSD: specialreg.h,v 1.183 2022/01/15 09:55:13 msaitoh Exp $ */
 
 /*
  * Copyright (c) 2014-2020 The NetBSD Foundation, Inc.
@@ -97,29 +97,29 @@
 /*
  * CR4
  */
-#define CR4_VME                0x00000001 /* virtual 8086 mode extension enable */
-#define CR4_PVI                0x00000002 /* protected mode virtual interrupt enable */
-#define CR4_TSD                0x00000004 /* restrict RDTSC instruction to cpl 0 */
-#define CR4_DE         0x00000008 /* debugging extension */
-#define CR4_PSE                0x00000010 /* large (4MB) page size enable */
-#define CR4_PAE                0x00000020 /* physical address extension enable */
-#define CR4_MCE                0x00000040 /* machine check enable */
-#define CR4_PGE                0x00000080 /* page global enable */
-#define CR4_PCE                0x00000100 /* enable RDPMC instruction for all cpls */
-#define CR4_OSFXSR     0x00000200 /* enable fxsave/fxrestor and SSE */
-#define CR4_OSXMMEXCPT 0x00000400 /* enable unmasked SSE exceptions */
-#define CR4_UMIP       0x00000800 /* user-mode instruction prevention */
+#define CR4_VME                0x00000001 /* Virtual 8086 mode extension enable */
+#define CR4_PVI                0x00000002 /* Protected mode virtual interrupt enable */
+#define CR4_TSD                0x00000004 /* Restrict RDTSC instruction to cpl 0 */
+#define CR4_DE         0x00000008 /* Debugging extension */
+#define CR4_PSE                0x00000010 /* Large (4MB) page size enable */
+#define CR4_PAE                0x00000020 /* Physical address extension enable */
+#define CR4_MCE                0x00000040 /* Machine check enable */
+#define CR4_PGE                0x00000080 /* Page global enable */
+#define CR4_PCE                0x00000100 /* Enable RDPMC instruction for all cpls */
+#define CR4_OSFXSR     0x00000200 /* Enable fxsave/fxrestor and SSE */
+#define CR4_OSXMMEXCPT 0x00000400 /* Enable unmasked SSE exceptions */
+#define CR4_UMIP       0x00000800 /* User Mode Instruction Prevention */
 #define CR4_LA57       0x00001000 /* 57-bit linear addresses */
-#define CR4_VMXE       0x00002000 /* enable VMX operations */
-#define CR4_SMXE       0x00004000 /* enable SMX operations */
-#define CR4_FSGSBASE   0x00010000 /* enable *FSBASE and *GSBASE instructions */
-#define CR4_PCIDE      0x00020000 /* enable Process Context IDentifiers */
-#define CR4_OSXSAVE    0x00040000 /* enable xsave and xrestore */
-#define CR4_SMEP       0x00100000 /* enable SMEP support */
-#define CR4_SMAP       0x00200000 /* enable SMAP support */
-#define CR4_PKE                0x00400000 /* enable Protection Keys for user pages */
-#define CR4_CET                0x00800000 /* enable CET */
-#define CR4_PKS                0x01000000 /* enable Protection Keys for kern pages */
+#define CR4_VMXE       0x00002000 /* Enable VMX operations */
+#define CR4_SMXE       0x00004000 /* Enable SMX operations */
+#define CR4_FSGSBASE   0x00010000 /* Enable *FSBASE and *GSBASE instructions */
+#define CR4_PCIDE      0x00020000 /* Enable Process Context IDentifiers */
+#define CR4_OSXSAVE    0x00040000 /* Enable xsave and xrestore */
+#define CR4_SMEP       0x00100000 /* Enable SMEP support */
+#define CR4_SMAP       0x00200000 /* Enable SMAP support */
+#define CR4_PKE                0x00400000 /* Enable Protection Keys for user pages */
+#define CR4_CET                0x00800000 /* Enable CET */
+#define CR4_PKS                0x01000000 /* Enable Protection Keys for kern pages */
 
 /*
  * Extended Control Register XCR0
@@ -172,17 +172,17 @@
 #define XSAVE_MAX_COMPONENT XSAVE_Hi16_ZMM
 
 /*
- * CPUID "features" bits
+ * "features" bits.
+ * CPUID Fn00000001
  */
-
-/* Fn00000001 %edx features */
+/* %edx */
 #define CPUID_FPU      0x00000001      /* processor has an FPU? */
 #define CPUID_VME      0x00000002      /* has virtual mode (%cr4's VME/PVI) */
 #define CPUID_DE       0x00000004      /* has debugging extension */
 #define CPUID_PSE      0x00000008      /* has 4MB page size extension */
 #define CPUID_TSC      0x00000010      /* has time stamp counter */
 #define CPUID_MSR      0x00000020      /* has model specific registers */
-#define CPUID_PAE      0x00000040      /* has phys address extension */
+#define CPUID_PAE      0x00000040      /* has physical address extension */
 #define CPUID_MCE      0x00000080      /* has machine check exception */
 #define CPUID_CX8      0x00000100      /* has CMPXCHG8B instruction */
 #define CPUID_APIC     0x00000200      /* has enabled APIC */
@@ -193,17 +193,17 @@
 #define CPUID_CMOV     0x00008000      /* has CMOVcc instruction */
 #define CPUID_PAT      0x00010000      /* Page Attribute Table */
 #define CPUID_PSE36    0x00020000      /* 36-bit PSE */
-#define CPUID_PSN      0x00040000      /* processor serial number */
-#define CPUID_CLFSH    0x00080000      /* CLFLUSH insn supported */
+#define CPUID_PSN      0x00040000      /* Processor Serial Number */
+#define CPUID_CLFSH    0x00080000      /* CLFLUSH instruction supported */
 #define CPUID_DS       0x00200000      /* Debug Store */
 #define CPUID_ACPI     0x00400000      /* ACPI performance modulation regs */
 #define CPUID_MMX      0x00800000      /* MMX supported */
-#define CPUID_FXSR     0x01000000      /* fast FP/MMX save/restore */
-#define CPUID_SSE      0x02000000      /* streaming SIMD extensions */
-#define CPUID_SSE2     0x04000000      /* streaming SIMD extensions #2 */
-#define CPUID_SS       0x08000000      /* self-snoop */
+#define CPUID_FXSR     0x01000000      /* Fast FP/MMX Save/Restore */
+#define CPUID_SSE      0x02000000      /* Streaming SIMD Extensions */
+#define CPUID_SSE2     0x04000000      /* Streaming SIMD Extensions #2 */
+#define CPUID_SS       0x08000000      /* Self-Snoop */
 #define CPUID_HTT      0x10000000      /* Hyper-Threading Technology */
-#define CPUID_TM       0x20000000      /* thermal monitor (TCC) */
+#define CPUID_TM       0x20000000      /* Thermal Monitor (TCC) */
 #define CPUID_PBE      0x80000000      /* Pending Break Enable */
 
 #define CPUID_FLAGS1   "\20"                                           \
@@ -223,24 +223,21 @@
 #define CPUID_FEAT_BLACKLIST    0
 #endif
 
-/*
- * CPUID "features" bits in Fn00000001 %ecx
- */
-
+/* %ecx */
 #define CPUID2_SSE3    0x00000001      /* Streaming SIMD Extensions 3 */
 #define CPUID2_PCLMULQDQ 0x00000002    /* PCLMULQDQ instructions */
 #define CPUID2_DTES64  0x00000004      /* 64-bit Debug Trace */
 #define CPUID2_MONITOR 0x00000008      /* MONITOR/MWAIT instructions */
 #define CPUID2_DS_CPL  0x00000010      /* CPL Qualified Debug Store */
-#define CPUID2_VMX     0x00000020      /* Virtual Machine Extensions */
-#define CPUID2_SMX     0x00000040      /* Safer Mode Extensions */
+#define CPUID2_VMX     0x00000020      /* Virtual Machine eXtensions */
+#define CPUID2_SMX     0x00000040      /* Safer Mode eXtensions */
 #define CPUID2_EST     0x00000080      /* Enhanced SpeedStep Technology */
 #define CPUID2_TM2     0x00000100      /* Thermal Monitor 2 */
 #define CPUID2_SSSE3   0x00000200      /* Supplemental SSE3 */
 #define CPUID2_CNXTID  0x00000400      /* Context ID */
 #define CPUID2_SDBG    0x00000800      /* Silicon Debug */
-#define CPUID2_FMA     0x00001000      /* has Fused Multiply Add */
-#define CPUID2_CX16    0x00002000      /* has CMPXCHG16B instruction */
+#define CPUID2_FMA     0x00001000      /* Fused Multiply Add */
+#define CPUID2_CX16    0x00002000      /* CMPXCHG16B instruction */
 #define CPUID2_XTPR    0x00004000      /* Task Priority Messages disabled? */
 #define CPUID2_PDCM    0x00008000      /* Perf/Debug Capability MSR */
 /* bit 16 unused       0x00010000 */
@@ -250,7 +247,7 @@
 #define CPUID2_SSE42   0x00100000      /* Streaming SIMD Extensions 4.2 */
 #define CPUID2_X2APIC  0x00200000      /* xAPIC Extensions */
 #define CPUID2_MOVBE   0x00400000      /* MOVBE (move after byteswap) */
-#define CPUID2_POPCNT  0x00800000      /* popcount instruction available */
+#define CPUID2_POPCNT  0x00800000      /* POPCNT instruction available */
 #define CPUID2_DEADLINE        0x01000000      /* APIC Timer supports TSC Deadline */
 #define CPUID2_AESNI   0x02000000      /* AES instructions */
 #define CPUID2_XSAVE   0x04000000      /* XSAVE instructions */
@@ -270,8 +267,7 @@
        "\31" "DEADLINE" "\32" "AES"    "\33" "XSAVE"   "\34" "OSXSAVE" \
        "\35" "AVX"     "\36" "F16C"    "\37" "RDRAND"  "\40" "RAZ"
 
-/* CPUID Fn00000001 %eax */
-
+/* %eax */
 #define CPUID_TO_BASEFAMILY(cpuid)     (((cpuid) >> 8) & 0xf)
 #define CPUID_TO_BASEMODEL(cpuid)      (((cpuid) >> 4) & 0xf)
 #define CPUID_TO_STEPPING(cpuid)       ((cpuid) & 0xf)
@@ -295,15 +291,15 @@
                && (CPUID_TO_BASEFAMILY(cpuid) != 0x06)         \
                ? 0 : (CPUID_TO_EXTMODEL(cpuid) << 4)))
 
-/* CPUID Fn00000001 %ebx */
+/* %ebx */
 #define CPUID_BRAND_INDEX      __BITS(7,0)
 #define CPUID_CLFLUSH_SIZE     __BITS(15,8)
 #define CPUID_HTT_CORES                __BITS(23,16)
 #define CPUID_LOCAL_APIC_ID    __BITS(31,24)
 
 /*
- * Intel Deterministic Cache Parameter Leaf
- * Fn0000_0004
+ * Intel Deterministic Cache Parameter.
+ * CPUID Fn0000_0004
  */
 
 /* %eax */
@@ -323,7 +319,7 @@
 #define CPUID_DCP_PARTITIONS   __BITS(21, 12)  /* Physical line partitions */
 #define CPUID_DCP_WAYS         __BITS(31, 22)  /* Ways of associativity */
 
-/* Number of sets: %ecx */
+/* %ecx: Number of sets */
 
 /* %edx */
 #define CPUID_DCP_INVALIDATE   __BIT(0)        /* WB invalidate/invalidate */
@@ -331,8 +327,8 @@
 #define CPUID_DCP_COMPLEX      __BIT(2)        /* Complex cache indexing */
 
 /*
- * Intel/AMD MONITOR/MWAIT
- * Fn0000_0005
+ * Intel/AMD MONITOR/MWAIT.
+ * CPUID Fn0000_0005
  */
 /* %eax */
 #define CPUID_MON_MINSIZE      __BITS(15, 0)  /* Smallest monitor-line size */
@@ -349,9 +345,10 @@
 #define CPUID_MON_SUBSTATE(edx, cstate) (((edx) >> (cstate * 4)) & 0x0000000f)
 
 /*
- * Intel/AMD Digital Thermal Sensor and
- * Power Management, Fn0000_0006 - %eax.
+ * Intel/AMD Digital Thermal Sensor and Power Management.
+ * CPUID Fn0000_0006
  */
+/* %eax */
 #define CPUID_DSPM_DTS       __BIT(0)  /* Digital Thermal Sensor */
 #define CPUID_DSPM_IDA       __BIT(1)  /* Intel Dynamic Acceleration */
 #define CPUID_DSPM_ARAT              __BIT(2)  /* Always Running APIC Timer */
@@ -381,10 +378,7 @@
        "\21" "HWP_PECI" "\22" "HWP_FLEX" "\23" "HWP_FAST" "\24HW_FEEDBACK"   \
        "\25" "HWP_IGNIDL"                              "\30" "TD"
 
-/*
- * Intel/AMD Digital Thermal Sensor and
- * Power Management, Fn0000_0006 - %ecx.
- */
+/* %ecx */
 #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 */
@@ -394,7 +388,8 @@
        "f\10\10NTDC\0"
 
 /*
- * Intel/AMD Structured Extended Feature leaf Fn0000_0007
+ * Intel/AMD Structured Extended Feature.
+ * CPUID Fn0000_0007
  * %ecx == 0: Subleaf 0
  *     %eax: The Maximum input value for supported subleaf.
  *     %ebx: Feature bits.
@@ -409,12 +404,12 @@
 #define CPUID_SEF_FSGSBASE    __BIT(0)  /* {RD,WR}{FS,GS}BASE */
 #define CPUID_SEF_TSC_ADJUST  __BIT(1)  /* IA32_TSC_ADJUST MSR support */
 #define CPUID_SEF_SGX        __BIT(2)  /* Software Guard Extensions */
-#define CPUID_SEF_BMI1       __BIT(3)  /* advanced bit manipulation ext. 1st grp */
+#define CPUID_SEF_BMI1       __BIT(3)  /* Advanced bit manipulation ext. 1st grp */
 #define CPUID_SEF_HLE        __BIT(4)  /* Hardware Lock Elision */
 #define CPUID_SEF_AVX2       __BIT(5)  /* Advanced Vector Extensions 2 */
 #define CPUID_SEF_FDPEXONLY   __BIT(6)  /* x87FPU Data ptr updated only on x87exp */
 #define CPUID_SEF_SMEP       __BIT(7)  /* Supervisor-Mode Execution Prevention */
-#define CPUID_SEF_BMI2       __BIT(8)  /* advanced bit manipulation ext. 2nd grp */
+#define CPUID_SEF_BMI2       __BIT(8)  /* Advanced bit manipulation ext. 2nd grp */
 #define CPUID_SEF_ERMS       __BIT(9)  /* Enhanced REP MOVSB/STOSB */
 #define CPUID_SEF_INVPCID     __BIT(10) /* INVPCID instruction */
 #define CPUID_SEF_RTM        __BIT(11) /* Restricted Transactional Memory */
@@ -458,13 +453,13 @@
 #define CPUID_SEF_WAITPKG      __BIT(5)  /* TPAUSE,UMONITOR,UMWAIT */
 #define CPUID_SEF_AVX512_VBMI2 __BIT(6)  /* AVX-512 Vector Byte Manipulation 2 */
 #define CPUID_SEF_CET_SS       __BIT(7)  /* CET Shadow Stack */
-#define CPUID_SEF_GFNI         __BIT(8)
-#define CPUID_SEF_VAES         __BIT(9)
-#define CPUID_SEF_VPCLMULQDQ   __BIT(10)
-#define CPUID_SEF_AVX512_VNNI  __BIT(11) /* Vector neural Network Instruction */
-#define CPUID_SEF_AVX512_BITALG        __BIT(12)
+#define CPUID_SEF_GFNI         __BIT(8)  /* Galois Field instructions */
+#define CPUID_SEF_VAES         __BIT(9)  /* Vector AES instruction set */
+#define CPUID_SEF_VPCLMULQDQ   __BIT(10) /* CLMUL instruction set */
+#define CPUID_SEF_AVX512_VNNI  __BIT(11) /* Vector Neural Network Instruction */
+#define CPUID_SEF_AVX512_BITALG        __BIT(12) /* BITALG instructions */
 #define CPUID_SEF_TME_EN       __BIT(13) /* Total Memory Encryption */
-#define CPUID_SEF_AVX512_VPOPCNTDQ __BIT(14)
+#define CPUID_SEF_AVX512_VPOPCNTDQ __BIT(14) /* Vector Population Count D/Q */
 #define CPUID_SEF_LA57         __BIT(16) /* 57bit linear addr & 5LVL paging */
 #define CPUID_SEF_MAWAU                __BITS(21, 17) /* MAWAU for BND{LD,ST}X */
 #define CPUID_SEF_RDPID                __BIT(22) /* RDPID and IA32_TSC_AUX */
@@ -473,7 +468,7 @@
 #define CPUID_SEF_MOVDIRI      __BIT(27) /* MOVDIRI instruction */
 #define CPUID_SEF_MOVDIR64B    __BIT(28) /* MOVDIR64B instruction */
 #define CPUID_SEF_SGXLC                __BIT(30) /* SGX Launch Configuration */
-#define CPUID_SEF_PKS          __BIT(31) /* Protection Keys for Kern-mode pages */
+#define CPUID_SEF_PKS          __BIT(31) /* Protection Keys for kern-mode pages */
 
 #define CPUID_SEF_FLAGS1       "\177\20"                                     \
        "b\0PREFETCHWT1\0" "b\1AVX512_VBMI\0" "b\2UMIP\0" "b\3PKU\0"          \
@@ -486,12 +481,12 @@
        "b\34MOVDIR64B\0"               "b\36SGXLC\0"   "b\37PKS\0"
 
 /* %ecx = 0, %edx */
-#define CPUID_SEF_AVX512_4VNNIW        __BIT(2)
-#define CPUID_SEF_AVX512_4FMAPS        __BIT(3)
-#define CPUID_SEF_FSREP_MOV    __BIT(4)  /* Fast Short REP MOV */
-#define CPUID_SEF_AVX512_VP2INTERSECT __BIT(8)
+#define CPUID_SEF_AVX512_4VNNIW        __BIT(2)  /* AVX512 4-reg Neural Network ins */
+#define CPUID_SEF_AVX512_4FMAPS        __BIT(3)  /* AVX512 4-reg Mult Accum Single precision */
+#define CPUID_SEF_FSREP_MOV    __BIT(4)  /* Fast Short REP MOVE */
+#define CPUID_SEF_AVX512_VP2INTERSECT __BIT(8) /* AVX512 VP2INTERSECT */
 #define CPUID_SEF_SRBDS_CTRL   __BIT(9)  /* IA32_MCU_OPT_CTRL */
-#define CPUID_SEF_MD_CLEAR     __BIT(10)
+#define CPUID_SEF_MD_CLEAR     __BIT(10) /* VERW clears CPU buffers */
 #define CPUID_SEF_TSX_FORCE_ABORT __BIT(13) /* MSR_TSX_FORCE_ABORT bit 0 */
 #define CPUID_SEF_SERIALIZE    __BIT(14) /* SERIALIZE instruction */
 #define CPUID_SEF_HYBRID       __BIT(15) /* Hybrid part */
@@ -538,7 +533,8 @@
                                "\1" "PPIN"
 
 /*
- * Intel CPUID Architectural Performance Monitoring Fn0000000a
+ * Intel CPUID Architectural Performance Monitoring.
+ * CPUID Fn0000000a



Home | Main Index | Thread Index | Old Index