On 10:12 Wed 11 Apr , Sascha Hauer wrote: > On Wed, Apr 11, 2012 at 08:38:18AM +0200, Jean-Christophe PLAGNIOL-VILLARD wrote: > > When a oftree is concatenated,the zImage is bigger than the size specified in > > the zImage header. Detect it and copy it too. > > > > Signed-off-by: Jean-Christophe PLAGNIOL-VILLARD <plagnioj@xxxxxxxxxxxx> > > --- > > arch/arm/lib/bootm.c | 49 +++++++++++++++++++++++++++++++++++++++++++++++++ > > 1 files changed, 49 insertions(+), 0 deletions(-) > > > > diff --git a/arch/arm/lib/bootm.c b/arch/arm/lib/bootm.c > > index defc89b..dc379d8 100644 > > --- a/arch/arm/lib/bootm.c > > +++ b/arch/arm/lib/bootm.c > > @@ -123,6 +123,51 @@ struct zimage_header { > > > > #define ZIMAGE_MAGIC 0x016F2818 > > > > +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; > > + > > + u32 end; > > + > > + header = &__header; > > + ret = read(fd, header, sizeof(*header)); > > + if (ret < sizeof(*header)) > > + return ret; > > + > > + if (file_detect_type(header) != filetype_oftree) > > + return -ENXIO; > > + > > + 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"); > > + return -ENOMEM; > > + } > > + > > + oftree = (void*)of_res->start; > > + > > + memcpy(oftree, header, sizeof(*header)); > > + > > + end -= sizeof(*header); > > + > > + ret = read_full(fd, oftree + sizeof(*header), end); > > + if (ret < 0) > > + return ret; > > + if (ret < end) { > > + printf("premature end of image\n"); > > + return -EIO; > > + } > > I am missing a call to of_fix_tree() here. Without it the command line > will not be passed to the kernel. Maybe this is not really the intended > usecase for appending an oftree to the zImage. Being able to append the > oftree to the zImage seems more for bootloaders which do not have native > support for devicetrees. > > We could be more clever here and read the oftree to a seperately > allocated area and set data->oftree then. yeah I was thinking about it too I'll do it as un incremetal patch Best Regards, J. _______________________________________________ barebox mailing list barebox@xxxxxxxxxxxxxxxxxxx http://lists.infradead.org/mailman/listinfo/barebox