diff --git a/arch/arm/cpu/Makefile b/arch/arm/cpu/Makefile index c3635a155..aba201bb9 100644 --- a/arch/arm/cpu/Makefile +++ b/arch/arm/cpu/Makefile @@ -10,7 +10,7 @@ obj-$(CONFIG_CMD_ARM_CPUINFO) += cpuinfo.o obj-$(CONFIG_CMD_ARM_MMUINFO) += mmuinfo.o obj-$(CONFIG_OFDEVICE) += dtb.o obj-$(CONFIG_MMU) += mmu.o cache.o mmu-early.o -pbl-$(CONFIG_MMU) += cache.o mmu-early.o +pbl-$(CONFIG_MMU) += mmu-early.o obj-$(CONFIG_CPU_32v4T) += cache-armv4.o pbl-$(CONFIG_CPU_32v4T) += cache-armv4.o obj-$(CONFIG_CPU_32v5) += cache-armv5.o @@ -25,7 +25,7 @@ pbl-y += setupc.o pbl-$(CONFIG_PBL_SINGLE_IMAGE) += start-pbl.o pbl-$(CONFIG_PBL_MULTI_IMAGES) += start-images.o uncompress.o -obj-y += common.o -pbl-y += common.o +obj-y += common.o cache.o +pbl-y += common.o cache.o lwl-y += lowlevel.o diff --git a/arch/arm/cpu/start.c b/arch/arm/cpu/start.c index 1f397ec78..f8d343f4e 100644 --- a/arch/arm/cpu/start.c +++ b/arch/arm/cpu/start.c @@ -70,8 +70,10 @@ static noinline __noreturn void __start(uint32_t membase, uint32_t memsize, endmem &= ~0x3fff; endmem -= SZ_16K; /* ttb */ - if (!IS_ENABLED(CONFIG_PBL_IMAGE)) + if (!IS_ENABLED(CONFIG_PBL_IMAGE)) { + arm_early_mmu_cache_invalidate(); mmu_early_enable(membase, memsize, endmem); + } } /* diff --git a/arch/arm/cpu/uncompress.c b/arch/arm/cpu/uncompress.c index b401f8efe..b0819c736 100644 --- a/arch/arm/cpu/uncompress.c +++ b/arch/arm/cpu/uncompress.c @@ -54,6 +54,8 @@ static void noinline uncompress(uint32_t membase, uint32_t *ptr; void *pg_start; + arm_early_mmu_cache_invalidate(); + endmem -= STACK_SIZE; /* stack */ if (IS_ENABLED(CONFIG_PBL_RELOCATABLE)) diff --git a/arch/arm/include/asm/cache.h b/arch/arm/include/asm/cache.h index f5f8bf387..2f6eab0e8 100644 --- a/arch/arm/include/asm/cache.h +++ b/arch/arm/include/asm/cache.h @@ -8,17 +8,7 @@ static inline void flush_icache(void) int arm_set_cache_functions(void); -#ifdef CONFIG_MMU void arm_early_mmu_cache_flush(void); void arm_early_mmu_cache_invalidate(void); -#else -static inline void arm_early_mmu_cache_flush(void) -{ -} - -static inline void arm_early_mmu_cache_invalidate(void) -{ -} -#endif #endif