aboutsummaryrefslogtreecommitdiff
path: root/src/soc/intel/fsp_baytrail/memmap.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/soc/intel/fsp_baytrail/memmap.c')
-rw-r--r--src/soc/intel/fsp_baytrail/memmap.c18
1 files changed, 15 insertions, 3 deletions
diff --git a/src/soc/intel/fsp_baytrail/memmap.c b/src/soc/intel/fsp_baytrail/memmap.c
index 77ba406507..7fec7f9764 100644
--- a/src/soc/intel/fsp_baytrail/memmap.c
+++ b/src/soc/intel/fsp_baytrail/memmap.c
@@ -15,13 +15,19 @@
*/
#include <cbmem.h>
+#include <cpu/x86/smm.h>
#include <soc/iosf.h>
-#include <soc/smm.h>
#include <drivers/intel/fsp1_0/fsp_util.h>
+#include <types.h>
-uintptr_t smm_region_start(void)
+static uintptr_t smm_region_start(void)
{
- return (iosf_bunit_read(BUNIT_SMRRL) << 20);
+ return (iosf_bunit_read(BUNIT_SMRRL) & 0xFFFF) << 20;
+}
+
+static size_t smm_region_size(void)
+{
+ return CONFIG_SMM_TSEG_SIZE;
}
/** @brief get the top of usable low memory from the FSP's HOB list
@@ -38,3 +44,9 @@ void *cbmem_top(void)
{
return find_fsp_reserved_mem(*(void **)CBMEM_FSP_HOB_PTR);
}
+
+void smm_region(uintptr_t *start, size_t *size)
+{
+ *start = smm_region_start();
+ *size = smm_region_size();
+}