summaryrefslogtreecommitdiff
path: root/usr/src/uts/intel/io
diff options
context:
space:
mode:
authorDan McDonald <danmcd@joyent.com>2020-11-02 15:29:29 -0500
committerDan McDonald <danmcd@joyent.com>2020-11-02 15:29:29 -0500
commit8595c378eea49f20a78e6a5e8ff977afc7abfb22 (patch)
tree1c967c761c51d2239ca993788c159faaf339635b /usr/src/uts/intel/io
parentf587bb227d9a5230d1ec24708c942dcf753f7f2e (diff)
parent059f070059c50b83e8b46b39b4dde67bf2feb1dc (diff)
downloadillumos-joyent-release-20201105.tar.gz
[illumos-gate merge]release-20201105
commit 059f070059c50b83e8b46b39b4dde67bf2feb1dc 13236 Want Zen 3 socket information commit e9abe9d6424a9213df11b3243f6957e6a0b91e48 13235 amdzen(7D) support for Zen 3 commit 5edbd2fec7b63b423df5bd21c4b0f7b775123a40 13238 vaes, vpclmulqdq should be plumbed through isainfo 13239 umip, etc. are incorrectly conditioned in cpuid.c commit c4b98ceff2f78fc5bb2f6bbe2e76627f04ef66f5 13237 Plumb through PCID on AMD
Diffstat (limited to 'usr/src/uts/intel/io')
-rw-r--r--usr/src/uts/intel/io/amdzen/amdzen.c16
1 files changed, 13 insertions, 3 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];