Detect AMD Family 26 extended models for cpuinfo_uarch_zen6 (#371)
* Fix cpuinfo_x86_normalize_brand_string unannotated fall-through warning
* Detect AMD Family 26 extended models for cpuinfo_uarch_zen6
diff --git a/include/cpuinfo.h b/include/cpuinfo.h
index e24553c..82c20f1 100644
--- a/include/cpuinfo.h
+++ b/include/cpuinfo.h
@@ -431,6 +431,8 @@
cpuinfo_uarch_zen4 = 0x0020010C,
/** AMD Zen 5 microarchitecture. */
cpuinfo_uarch_zen5 = 0x0020010D,
+ /** AMD Zen 6 microarchitecture. */
+ cpuinfo_uarch_zen6 = 0x0020010E,
/** NSC Geode and AMD Geode GX and LX. */
cpuinfo_uarch_geode = 0x00200200,
diff --git a/src/x86/uarch.c b/src/x86/uarch.c
index a0c900f..6e38aa8 100644
--- a/src/x86/uarch.c
+++ b/src/x86/uarch.c
@@ -402,7 +402,21 @@
}
break;
case 0x1a:
- return cpuinfo_uarch_zen5;
+ switch (model_info->extended_model) {
+ case 0x0: // model 00h..2Fh
+ case 0x1:
+ case 0x2:
+ case 0x4: // model 40h..4Fh
+ return cpuinfo_uarch_zen5;
+
+ case 0x5: // model 50h..5Fh
+ case 0x8: // model 80h..AFh
+ case 0x9:
+ case 0xA:
+ case 0xC: // model C0h..CFh
+ return cpuinfo_uarch_zen6;
+ }
+ break;
}
break;
case cpuinfo_vendor_hygon:
diff --git a/tools/cpu-info.c b/tools/cpu-info.c
index 45dae5a..304791e 100644
--- a/tools/cpu-info.c
+++ b/tools/cpu-info.c
@@ -144,6 +144,8 @@
return "Zen 4";
case cpuinfo_uarch_zen5:
return "Zen 5";
+ case cpuinfo_uarch_zen6:
+ return "Zen 6";
case cpuinfo_uarch_geode:
return "Geode";
case cpuinfo_uarch_bobcat: