image: fix compiling without CMD_FDT
authorSimon Goldschmidt <simon.k.r.goldschmidt@gmail.com>
Mon, 17 Dec 2018 19:14:42 +0000 (20:14 +0100)
committerTom Rini <trini@konsulko.com>
Mon, 14 Jan 2019 22:42:32 +0000 (17:42 -0500)
Booting an image currently sets the environment variable "fdtaddr"
by calling into 'cmd/fdt.c'. As a result, linking U-Boot fails if
CMD_FDT is not enabled.

Fix this by adding 'if (CONFIG_IS_ENABLED(CMD_FDT))' to the two
places where 'set_working_fdt_addr()' is called.

Signed-off-by: Simon Goldschmidt <simon.k.r.goldschmidt@gmail.com>
common/bootm.c
common/image-fdt.c

index 8bf84eb..80f304c 100644 (file)
@@ -262,7 +262,8 @@ int bootm_find_images(int flag, int argc, char * const argv[])
                puts("Could not find a valid device tree\n");
                return 1;
        }
-       set_working_fdt_addr(map_to_sysmem(images.ft_addr));
+       if (CONFIG_IS_ENABLED(CMD_FDT))
+               set_working_fdt_addr(map_to_sysmem(images.ft_addr));
 #endif
 
 #if IMAGE_ENABLE_FIT
index 95748f0..8ee5a13 100644 (file)
@@ -193,7 +193,8 @@ int boot_relocate_fdt(struct lmb *lmb, char **of_flat_tree, ulong *of_size)
        *of_flat_tree = of_start;
        *of_size = of_len;
 
-       set_working_fdt_addr(map_to_sysmem(*of_flat_tree));
+       if (CONFIG_IS_ENABLED(CMD_FDT))
+               set_working_fdt_addr(map_to_sysmem(*of_flat_tree));
        return 0;
 
 error: