summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/soc/intel/cannonlake/include/soc/ebda.h1
-rw-r--r--src/soc/intel/cannonlake/memmap.c7
2 files changed, 5 insertions, 3 deletions
diff --git a/src/soc/intel/cannonlake/include/soc/ebda.h b/src/soc/intel/cannonlake/include/soc/ebda.h
index 4cde5c0106..15a9d28a91 100644
--- a/src/soc/intel/cannonlake/include/soc/ebda.h
+++ b/src/soc/intel/cannonlake/include/soc/ebda.h
@@ -19,6 +19,7 @@
struct ebda_config {
uint32_t signature; /* 0x00 - EBDA signature */
uint32_t tolum_base; /* 0x04 - coreboot memory start */
+ uint32_t reserved_mem_size; /* 0x08 - chipset reserved memory size */
};
#endif
diff --git a/src/soc/intel/cannonlake/memmap.c b/src/soc/intel/cannonlake/memmap.c
index 8cf74c5585..0636b08abe 100644
--- a/src/soc/intel/cannonlake/memmap.c
+++ b/src/soc/intel/cannonlake/memmap.c
@@ -263,12 +263,12 @@ static uintptr_t calculate_dram_base(size_t *reserved_mem_size)
*/
size_t soc_reserved_mmio_size(void)
{
- size_t chipset_mem_size;
+ struct ebda_config cfg;
- calculate_dram_base(&chipset_mem_size);
+ retrieve_ebda_object(&cfg);
/* Get Intel Reserved Memory Range Size */
- return chipset_mem_size;
+ return cfg.reserved_mem_size;
}
/* Fill up memory layout information */
@@ -277,6 +277,7 @@ void fill_soc_memmap_ebda(struct ebda_config *cfg)
size_t chipset_mem_size;
cfg->tolum_base = calculate_dram_base(&chipset_mem_size);
+ cfg->reserved_mem_size = chipset_mem_size;
}
void cbmem_top_init(void)