From eba383c20ce8f6f98981afbc40137571519a8571 Mon Sep 17 00:00:00 2001 From: Patrick Rudolph Date: Wed, 14 Feb 2024 10:39:32 +0100 Subject: soc/intel/xeon_sp/uncore: Don't print uninitialized memory The struct map_entry has two zero'd entries due to the ifdef being used. Do not read those entries and do not print those entries. Fixes a NULL string being printed along as the vendor and device ID of the PCI device. Change-Id: Id87ced76af552c0d064538f8140d1b78724fb833 Signed-off-by: Patrick Rudolph Reviewed-on: https://review.coreboot.org/c/coreboot/+/80546 Reviewed-by: Shuo Liu Tested-by: build bot (Jenkins) Reviewed-by: Arthur Heymans --- src/soc/intel/xeon_sp/uncore.c | 8 ++++++++ 1 file changed, 8 insertions(+) (limited to 'src/soc/intel') diff --git a/src/soc/intel/xeon_sp/uncore.c b/src/soc/intel/xeon_sp/uncore.c index ddc6e8206f..de2d17500e 100644 --- a/src/soc/intel/xeon_sp/uncore.c +++ b/src/soc/intel/xeon_sp/uncore.c @@ -72,6 +72,11 @@ static void read_map_entry(struct device *dev, struct map_entry *entry, uint64_t value; uint64_t mask; + if (!entry->reg) { + *result = 0; + return; + } + /* All registers are on a 1MiB granularity. */ mask = ((1ULL << entry->mask_bits) - 1); mask = ~mask; @@ -103,6 +108,9 @@ static void mc_report_map_entries(struct device *dev, uint64_t *values) { int i; for (i = 0; i < NUM_MAP_ENTRIES; i++) { + if (!memory_map[i].description) + continue; + printk(BIOS_DEBUG, "MC MAP: %s: 0x%llx\n", memory_map[i].description, values[i]); } -- cgit v1.2.3