[coreboot-gerrit] New patch to review for coreboot: 0538af6 arm64: make mmu_enable() use previous ttb from mmu_init()

Patrick Georgi (pgeorgi@google.com) gerrit at coreboot.org
Thu Mar 26 10:48:33 CET 2015


Patrick Georgi (pgeorgi at google.com) just uploaded a new patch set to gerrit, which you can find at http://review.coreboot.org/9016

-gerrit

commit 0538af684b8557ddb47c39ad8e8e3394f5a8ce4a
Author: Aaron Durbin <adurbin at chromium.org>
Date:   Wed Aug 27 14:58:43 2014 -0500

    arm64: make mmu_enable() use previous ttb from mmu_init()
    
    No need to pass in the same value for the ttb after just
    calling mmu_init(). All current users are setting this once
    and forgetting it.
    
    BUG=chrome-os-partner:31545
    BRANCH=None
    TEST=Built and booted on ryu.
    
    Change-Id: Ie446d16eaf4ea65a34a9c76dd7c6c2f9b19c5d57
    Signed-off-by: Patrick Georgi <pgeorgi at chromium.org>
    Original-Commit-Id: bd77461d483b513a569365673c83badc752f4aa8
    Original-Change-Id: I54c7e4892d44ea6129429d8a46461d089dd8e2a9
    Original-Signed-off-by: Aaron Durbin <adurbin at chromium.org>
    Original-Reviewed-on: https://chromium-review.googlesource.com/214772
    Original-Reviewed-by: Furquan Shaikh <furquan at chromium.org>
---
 src/arch/arm64/armv8/mmu.c               | 4 ++--
 src/arch/arm64/include/armv8/arch/mmu.h  | 6 ++++--
 src/soc/nvidia/tegra132/mmu_operations.c | 2 +-
 3 files changed, 7 insertions(+), 5 deletions(-)

diff --git a/src/arch/arm64/armv8/mmu.c b/src/arch/arm64/armv8/mmu.c
index cba1e4d..8045cc0 100644
--- a/src/arch/arm64/armv8/mmu.c
+++ b/src/arch/arm64/armv8/mmu.c
@@ -285,7 +285,7 @@ static uint32_t is_mmu_enabled(void)
 	return (sctlr & SCTLR_M);
 }
 
-void mmu_enable(uint64_t ttbr)
+void mmu_enable(void)
 {
 	uint32_t sctlr;
 
@@ -301,7 +301,7 @@ void mmu_enable(uint64_t ttbr)
 			  TCR_TBI_USED);
 
 	/* Initialize TTBR */
-	raw_write_ttbr0_el3(ttbr);
+	raw_write_ttbr0_el3((uintptr_t)xlat_addr);
 
 	/* Ensure all translation table writes are committed before enabling MMU */
 	dsb();
diff --git a/src/arch/arm64/include/armv8/arch/mmu.h b/src/arch/arm64/include/armv8/arch/mmu.h
index 7639bd5..a030b1b 100644
--- a/src/arch/arm64/include/armv8/arch/mmu.h
+++ b/src/arch/arm64/include/armv8/arch/mmu.h
@@ -162,7 +162,9 @@
 #define TCR_TBI_USED               (0x0 << TCR_TBI_SHIFT)
 #define TCR_TBI_IGNORED            (0x1 << TCR_TBI_SHIFT)
 
-void mmu_init(struct memranges *,uint64_t *,uint64_t);
-void mmu_enable(uint64_t);
+/* Initialize the MMU TTB tables provide the range sequence and ttb buffer. */
+void mmu_init(struct memranges *ranges, uint64_t *ttb, uint64_t ttb_size);
+/* Enable the mmu based on previous mmu_init(). */
+void mmu_enable(void);
 
 #endif // __ARCH_ARM64_MMU_H__
diff --git a/src/soc/nvidia/tegra132/mmu_operations.c b/src/soc/nvidia/tegra132/mmu_operations.c
index 1f6258f..6d68698 100644
--- a/src/soc/nvidia/tegra132/mmu_operations.c
+++ b/src/soc/nvidia/tegra132/mmu_operations.c
@@ -95,5 +95,5 @@ void tegra132_mmu_init(void)
 	tz_base_mib *= MiB;
 	ttb_size_mib = TTB_SIZE * MiB;
 	mmu_init(map, (void *)tz_base_mib, ttb_size_mib);
-	mmu_enable(tz_base_mib);
+	mmu_enable();
 }



More information about the coreboot-gerrit mailing list