[PATCH 05/10] board_f: mips: Factor out mips-specific bdinfo setup
Ovidiu Panait
ovidiu.panait at windriver.com
Thu Jul 9 12:27:21 CEST 2020
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:
$ 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,
>>
More information about the U-Boot
mailing list