]> git.dujemihanovic.xyz Git - u-boot.git/commitdiff
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 8cd514df3005caedd4b926a92b0a08a39a373b8d..33baeda98665494060d3593f7fe985f92de1d238 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 d90b252baef728b8a75fa6ba37eeb259e36a3ee2..8773b660faf08a422b53bbaff24beb6e87952af4 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)