Re: EDAC support for Arrow Lake-HX (8086:7d1c) - working out-of-tree driver, test hardware available
Chaoyi Chen <[email protected]> Thu, 16 Jul 2026 12:39:12 +0800
| Newsgroups | org.kernel.vger.linux-edac |
|---|---|
| Message-ID | <[email protected]> |
Hello Zura, On 7/10/2026 2:58 PM, Emba Consulting wrote: > Hi, > > I have Arrow Lake-HX hardware running sideband (80-bit) DDR5 ECC SODIMMs > and wanted EDAC error reporting for it. As of current mainline no driver > matches this die: igen6_edac covers the in-band-ECC Arrow Lake-U/H compute > dies (0x7d06/0x7d20/0x7d30), and ie31200_edac (which gained Raptor Lake-S, > Raptor Lake-HX and Bartlett Lake-S support recently) has no 7dxx IDs. > > I wrote an out-of-tree driver derived from ie31200_edac and it works on my > machine - both IMCs register, DIMM topology decodes exactly, counters are > live, clean load/unload: > > https://github.com/zs311521/edac-arl-hx > > Hardware: > - Intel Core Ultra 9 285HX (Arrow Lake-HX), stepping 2, microcode 0x11b, > host bridge 00:00.0 = 8086:7d1c rev 01 (Minisforum MS-02) > - 2x SK hynix HMCG88AGBAA095N 32GB DDR5-5600 ECC SODIMM (2Rx8, one per IMC) > - BIOS reports Single-bit ECC active; MCHBAR = 0xfedc0000 > I have an Intel Core Ultra 7 270K Plus (Arrow Lake-S Refresh), and it appears to be 8086:7d1a. I'll test your driver, thanks! > Findings, in case they are useful: > - The register layout matches rpl_s_cfg for topology and error-log offsets. > I validated from userspace before loading anything: MAD_DIMM at > MCHBAR+0xd80c/+0xd810 decodes the physical population exactly (16 GiB, > 2 ranks, x8 per subchannel), ECCERRLOG at +0xe048/+0xe848, two IMC > windows at BIT(16) stride. > - I deliberately did NOT reuse the MSR 0x791 error-log clear: the public > EDC documentation for this family (doc 835538) describes clearing via > PCI ERRSTS instead, and I could not verify the MSR's semantics on this > die, so my module defaults to a no-write polling mode with > report-on-change latching. > - Channel count is derived from MAD_DIMM population rather than CAPID0. > - My BIOS exposes no ACPI EINJ table, so I have not been able to exercise > a real corrected error end to end. > > Questions, so this can become a proper mainline patch (which I am happy to > write and submit as a dedicated cfg in ie31200_edac if you can confirm): > > 1. Is MSR 0x791 valid with the same semantics on ARL-HX, or should the > error-log clear go through ERRSTS (or something else) on this die? > 2. Is corrected-error CMCI delivery confirmed for ARL-HX out-of-band ECC, > i.e. is .cmci = true correct here? > 3. Should ARL-HX reuse rpl_s_cfg or get a dedicated cfg? The rank/width > field widths in the ARL documentation look narrower than rpl_s_cfg's > masks. > > I can test patches on this machine and provide Tested-by. > > Thanks, > Zura -- Best, Chaoyi