summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPatrick Rudolph <patrick.rudolph@9elements.com>2024-02-14 10:39:32 +0100
committerLean Sheng Tan <sheng.tan@9elements.com>2024-02-18 07:51:00 +0000
commiteba383c20ce8f6f98981afbc40137571519a8571 (patch)
tree6f15bbc4c276c87e6bd3b5871a1dc032f00c05f3
parent7d4155e6e6751ccd1f0b39051462d6842b435fe2 (diff)
downloadcoreboot-eba383c20ce8f6f98981afbc40137571519a8571.tar.gz
coreboot-eba383c20ce8f6f98981afbc40137571519a8571.tar.bz2
coreboot-eba383c20ce8f6f98981afbc40137571519a8571.zip
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 <patrick.rudolph@9elements.com> Reviewed-on: https://review.coreboot.org/c/coreboot/+/80546 Reviewed-by: Shuo Liu <shuo.liu@intel.com> Tested-by: build bot (Jenkins) <no-reply@coreboot.org> Reviewed-by: Arthur Heymans <arthur@aheymans.xyz>
-rw-r--r--src/soc/intel/xeon_sp/uncore.c8
1 files changed, 8 insertions, 0 deletions
diff --git a/src/soc/intel/xeon_sp/uncore.c b/src/soc/intel/xeon_sp/uncore.c
index ddc6e8206f97..de2d17500e3d 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]);
}