X-Git-Url: https://git.sur5r.net/?a=blobdiff_plain;f=common%2Fimage-fdt.c;h=5180a03a61bfdeed9014b651bf83a4cb9ee0b4dc;hb=a64be6124a069c2eae87656175c4c2e479e901cb;hp=e3f06cdd1a28406e8a1a2613d543b71c27d44942;hpb=48aead71c1ad2c93fffa182e798f1bcbb5f6dd9d;p=u-boot diff --git a/common/image-fdt.c b/common/image-fdt.c index e3f06cdd1a..5180a03a61 100644 --- a/common/image-fdt.c +++ b/common/image-fdt.c @@ -14,6 +14,7 @@ #include #include #include +#include #include #ifndef CONFIG_SYS_FDT_PAD @@ -190,7 +191,7 @@ 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(*of_flat_tree); + set_working_fdt_addr((ulong)*of_flat_tree); return 0; error: @@ -470,6 +471,10 @@ int image_setup_libfdt(bootm_headers_t *images, void *blob, int ret = -EPERM; int fdt_ret; + if (fdt_root(blob) < 0) { + printf("ERROR: root node setup failed\n"); + goto err; + } if (fdt_chosen(blob) < 0) { printf("ERROR: /chosen node create failed\n"); goto err; @@ -487,7 +492,8 @@ int image_setup_libfdt(bootm_headers_t *images, void *blob, } } if (IMAGE_OF_SYSTEM_SETUP) { - if (ft_system_setup(blob, gd->bd)) { + fdt_ret = ft_system_setup(blob, gd->bd); + if (fdt_ret) { printf("ERROR: system-specific fdt fixup failed: %s\n", fdt_strerror(fdt_ret)); goto err;