From 70040b561ce0f5befdf1f9a43b1625a184f40c6e Mon Sep 17 00:00:00 2001 From: TekkamanV Date: Sun, 19 Sep 2021 14:13:15 +0800 Subject: sifive_cache: add flush_range func in sifive cache driver Signed-off-by: TekkamanV --- arch/riscv/lib/sifive_cache.c | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) (limited to 'arch') diff --git a/arch/riscv/lib/sifive_cache.c b/arch/riscv/lib/sifive_cache.c index 28154878fc..de4aba6630 100644 --- a/arch/riscv/lib/sifive_cache.c +++ b/arch/riscv/lib/sifive_cache.c @@ -25,3 +25,24 @@ void enable_caches(void) log_debug("ccache enable failed"); } } + + +void flush_dcache_range(unsigned long start, unsigned long end) +{ + struct udevice *dev; + int ret; + + /* Enable ways of ccache */ + ret = uclass_get_device_by_driver(UCLASS_CACHE, + DM_DRIVER_GET(sifive_ccache), + &dev); + if (ret) { + log_debug("Cannot flush dcache in %p - %p", + (void *)start, (void *)end); + } else { + ret = flush_range(dev, start, end); + if (ret) + log_debug("ccache flush failed in %p - %p", + (void *)start, (void *)end); + } +} \ No newline at end of file -- cgit v1.2.3