summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--arch/arm/cpu/mmu_64.c12
1 files changed, 12 insertions, 0 deletions
diff --git a/arch/arm/cpu/mmu_64.c b/arch/arm/cpu/mmu_64.c
index cdc4825422..1d5a5355c6 100644
--- a/arch/arm/cpu/mmu_64.c
+++ b/arch/arm/cpu/mmu_64.c
@@ -192,8 +192,20 @@ static void mmu_enable(void)
*/
void __mmu_init(bool mmu_on)
{
+ uint64_t *ttb = get_ttb();
struct memory_bank *bank;
+ if (!request_sdram_region("ttb", (unsigned long)ttb,
+ ARM_EARLY_PAGETABLE_SIZE))
+ /*
+ * This can mean that:
+ * - the early MMU code has put the ttb into a place
+ * which we don't have inside our available memory
+ * - Somebody else has occupied the ttb region which means
+ * the ttb will get corrupted.
+ */
+ pr_crit("Can't request SDRAM region for ttb at %p\n", ttb);
+
for_each_memory_bank(bank) {
struct resource *rsv;
resource_size_t pos;