Skip to content

Commit 6c79e42

Browse files
hvenevbp3tk0v
authored andcommitted
EDAC/amd64: Add support for ECC on family 19h model 60h-7Fh
Ryzen 9 7950X uses model 61h. Treat it as Epyc 9004, but with 2 channels instead of 12. With two 32GB dual-rank DIMMs the sizes appear to be reported correctly: EDAC MC0: Giving out device to module amd64_edac controller F19h_M60h: DEV 0000:00:18.3 (INTERRUPT) EDAC amd64: F19h_M60h detected (node 0). EDAC MC: UMC0 chip selects: EDAC amd64: MC: 0: 0MB 1: 0MB EDAC amd64: MC: 2: 16384MB 3: 16384MB EDAC MC: UMC1 chip selects: EDAC amd64: MC: 0: 0MB 1: 0MB EDAC amd64: MC: 2: 16384MB 3: 16384MB AMD64 EDAC driver v3.5.0 ECC errors can also be detected: mce: [Hardware Error]: Machine check events logged [Hardware Error]: Corrected error, no action required. [Hardware Error]: CPU:0 (19:61:2) MC21_STATUS[Over|CE|MiscV|AddrV|-|-|SyndV|CECC|-|-|-]: 0xdc2040000400011b [Hardware Error]: Error Addr: 0x00000007ff7e93c0 [Hardware Error]: IPID: 0x0000009600050f00, Syndrome: 0x000100010a801203 [Hardware Error]: Unified Memory Controller Ext. Error Code: 0, DRAM ECC error. EDAC MC0: 1 CE Cannot decode normalized address on mc#0csrow#3channel#0 (csrow:3 channel:0 page:0x0 offset:0x0 grain:64 syndrome:0x1) [Hardware Error]: cache level: L3/GEN, tx: GEN, mem-tx: RD According to Mario Limonciello, the same code should also work for models 70h-7Fh (follow thread in Link). [ bp: Massage, the translation logic updates are pending. ] Signed-off-by: Hristo Venev <[email protected]> Signed-off-by: Borislav Petkov (AMD) <[email protected]> Reviewed-by: Mario Limonciello <[email protected]> Link: https://lore.kernel.org/r/[email protected] Link: https://lore.kernel.org/r/[email protected]
1 parent b34348a commit 6c79e42

File tree

1 file changed

+8
-0
lines changed

1 file changed

+8
-0
lines changed

drivers/edac/amd64_edac.c

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3816,6 +3816,14 @@ static int per_family_init(struct amd64_pvt *pvt)
38163816
case 0x50 ... 0x5f:
38173817
pvt->ctl_name = "F19h_M50h";
38183818
break;
3819+
case 0x60 ... 0x6f:
3820+
pvt->ctl_name = "F19h_M60h";
3821+
pvt->flags.zn_regs_v2 = 1;
3822+
break;
3823+
case 0x70 ... 0x7f:
3824+
pvt->ctl_name = "F19h_M70h";
3825+
pvt->flags.zn_regs_v2 = 1;
3826+
break;
38193827
case 0xa0 ... 0xaf:
38203828
pvt->ctl_name = "F19h_MA0h";
38213829
pvt->max_mcs = 12;

0 commit comments

Comments
 (0)