powerpc: mpc83xx: Don't activate MMU when not necessary
authorChristophe Leroy <christophe.leroy@csgroup.eu>
Wed, 18 Jan 2023 19:52:38 +0000 (20:52 +0100)
committerChristophe Leroy <christophe.leroy@csgroup.eu>
Thu, 6 Apr 2023 12:50:03 +0000 (14:50 +0200)
At startup, some RAM is needed (for instance for stack) before
DRAM is initialised.

One way to offer such RAM, used by mpc83xx, is to lock some entries
in the cache. To do that, MMU needs to be activated.

On mpc83xx having a QUICC Engine an alternative is to user some
part of from the Multi User RAM, like done on mpc8xx for instance.
For that, the MMU is not needed.

Activating the MMU is problematic because exception vectors are not
setup yet so in case of ISI or DSI that CPU will crash and reboot.

At the time being, MMU is activated regardless.

Only activate it when locking cache entries to provide initial RAM.

Signed-off-by: Christophe Leroy <christophe.leroy@csgroup.eu>
arch/powerpc/cpu/mpc83xx/start.S

index 4329b17..6749263 100644 (file)
@@ -215,6 +215,7 @@ in_flash:
         * gt-regs BAT can be reused after board_init_f calls
         * board_early_init_f (EVB only).
         */
+#ifdef CONFIG_SYS_INIT_RAM_LOCK
        /* enable address translation */
        bl      enable_addr_trans
        sync
@@ -222,7 +223,6 @@ in_flash:
        /* enable the data cache */
        bl      dcache_enable
        sync
-#ifdef CONFIG_SYS_INIT_RAM_LOCK
        bl      lock_ram_in_cache
        sync
 #endif