From 9c588d4965e3ef65c1db5e06b1fe2cc170af2cfa Mon Sep 17 00:00:00 2001 From: TuxSH Date: Sun, 18 Feb 2018 23:45:44 +0100 Subject: [PATCH] ic iallu doesn't broadcast at all, replace the "icache invalidate all" function --- exosphere/cache.h | 2 +- exosphere/cache.s | 16 ++++++++-------- 2 files changed, 9 insertions(+), 9 deletions(-) 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