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 GitOrigin-RevId: f9a03241f8c3d4ed0c9728f5d70bff873d43d4e0 Change-Id: I00a5dbcb9d3a0539358bf8c37680796aa5542b98
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: