This patch adds support for detecting all current Zen/Zen3+ submodels
Based off a mixture of https://github.com/torvalds/linux/blob/master/drivers/hwmon/k10temp.c#L436 and InstLatx64 https://github.com/InstLatx64/InstLatx64/tree/master/AuthenticAMD CPUID dumps and confirmed by @GGanesh
Differential Revision: https://reviews.llvm.org/D137695
case 25:
CPU = "znver3";
*Type = AMDFAM19H;
- if (Model <= 0x0f || Model == 0x21) {
+ if (Model <= 0x0f || (Model >= 0x20 && Model <= 0x5f)) {
+ // Family 19h Models 00h-0Fh - Zen3
+ // Family 19h Models 20h-2Fh - Zen3
+ // Family 19h Models 30h-3Fh - Zen3
+ // Family 19h Models 40h-4Fh - Zen3+
+ // Family 19h Models 50h-5Fh - Zen3+
*Subtype = AMDFAM19H_ZNVER3;
- break; // 00h-0Fh, 21h: Zen3
+ break;
}
break;
default:
case 25:
CPU = "znver3";
*Type = X86::AMDFAM19H;
- if (Model <= 0x0f || Model == 0x21) {
+ if (Model <= 0x0f || (Model >= 0x20 && Model <= 0x5f)) {
+ // Family 19h Models 00h-0Fh - Zen3
+ // Family 19h Models 20h-2Fh - Zen3
+ // Family 19h Models 30h-3Fh - Zen3
+ // Family 19h Models 40h-4Fh - Zen3+
+ // Family 19h Models 50h-5Fh - Zen3+
*Subtype = X86::AMDFAM19H_ZNVER3;
- break; // 00h-0Fh, 21h: Zen3
+ break;
}
break;
default: