armv8: fsl-layerscape: add i/d-cache enable function to enable_caches
authorHou Zhiqiang <Zhiqiang.Hou@nxp.com>
Tue, 28 Jun 2016 12:18:12 +0000 (20:18 +0800)
committerYork Sun <york.sun@nxp.com>
Tue, 19 Jul 2016 18:32:43 +0000 (11:32 -0700)
This function assume that the d-cache and MMU has been enabled earlier,
so it just created MMU table in main memory. But the assumption is not
always correct, for example, the early setup is done in EL3, while
enable_caches() is called when the PE has turned into another EL.

Define the function mmu_setup() for fsl-layerscape to cover the weak
one.

Signed-off-by: Hou Zhiqiang <Zhiqiang.Hou@nxp.com>
Reviewed-by: York Sun <york.sun@nxp.com>
arch/arm/cpu/armv8/fsl-layerscape/cpu.c

index b6ebedcc18e5bcf4cdd3c6f6e7bac07c95688916..bcedf2c08006f5eb9f79f85e2cd94c0e39dae384 100644 (file)
@@ -164,15 +164,21 @@ int arch_cpu_init(void)
        return 0;
 }
 
+void mmu_setup(void)
+{
+       final_mmu_setup();
+}
+
 /*
- * This function is called from lib/board.c.
- * It recreates MMU table in main memory. MMU and d-cache are enabled earlier.
- * There is no need to disable d-cache for this operation.
+ * This function is called from common/board_r.c.
+ * It recreates MMU table in main memory.
  */
 void enable_caches(void)
 {
-       final_mmu_setup();
+       mmu_setup();
        __asm_invalidate_tlb_all();
+       icache_enable();
+       dcache_enable();
 }
 #endif