diff --git a/exosphere/cache.h b/exosphere/cache.h index c7f43fb01..03fa1a9a4 100644 --- a/exosphere/cache.h +++ b/exosphere/cache.h @@ -15,6 +15,6 @@ void invalidate_dcache_all(void); void flush_dcache_range(const void *start, const void *end); void invalidate_dcache_range(const void *start, const void *end); -void invalidate_icache_all(void); +void invalidate_icache_inner_shareable(void); #endif diff --git a/exosphere/cache.s b/exosphere/cache.s index c84f9e14d..a39d708fc 100644 --- a/exosphere/cache.s +++ b/exosphere/cache.s @@ -213,17 +213,17 @@ invalidate_dcache_range: ret /* - * void __asm_invalidate_icache_all(void) (-> invalidate_icache_all) + * void __asm_invalidate_icache_all(void) (-> invalidate_icache_inner_shareable) * * invalidate all icache entries. */ -.section .text.invalidate_icache_all, "ax", %progbits -.type invalidate_icache_all, %function -.global invalidate_icache_all -invalidate_icache_all: - dsb sy +.section .text.invalidate_icache_inner_shareable, "ax", %progbits +.type invalidate_icache_inner_shareable, %function +.global invalidate_icache_inner_shareable +invalidate_icache_inner_shareable: + dsb ish isb - ic iallu - dsb sy + ic ialluis + dsb ish isb ret