[PATCH 2/3] arm: caches: add DCACHE_DEFAULT_OPTION

Marek Vasut marex at denx.de
Thu Apr 9 12:21:28 CEST 2020


On 4/9/20 12:01 PM, Patrick DELAUNAY wrote:
> Dear Marek,

Hi,

>> From: Uboot-stm32 <uboot-stm32-bounces at st-md-mailman.stormreply.com> On
>> Behalf Of Patrick DELAUNAY
>>
>> Dear Marek,
>>
>>> From: Marek Vasut <marex at denx.de>
>>> Sent: vendredi 3 avril 2020 23:29
>>>
>>> On 4/3/20 10:28 AM, Patrick Delaunay wrote:
>>>> Add the new flags DCACHE_DEFAULT_OPTION to define the default option
>>>> to use according the compilation flags
>>>> CONFIG_SYS_ARM_CACHE_WRITETHROUGH or
>>> CONFIG_SYS_ARM_CACHE_WRITEALLOC.
>>>
>>> Can't you unify these macros into a single Kconfig "select" statement
>>> instead , and then just select the matching cache configuration in Kconfig ?
>>
>> Yes I will try, with 2 steps
>> - migrate existing CONFIG_SYS_ARM_CACHE_.... in Kconfig
> 
> First step done...
> I will push it as a separate patchset I think.
> 
>> - add new option CONFIG_SYS_ARM_CACHE_OPTION
> 
> In fact it is to difficult to use select because each defines
> DCACHE_XXX value can have several values
> 
> they are build according CONFIG_ARM64 / LPAE
> 
> But, I can't use this define in Kconfig
> 
> I try :
> option	ARM_OPTION
> 	int "option"
> 	default DCACHE_WRITETHROUGHT if CONFIG_SYS_ARM_CACHE_WRITETHROUGH
> 	default DCACHE_ WRITEALLOC if CONFIG_SYS_ARM_CACHE_ WRITEALLOC
> 	default DCACHE_WRITEBACK if CONFIG_SYS_ARM_CACHE_WRITEBACK
> 
> int and hex is invalid, and string can't be use with "".
> 
> And I don't found way to build it automatically when option is activated.
> 
> Any idea ?

Maybe you can have a select in the Kconfig to set some differently named
option, e.g.

DCACHE_MODE_WRITE{THROUGH,ALLOC,BACK}

and then an ifdef in some header file, e.g.

#ifdef CONFIG_DCACHE_MODE_WRITETHROUGH
#define ARM_CACHE_MODE DCACHE_WRITETHROUGH
...

And then use ARM_CACHE_MODE where you need a value and
CONFIG_DCACHE_MODE{...} where you need a config option check.

Does this work ?


More information about the U-Boot mailing list