summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMeng-Huan Yu <menghuan@chromium.org>2020-12-01 11:44:41 +0800
committerPatrick Georgi <pgeorgi@google.com>2020-12-05 09:45:34 +0000
commitc9655468e833997fa8df7da97b59b70a21d05397 (patch)
tree8bf8b781fcbb7616e8798597c2a81e8003c663c2
parent455d7b74abdcc05ead46e1b4ca0f969df4f9a025 (diff)
libpayload: Provide API to expose MMU memery ranges for ARM64
Provide get_mmu_ranges() for ARM64 to let payloads could get MMU ranges for all used memory regions. BUG=b:171858277 TEST=Build in x86, arm, arm64. emerge-zork libpayload depthcharge emerge-nyan libpayload depthcharge emerge-asurada libpayload depthcharge Signed-off-by: Meng-Huan Yu <menghuan@google.com> Change-Id: I39b24aefc9dbe530169b272e839d0e1e7c697742 Reviewed-on: https://review.coreboot.org/c/coreboot/+/48113 Tested-by: build bot (Jenkins) <no-reply@coreboot.org> Reviewed-by: Julius Werner <jwerner@chromium.org> Reviewed-by: Yu-Ping Wu <yupingso@google.com>
-rw-r--r--payloads/libpayload/arch/arm64/mmu.c5
-rw-r--r--payloads/libpayload/include/arm64/arch/mmu.h8
2 files changed, 13 insertions, 0 deletions
diff --git a/payloads/libpayload/arch/arm64/mmu.c b/payloads/libpayload/arch/arm64/mmu.c
index cb0081b789..bc4c233479 100644
--- a/payloads/libpayload/arch/arm64/mmu.c
+++ b/payloads/libpayload/arch/arm64/mmu.c
@@ -705,3 +705,8 @@ void mmu_presysinfo_enable(void)
mmu_init(&usedmem_ranges);
mmu_enable();
}
+
+const struct mmu_ranges *mmu_get_used_ranges(void)
+{
+ return &usedmem_ranges;
+}
diff --git a/payloads/libpayload/include/arm64/arch/mmu.h b/payloads/libpayload/include/arm64/arch/mmu.h
index 5a1dd98a59..2b1e9e120c 100644
--- a/payloads/libpayload/include/arm64/arch/mmu.h
+++ b/payloads/libpayload/include/arm64/arch/mmu.h
@@ -194,4 +194,12 @@ struct mmu_memrange* mmu_init_ranges_from_sysinfo(struct memrange *cb_ranges,
*/
void mmu_presysinfo_memory_used(uint64_t base, uint64_t size);
void mmu_presysinfo_enable(void);
+
+/*
+ * Functions for exposing the used memory ranges to payloads. The ranges contain
+ * all used memory ranges that are actually used by payload. i.e. _start -> _end
+ * in linker script, the coreboot tables and framebuffer/DMA allocated in MMU
+ * initialization.
+ */
+const struct mmu_ranges *mmu_get_used_ranges(void);
#endif // __ARCH_ARM64_MMU_H__