mirror of
https://github.com/torvalds/linux.git
synced 2026-06-04 20:46:48 +02:00
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
This commit is contained in:
parent
f42f3076dd
commit
95ad29eb1b
|
|
@ -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;
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user