This will allow to update it with fixup. Signed-off-by: Jean-Christophe PLAGNIOL-VILLARD <plagnioj@xxxxxxxxxxxx> --- arch/arm/lib/bootm.c | 19 ++++++++++++------- 1 files changed, 12 insertions(+), 7 deletions(-) diff --git a/arch/arm/lib/bootm.c b/arch/arm/lib/bootm.c index 813927a..213f136 100644 --- a/arch/arm/lib/bootm.c +++ b/arch/arm/lib/bootm.c @@ -14,6 +14,7 @@ #include <sizes.h> #include <libbb.h> #include <magicvar.h> +#include <libfdt.h> #include <asm/byteorder.h> #include <asm/setup.h> @@ -127,8 +128,6 @@ struct zimage_header { static int do_bootz_linux_fdt(int fd, struct image_data *data) { struct fdt_header __header, *header; - struct resource *r = data->os_res; - struct resource *of_res = data->os_res; void *oftree; int ret; @@ -144,14 +143,12 @@ static int do_bootz_linux_fdt(int fd, struct image_data *data) end = be32_to_cpu(header->totalsize); - of_res = request_sdram_region("oftree", r->start + r->size, end); - if (!of_res) { - perror("zImage: oftree request_sdram_region"); + oftree = malloc(end + 0x8000); + if (!oftree) { + perror("zImage: oftree malloc"); return -ENOMEM; } - oftree = (void*)of_res->start; - memcpy(oftree, header, sizeof(*header)); end -= sizeof(*header); @@ -164,6 +161,14 @@ static int do_bootz_linux_fdt(int fd, struct image_data *data) return -EIO; } + fdt_open_into(oftree, oftree, end + 0x8000); + + ret = of_fix_tree(oftree); + if (ret) + return ret; + + data->oftree = oftree; + pr_info("zImage: concatenated oftree detected\n"); return 0; -- 1.7.9.1 _______________________________________________ barebox mailing list barebox@xxxxxxxxxxxxxxxxxxx http://lists.infradead.org/mailman/listinfo/barebox