armv7m: Disable D-cache when booting nommu(ARMv7M) Linux kernel
authortnishinaga.dev@gmail.com <tnishinaga.dev@gmail.com>
Sun, 4 Jun 2017 16:18:08 +0000 (01:18 +0900)
committerTom Rini <trini@konsulko.com>
Sat, 10 Jun 2017 00:34:54 +0000 (20:34 -0400)
Disable D-Cache is required when booting nommu Linux kernel.
(please see Linux kernel source "arch/arm/kernel/head-nommu.S")

U-Boot is enabled D-cache and I-Cache at startup.
However, it does not disable D-Cache before
booting nommu Linux kernel.
Therefore, I call dcache_disable()
when the CPU is ARMv7M to fix this problem.

Signed-off-by: Toshifumi NISHINAGA <tnishinaga.dev@gmail.com>
arch/arm/lib/bootm.c

index 704849bd0c7e4dc659ee07c89dc1885be1d845ca..b3e5d24a322f2abaf3c3d6f3bad4fb202595c040 100644 (file)
@@ -360,6 +360,7 @@ static void boot_jump_linux(bootm_headers_t *images, int flag)
 #ifdef CONFIG_CPU_V7M
        ulong addr = (ulong)kernel_entry | 1;
        kernel_entry = (void *)addr;
+       dcache_disable();
 #endif
        s = getenv("machid");
        if (s) {