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.pan...@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,

Reply via email to