]> git.dujemihanovic.xyz Git - u-boot.git/commitdiff
sandbox: fdt: Avoid overwriting an existing fdt
authorSimon Glass <sjg@chromium.org>
Wed, 7 Aug 2024 22:47:23 +0000 (16:47 -0600)
committerTom Rini <trini@konsulko.com>
Fri, 9 Aug 2024 22:03:19 +0000 (16:03 -0600)
Since the removal of OF_HOSTFILE logic in board_fdt_blob_setup(), the
logic for obtaining the DT is handled in the OF_BOARD option. If a
devicetree comes from a bloblist it is immediately overwritten by this
function.

Fix this by skipping the function if a devicetree is already present.

This is sort-of a fix for e7fb7896 ("sandbox: Remove OF_HOSTFILE") but
it has only come to light since bloblist was added, so I have not added
a Fixes tag.

Unfortunately it is not possible to report the correct FDT source with
the current code. It might be best to use an error-return code for
board_fdt_blob_setup() so that an error can be reported if the board
does not provide the DT.

Signed-off-by: Simon Glass <sjg@chromium.org>
arch/sandbox/cpu/cpu.c

index 0ed85b354cf519b1f8ea2fcc27eebd595303fe03..4f15a5609026b53a16035d7ae6b49b812ebd3ae1 100644 (file)
@@ -340,6 +340,8 @@ void *board_fdt_blob_setup(int *ret)
        int err;
        int fd;
 
+       if (gd->fdt_blob)
+               return (void *)gd->fdt_blob;
        blob = map_sysmem(CONFIG_SYS_FDT_LOAD_ADDR, 0);
        *ret = 0;
        if (!state->fdt_fname) {