diff --git a/arch/arm/lib/cache-cp15.c b/arch/arm/lib/cache-cp15.c index f0c1b03728..b7a2337eb4 100644 --- a/arch/arm/lib/cache-cp15.c +++ b/arch/arm/lib/cache-cp15.c @@ -231,8 +231,11 @@ static void cache_disable(uint32_t cache_bit) } reg = get_cr(); - if (cache_bit == (CR_C | CR_M)) + if (cache_bit == (CR_C | CR_M)) { flush_dcache_all(); + set_cr(reg & ~CR_C); + flush_dcache_all(); + } set_cr(reg & ~cache_bit); } #endif