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(); >>