Message ID | acf6d2fc-5390-d808-1f06-0e87dc091c29@windriver.com |
---|---|
State | New |
Headers | show |
Series | None | expand |
On 09.07.20 12:27, Ovidiu Panait wrote: > Hi, > > On 09.07.2020 12:15, Heinrich Schuchardt wrote: >> On 09.07.20 10:04, Ovidiu Panait wrote: >>> Factor out mips-specific bdinfo setup from generic init sequence to >>> arch_setup_bdinfo in arch/mips/lib/boot.c. >>> >>> Signed-off-by: Ovidiu Panait <ovidiu.panait at windriver.com> >>> --- >>> >>> ? arch/mips/lib/boot.c | 18 ++++++++++++++++++ >>> ? common/board_f.c???? | 25 +------------------------ >>> ? 2 files changed, 19 insertions(+), 24 deletions(-) >>> >>> diff --git a/arch/mips/lib/boot.c b/arch/mips/lib/boot.c >>> index db862f6379..b3a48ce10f 100644 >>> --- a/arch/mips/lib/boot.c >>> +++ b/arch/mips/lib/boot.c >>> @@ -9,6 +9,24 @@ >>> >>> ? DECLARE_GLOBAL_DATA_PTR; >>> >>> +int arch_setup_bdinfo(void) >>> +{ >>> +??? bd_t *bd = gd->bd; >>> + >>> +??? /* >>> +???? * Save local variables to board info struct >>> +???? */ >>> +??? bd->bi_memstart = CONFIG_SYS_SDRAM_BASE;??? /* start of memory */ >>> +??? bd->bi_memsize = gd->ram_size;??????????? /* size in bytes */ >>> + >>> +#ifdef CONFIG_SYS_SRAM_BASE >> We want to get rid of #ifdef where possible. So it is preferable to >> write: >> >> if IS_ENABLED(CONFIG_SYS_SRAM_BASE) { >> >> One benefit is that static code analysis will consider the code. >> >> Best regards >> >> Heinrich > > My understanding is that IS_ENABLED() only works with with boolean and > tristate options. > > In this case, CONFIG_SYS_SRAM_BASE is a hex value: > > include/configs/pic32mzdask.h:22:#define CONFIG_SYS_SRAM_BASE ??? > 0x80000000 > > > Switching to IS_ENABLED() produces the following build errors for qemu > mips: You could add the following helper macro to include/linux/kconfig.h #define config_defined(cfg) _config_defined(cfg, #cfg) #define _config_defined(a1, a2) !!__builtin_strcmp(#a1, a2) config_defined(cfg) evaluates to true if: * cfg is defined and * cfg is not defined as cfg. As long as optimization is switch on __builtin_strcmp() is evaluated at compile time. Best regards Heinrich > > $ git diff > diff --git a/arch/mips/lib/boot.c b/arch/mips/lib/boot.c > index b3a48ce10f..aa047335ec 100644 > --- a/arch/mips/lib/boot.c > +++ b/arch/mips/lib/boot.c > @@ -19,10 +19,10 @@ int arch_setup_bdinfo(void) > ??????? bd->bi_memstart = CONFIG_SYS_SDRAM_BASE;??????? /* start of > memory */ > ??????? bd->bi_memsize = gd->ram_size;????????????????? /* size in bytes */ > > -#ifdef CONFIG_SYS_SRAM_BASE > -?????? bd->bi_sramstart = CONFIG_SYS_SRAM_BASE;??????? /* start of SRAM */ > -?????? bd->bi_sramsize = CONFIG_SYS_SRAM_SIZE;???????? /* size? of SRAM */ > -#endif > +?????? if (IS_ENABLED(CONFIG_SYS_SRAM_BASE)) { > +?????????????? bd->bi_sramstart = CONFIG_SYS_SRAM_BASE; /* start of > SRAM */ > +?????????????? bd->bi_sramsize = CONFIG_SYS_SRAM_SIZE; /* size? of SRAM */ > +?????? } > > ??????? return 0; > ?} > > $ make > > ... > > arch/mips/lib/boot.c: In function 'arch_setup_bdinfo': > ? CC????? common/init/board_init.o > arch/mips/lib/boot.c:23:22: error: 'CONFIG_SYS_SRAM_BASE' undeclared > (first use in this function); did you mean 'CONFIG_SYS_SDRAM_BASE'? > ?? 23 |?? bd->bi_sramstart = CONFIG_SYS_SRAM_BASE; /* start of SRAM */ > ????? |????????????????????? ^~~~~~~~~~~~~~~~~~~~ > ????? |????????????????????? CONFIG_SYS_SDRAM_BASE > arch/mips/lib/boot.c:23:22: note: each undeclared identifier is reported > only once for each function it appears in > arch/mips/lib/boot.c:24:21: error: 'CONFIG_SYS_SRAM_SIZE' undeclared > (first use in this function); did you mean 'CONFIG_SYS_SDRAM_BASE'? > ?? 24 |?? bd->bi_sramsize = CONFIG_SYS_SRAM_SIZE;? /* size? of SRAM */ > ????? |???????????????????? ^~~~~~~~~~~~~~~~~~~~ > ????? |???????????????????? CONFIG_SYS_SDRAM_BASE > > Thanks, > > Ovidiu > >>> +??? bd->bi_sramstart = CONFIG_SYS_SRAM_BASE;??? /* start of SRAM */ >>> +??? bd->bi_sramsize = CONFIG_SYS_SRAM_SIZE;??????? /* size? of SRAM */ >>> +#endif >>> + >>> +??? return 0; >>> +} >>> + >>> ? unsigned long do_go_exec(ulong (*entry)(int, char * const []), >>> ?????????????? int argc, char * const argv[]) >>> ? { >>> diff --git a/common/board_f.c b/common/board_f.c >>> index 9bfcd6b236..fd7e6a17ad 100644 >>> --- a/common/board_f.c >>> +++ b/common/board_f.c >>> @@ -602,26 +602,6 @@ __weak int arch_setup_bdinfo(void) >>> ????? return 0; >>> ? } >>> >>> -#if defined(CONFIG_MIPS) >>> -static int setup_board_part1(void) >>> -{ >>> -??? bd_t *bd = gd->bd; >>> - >>> -??? /* >>> -???? * Save local variables to board info struct >>> -???? */ >>> -??? bd->bi_memstart = CONFIG_SYS_SDRAM_BASE;??? /* start of memory */ >>> -??? bd->bi_memsize = gd->ram_size;??????????? /* size in bytes */ >>> - >>> -#ifdef CONFIG_SYS_SRAM_BASE >>> -??? bd->bi_sramstart = CONFIG_SYS_SRAM_BASE;??? /* start of SRAM */ >>> -??? bd->bi_sramsize = CONFIG_SYS_SRAM_SIZE;??????? /* size? of SRAM */ >>> -#endif >>> - >>> -??? return 0; >>> -} >>> -#endif >>> - >>> ? #ifdef CONFIG_POST >>> ? static int init_post(void) >>> ? { >>> @@ -942,11 +922,8 @@ static const init_fnc_t init_sequence_f[] = { >>> ????? reserve_stacks, >>> ????? dram_init_banksize, >>> ????? show_dram_config, >>> -??? arch_setup_bdinfo, >>> -#if defined(CONFIG_MIPS) >>> -??? setup_board_part1, >>> ????? INIT_FUNC_WATCHDOG_RESET >>> -#endif >>> +??? arch_setup_bdinfo, >>> ????? display_new_sp, >>> ? #ifdef CONFIG_OF_BOARD_FIXUP >>> ????? fix_fdt, >>>
Hi, On Thu, 9 Jul 2020 at 06:28, Heinrich Schuchardt <xypron.debian at gmx.de> wrote: > > On 09.07.20 12:27, Ovidiu Panait wrote: > > Hi, > > > > On 09.07.2020 12:15, Heinrich Schuchardt wrote: > >> On 09.07.20 10:04, Ovidiu Panait wrote: > >>> Factor out mips-specific bdinfo setup from generic init sequence to > >>> arch_setup_bdinfo in arch/mips/lib/boot.c. > >>> > >>> Signed-off-by: Ovidiu Panait <ovidiu.panait at windriver.com> > >>> --- > >>> > >>> arch/mips/lib/boot.c | 18 ++++++++++++++++++ > >>> common/board_f.c | 25 +------------------------ > >>> 2 files changed, 19 insertions(+), 24 deletions(-) > >>> > >>> diff --git a/arch/mips/lib/boot.c b/arch/mips/lib/boot.c > >>> index db862f6379..b3a48ce10f 100644 > >>> --- a/arch/mips/lib/boot.c > >>> +++ b/arch/mips/lib/boot.c > >>> @@ -9,6 +9,24 @@ > >>> > >>> DECLARE_GLOBAL_DATA_PTR; > >>> > >>> +int arch_setup_bdinfo(void) > >>> +{ > >>> + bd_t *bd = gd->bd; > >>> + > >>> + /* > >>> + * Save local variables to board info struct > >>> + */ > >>> + bd->bi_memstart = CONFIG_SYS_SDRAM_BASE; /* start of memory */ > >>> + bd->bi_memsize = gd->ram_size; /* size in bytes */ > >>> + > >>> +#ifdef CONFIG_SYS_SRAM_BASE > >> We want to get rid of #ifdef where possible. So it is preferable to > >> write: > >> > >> if IS_ENABLED(CONFIG_SYS_SRAM_BASE) { > >> > >> One benefit is that static code analysis will consider the code. > >> > >> Best regards > >> > >> Heinrich > > > > My understanding is that IS_ENABLED() only works with with boolean and > > tristate options. > > > > In this case, CONFIG_SYS_SRAM_BASE is a hex value: > > > > include/configs/pic32mzdask.h:22:#define CONFIG_SYS_SRAM_BASE > > 0x80000000 > > > > > > Switching to IS_ENABLED() produces the following build errors for qemu > > mips: > > You could add the following helper macro to include/linux/kconfig.h > > #define config_defined(cfg) _config_defined(cfg, #cfg) > #define _config_defined(a1, a2) !!__builtin_strcmp(#a1, a2) > > config_defined(cfg) evaluates to true if: > * cfg is defined and > * cfg is not defined as cfg. > > As long as optimization is switch on __builtin_strcmp() is evaluated at > compile time. I think we should have a new CONFIG_SYS_HAS_SRAM. Regards, Simon
diff --git a/arch/mips/lib/boot.c b/arch/mips/lib/boot.c index b3a48ce10f..aa047335ec 100644 --- a/arch/mips/lib/boot.c +++ b/arch/mips/lib/boot.c @@ -19,10 +19,10 @@ int arch_setup_bdinfo(void) ??????? bd->bi_memstart = CONFIG_SYS_SDRAM_BASE;??????? /* start of memory */ ??????? bd->bi_memsize = gd->ram_size;????????????????? /* size in bytes */ -#ifdef CONFIG_SYS_SRAM_BASE -?????? bd->bi_sramstart = CONFIG_SYS_SRAM_BASE;??????? /* start of SRAM */ -?????? bd->bi_sramsize = CONFIG_SYS_SRAM_SIZE;???????? /* size? of SRAM */ -#endif +?????? if (IS_ENABLED(CONFIG_SYS_SRAM_BASE)) { +?????????????? bd->bi_sramstart = CONFIG_SYS_SRAM_BASE; /* start of SRAM */ +?????????????? bd->bi_sramsize = CONFIG_SYS_SRAM_SIZE; /* size? of SRAM */ +?????? } ??????? return 0;