From 6e0f0f7f9c91f41eb40f4ef6979937caee168bdf Mon Sep 17 00:00:00 2001 From: T Michael Turney Date: Wed, 25 Apr 2018 14:49:49 -0700 Subject: arm64: Add mmu context save/restore APIs New API required by sdm845 DDR init/training protocol TEST=build & run Change-Id: I8442442c0588dd6fb5e461b399e48a761f7bbf29 Signed-off-by: T Michael Turney Reviewed-on: https://review.coreboot.org/25818 Tested-by: build bot (Jenkins) Reviewed-by: Julius Werner --- src/arch/arm64/include/armv8/arch/mmu.h | 9 +++++++++ 1 file changed, 9 insertions(+) (limited to 'src/arch/arm64/include') diff --git a/src/arch/arm64/include/armv8/arch/mmu.h b/src/arch/arm64/include/armv8/arch/mmu.h index f0e551e52d..6c83749e95 100644 --- a/src/arch/arm64/include/armv8/arch/mmu.h +++ b/src/arch/arm64/include/armv8/arch/mmu.h @@ -148,8 +148,17 @@ #define TCR_TBI_USED (0x0 << TCR_TBI_SHIFT) #define TCR_TBI_IGNORED (0x1 << TCR_TBI_SHIFT) +struct mmu_context { + uint64_t mair; /* MAIR attributes */ + uint64_t tcr; /* TCR Attributes */ +}; + /* Initialize MMU registers and page table memory region. */ void mmu_init(void); +/* Desc : Save mmu context (registers and ttbr base/size). */ +void mmu_save_context(struct mmu_context *mmu_context); +/* Desc : Restore mmu context using input backed-up context */ +void mmu_restore_context(const struct mmu_context *mmu_context); /* Change a memory type for a range of bytes at runtime. */ void mmu_config_range(void *start, size_t size, uint64_t tag); /* Enable the MMU (need previous mmu_init() and configured ranges!). */ -- cgit v1.2.3