[PATCH] cmd: cache: Fix non-cached memory cachability
Patrice CHOTARD
patrice.chotard at st.com
Mon Apr 27 16:39:51 CEST 2020
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();
>>
More information about the U-Boot
mailing list