summaryrefslogtreecommitdiff
path: root/src/soc
diff options
context:
space:
mode:
authorJohnny Lin <johnny_lin@wiwynn.com>2020-08-16 00:13:29 +0800
committerPatrick Georgi <pgeorgi@google.com>2020-08-18 08:50:00 +0000
commit91c8ccd99eec3436121bab907af71f8b26774552 (patch)
tree64d2855dd320cd507d3f50a627d93d2e515b54fe /src/soc
parent24bb8036c90feb8c2f45f59cce15eec7792a6393 (diff)
downloadcoreboot-91c8ccd99eec3436121bab907af71f8b26774552.tar.xz
xeon_sp/cpx: Fix get_system_memory_map to return the correct address
Similar to commit b45ed65, the HOB structure is actually a 8 byte address pointing to the HOB data. Tested=Verified the values of the hob fields are the same printed by soc_display_memmap_hob(). Change-Id: I348d3cd80a56e86d22f20fcadf0316b462b86829 Signed-off-by: Johnny Lin <johnny_lin@wiwynn.com> Reviewed-on: https://review.coreboot.org/c/coreboot/+/44502 Tested-by: build bot (Jenkins) <no-reply@coreboot.org> Reviewed-by: Angel Pons <th3fanbus@gmail.com>
Diffstat (limited to 'src/soc')
-rw-r--r--src/soc/intel/xeon_sp/cpx/soc_util.c11
1 files changed, 8 insertions, 3 deletions
diff --git a/src/soc/intel/xeon_sp/cpx/soc_util.c b/src/soc/intel/xeon_sp/cpx/soc_util.c
index fb78910a19..15874c0cb6 100644
--- a/src/soc/intel/xeon_sp/cpx/soc_util.c
+++ b/src/soc/intel/xeon_sp/cpx/soc_util.c
@@ -29,14 +29,19 @@ const struct SystemMemoryMapHob *get_system_memory_map(void)
{
size_t hob_size;
const uint8_t mem_hob_guid[16] = FSP_SYSTEM_MEMORYMAP_HOB_GUID;
+ const struct SystemMemoryMapHob **memmap_addr;
- const void *memmap_addr = fsp_find_extension_hob_by_guid(mem_hob_guid, &hob_size);
+ memmap_addr = (const struct SystemMemoryMapHob **)
+ fsp_find_extension_hob_by_guid(mem_hob_guid, &hob_size);
+ /* hob_size is the size of the 8-byte address not the hob data */
assert(memmap_addr != NULL && hob_size != 0);
- printk(BIOS_DEBUG, "FSP_SYSTEM_MEMORYMAP_HOB_GUID hob_size: %ld\n", hob_size);
+ /* assert the pointer to the hob is not NULL */
+ assert(*memmap_addr != NULL);
- return (const struct SystemMemoryMapHob *) memmap_addr;
+ return *memmap_addr;
}
+
void get_cpu_info_from_apicid(uint32_t apicid, uint32_t core_bits, uint32_t thread_bits,
uint8_t *package, uint8_t *core, uint8_t *thread)
{