Skip to content

Commit 9fc67b1

Browse files
qzhuo2aegl
authored andcommitted
EDAC/{skx_common,imh}: Add EDAC driver for Intel Diamond Rapids servers
Intel Diamond Rapids CPUs include Integrated Memory and I/O Hubs (IMH). The memory controllers within the IMHs provide memory stacks to the processor. Create a new driver for this IMH-based memory controllers rather than applying additional patches to the existing i10nm_edac.c for the following reasons: 1) The memory controllers are not presented as PCI devices; instead, the detection and all their registers have been transitioned to MMIO-based memory spaces. 2) Validation processes are costly. Modifications to i10nm_edac would require extensive validation checks against multiple platforms, including Ice Lake, Sapphire Rapids, Emerald Rapids, Granite Rapids, Sierra Forest, and Grand Ridge. 3) Future Intel CPUs will likely only need patches on top of this new EDAC driver. Validation can be limited to Diamond Rapids servers and future Intel CPU generations. [Tony: Fix kerneldoc for struct local_reg] [randconfig: Added dependencies on NFIT and DMI] Tested-by: Yi Lai <yi1.lai@intel.com> Signed-off-by: Qiuxu Zhuo <qiuxu.zhuo@intel.com> Signed-off-by: Tony Luck <tony.luck@intel.com> Link: https://patch.msgid.link/20251119134132.2389472-5-qiuxu.zhuo@intel.com
1 parent d483958 commit 9fc67b1

5 files changed

Lines changed: 648 additions & 26 deletions

File tree

drivers/edac/Kconfig

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -283,6 +283,18 @@ config EDAC_I10NM
283283
system has non-volatile DIMMs you should also manually
284284
select CONFIG_ACPI_NFIT.
285285

286+
config EDAC_IMH
287+
tristate "Intel Integrated Memory/IO Hub MC"
288+
depends on X86_64 && X86_MCE_INTEL && ACPI
289+
depends on ACPI_NFIT || !ACPI_NFIT # if ACPI_NFIT=m, EDAC_IMH can't be y
290+
select DMI
291+
select ACPI_ADXL
292+
help
293+
Support for error detection and correction the Intel
294+
Integrated Memory/IO Hub Memory Controller. This MC IP is
295+
first used on the Diamond Rapids servers but may appear on
296+
others in the future.
297+
286298
config EDAC_PND2
287299
tristate "Intel Pondicherry2"
288300
depends on PCI && X86_64 && X86_MCE_INTEL

drivers/edac/Makefile

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -65,6 +65,9 @@ obj-$(CONFIG_EDAC_SKX) += skx_edac.o skx_edac_common.o
6565
i10nm_edac-y := i10nm_base.o
6666
obj-$(CONFIG_EDAC_I10NM) += i10nm_edac.o skx_edac_common.o
6767

68+
imh_edac-y := imh_base.o
69+
obj-$(CONFIG_EDAC_IMH) += imh_edac.o skx_edac_common.o
70+
6871
obj-$(CONFIG_EDAC_HIGHBANK_MC) += highbank_mc_edac.o
6972
obj-$(CONFIG_EDAC_HIGHBANK_L2) += highbank_l2_edac.o
7073

0 commit comments

Comments
 (0)