summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHeinrich Schuchardt <heinrich.schuchardt@canonical.com>2024-06-16 19:31:04 +0200
committerTom Rini <trini@konsulko.com>2024-07-03 14:44:03 -0600
commit2da287ad13e1b488c1c39afc4721d733d6b83cd7 (patch)
tree6ca831b5f41a9df85098c1ae51b013c018b06265
parent7d602334f6222d46804e59ba0596607f81f82e07 (diff)
arm: implement invalidate_icache_all on ARM11
In EFI sub-system we rely on invalidate_icache_all() to invalidate the instruction cache after loading binaries. Add the missing implementation on ARM1136, ARM1176. Signed-off-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com>
-rw-r--r--arch/arm/cpu/arm11/cpu.c12
1 files changed, 12 insertions, 0 deletions
diff --git a/arch/arm/cpu/arm11/cpu.c b/arch/arm/cpu/arm11/cpu.c
index 1e16b89d006..d092c58b520 100644
--- a/arch/arm/cpu/arm11/cpu.c
+++ b/arch/arm/cpu/arm11/cpu.c
@@ -117,3 +117,15 @@ void enable_caches(void)
#endif
}
#endif
+
+#if !CONFIG_IS_ENABLED(SYS_ICACHE_OFF)
+/* Invalidate entire I-cache */
+void invalidate_icache_all(void)
+{
+ unsigned long i = 0;
+
+ asm ("mcr p15, 0, %0, c7, c5, 0" : : "r" (i));
+}
+#else
+void invalidate_icache_all(void) {}
+#endif