summaryrefslogtreecommitdiff
path: root/src/soc/intel/xeon_sp
diff options
context:
space:
mode:
authorMarc Jones <marcjones@sysproconsulting.com>2020-09-28 16:53:19 -0600
committerMarc Jones <marc@marcjonesconsulting.com>2020-10-15 15:55:25 +0000
commite1db55b43ea2e450a215efad1228498493dd6086 (patch)
treeda2ee9c0e75c6e561e261e4380a98ff74ab57f7d /src/soc/intel/xeon_sp
parent42f795904c550215fc53706155ceb82f1f720117 (diff)
soc/intel/xeon_sp: Add get_system_memory_map()
Prepare for common ACPI. Add get_system_memory_map() helper function to soc_util.c and use it in the SRAT ACPI code to match the cpx code. Change-Id: I54675b52aaf2999d884b3c20ccb143fbbf8b138a Signed-off-by: Marc Jones <marcjones@sysproconsulting.com> Reviewed-on: https://review.coreboot.org/c/coreboot/+/45847 Reviewed-by: Angel Pons <th3fanbus@gmail.com> Reviewed-by: Jay Talbott <JayTalbott@sysproconsulting.com> Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Diffstat (limited to 'src/soc/intel/xeon_sp')
-rw-r--r--src/soc/intel/xeon_sp/skx/include/soc/soc_util.h1
-rw-r--r--src/soc/intel/xeon_sp/skx/soc_acpi.c8
-rw-r--r--src/soc/intel/xeon_sp/skx/soc_util.c11
3 files changed, 15 insertions, 5 deletions
diff --git a/src/soc/intel/xeon_sp/skx/include/soc/soc_util.h b/src/soc/intel/xeon_sp/skx/include/soc/soc_util.h
index c7f7383731..0eac8368e0 100644
--- a/src/soc/intel/xeon_sp/skx/include/soc/soc_util.h
+++ b/src/soc/intel/xeon_sp/skx/include/soc/soc_util.h
@@ -30,6 +30,7 @@ void get_core_thread_bits(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);
+const struct SystemMemoryMapHob *get_system_memory_map(void);
void xeonsp_init_cpu_config(void);
void set_bios_init_completion(void);
void config_reset_cpl3_csrs(void);
diff --git a/src/soc/intel/xeon_sp/skx/soc_acpi.c b/src/soc/intel/xeon_sp/skx/soc_acpi.c
index c986214b3c..9c07ec7021 100644
--- a/src/soc/intel/xeon_sp/skx/soc_acpi.c
+++ b/src/soc/intel/xeon_sp/skx/soc_acpi.c
@@ -179,13 +179,11 @@ unsigned long acpi_create_srat_lapics(unsigned long current)
static unsigned int get_srat_memory_entries(acpi_srat_mem_t *srat_mem)
{
const struct SystemMemoryMapHob *memory_map;
- size_t hob_size;
- const uint8_t mem_hob_guid[16] = FSP_SYSTEM_MEMORYMAP_HOB_GUID;
unsigned int mmap_index;
- memory_map = fsp_find_extension_hob_by_guid(mem_hob_guid, &hob_size);
- assert(memory_map != NULL && hob_size != 0);
- printk(BIOS_DEBUG, "FSP_SYSTEM_MEMORYMAP_HOB_GUID hob_size: %ld\n", hob_size);
+ memory_map = get_system_memory_map();
+ assert(memory_map != NULL);
+ printk(BIOS_DEBUG, "memory_map: %p\n", memory_map);
mmap_index = 0;
for (int e = 0; e < memory_map->numberEntries; ++e) {
diff --git a/src/soc/intel/xeon_sp/skx/soc_util.c b/src/soc/intel/xeon_sp/skx/soc_util.c
index e21edbc8f7..50f091ec94 100644
--- a/src/soc/intel/xeon_sp/skx/soc_util.c
+++ b/src/soc/intel/xeon_sp/skx/soc_util.c
@@ -373,6 +373,17 @@ void get_iiostack_info(struct iiostack_resource *info)
}
#if ENV_RAMSTAGE
+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;
+
+ memmap_addr = fsp_find_extension_hob_by_guid(mem_hob_guid, &hob_size);
+ assert(memmap_addr != NULL && hob_size != 0);
+
+ return memmap_addr;
+}
void xeonsp_init_cpu_config(void)
{