Dear Marek, > Sent: jeudi 9 avril 2020 12:21 > To: Patrick DELAUNAY <patrick.delau...@st.com>; u-boot@lists.denx.de > > On 4/9/20 12:01 PM, Patrick DELAUNAY wrote: > > Dear Marek, > > Hi, > > >> From: Uboot-stm32 <uboot-stm32-boun...@st-md-mailman.stormreply.com> > >> On Behalf Of Patrick DELAUNAY > >> > >> Dear Marek, > >> > >>> From: Marek Vasut <ma...@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 ?
I try with string and default (as select is allowed on for bolean or trisate), And I failed :-< I don't found a way to have the de-stringficate the KConfig option to generated the correct define config SYS_ARM_CACHE_POLICY string "Name of the ARM data write cache policy" default WRITEBACK if SYS_ARM_CACHE_WRITEBACK default WRITETHROUGH if SYS_ARM_CACHE_WRITEBACK default WRITEALLOC if SYS_ARM_CACHE_WRITEALLOC #define DCACHE_DEFAULT_OPTION DCACHE_ ## CONFIG_SYS_ARM_CACHE_POLICY => error: ‘DCACHE_CONFIG_SYS_ARM_CACHE_POLICY’ undeclared (first use in this function); did you mean ‘CONFIG_SYS_ARM_CACHE_POLICY’? #define DCACHE_OPTION(s) DCACHE_ ## CONFIG_SYS_ARM_CACHE_POLICY #define DCACHE_DEFAULT_OPTION DCACHE_OPTION(CONFIG_SYS_ARM_CACHE_POLICY) arch/arm/include/asm/system.h:488:26: error: ‘DCACHE_’ undeclared (first use in this function); did you mean ‘DCACHE_OFF’? arch/arm/lib/cache-cp15.c:99:25: error: expected ‘)’ before string constant The stringification is possible but not the inverse operation (remove the quote)... In my .config, CONFIG_SYS_ARM_CACHE_POLICY="WRITEBACK" Regards Patrick