diff options
| author | Qiuxu Zhuo <qiuxu.zhuo@intel.com> | 2026-03-18 05:31:18 +0300 |
|---|---|---|
| committer | Tony Luck <tony.luck@intel.com> | 2026-03-18 19:38:20 +0300 |
| commit | 95ad29eb1baec322f31ddb247e5bf36f156578cf (patch) | |
| tree | a58728de582c04d3d999c3d2514c74baa7cf1af7 | |
| parent | f42f3076dd9d2cd1bde6abc44e45478fad8a1a54 (diff) | |
| download | linux-95ad29eb1baec322f31ddb247e5bf36f156578cf.tar.xz | |
EDAC/i10nm: Add driver decoder for Granite Rapids server
Current i10nm_edac only supports the firmware decoder (ACPI DSM methods)
for Granite Rapids servers. Add the driver decoder, which directly extracts
topology information from the IMC machine check bank IA32_MCi_MISC MSRs, to
improve decoding performance for Granite Rapids.
[Tony: Updated commit comment]
Signed-off-by: Qiuxu Zhuo <qiuxu.zhuo@intel.com>
Signed-off-by: Tony Luck <tony.luck@intel.com>
Tested-by: Shawn Fan <shawn.fan@intel.com>
Link: https://patch.msgid.link/20260318023118.2704139-1-qiuxu.zhuo@intel.com
| -rw-r--r-- | drivers/edac/i10nm_base.c | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/drivers/edac/i10nm_base.c b/drivers/edac/i10nm_base.c index 89b3e8cc38b1..6f61b7614230 100644 --- a/drivers/edac/i10nm_base.c +++ b/drivers/edac/i10nm_base.c @@ -580,6 +580,10 @@ static bool i10nm_mc_decode_available(struct mce *mce) if (bank < 13 || bank > 20) return false; break; + case GNR: + if (bank < 13 || bank > 24) + return false; + break; default: return false; } @@ -637,6 +641,16 @@ static bool i10nm_mc_decode(struct decoded_addr *res) res->rank = GET_BITFIELD(m->misc, 57, 57); res->dimm = GET_BITFIELD(m->misc, 58, 58); break; + case GNR: + res->imc = m->bank - 13; + res->channel = 0; + res->column = GET_BITFIELD(m->misc, 9, 18) << 2; + res->row = GET_BITFIELD(m->misc, 19, 36); + res->bank_group = GET_BITFIELD(m->misc, 39, 41); + res->bank_address = GET_BITFIELD(m->misc, 37, 38); + res->rank = GET_BITFIELD(m->misc, 55, 56); + res->dimm = GET_BITFIELD(m->misc, 57, 57); + break; default: return false; } |
