On Thu, Jun 28, 2018 at 11:50 PM Sascha Hauer <s.hauer@xxxxxxxxxxxxxx> wrote: > > The i.MX header is at an offset in the boot device, usually 0x400 bytes. > This patch adds a flag to support the case that the partition the image > is written to starts at that offset rather than 0x0. > > Signed-off-by: Sascha Hauer <s.hauer@xxxxxxxxxxxxxx> > --- > arch/arm/mach-imx/imx-bbu-internal.c | 7 +++++-- > arch/arm/mach-imx/include/mach/bbu.h | 8 ++++++++ > 2 files changed, 13 insertions(+), 2 deletions(-) > > diff --git a/arch/arm/mach-imx/imx-bbu-internal.c b/arch/arm/mach-imx/imx-bbu-internal.c > index 5422235b1b..23686e9d61 100644 > --- a/arch/arm/mach-imx/imx-bbu-internal.c > +++ b/arch/arm/mach-imx/imx-bbu-internal.c > @@ -58,12 +58,15 @@ static int imx_bbu_write_device(struct imx_internal_bbu_handler *imx_handler, > if (fd < 0) > return fd; > > - if (imx_handler->handler.flags & IMX_BBU_FLAG_KEEP_HEAD) { > + if (imx_handler->handler.flags & (IMX_BBU_FLAG_KEEP_HEAD | > + IMX_BBU_FLAG_PARTITION_STARTS_AT_HEADER)) { > image_len -= imx_handler->flash_header_offset; > - offset += imx_handler->flash_header_offset; > buf += imx_handler->flash_header_offset; > } > > + if (imx_handler->handler.flags & IMX_BBU_FLAG_KEEP_HEAD) > + offset += imx_handler->flash_header_offset; > + > if (imx_handler->flags & IMX_INTERNAL_FLAG_ERASE) { > pr_debug("%s: unprotecting %s from 0x%08x to 0x%08x\n", __func__, > devicefile, offset, image_len); > diff --git a/arch/arm/mach-imx/include/mach/bbu.h b/arch/arm/mach-imx/include/mach/bbu.h > index c2e875d342..19b446ed60 100644 > --- a/arch/arm/mach-imx/include/mach/bbu.h > +++ b/arch/arm/mach-imx/include/mach/bbu.h > @@ -16,6 +16,14 @@ struct imx_dcd_v2_entry; > */ > #define IMX_BBU_FLAG_KEEP_HEAD (1 << 16) > > +/* > + * Set this flag when the partition the update image is written to > + * actually starts at the offset where the i.MX flash header is expected > + * (usually 0x400). This means for the update code that it has to skip > + * the first 0x400 bytes of the image. > + */ > +#define IMX_BBU_FLAG_PARTITION_STARTS_AT_HEADER (1 << 17) > + BIT(17)? Thanks, Andrey Smirnov _______________________________________________ barebox mailing list barebox@xxxxxxxxxxxxxxxxxxx http://lists.infradead.org/mailman/listinfo/barebox