Skip to content

Commit 8028e29

Browse files
committed
Merge tag 'edac_updates_for_v6.11' of git://git.kernel.org/pub/scm/linux/kernel/git/ras/ras
Pull EDAC updates from Borislav Petkov: - The AMD memory controllers data fabric version 4.5 supports non-power-of-2 denormalization in the sense that certain bits of the system physical address cannot be reconstructed from the normalized address reported by the RAS hardware. Add support for handling such addresses - Switch the EDAC drivers to the new Intel CPU model defines - The usual fixes and cleanups all over the place * tag 'edac_updates_for_v6.11' of git://git.kernel.org/pub/scm/linux/kernel/git/ras/ras: EDAC: Add missing MODULE_DESCRIPTION() macros EDAC/dmc520: Use devm_platform_ioremap_resource() EDAC/igen6: Add Intel Arrow Lake-U/H SoCs support RAS/AMD/FMPM: Use atl internal.h for INVALID_SPA RAS/AMD/ATL: Implement DF 4.5 NP2 denormalization RAS/AMD/ATL: Validate address map when information is gathered RAS/AMD/ATL: Expand helpers for adding and removing base and hole RAS/AMD/ATL: Read DRAM hole base early RAS/AMD/ATL: Add amd_atl pr_fmt() prefix RAS/AMD/ATL: Add a missing module description EDAC, i10nm: make skx_common.o a separate module EDAC/skx: Switch to new Intel CPU model defines EDAC/sb_edac: Switch to new Intel CPU model defines EDAC, pnd2: Switch to new Intel CPU model defines EDAC/i10nm: Switch to new Intel CPU model defines EDAC/ghes: Add missing newline to pr_info() statement RAS/AMD/ATL: Add missing newline to pr_info() statement EDAC/thunderx: Remove unused struct error_syndrome
2 parents e23dd95 + 03a9b67 commit 8028e29

24 files changed

Lines changed: 819 additions & 108 deletions

drivers/edac/Makefile

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -54,11 +54,13 @@ obj-$(CONFIG_EDAC_MPC85XX) += mpc85xx_edac_mod.o
5454
layerscape_edac_mod-y := fsl_ddr_edac.o layerscape_edac.o
5555
obj-$(CONFIG_EDAC_LAYERSCAPE) += layerscape_edac_mod.o
5656

57-
skx_edac-y := skx_common.o skx_base.o
58-
obj-$(CONFIG_EDAC_SKX) += skx_edac.o
57+
skx_edac_common-y := skx_common.o
5958

60-
i10nm_edac-y := skx_common.o i10nm_base.o
61-
obj-$(CONFIG_EDAC_I10NM) += i10nm_edac.o
59+
skx_edac-y := skx_base.o
60+
obj-$(CONFIG_EDAC_SKX) += skx_edac.o skx_edac_common.o
61+
62+
i10nm_edac-y := i10nm_base.o
63+
obj-$(CONFIG_EDAC_I10NM) += i10nm_edac.o skx_edac_common.o
6264

6365
obj-$(CONFIG_EDAC_CELL) += cell_edac.o
6466
obj-$(CONFIG_EDAC_PPC4XX) += ppc4xx_edac.o

drivers/edac/dmc520_edac.c

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -480,7 +480,6 @@ static int dmc520_edac_probe(struct platform_device *pdev)
480480
struct mem_ctl_info *mci;
481481
void __iomem *reg_base;
482482
u32 irq_mask_all = 0;
483-
struct resource *res;
484483
struct device *dev;
485484
int ret, idx, irq;
486485
u32 reg_val;
@@ -505,8 +504,7 @@ static int dmc520_edac_probe(struct platform_device *pdev)
505504
}
506505

507506
/* Initialize dmc520 edac */
508-
res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
509-
reg_base = devm_ioremap_resource(dev, res);
507+
reg_base = devm_platform_ioremap_resource(pdev, 0);
510508
if (IS_ERR(reg_base))
511509
return PTR_ERR(reg_base);
512510

drivers/edac/ghes_edac.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -547,7 +547,7 @@ static int __init ghes_edac_init(void)
547547
return -ENODEV;
548548

549549
if (list_empty(ghes_devs)) {
550-
pr_info("GHES probing device list is empty");
550+
pr_info("GHES probing device list is empty\n");
551551
return -ENODEV;
552552
}
553553

drivers/edac/i10nm_base.c

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -942,16 +942,16 @@ static struct res_config gnr_cfg = {
942942
};
943943

944944
static const struct x86_cpu_id i10nm_cpuids[] = {
945-
X86_MATCH_INTEL_FAM6_MODEL_STEPPINGS(ATOM_TREMONT_D, X86_STEPPINGS(0x0, 0x3), &i10nm_cfg0),
946-
X86_MATCH_INTEL_FAM6_MODEL_STEPPINGS(ATOM_TREMONT_D, X86_STEPPINGS(0x4, 0xf), &i10nm_cfg1),
947-
X86_MATCH_INTEL_FAM6_MODEL_STEPPINGS(ICELAKE_X, X86_STEPPINGS(0x0, 0x3), &i10nm_cfg0),
948-
X86_MATCH_INTEL_FAM6_MODEL_STEPPINGS(ICELAKE_X, X86_STEPPINGS(0x4, 0xf), &i10nm_cfg1),
949-
X86_MATCH_INTEL_FAM6_MODEL_STEPPINGS(ICELAKE_D, X86_STEPPINGS(0x0, 0xf), &i10nm_cfg1),
950-
X86_MATCH_INTEL_FAM6_MODEL_STEPPINGS(SAPPHIRERAPIDS_X, X86_STEPPINGS(0x0, 0xf), &spr_cfg),
951-
X86_MATCH_INTEL_FAM6_MODEL_STEPPINGS(EMERALDRAPIDS_X, X86_STEPPINGS(0x0, 0xf), &spr_cfg),
952-
X86_MATCH_INTEL_FAM6_MODEL_STEPPINGS(GRANITERAPIDS_X, X86_STEPPINGS(0x0, 0xf), &gnr_cfg),
953-
X86_MATCH_INTEL_FAM6_MODEL_STEPPINGS(ATOM_CRESTMONT_X, X86_STEPPINGS(0x0, 0xf), &gnr_cfg),
954-
X86_MATCH_INTEL_FAM6_MODEL_STEPPINGS(ATOM_CRESTMONT, X86_STEPPINGS(0x0, 0xf), &gnr_cfg),
945+
X86_MATCH_VFM_STEPPINGS(INTEL_ATOM_TREMONT_D, X86_STEPPINGS(0x0, 0x3), &i10nm_cfg0),
946+
X86_MATCH_VFM_STEPPINGS(INTEL_ATOM_TREMONT_D, X86_STEPPINGS(0x4, 0xf), &i10nm_cfg1),
947+
X86_MATCH_VFM_STEPPINGS(INTEL_ICELAKE_X, X86_STEPPINGS(0x0, 0x3), &i10nm_cfg0),
948+
X86_MATCH_VFM_STEPPINGS(INTEL_ICELAKE_X, X86_STEPPINGS(0x4, 0xf), &i10nm_cfg1),
949+
X86_MATCH_VFM_STEPPINGS(INTEL_ICELAKE_D, X86_STEPPINGS(0x0, 0xf), &i10nm_cfg1),
950+
X86_MATCH_VFM_STEPPINGS(INTEL_SAPPHIRERAPIDS_X, X86_STEPPINGS(0x0, 0xf), &spr_cfg),
951+
X86_MATCH_VFM_STEPPINGS(INTEL_EMERALDRAPIDS_X, X86_STEPPINGS(0x0, 0xf), &spr_cfg),
952+
X86_MATCH_VFM_STEPPINGS(INTEL_GRANITERAPIDS_X, X86_STEPPINGS(0x0, 0xf), &gnr_cfg),
953+
X86_MATCH_VFM_STEPPINGS(INTEL_ATOM_CRESTMONT_X, X86_STEPPINGS(0x0, 0xf), &gnr_cfg),
954+
X86_MATCH_VFM_STEPPINGS(INTEL_ATOM_CRESTMONT, X86_STEPPINGS(0x0, 0xf), &gnr_cfg),
955955
{}
956956
};
957957
MODULE_DEVICE_TABLE(x86cpu, i10nm_cpuids);

drivers/edac/igen6_edac.c

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -258,6 +258,11 @@ static struct work_struct ecclog_work;
258258
#define DID_MTL_P_SKU2 0x7d02
259259
#define DID_MTL_P_SKU3 0x7d14
260260

261+
/* Compute die IDs for Arrow Lake-UH with IBECC */
262+
#define DID_ARL_UH_SKU1 0x7d06
263+
#define DID_ARL_UH_SKU2 0x7d20
264+
#define DID_ARL_UH_SKU3 0x7d30
265+
261266
static int get_mchbar(struct pci_dev *pdev, u64 *mchbar)
262267
{
263268
union {
@@ -597,6 +602,9 @@ static const struct pci_device_id igen6_pci_tbl[] = {
597602
{ PCI_VDEVICE(INTEL, DID_MTL_P_SKU1), (kernel_ulong_t)&mtl_p_cfg },
598603
{ PCI_VDEVICE(INTEL, DID_MTL_P_SKU2), (kernel_ulong_t)&mtl_p_cfg },
599604
{ PCI_VDEVICE(INTEL, DID_MTL_P_SKU3), (kernel_ulong_t)&mtl_p_cfg },
605+
{ PCI_VDEVICE(INTEL, DID_ARL_UH_SKU1), (kernel_ulong_t)&mtl_p_cfg },
606+
{ PCI_VDEVICE(INTEL, DID_ARL_UH_SKU2), (kernel_ulong_t)&mtl_p_cfg },
607+
{ PCI_VDEVICE(INTEL, DID_ARL_UH_SKU3), (kernel_ulong_t)&mtl_p_cfg },
600608
{ },
601609
};
602610
MODULE_DEVICE_TABLE(pci, igen6_pci_tbl);

drivers/edac/layerscape_edac.c

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -69,6 +69,7 @@ static void __exit fsl_ddr_mc_exit(void)
6969

7070
module_exit(fsl_ddr_mc_exit);
7171

72+
MODULE_DESCRIPTION("Freescale Layerscape EDAC driver");
7273
MODULE_LICENSE("GPL");
7374
MODULE_AUTHOR("NXP Semiconductor");
7475
module_param(edac_op_state, int, 0444);

drivers/edac/mpc85xx_edac.c

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -704,6 +704,7 @@ static void __exit mpc85xx_mc_exit(void)
704704

705705
module_exit(mpc85xx_mc_exit);
706706

707+
MODULE_DESCRIPTION("Freescale MPC85xx Memory Controller EDAC driver");
707708
MODULE_LICENSE("GPL");
708709
MODULE_AUTHOR("Montavista Software, Inc.");
709710
module_param(edac_op_state, int, 0444);

drivers/edac/octeon_edac-l2c.c

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -201,5 +201,6 @@ static struct platform_driver octeon_l2c_driver = {
201201
};
202202
module_platform_driver(octeon_l2c_driver);
203203

204+
MODULE_DESCRIPTION("Cavium Octeon Secondary Caches (L2C) EDAC driver");
204205
MODULE_LICENSE("GPL");
205206
MODULE_AUTHOR("Ralf Baechle <ralf@linux-mips.org>");

drivers/edac/octeon_edac-lmc.c

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -319,5 +319,6 @@ static struct platform_driver octeon_lmc_edac_driver = {
319319
};
320320
module_platform_driver(octeon_lmc_edac_driver);
321321

322+
MODULE_DESCRIPTION("Cavium Octeon DRAM Memory Controller (LMC) EDAC driver");
322323
MODULE_LICENSE("GPL");
323324
MODULE_AUTHOR("Ralf Baechle <ralf@linux-mips.org>");

drivers/edac/octeon_edac-pc.c

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -137,5 +137,6 @@ static struct platform_driver co_cache_error_driver = {
137137
};
138138
module_platform_driver(co_cache_error_driver);
139139

140+
MODULE_DESCRIPTION("Cavium Octeon Primary Caches EDAC driver");
140141
MODULE_LICENSE("GPL");
141142
MODULE_AUTHOR("Ralf Baechle <ralf@linux-mips.org>");

0 commit comments

Comments
 (0)