
Hi Marek
On 4/27/20 12:22 PM, Marek Vasut wrote:
On 4/23/20 6:01 PM, Patrice Chotard wrote:
[...]
diff --git a/arch/arm/lib/cache.c b/arch/arm/lib/cache.c index 007d4ebc49..7f3cfb407c 100644 --- a/arch/arm/lib/cache.c +++ b/arch/arm/lib/cache.c @@ -73,6 +73,15 @@ static unsigned long noncached_start; static unsigned long noncached_end; static unsigned long noncached_next;
+void noncached_set_region(void) +{
Make this a __weak function and let architectures override it.
Ok
+#if !CONFIG_IS_ENABLED(SYS_DCACHE_OFF)
- mmu_set_region_dcache_behaviour(noncached_start,
noncached_end - noncached_start,
DCACHE_OFF);
+#endif +}
void noncached_init(void) { phys_addr_t start, end; @@ -89,9 +98,7 @@ void noncached_init(void) noncached_end = end; noncached_next = start;
-#if !CONFIG_IS_ENABLED(SYS_DCACHE_OFF)
- mmu_set_region_dcache_behaviour(noncached_start, size, DCACHE_OFF);
-#endif
- noncached_set_region();
}
phys_addr_t noncached_alloc(size_t size, size_t align) diff --git a/cmd/cache.c b/cmd/cache.c index 27dcec0931..86fbaf8dd6 100644 --- a/cmd/cache.c +++ b/cmd/cache.c @@ -64,6 +64,9 @@ static int do_dcache(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[]) break; case 1: dcache_enable(); +#ifdef CONFIG_SYS_NONCACHED_MEMORY
See above, then you won't need this ifdeffery.
Ok
Thanks
noncached_set_region();
+#endif break; case 2: flush_dcache_all();