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