arm: caches: Disable mmu only if mmu is available
[oweals/u-boot.git] / arch / arm / lib / cache-cp15.c
index b2913e8165a8c85ba473adb4f5abe7a210570364..47c223917a0298a2ca6e85a772d1599f4c78c9cf 100644 (file)
@@ -235,12 +235,18 @@ static void cache_disable(uint32_t cache_bit)
                /* if cache isn;t enabled no need to disable */
                if ((reg & CR_C) != CR_C)
                        return;
+#ifdef CONFIG_SYS_ARM_MMU
                /* if disabling data cache, disable mmu too */
                cache_bit |= CR_M;
+#endif
        }
        reg = get_cr();
 
+#ifdef CONFIG_SYS_ARM_MMU
        if (cache_bit == (CR_C | CR_M))
+#elif defined(CONFIG_SYS_ARM_MPU)
+       if (cache_bit == CR_C)
+#endif
                flush_dcache_all();
        set_cr(reg & ~cache_bit);
 }