aboutsummaryrefslogtreecommitdiff
path: root/payloads/libpayload/include/arm64/arch/cache.h
diff options
context:
space:
mode:
Diffstat (limited to 'payloads/libpayload/include/arm64/arch/cache.h')
-rw-r--r--payloads/libpayload/include/arm64/arch/cache.h11
1 files changed, 11 insertions, 0 deletions
diff --git a/payloads/libpayload/include/arm64/arch/cache.h b/payloads/libpayload/include/arm64/arch/cache.h
index cfd3109559..757775886c 100644
--- a/payloads/libpayload/include/arm64/arch/cache.h
+++ b/payloads/libpayload/include/arm64/arch/cache.h
@@ -103,6 +103,17 @@ void cache_sync_instructions(void);
/* tlb invalidate all */
void tlb_invalidate_all(void);
+/* Invalidate all of the instruction cache for PE to PoU. */
+static inline void icache_invalidate_all(void)
+{
+ __asm__ __volatile__(
+ "dsb sy\n\t"
+ "ic iallu\n\t"
+ "dsb sy\n\t"
+ "isb\n\t"
+ : : : "memory");
+}
+
/*
* Generalized setup/init functions
*/