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>
This commit is contained in:
Johnny Lin 2020-08-16 00:13:29 +08:00 committed by Patrick Georgi
parent 24bb8036c9
commit 91c8ccd99e
1 changed files with 8 additions and 3 deletions

View File

@ -29,14 +29,19 @@ const struct SystemMemoryMapHob *get_system_memory_map(void)
{ {
size_t hob_size; size_t hob_size;
const uint8_t mem_hob_guid[16] = FSP_SYSTEM_MEMORYMAP_HOB_GUID; 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); 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, 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) uint8_t *package, uint8_t *core, uint8_t *thread)
{ {