From: Patrick Wildt <patrick@blueri.se>
To: u-boot@lists.denx.de
Subject: [PATCH] ARM: imx: hab: panic on authentication failure
Date: Sun, 31 May 2020 19:02:10 +0200 [thread overview]
Message-ID: <20200531170210.GA15744@nox.fritz.box> (raw)
In-Reply-To: <2956e86e-2cdd-9815-7e67-9624058946cb@denx.de>
On Sun, May 31, 2020 at 06:51:14PM +0200, Marek Vasut wrote:
> On 5/31/20 5:53 PM, Patrick Wildt wrote:
> > On Sun, May 31, 2020 at 05:38:05PM +0200, Marek Vasut wrote:
> >> On 5/30/20 10:53 PM, Patrick Wildt wrote:
> >>> On Sat, May 30, 2020 at 10:29:19PM +0200, Marek Vasut wrote:
> >>>> On 5/30/20 10:14 PM, Patrick Wildt wrote:
> >>>>> On Sat, May 30, 2020 at 03:31:29PM -0300, Fabio Estevam wrote:
> >>>>>> Hi Marek,
> >>>>>>
> >>>>>> [Adding Breno]
> >>>>>>
> >>>>>> On Sat, May 30, 2020 at 3:29 PM Marek Vasut <marex@denx.de> wrote:
> >>>>>>>
> >>>>>>> Instead of hang()ing the system and thus disallowing any automated
> >>>>>>> recovery possibility from a HAB authentication failure, panic() .
> >>>>>>> The panic() function can be configured to hang() the system after
> >>>>>>> printing an error message, however the default is to reset the
> >>>>>>> system instead.
> >>>>>>>
> >>>>>>> This allows redundant boot to work correctly. In case the primary
> >>>>>>> or secondary image cannot be authenticated, the system reboots and
> >>>>>>> bootrom can try to start the other one.
> >>>>>>>
> >>>>>>> Signed-off-by: Marek Vasut <marex@denx.de>
> >>>>>>> Cc: Fabio Estevam <festevam@gmail.com>
> >>>>>>> Cc: NXP i.MX U-Boot Team <uboot-imx@nxp.com>
> >>>>>>> Cc: Peng Fan <peng.fan@nxp.com>
> >>>>>>> Cc: Stefano Babic <sbabic@denx.de>
> >>>>>>
> >>>>>> This is a better behavior indeed:
> >>>>>>
> >>>>>> Reviewed-by: Fabio Estevam <festevam@gmail.com>
> >>>>>
> >>>>> What about this? Have you ignored this patch for a reason? :/
> >>>>>
> >>>>> https://marc.info/?l=u-boot&m=159069441005730&w=2
> >>>>
> >>>> Yes, and the reason is I was not even aware of your patch, sorry. The CC
> >>>> list in this mail should cover all the interested parties, so use it
> >>>> when sending V2, or use patman.
> >>>
> >>> I already had 11 people on CC, but apparently I missed you.
> >>>
> >>>> The patch looks fine, one nit is that you should return errno.h return
> >>>> value and another is that it changes the current behavior. Now that I
> >>>> look at this imx code, board_spl_fit_post_load() should not even be in
> >>>> arch/ , sigh, but that's for separate patch either way.
> >>>>
> >>>> So I think if you want to support this sort of fallback, you should make
> >>>> the board_spl_fit_post_load() be in board/ files, with default __weak
> >>>> implementation calling some arch_hab_authenticate...() which implements
> >>>> current content of board_spl_fit_post_load(), and let boards decide how
> >>>> to handle the fallback if it needs to be altered.
> >>>>
> >>>> Would that work ?
> >>>
> >>> I'm not sure. In comparison to the people from NXP who are paid to
> >>> upstream their code and still don't do it correctly, I'm doing this
> >>> in my spare time and I'm not sure I want to bikeshed all day long.
> >>>
> >>> I can send a V3 that replaces the -1 with EINVAL, EACCESS, EPERM or
> >>> something the like. If you want to clean up after NXP, feel free to.
> >>
> >> In fact, what is it that you're trying to achieve with this fallback ?
> >> What are you falling back to , another fallback fitImage ?
> >
> > Exactly.
> >
> > I have a device with a glued enclosure, with no external sources, apart
> > from a serial console. If the SPL fails to load the U-Boot main image
> > from eMMC, the only way to fix it is to destroy the case, open up the
> > enclosure and short some lines. That's not really nice, since we'd have
> > to get a new enclosure, new serial number label,... it's a hassle.
>
> Look for SRC PERSIST_SECONDARY_BOOT in your datasheet then. This will
> let you use two copies of SPL, two copies of U-Boot, etc.
I'll have a look!
> > If the SPL was gone as well, the BootROM would fall back to other
> > sources. But with only one half of U-Boot missing, it would just hang.
> > I'm sure that's also why you replace the hang() with a panic().
> >
> > I thought that if the SPL is still fine, but only the U-Boot image was
> > gone, why not make use of the spl_boot_list to try and boot from another
> > source? Like yModem. For that I sent the following fix, also with many
> > people CCd:
> >
> > https://marc.info/?l=u-boot&m=158893200030861&w=2
> >
> > Now the board spl boot order can have eMMC as first, and yModem as
> > second. If eMMC fails, it falls back to yModem. If none work, it
> > though hang()s, doing
> >
> > puts(SPL_TPL_PROMPT "failed to boot from all boot devices\n");
> > hang();
> >
> > Maybe you want this as panic instead?
> >
> > Anyway, I think this is nicer option for recovery, instead of simply
> > hanging or rebooting.
>
> The problem is, this only works for fitImage and not for raw uImage. But
> in your case, that is probably OK.
>
> So if you can just fix the errno return value to some -EINVAL (?) and
> send a V3, I think that would be good.
Ok, will do, thanks!
next prev parent reply other threads:[~2020-05-31 17:02 UTC|newest]
Thread overview: 10+ messages / expand[flat|nested] mbox.gz Atom feed top
2020-05-30 18:29 [PATCH] ARM: imx: hab: panic on authentication failure Marek Vasut
2020-05-30 18:31 ` Fabio Estevam
2020-05-30 20:14 ` Patrick Wildt
2020-05-30 20:29 ` Marek Vasut
2020-05-30 20:53 ` Patrick Wildt
2020-05-31 15:38 ` Marek Vasut
2020-05-31 15:53 ` Patrick Wildt
2020-05-31 16:51 ` Marek Vasut
2020-05-31 17:02 ` Patrick Wildt [this message]
2020-08-04 8:52 ` sbabic at denx.de
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=20200531170210.GA15744@nox.fritz.box \
--to=patrick@blueri.se \
--cc=u-boot@lists.denx.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