[PATCH 2/2] ARM: i.MX bbu: support partitions starting at i.MX header

Andrey Smirnov andrew.smirnov at gmail.com
Fri Jun 29 11:29:21 PDT 2018


On Thu, Jun 28, 2018 at 11:50 PM Sascha Hauer <s.hauer at pengutronix.de> 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 at pengutronix.de>
> ---
>  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



More information about the barebox mailing list