summaryrefslogtreecommitdiff
path: root/arch/csky/mm/cachev1.c
diff options
context:
space:
mode:
authorGuo Ren <guoren@linux.alibaba.com>2020-01-22 11:15:14 +0800
committerGuo Ren <guoren@linux.alibaba.com>2020-02-21 15:43:24 +0800
commit761b4f694cb90b63ca2739ac8a8a176342636e5e (patch)
tree3af10af362b1feb39f151015ca4a96c537485745 /arch/csky/mm/cachev1.c
parenta736fa1ed772e3640e1bfaab36032c5a285d6a7b (diff)
csky: Support icache flush without specific instructions
Some CPUs don't support icache specific instructions to flush icache lines in broadcast way. We use cpu control registers to flush local icache and use IPI to notify other cores. Signed-off-by: Guo Ren <guoren@linux.alibaba.com>
Diffstat (limited to 'arch/csky/mm/cachev1.c')
-rw-r--r--arch/csky/mm/cachev1.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/arch/csky/mm/cachev1.c b/arch/csky/mm/cachev1.c
index 494ec912abff..5a5a9804a0e3 100644
--- a/arch/csky/mm/cachev1.c
+++ b/arch/csky/mm/cachev1.c
@@ -94,6 +94,11 @@ void icache_inv_all(void)
cache_op_all(INS_CACHE|CACHE_INV, 0);
}
+void local_icache_inv_all(void *priv)
+{
+ cache_op_all(INS_CACHE|CACHE_INV, 0);
+}
+
void dcache_wb_range(unsigned long start, unsigned long end)
{
cache_op_range(start, end, DATA_CACHE|CACHE_CLR, 0);