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>
This commit is contained in:
Meng-Huan Yu 2020-12-01 11:44:41 +08:00 committed by Patrick Georgi
parent 455d7b74ab
commit c9655468e8
2 changed files with 13 additions and 0 deletions

View File

@ -705,3 +705,8 @@ void mmu_presysinfo_enable(void)
mmu_init(&usedmem_ranges); mmu_init(&usedmem_ranges);
mmu_enable(); mmu_enable();
} }
const struct mmu_ranges *mmu_get_used_ranges(void)
{
return &usedmem_ranges;
}

View File

@ -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_memory_used(uint64_t base, uint64_t size);
void mmu_presysinfo_enable(void); 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__ #endif // __ARCH_ARM64_MMU_H__