[PATCH] x86/mce/amd, EDAC/mce_amd: Add new SMCA bank types

Yazen Ghannam
2026-02-02T17:22:14Z

Recognize new SMCA bank types and include their short names for sysfs
and long names for decoding.

Signed-off-by: Yazen Ghannam <yazen.ghannam@amd.com>
---
arch/x86/include/asm/mce.h | 11 +++++++++++
arch/x86/kernel/cpu/mce/amd.c | 21 +++++++++++++++++++++
drivers/edac/mce_amd.c | 10 ++++++++++
3 files changed, 42 insertions(+)

diff --git a/arch/x86/include/asm/mce.h b/arch/x86/include/asm/mce.h
index 2d98886de09a..6e1f10ca053f 100644
--- a/arch/x86/include/asm/mce.h
+++ b/arch/x86/include/asm/mce.h
@@ -370,13 +370,24 @@ enum smca_bank_types {
SMCA_NBIO, /* Northbridge IO Unit */
SMCA_PCIE, /* PCI Express Unit */
SMCA_PCIE_V2,
+ SMCA_MPRAS, /* MP for RAS */
SMCA_XGMI_PCS, /* xGMI PCS Unit */
+ SMCA_SSBDCI, /* Die to Die Interconnect */
SMCA_NBIF, /* NBIF Unit */
SMCA_SHUB, /* System HUB Unit */
SMCA_SATA, /* SATA Unit */
SMCA_USB, /* USB Unit */
+ SMCA_MPDACC, /* MP for Data Acceleration */
+ SMCA_MPM, /* Microprocessor Manageability Core */
+ SMCA_MPASP, /* AMD Secure Processor */
+ SMCA_MPASP_V2,
+ SMCA_MPART, /* AMD Root of Trust Microprocessor */
+ SMCA_DACC_FE, /* Data Acceleration Front-end */
+ SMCA_DACC_BE, /* Data Acceleration Back-end */
SMCA_USR_DP, /* Ultra Short Reach Data Plane Controller */
SMCA_USR_CP, /* Ultra Short Reach Control Plane Controller */
+ SMCA_EDDR5CMN, /* eDDR5 CMN */
+ SMCA_PCIE_PL, /* PCIe Link */
SMCA_GMI_PCS, /* GMI PCS Unit */
SMCA_XGMI_PHY, /* xGMI PHY Unit */
SMCA_WAFL_PHY, /* WAFL PHY Unit */
diff --git a/arch/x86/kernel/cpu/mce/amd.c b/arch/x86/kernel/cpu/mce/amd.c
index 3f1dda355307..662d86a6bda4 100644
--- a/arch/x86/kernel/cpu/mce/amd.c
+++ b/arch/x86/kernel/cpu/mce/amd.c
@@ -117,13 +117,23 @@ static const char * const smca_names[] = {
[SMCA_MPDMA] = "mpdma",
[SMCA_NBIO] = "nbio",
[SMCA_PCIE ... SMCA_PCIE_V2] = "pcie",
+ [SMCA_MPRAS] = "mpras",
[SMCA_XGMI_PCS] = "xgmi_pcs",
+ [SMCA_SSBDCI] = "ssbdci",
[SMCA_NBIF] = "nbif",
[SMCA_SHUB] = "shub",
[SMCA_SATA] = "sata",
[SMCA_USB] = "usb",
+ [SMCA_MPDACC] = "mpdacc",
+ [SMCA_MPM] = "mpm",
+ [SMCA_MPASP ... SMCA_MPASP_V2] = "mpasp",
+ [SMCA_MPART] = "mpart",
+ [SMCA_DACC_FE] = "dacc_fe",
+ [SMCA_DACC_BE] = "dacc_be",
[SMCA_USR_DP] = "usr_dp",
[SMCA_USR_CP] = "usr_cp",
+ [SMCA_EDDR5CMN] = "eddr5_cmn",
+ [SMCA_PCIE_PL] = "pcie_pl",
[SMCA_GMI_PCS] = "gmi_pcs",
[SMCA_XGMI_PHY] = "xgmi_phy",
[SMCA_WAFL_PHY] = "wafl_phy",
@@ -204,13 +214,24 @@ static const struct smca_hwid smca_hwid_mcatypes[] = {
{ SMCA_PCIE, HWID_MCATYPE(0x46, 0x0) },
{ SMCA_PCIE_V2, HWID_MCATYPE(0x46, 0x1) },

+ { SMCA_MPRAS, HWID_MCATYPE(0x12, 0x0) },
{ SMCA_XGMI_PCS, HWID_MCATYPE(0x50, 0x0) },
+ { SMCA_SSBDCI, HWID_MCATYPE(0x5C, 0x0) },
{ SMCA_NBIF, HWID_MCATYPE(0x6C, 0x0) },
{ SMCA_SHUB, HWID_MCATYPE(0x80, 0x0) },
{ SMCA_SATA, HWID_MCATYPE(0xA8, 0x0) },
{ SMCA_USB, HWID_MCATYPE(0xAA, 0x0) },
+ { SMCA_MPDACC, HWID_MCATYPE(0xBE, 0x0) },
+ { SMCA_MPM, HWID_MCATYPE(0xF9, 0x0) },
+ { SMCA_MPASP, HWID_MCATYPE(0xFD, 0x0) },
+ { SMCA_MPASP_V2, HWID_MCATYPE(0xFD, 0x1) },
+ { SMCA_MPART, HWID_MCATYPE(0xFF, 0x2) },
+ { SMCA_DACC_FE, HWID_MCATYPE(0x157, 0x0) },
+ { SMCA_DACC_BE, HWID_MCATYPE(0x164, 0x0) },
{ SMCA_USR_DP, HWID_MCATYPE(0x170, 0x0) },
{ SMCA_USR_CP, HWID_MCATYPE(0x180, 0x0) },
+ { SMCA_EDDR5CMN, HWID_MCATYPE(0x1E0, 0x0) },
+ { SMCA_PCIE_PL, HWID_MCATYPE(0x1E1, 0x0) },
{ SMCA_GMI_PCS, HWID_MCATYPE(0x241, 0x0) },
{ SMCA_XGMI_PHY, HWID_MCATYPE(0x259, 0x0) },
{ SMCA_WAFL_PHY, HWID_MCATYPE(0x267, 0x0) },
diff --git a/drivers/edac/mce_amd.c b/drivers/edac/mce_amd.c
index af3c12284a1e..43051aab72ba 100644
--- a/drivers/edac/mce_amd.c
+++ b/drivers/edac/mce_amd.c
@@ -710,11 +710,21 @@ static const char * const smca_long_names[] = {
[SMCA_MPDMA] = "MPDMA Unit",
[SMCA_NBIO] = "Northbridge IO Unit",
[SMCA_PCIE ... SMCA_PCIE_V2] = "PCI Express Unit",
+ [SMCA_MPRAS] = "MPRAS Unit",
[SMCA_XGMI_PCS] = "Ext Global Memory Interconnect PCS Unit",
+ [SMCA_SSBDCI] = "Die to Die Interconnect Unit",
[SMCA_NBIF] = "NBIF Unit",
[SMCA_SHUB] = "System Hub Unit",
[SMCA_SATA] = "SATA Unit",
[SMCA_USB] = "USB Unit",
+ [SMCA_MPDACC] = "MPDACC Unit",
+ [SMCA_MPM] = "MPM Unit",
+ [SMCA_MPASP ... SMCA_MPASP_V2] = "MPASP Unit",
+ [SMCA_MPART] = "MPART Unit",
+ [SMCA_DACC_FE] = "DACC Front-end Unit",
+ [SMCA_DACC_BE] = "DACC Back-end Unit",
+ [SMCA_EDDR5CMN] = "eDDR5 CMN Unit",
+ [SMCA_PCIE_PL] = "PCIe Link Unit",
[SMCA_GMI_PCS] = "Global Memory Interconnect PCS Unit",
[SMCA_XGMI_PHY] = "Ext Global Memory Interconnect PHY Unit",
[SMCA_WAFL_PHY] = "WAFL PHY Unit",
--
2.52.0