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
96 lines
3.3 KiB
Makefile
96 lines
3.3 KiB
Makefile
#
|
|
# Makefile for the Linux kernel EDAC drivers.
|
|
#
|
|
# Copyright 02 Jul 2003, Linux Networx (http://lnxi.com)
|
|
# This file may be distributed under the terms of the
|
|
# GNU General Public License.
|
|
#
|
|
|
|
obj-$(CONFIG_EDAC) := edac_core.o
|
|
|
|
edac_core-y := edac_mc.o edac_device.o edac_mc_sysfs.o
|
|
edac_core-y += edac_module.o edac_device_sysfs.o wq.o
|
|
|
|
edac_core-$(CONFIG_EDAC_DEBUG) += debugfs.o
|
|
edac_core-$(CONFIG_EDAC_SCRUB) += scrub.o
|
|
edac_core-$(CONFIG_EDAC_ECS) += ecs.o
|
|
edac_core-$(CONFIG_EDAC_MEM_REPAIR) += mem_repair.o
|
|
|
|
ifdef CONFIG_PCI
|
|
edac_core-y += edac_pci.o edac_pci_sysfs.o
|
|
endif
|
|
|
|
obj-$(CONFIG_EDAC_GHES) += ghes_edac.o
|
|
|
|
edac_mce_amd-y := mce_amd.o
|
|
obj-$(CONFIG_EDAC_DECODE_MCE) += edac_mce_amd.o
|
|
|
|
obj-$(CONFIG_EDAC_AL_MC) += al_mc_edac.o
|
|
obj-$(CONFIG_EDAC_AMD76X) += amd76x_edac.o
|
|
obj-$(CONFIG_EDAC_CPC925) += cpc925_edac.o
|
|
obj-$(CONFIG_EDAC_I5000) += i5000_edac.o
|
|
obj-$(CONFIG_EDAC_I5100) += i5100_edac.o
|
|
obj-$(CONFIG_EDAC_I5400) += i5400_edac.o
|
|
obj-$(CONFIG_EDAC_I7300) += i7300_edac.o
|
|
obj-$(CONFIG_EDAC_I7CORE) += i7core_edac.o
|
|
obj-$(CONFIG_EDAC_SBRIDGE) += sb_edac.o
|
|
obj-$(CONFIG_EDAC_PND2) += pnd2_edac.o
|
|
obj-$(CONFIG_EDAC_IGEN6) += igen6_edac.o
|
|
obj-$(CONFIG_EDAC_E7XXX) += e7xxx_edac.o
|
|
obj-$(CONFIG_EDAC_E752X) += e752x_edac.o
|
|
obj-$(CONFIG_EDAC_I82443BXGX) += i82443bxgx_edac.o
|
|
obj-$(CONFIG_EDAC_I82875P) += i82875p_edac.o
|
|
obj-$(CONFIG_EDAC_I82975X) += i82975x_edac.o
|
|
obj-$(CONFIG_EDAC_I3000) += i3000_edac.o
|
|
obj-$(CONFIG_EDAC_I3200) += i3200_edac.o
|
|
obj-$(CONFIG_EDAC_IE31200) += ie31200_edac.o
|
|
obj-$(CONFIG_EDAC_X38) += x38_edac.o
|
|
obj-$(CONFIG_EDAC_I82860) += i82860_edac.o
|
|
obj-$(CONFIG_EDAC_R82600) += r82600_edac.o
|
|
obj-$(CONFIG_EDAC_AMD64) += amd64_edac.o
|
|
|
|
obj-$(CONFIG_EDAC_PASEMI) += pasemi_edac.o
|
|
|
|
mpc85xx_edac_mod-y := fsl_ddr_edac.o mpc85xx_edac.o
|
|
obj-$(CONFIG_EDAC_MPC85XX) += mpc85xx_edac_mod.o
|
|
|
|
layerscape_edac_mod-y := fsl_ddr_edac.o layerscape_edac.o
|
|
obj-$(CONFIG_EDAC_LAYERSCAPE) += layerscape_edac_mod.o
|
|
|
|
skx_edac_common-y := skx_common.o
|
|
|
|
skx_edac-y := skx_base.o
|
|
obj-$(CONFIG_EDAC_SKX) += skx_edac.o skx_edac_common.o
|
|
|
|
i10nm_edac-y := i10nm_base.o
|
|
obj-$(CONFIG_EDAC_I10NM) += i10nm_edac.o skx_edac_common.o
|
|
|
|
imh_edac-y := imh_base.o
|
|
obj-$(CONFIG_EDAC_IMH) += imh_edac.o skx_edac_common.o
|
|
|
|
obj-$(CONFIG_EDAC_HIGHBANK_MC) += highbank_mc_edac.o
|
|
obj-$(CONFIG_EDAC_HIGHBANK_L2) += highbank_l2_edac.o
|
|
|
|
obj-$(CONFIG_EDAC_OCTEON_PC) += octeon_edac-pc.o
|
|
obj-$(CONFIG_EDAC_OCTEON_L2C) += octeon_edac-l2c.o
|
|
obj-$(CONFIG_EDAC_OCTEON_LMC) += octeon_edac-lmc.o
|
|
obj-$(CONFIG_EDAC_OCTEON_PCI) += octeon_edac-pci.o
|
|
obj-$(CONFIG_EDAC_THUNDERX) += thunderx_edac.o
|
|
|
|
obj-$(CONFIG_EDAC_ALTERA) += altera_edac.o
|
|
obj-$(CONFIG_EDAC_SIFIVE) += sifive_edac.o
|
|
obj-$(CONFIG_EDAC_ARMADA_XP) += armada_xp_edac.o
|
|
obj-$(CONFIG_EDAC_SYNOPSYS) += synopsys_edac.o
|
|
obj-$(CONFIG_EDAC_XGENE) += xgene_edac.o
|
|
obj-$(CONFIG_EDAC_TI) += ti_edac.o
|
|
obj-$(CONFIG_EDAC_QCOM) += qcom_edac.o
|
|
obj-$(CONFIG_EDAC_ASPEED) += aspeed_edac.o
|
|
obj-$(CONFIG_EDAC_BLUEFIELD) += bluefield_edac.o
|
|
obj-$(CONFIG_EDAC_DMC520) += dmc520_edac.o
|
|
obj-$(CONFIG_EDAC_NPCM) += npcm_edac.o
|
|
obj-$(CONFIG_EDAC_ZYNQMP) += zynqmp_edac.o
|
|
obj-$(CONFIG_EDAC_VERSAL) += versal_edac.o
|
|
obj-$(CONFIG_EDAC_LOONGSON) += loongson_edac.o
|
|
obj-$(CONFIG_EDAC_VERSALNET) += versalnet_edac.o
|
|
obj-$(CONFIG_EDAC_CORTEX_A72) += a72_edac.o
|