Additional AMD CPUID bits documented in
"Processor Programming Reference (PPR) for AMD Family 17h
Model 01h, Revision B1 Processors"
Index: i386/include/specialreg.h
===================================================================
RCS file: /cvs/src/sys/arch/i386/include/specialreg.h,v
retrieving revision 1.64
diff -u -p -r1.64 specialreg.h
--- i386/include/specialreg.h 12 Aug 2017 19:53:37 -0000 1.64
+++ i386/include/specialreg.h 9 Feb 2018 01:52:53 -0000
@@ -265,12 +265,17 @@
/* Reserved 0x00004000 */
#define CPUIDECX_LWP 0x00008000 /* Lightweight profiling
support */
#define CPUIDECX_FMA4 0x00010000 /* 4-operand FMA
instructions */
-/* Reserved 0x00020000 */
+#define CPUIDECX_TCE 0x00020000 /* Translation Cache
Extension */
/* Reserved 0x00040000 */
#define CPUIDECX_NODEID 0x00080000 /* Support for MSRC001C */
/* Reserved 0x00100000 */
#define CPUIDECX_TBM 0x00200000 /* Trailing bit manipulation
instruction */
#define CPUIDECX_TOPEXT 0x00400000 /* Topology extensions
support */
+#define CPUIDECX_CPCTR 0x00800000 /* core performance counter
ext */
+#define CPUIDECX_DBKP 0x04000000 /* DataBreakpointExtension */
+#define CPUIDECX_PERFTSC 0x08000000 /* performance time-stamp
counter */
+#define CPUIDECX_PCTRL3 0x10000000 /* L3 performance counter
ext */
+#define CPUIDECX_MWAITX 0x20000000 /* MWAITX/MONITORX */
/*
* "Advanced Power Management Information" bits (CPUID function 0x80000007):
Index: i386/i386/machdep.c
===================================================================
RCS file: /cvs/src/sys/arch/i386/i386/machdep.c,v
retrieving revision 1.609
diff -u -p -r1.609 machdep.c
--- i386/i386/machdep.c 22 Jan 2018 09:08:43 -0000 1.609
+++ i386/i386/machdep.c 9 Feb 2018 01:52:54 -0000
@@ -1017,9 +1017,15 @@ const struct cpu_cpuid_feature i386_ecpu
{ CPUIDECX_WDT, "WDT" },
{ CPUIDECX_LWP, "LWP" },
{ CPUIDECX_FMA4, "FMA4" },
+ { CPUIDECX_TCE, "TCE" },
{ CPUIDECX_NODEID, "NODEID" },
{ CPUIDECX_TBM, "TBM" },
{ CPUIDECX_TOPEXT, "TOPEXT" },
+ { CPUIDECX_CPCTR, "CPCTR" },
+ { CPUIDECX_DBKP, "DBKP" },
+ { CPUIDECX_PERFTSC, "PERFTSC" },
+ { CPUIDECX_PCTRL3, "PCTRL3" },
+ { CPUIDECX_MWAITX, "MWAITX" },
};
const struct cpu_cpuid_feature cpu_seff0_ebxfeatures[] = {
Index: amd64/include/specialreg.h
===================================================================
RCS file: /cvs/src/sys/arch/amd64/include/specialreg.h,v
retrieving revision 1.66
diff -u -p -r1.66 specialreg.h
--- amd64/include/specialreg.h 15 Jan 2018 18:57:59 -0000 1.66
+++ amd64/include/specialreg.h 9 Feb 2018 01:52:54 -0000
@@ -279,12 +279,17 @@
/* Reserved 0x00004000 */
#define CPUIDECX_LWP 0x00008000 /* Lightweight profiling
support */
#define CPUIDECX_FMA4 0x00010000 /* 4-operand FMA
instructions */
-/* Reserved 0x00020000 */
+#define CPUIDECX_TCE 0x00020000 /* Translation Cache
Extension */
/* Reserved 0x00040000 */
#define CPUIDECX_NODEID 0x00080000 /* Support for MSRC001C */
/* Reserved 0x00100000 */
#define CPUIDECX_TBM 0x00200000 /* Trailing bit manipulation
instruction */
#define CPUIDECX_TOPEXT 0x00400000 /* Topology extensions
support */
+#define CPUIDECX_CPCTR 0x00800000 /* core performance counter
ext */
+#define CPUIDECX_DBKP 0x04000000 /* DataBreakpointExtension */
+#define CPUIDECX_PERFTSC 0x08000000 /* performance time-stamp
counter */
+#define CPUIDECX_PCTRL3 0x10000000 /* L3 performance counter
ext */
+#define CPUIDECX_MWAITX 0x20000000 /* MWAITX/MONITORX */
/*
* "Advanced Power Management Information" bits (CPUID function 0x80000007):
Index: amd64/amd64/identcpu.c
===================================================================
RCS file: /cvs/src/sys/arch/amd64/amd64/identcpu.c,v
retrieving revision 1.93
diff -u -p -r1.93 identcpu.c
--- amd64/amd64/identcpu.c 15 Jan 2018 06:53:02 -0000 1.93
+++ amd64/amd64/identcpu.c 9 Feb 2018 01:52:54 -0000
@@ -160,9 +160,15 @@ const struct {
{ CPUIDECX_SKINIT, "SKINIT" },
{ CPUIDECX_LWP, "WDT" },
{ CPUIDECX_FMA4, "FMA4" },
+ { CPUIDECX_TCE, "TCE" },
{ CPUIDECX_NODEID, "NODEID" },
{ CPUIDECX_TBM, "TBM" },
{ CPUIDECX_TOPEXT, "TOPEXT" },
+ { CPUIDECX_CPCTR, "CPCTR" },
+ { CPUIDECX_DBKP, "DBKP" },
+ { CPUIDECX_PERFTSC, "PERFTSC" },
+ { CPUIDECX_PCTRL3, "PCTRL3" },
+ { CPUIDECX_MWAITX, "MWAITX" },
}, cpu_seff0_ebxfeatures[] = {
{ SEFF0EBX_FSGSBASE, "FSGSBASE" },
{ SEFF0EBX_SGX, "SGX" },