board: sifive: Fix a potential build warning in board_fdt_blob_setup()
authorBin Meng <bmeng.cn@gmail.com>
Sat, 11 Sep 2021 14:31:23 +0000 (22:31 +0800)
committerLeo Yu-Chi Liang <ycliang@andestech.com>
Wed, 20 Oct 2021 02:59:00 +0000 (10:59 +0800)
Commit 47d73ba4f4a4 ("board: sifive: overwrite board_fdt_blob_setup in u-boot proper")
added a board-specific implementation of board_fdt_blob_setup() which
takes a pointer as the return value, but it does not return anything
if CONFIG_OF_SEPARATE is not enabled. This will cause a build warning
seen when testing booting S-mode U-Boot directly from QEMU, per the
instructions in [1]:

  board/sifive/unleashed/unleashed.c: In function ‘board_fdt_blob_setup’:
  board/sifive/unleashed/unleashed.c:125:1: warning: control reaches end of non-void function [-Wreturn-type]

Return &_end as the default case.

[1] https://qemu.readthedocs.io/en/latest/system/riscv/sifive_u.html#running-u-boot

Signed-off-by: Bin Meng <bmeng.cn@gmail.com>
Reviewed-by: Leo Yu-Chi Liang <ycliang@andestech.com>
Reviewed-by: Rick Chen <rick@andestech.com>
board/sifive/unleashed/unleashed.c
board/sifive/unmatched/unmatched.c

index 8cd514d..33baeda 100644 (file)
@@ -119,9 +119,9 @@ void *board_fdt_blob_setup(void)
        if (IS_ENABLED(CONFIG_OF_SEPARATE)) {
                if (gd->arch.firmware_fdt_addr)
                        return (ulong *)gd->arch.firmware_fdt_addr;
-               else
-                       return (ulong *)&_end;
        }
+
+       return (ulong *)&_end;
 }
 
 int board_init(void)
index d90b252..8773b66 100644 (file)
@@ -16,9 +16,9 @@ void *board_fdt_blob_setup(void)
        if (IS_ENABLED(CONFIG_OF_SEPARATE)) {
                if (gd->arch.firmware_fdt_addr)
                        return (ulong *)gd->arch.firmware_fdt_addr;
-               else
-                       return (ulong *)&_end;
        }
+
+       return (ulong *)&_end;
 }
 
 int board_init(void)