summaryrefslogtreecommitdiff
path: root/usr/src/uts/intel
diff options
context:
space:
mode:
Diffstat (limited to 'usr/src/uts/intel')
-rw-r--r--usr/src/uts/intel/io/amdzen/amdzen.c16
-rw-r--r--usr/src/uts/intel/os/driver_aliases8
-rw-r--r--usr/src/uts/intel/sys/x86_archext.h7
3 files changed, 26 insertions, 5 deletions
diff --git a/usr/src/uts/intel/io/amdzen/amdzen.c b/usr/src/uts/intel/io/amdzen/amdzen.c
index 25e38ee988..ac6ce9c94f 100644
--- a/usr/src/uts/intel/io/amdzen/amdzen.c
+++ b/usr/src/uts/intel/io/amdzen/amdzen.c
@@ -144,7 +144,7 @@ static const uint16_t amdzen_nb_ids[] = {
0x1450,
/* Family 17h Raven Ridge, Kestrel, Dali Models 10h-2fh (Zen uarch) */
0x15d0,
- /* Family 17h Epyc Models 30h-3fh, Matisse 70-7fh (Zen 2 uarch) */
+ /* Family 17h/19h Rome, Milan, Matisse, Vermeer Zen 2/Zen 3 uarch */
0x1480,
/* Family 17h Renoir Models 60-6fh (Zen 2 uarch) */
0x1630
@@ -436,6 +436,16 @@ static const uint8_t amdzen_df_rome_ids[0x2b] = {
};
/*
+ * Check the first df entry to see if it belongs to Rome or Milan. If so, then
+ * it uses the disjoint ID space.
+ */
+static boolean_t
+amdzen_is_rome_style(uint_t id)
+{
+ return (id == 0x1490 || id == 0x1650);
+}
+
+/*
* Initialize our knowledge about a given series of nodes on the data fabric.
*/
static void
@@ -464,11 +474,11 @@ amdzen_setup_df(amdzen_t *azn, amdzen_df_t *df)
* indexes that we iterate over, though the total number of
* entries is right.
*/
- if (df->adf_funcs[0]->azns_did == 0x1490) {
+ if (amdzen_is_rome_style(df->adf_funcs[0]->azns_did)) {
if (inst > ARRAY_SIZE(amdzen_df_rome_ids)) {
dev_err(azn->azn_dip, CE_WARN, "Rome family "
"processor reported more ids than the PPR, "
- "resting %u to instance zero", inst);
+ "resetting %u to instance zero", inst);
inst = 0;
} else {
inst = amdzen_df_rome_ids[inst];
diff --git a/usr/src/uts/intel/os/driver_aliases b/usr/src/uts/intel/os/driver_aliases
index 6c79bd182c..8aab0f3f4a 100644
--- a/usr/src/uts/intel/os/driver_aliases
+++ b/usr/src/uts/intel/os/driver_aliases
@@ -111,6 +111,14 @@ amdzen_stub "pci1022,15ed,p"
amdzen_stub "pci1022,15ee,p"
amdzen_stub "pci1022,15ef,p"
amdzen_stub "pci1022,1630,p"
+amdzen_stub "pci1022,1650,p"
+amdzen_stub "pci1022,1651,p"
+amdzen_stub "pci1022,1652,p"
+amdzen_stub "pci1022,1653,p"
+amdzen_stub "pci1022,1654,p"
+amdzen_stub "pci1022,1655,p"
+amdzen_stub "pci1022,1656,p"
+amdzen_stub "pci1022,1657,p"
amdnbtemp "pci1022,1203,p"
amdnbtemp "pci1022,1303,p"
amdnbtemp "pci1022,1403,p"
diff --git a/usr/src/uts/intel/sys/x86_archext.h b/usr/src/uts/intel/sys/x86_archext.h
index eed3c5fd4e..b75ab18f5e 100644
--- a/usr/src/uts/intel/sys/x86_archext.h
+++ b/usr/src/uts/intel/sys/x86_archext.h
@@ -735,6 +735,8 @@ extern "C" {
#define X86FSET_TSX_CTRL 97
#define X86FSET_TAA_NO 98
#define X86FSET_PPIN 99
+#define X86FSET_VAES 100
+#define X86FSET_VPCLMULQDQ 101
/*
* Intel Deep C-State invariant TSC in leaf 0x80000007.
@@ -1021,7 +1023,8 @@ extern "C" {
#define X86_SOCKET_SP3R2 _X86_SOCKET_MKVAL(X86_VENDOR_AMD, 0x20)
#define X86_SOCKET_FP5 _X86_SOCKET_MKVAL(X86_VENDOR_AMD, 0x21)
#define X86_SOCKET_FP6 _X86_SOCKET_MKVAL(X86_VENDOR_AMD, 0x22)
-#define X86_NUM_SOCKETS_AMD 0x23
+#define X86_SOCKET_STRX4 _X86_SOCKET_MKVAL(X86_VENDOR_AMD, 0x23)
+#define X86_NUM_SOCKETS_AMD 0x24
/*
@@ -1116,7 +1119,7 @@ extern "C" {
#if defined(_KERNEL) || defined(_KMEMUSER)
-#define NUM_X86_FEATURES 100
+#define NUM_X86_FEATURES 102
extern uchar_t x86_featureset[];
extern void free_x86_featureset(void *featureset);