mail archive of the barebox mailing list
 help / color / mirror / Atom feed
From: Andrey Smirnov <andrew.smirnov@gmail.com>
To: Sascha Hauer <s.hauer@pengutronix.de>
Cc: Barebox List <barebox@lists.infradead.org>
Subject: Re: [PATCH 04/22] ARM: i.MX: bbu: Move inner-image type check
Date: Wed, 22 Aug 2018 17:06:55 -0700	[thread overview]
Message-ID: <CAHQ1cqGC0xWiv2Abf8e=r=8aCxOJpu7N+o0sWkU3Sh+B249KXw@mail.gmail.com> (raw)
In-Reply-To: <20180822065223.zsyp77axhvvh6qcn@pengutronix.de>

On Tue, Aug 21, 2018 at 11:52 PM Sascha Hauer <s.hauer@pengutronix.de> wrote:
>
> On Mon, Aug 20, 2018 at 11:25:45PM -0700, Andrey Smirnov wrote:
> > Since imx_bbu_check_prereq() already uses file_detect_type() and we've
> > extended it to understand i.MX boot image file type, we can simplify a
> > bunch of repetitive code as follows:
> >
> >     1. Convert all checks from IVT_BARKER to filetype_imx_image_v2
> >        check
> >
> >     2. Move all of the checking to be a part of imx_bbu_check_prereq()
> >
> > Signed-off-by: Andrey Smirnov <andrew.smirnov@gmail.com>
> > ---
> >  arch/arm/mach-imx/imx-bbu-internal.c | 64 +++++++++++++++++-----------
> >  1 file changed, 39 insertions(+), 25 deletions(-)
> >
> > diff --git a/arch/arm/mach-imx/imx-bbu-internal.c b/arch/arm/mach-imx/imx-bbu-internal.c
> > index 67ae2961c..ea57b2772 100644
> > --- a/arch/arm/mach-imx/imx-bbu-internal.c
> > +++ b/arch/arm/mach-imx/imx-bbu-internal.c
> > @@ -106,11 +106,39 @@ err_close:
> >       return ret;
> >  }
> >
> > -static int imx_bbu_check_prereq(const char *devicefile, struct bbu_data *data)
> > +static int imx_bbu_check_prereq(struct imx_internal_bbu_handler *imx_handler,
> > +                             const char *devicefile, struct bbu_data *data,
> > +                             enum filetype expected_type)
> >  {
> >       int ret;
> > -
> > -     if (file_detect_type(data->image, data->len) != filetype_arm_barebox) {
> > +     const void *blob;
> > +     size_t len;
> > +     enum filetype type;
> > +
> > +     type = file_detect_type(data->image, data->len);
> > +
> > +     switch (type) {
> > +     case filetype_arm_barebox:
> > +             /*
> > +              * Specifying expected_type as unknow will disable the
> > +              * inner image type check
> > +              */
> > +             if (expected_type == filetype_unknown)
> > +                     break;
> > +
> > +             blob = data->image + imx_handler->flash_header_offset;
> > +             len  = data->len   - imx_handler->flash_header_offset;
> > +             type = file_detect_type(blob, len);
> > +
> > +             if (type != expected_type) {
> > +                     pr_err("Expected image type: %s, "
> > +                            "detected image type: %s\n",
> > +                            file_type_to_string(expected_type),
> > +                            file_type_to_string(type));
> > +                     return -EINVAL;
> > +             }
> > +             break;
> > +     default:
> >               if (!bbu_force(data, "Not an ARM barebox image"))
> >                       return -EINVAL;
> >       }
> > @@ -137,7 +165,8 @@ static int imx_bbu_internal_v1_update(struct bbu_handler *handler, struct bbu_da
> >               container_of(handler, struct imx_internal_bbu_handler, handler);
> >       int ret;
> >
> > -     ret = imx_bbu_check_prereq(data->devicefile, data);
> > +     ret = imx_bbu_check_prereq(imx_handler, data->devicefile, data,
> > +                                filetype_unknown);
>
> Why filetype_unknown here? in the v2 version we have
> filetype_imx_image_v2. I would expect filetype_imx_image_v1 here.
>

Purely because original code didn't do any type checking of "inner"
image, so I specified filetype_unknown and and added special handling
for it to preserve the status quo. It sounds like you think that it
would be better to change the original behavior such that there _is_
an "inner" image type check for v1 one header. That would be my
preference as well, since that'll allow me to get rid of special
filetype_unknown case, so that's what I'll do in v2.

Thanks,
Andrey Smirnov

_______________________________________________
barebox mailing list
barebox@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/barebox

  reply	other threads:[~2018-08-23  0:07 UTC|newest]

Thread overview: 40+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-08-21  6:25 [PATCH 00/22] i.MX BBU improvements and bugfixes Andrey Smirnov
2018-08-21  6:25 ` [PATCH 01/22] ARM: i.MX: bbu: Remove unused define Andrey Smirnov
2018-08-21  6:25 ` [PATCH 02/22] filetype: Add code to detect i.MX image v1 Andrey Smirnov
2018-08-21 10:07   ` Roland Hieber
2018-08-21 20:23     ` Andrey Smirnov
2018-08-23  9:33       ` Roland Hieber
2018-08-23 21:01         ` Andrey Smirnov
2018-08-21  6:25 ` [PATCH 03/22] filetype: Add code to detect i.MX image v2 Andrey Smirnov
2018-08-21  6:25 ` [PATCH 04/22] ARM: i.MX: bbu: Move inner-image type check Andrey Smirnov
2018-08-22  6:49   ` Sascha Hauer
2018-08-22  6:52   ` Sascha Hauer
2018-08-23  0:06     ` Andrey Smirnov [this message]
2018-08-23  6:44       ` Sascha Hauer
2018-08-21  6:25 ` [PATCH 05/22] ARM: i.MX: bbu: Drop IMX_INTERNAL_FLAG_NAND Andrey Smirnov
2018-08-21  6:25 ` [PATCH 06/22] ARM: i.MX: bbu: Consolidate vairous update helpers Andrey Smirnov
2018-08-22  6:52   ` Sascha Hauer
2018-08-23  0:07     ` Andrey Smirnov
2018-08-21  6:25 ` [PATCH 07/22] ARM: i.MX: bbu: Simplify imx53_bbu_internal_nand_register_handler() Andrey Smirnov
2018-08-21  6:25 ` [PATCH 08/22] ARM: i.MX: bbu: Constify all 'devicefile' arguments Andrey Smirnov
2018-08-21  6:25 ` [PATCH 09/22] ARM: i.MX: bbu: Detect which platforms need v2 i.MX header Andrey Smirnov
2018-08-21  6:25 ` [PATCH 10/22] ARM: i.MX: bbu: Alias imx5*_bbu_internal_mmc_register_handler() Andrey Smirnov
2018-08-21  6:25 ` [PATCH 11/22] ARM: i.MX: bbu: Alias imx5*_bbu_internal_spi_i2c_register_handler() Andrey Smirnov
2018-08-21  6:25 ` [PATCH 12/22] ARM: i.MX: bbu: Move protect code into a separate routine Andrey Smirnov
2018-08-21  6:25 ` [PATCH 13/22] ARM: i.MX: bbu: Adjust FLASH_HEADER_OFFSET_MMC for i.MX8MQ Andrey Smirnov
2018-08-21  6:25 ` [PATCH 14/22] ARM: i.MX: bbu: Add support for SPI/I2C on VFxxx Andrey Smirnov
2018-08-21  6:25 ` [PATCH 15/22] ARM: i.MX: zii-vf610-dev-rev-b/c: Add support for BBU on SPI-NOR Andrey Smirnov
2018-08-21  6:25 ` [PATCH 16/22] ARM: i.MX: bbu: Add support for MMC on i.MX8MQ Andrey Smirnov
2018-08-21  6:25 ` [PATCH 17/22] ARM: nxp-imx8mq-evk: Add eMMC BBU configuration Andrey Smirnov
2018-08-21  6:25 ` [PATCH 18/22] ARM: i.MX: bbu: Adjust error code check for pwrite() Andrey Smirnov
2018-08-22  7:01   ` Sascha Hauer
2018-08-23  0:16     ` Andrey Smirnov
2018-08-21  6:26 ` [PATCH 19/22] bbu: Remove logical negation in barebox_update_handler_exists() Andrey Smirnov
2018-08-22  7:09   ` Sascha Hauer
2018-08-23  0:01     ` Andrey Smirnov
2018-08-23  4:43       ` Sam Ravnborg
2018-08-23  6:42       ` Sascha Hauer
2018-08-23  6:48         ` Andrey Smirnov
2018-08-21  6:26 ` [PATCH 20/22] block: Do not ignore error in blk->ops->write() Andrey Smirnov
2018-08-21  6:26 ` [PATCH 21/22] bbu: Report update failures explicitly Andrey Smirnov
2018-08-21  6:26 ` [PATCH 22/22] bbu: command: Make sure specified update handler exists Andrey Smirnov

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to='CAHQ1cqGC0xWiv2Abf8e=r=8aCxOJpu7N+o0sWkU3Sh+B249KXw@mail.gmail.com' \
    --to=andrew.smirnov@gmail.com \
    --cc=barebox@lists.infradead.org \
    --cc=s.hauer@pengutronix.de \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox