Przeglądaj źródła

86xx: Move the clear_tlbs before MMU turn on

We must invalidate TLBs before MMU turn on, but
currently the code is not, if there are some stale
TLB entry valid in the TLBs, it will cause strange
issue.

Signed-off-by: Dave Liu <daveliu@freescale.com>
Acked-by: Becky Bruce <becky.bruce@freescale.com>
Dave Liu 16 lat temu
rodzic
commit
dc2adad85b
1 zmienionych plików z 4 dodań i 1 usunięć
  1. 4 1
      cpu/mpc86xx/start.S

+ 4 - 1
cpu/mpc86xx/start.S

@@ -202,8 +202,12 @@ boot_warm:
 	mtmsr	0
 	mtmsr	0
 #endif
 #endif
 
 
+	/* Invalidate BATs */
 	bl	invalidate_bats
 	bl	invalidate_bats
 	sync
 	sync
+	/* Invalidate all of TLB before MMU turn on */
+	bl      clear_tlbs
+	sync
 
 
 #ifdef CONFIG_SYS_L2
 #ifdef CONFIG_SYS_L2
 	/* init the L2 cache */
 	/* init the L2 cache */
@@ -275,7 +279,6 @@ in_flash:
 
 
 	/* setup the rest of the bats */
 	/* setup the rest of the bats */
 	bl      setup_bats
 	bl      setup_bats
-	bl      clear_tlbs
 	sync
 	sync
 
 
 #if (CONFIG_SYS_CCSRBAR_DEFAULT != CONFIG_SYS_CCSRBAR)
 #if (CONFIG_SYS_CCSRBAR_DEFAULT != CONFIG_SYS_CCSRBAR)