mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
synced 2026-01-04 22:54:56 +01:00
Add a driver for the AMD Versal NET DDR memory controller which supports
single bit error correction, double bit error detection and other system
errors from various IP subsystems (e.g., RPU, NOCs, HNICX, PL).
The driver listens for notifications from the NMC (Network management
controller) using RPMsg (Remote Processor Messaging).
The channel used for communicating to RPMsg is named "error_edac". Upon
receipt of a notification, the driver sends a RAS event trace.
[ bp:
- Fixup title
- Rewrite commit message
- Fixup Kconfig text
- Zap unused defines and align them
- Simplify rpmsg_cb() considerably
- Drop silly double-brackets in conditionals
- Use proper void * type in mcdi_request()
- Do not clear chinfo in rpmsg_probe() unnecessarily
- Fix indentation
- Do a proper err unwind path in init_versalnet()
- Redo the error unwind path in mc_probe() properly
- Fix the ordering in mc_remove()
]
Signed-off-by: Shubhrajyoti Datta <shubhrajyoti.datta@amd.com>
Signed-off-by: Borislav Petkov (AMD) <bp@alien8.de>
Link: https://lore.kernel.org/20250908115649.22903-1-shubhrajyoti.datta@amd.com
Link: https://lore.kernel.org/r/20250703173105.GLaGa-WQCESDNsqygm@fat_crate.local
93 lines
3.2 KiB
Makefile
93 lines
3.2 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
|
|
|
|
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
|