diff --git a/include/cpuinfo.h b/include/cpuinfo.h index 0407d1c5..0de6164c 100644 --- a/include/cpuinfo.h +++ b/include/cpuinfo.h @@ -355,6 +355,14 @@ enum cpuinfo_uarch { cpuinfo_uarch_sunny_cove = 0x0010020C, /** Intel Willow Cove microarchitecture (10 nm, Tiger Lake). */ cpuinfo_uarch_willow_cove = 0x0010020D, + /** Intel Golden Cove microarchitecture (Alder Lake P-Core) */ + cpuinfo_uarch_golden_cove = 0x0010020E, + /** Intel Redwood Cove microarchitecture (Meteor Lake P-Core). */ + cpuinfo_uarch_redwood_cove = 0x0010020F, + /** Intel Lion Cove microarchitecture (Lunar Lake P-Core). */ + cpuinfo_uarch_lion_cove = 0x00100210, + /** Intel Cougar Cove microarchitecture (Panther Lake P-Core). */ + cpuinfo_uarch_cougar_cove = 0x00100211, /** Pentium 4 with Willamette, Northwood, or Foster cores. */ cpuinfo_uarch_willamette = 0x00100300, @@ -381,6 +389,8 @@ enum cpuinfo_uarch { cpuinfo_uarch_crestmont = 0x00100408, /** Intel Darkmont microarchitecture (e-core used in Clearwater Forest). */ cpuinfo_uarch_darkmont = 0x00100409, + /** Intel Skymont microarchitecture (Lunar Lake E-Core). */ + cpuinfo_uarch_skymont = 0x0010040A, /** Intel Knights Ferry HPC boards. */ cpuinfo_uarch_knights_ferry = 0x00100500, diff --git a/src/x86/uarch.c b/src/x86/uarch.c index a0c900f4..f7a597e9 100644 --- a/src/x86/uarch.c +++ b/src/x86/uarch.c @@ -193,8 +193,28 @@ enum cpuinfo_uarch cpuinfo_x86_decode_uarch( case 0x96: // Elkhart Lake case 0x9C: // Jacobsville return cpuinfo_uarch_tremont; - case 0xBE: // Alder Lake-N - return cpuinfo_uarch_gracemont; + case 0x8F: // Sapphire Rapids (Golden Cove) + case 0x97: // Alder Lake S (Golden Cove) + case 0x9A: // Alder Lake (Golden Cove) + case 0x9D: // Alder Lake P (Golden Cove) + case 0xB7: // Raptor Lake (Golden Cove) + case 0xBA: // Raptor Lake S (Golden Cove) + case 0xBF: // Raptor Lake HX (Golden Cove) + return cpuinfo_uarch_golden_cove; + case 0xBE: // Alder Lake N / Raptor Lake N (Golden Cove) + return cpuinfo_uarch_gracemont; + case 0xAA: // Meteor Lake P/M (Redwood Cove) + case 0xAC: // Meteor Lake S (Redwood Cove) + case 0xAD: // Granite Rapids (Redood Cove) + case 0xAE: // Meteor Lake U/Y (Redwood Cove) + return cpuinfo_uarch_redwood_cove; + case 0xB5: // Arrow Lake U + case 0xBD: // Lunar Lake, (Lion Cove) + case 0xC5: // Arrow Lake P + case 0xC6: // Arrow Lake S/HX + return cpuinfo_uarch_lion_cove; + case 0xCC: // Panther Lake + return cpuinfo_uarch_cougar_cove; case 0xAF: // Sierra Forest return cpuinfo_uarch_crestmont; case 0xDD: // Clearwater Forest diff --git a/tools/cpu-info.c b/tools/cpu-info.c index 9bed0e97..543b9c53 100644 --- a/tools/cpu-info.c +++ b/tools/cpu-info.c @@ -76,6 +76,16 @@ static const char* uarch_to_string(enum cpuinfo_uarch uarch) { return "Broadwell"; case cpuinfo_uarch_sky_lake: return "Sky Lake"; + case cpuinfo_uarch_golden_cove: + return "Golden Cove"; + case cpuinfo_uarch_redwood_cove: + return "Redwood Cove"; + case cpuinfo_uarch_lion_cove: + return "Lion Cove"; + case cpuinfo_uarch_cougar_cove: + return "Cougar Cove"; + case cpuinfo_uarch_skymont: + return "Skymont"; case cpuinfo_uarch_palm_cove: return "Palm Cove"; case cpuinfo_uarch_sunny_cove: