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
This commit is contained in:
@@ -223,6 +223,21 @@ static int determine_df_rev(void)
|
||||
return -EINVAL;
|
||||
}
|
||||
|
||||
static int get_dram_hole_base(void)
|
||||
{
|
||||
u8 func = 0;
|
||||
|
||||
if (df_cfg.rev >= DF4)
|
||||
func = 7;
|
||||
|
||||
if (df_indirect_read_broadcast(0, func, 0x104, &df_cfg.dram_hole_base))
|
||||
return -EINVAL;
|
||||
|
||||
df_cfg.dram_hole_base &= DF_DRAM_HOLE_BASE_MASK;
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
static void get_num_maps(void)
|
||||
{
|
||||
switch (df_cfg.rev) {
|
||||
@@ -266,6 +281,7 @@ static void dump_df_cfg(void)
|
||||
|
||||
pr_debug("num_coh_st_maps=%u", df_cfg.num_coh_st_maps);
|
||||
|
||||
pr_debug("dram_hole_base=0x%x", df_cfg.dram_hole_base);
|
||||
pr_debug("flags.legacy_ficaa=%u", df_cfg.flags.legacy_ficaa);
|
||||
pr_debug("flags.socket_id_shift_quirk=%u", df_cfg.flags.socket_id_shift_quirk);
|
||||
}
|
||||
@@ -273,7 +289,7 @@ static void dump_df_cfg(void)
|
||||
int get_df_system_info(void)
|
||||
{
|
||||
if (determine_df_rev()) {
|
||||
pr_warn("amd_atl: Failed to determine DF Revision");
|
||||
pr_warn("Failed to determine DF Revision");
|
||||
df_cfg.rev = UNKNOWN;
|
||||
return -EINVAL;
|
||||
}
|
||||
@@ -282,6 +298,9 @@ int get_df_system_info(void)
|
||||
|
||||
get_num_maps();
|
||||
|
||||
if (get_dram_hole_base())
|
||||
pr_warn("Failed to read DRAM hole base");
|
||||
|
||||
dump_df_cfg();
|
||||
|
||||
return 0;
|
||||
|
||||
Reference in New Issue
Block a user