diff --git a/arch/arm/src/armv7-a/cp15_cacheops.h b/arch/arm/src/armv7-a/cp15_cacheops.h index cf827c88d8c..63a495a4d6c 100644 --- a/arch/arm/src/armv7-a/cp15_cacheops.h +++ b/arch/arm/src/armv7-a/cp15_cacheops.h @@ -339,6 +339,7 @@ .macro cp15_invalidate_icache, tmp mov \tmp, #0 mrc p15, 0, \tmp, c7, c5, 0 /* ICIALLU */ + isb .endm /**************************************************************************** @@ -679,6 +680,7 @@ static inline void cp15_invalidate_btb_inner_sharable(void) static inline void cp15_invalidate_icache(void) { CP15_SET(ICIALLU, 0); + ARM_ISB(); } /**************************************************************************** diff --git a/arch/arm/src/armv7-r/cp15_cacheops.h b/arch/arm/src/armv7-r/cp15_cacheops.h index 1be45e32e4b..dca33154e31 100644 --- a/arch/arm/src/armv7-r/cp15_cacheops.h +++ b/arch/arm/src/armv7-r/cp15_cacheops.h @@ -346,6 +346,7 @@ .macro cp15_invalidate_icache, tmp mov \tmp, #0 mrc p15, 0, \tmp, c7, c5, 0 /* ICIALLU */ + isb .endm /**************************************************************************** @@ -686,6 +687,7 @@ static inline void cp15_invalidate_btb_inner_sharable(void) static inline void cp15_invalidate_icache(void) { CP15_SET(ICIALLU, 0); + ARM_ISB(); } /****************************************************************************