u-boot.lists.denx.de archive mirror
 help / color / mirror / Atom feed
From: Sughosh Ganu <sughosh.ganu@linaro.org>
To: Jassi Brar <jassisinghbrar@gmail.com>
Cc: u-boot@lists.denx.de, Heinrich Schuchardt <xypron.glpk@gmx.de>,
	 Ilias Apalodimas <ilias.apalodimas@linaro.org>,
	Takahiro Akashi <takahiro.akashi@linaro.org>,
	 Patrick Delaunay <patrick.delaunay@foss.st.com>,
	 Patrice Chotard <patrice.chotard@foss.st.com>,
	Simon Glass <sjg@chromium.org>,  Bin Meng <bmeng.cn@gmail.com>,
	Tom Rini <trini@konsulko.com>,
	 Etienne Carriere <etienne.carriere@linaro.org>,
	Michal Simek <monstr@monstr.eu>,
	Jassi Brar <jaswinder.singh@linaro.org>
Subject: Re: [PATCH v10 09/15] FWU: Add boot time checks as highlighted by the FWU specification
Date: Tue, 27 Sep 2022 12:30:34 +0530	[thread overview]
Message-ID: <CADg8p95nx9qwgSUKR0_m3dCn8xv3XAm7KwBesR31jS+MJH+TXA@mail.gmail.com> (raw)
In-Reply-To: <CABb+yY1c590RbmV1AdRxp+_oN89bpPzhiXsaTjzFDRJpeP6K1g@mail.gmail.com>

On Mon, 26 Sept 2022 at 19:37, Jassi Brar <jassisinghbrar@gmail.com> wrote:
>
> On Mon, Sep 26, 2022 at 5:08 AM Sughosh Ganu <sughosh.ganu@linaro.org> wrote:
> >
> > On Mon, 26 Sept 2022 at 08:29, Jassi Brar <jassisinghbrar@gmail.com> wrote:
> > > .....
> > > > +static int fwu_boottime_checks(void *ctx, struct event *event)
> > > > +{
> > > > +       int ret;
> > > > +       struct udevice *dev;
> > > > +       u32 boot_idx, active_idx;
> > > > +
> > > > +       ret = fwu_get_dev_mdata(&dev, NULL);
> > > > +       if (ret)
> > > > +               return ret;
> > > > +
> > > > +       ret = fwu_mdata_check(dev);
> > > > +       if (ret) {
> > > > +               return 0;
> > > > +       }
> > > > +
> > > > +       /*
> > > > +        * Get the Boot Index, i.e. the bank from
> > > > +        * which the platform has booted. This value
> > > > +        * gets passed from the ealier stage bootloader
> > > > +        * which booted u-boot, e.g. tf-a. If the
> > > > +        * boot index is not the same as the
> > > > +        * active_index read from the FWU metadata,
> > > > +        * update the active_index.
> > > > +        */
> > > > +       fwu_plat_get_bootidx(&boot_idx);
> > > > +       if (boot_idx >= CONFIG_FWU_NUM_BANKS) {
> > > > +               log_err("Received incorrect value of boot_index\n");
> > > > +               return 0;
> > > > +       }
> > > > +
> > > > +       ret = fwu_get_active_index(&active_idx);
> > > > +       if (ret) {
> > > > +               log_err("Unable to read active_index\n");
> > > > +               return 0;
> > > > +       }
> > > > +
> > > > +       if (boot_idx != active_idx) {
> > > > +               log_info("Boot idx %u is not matching active idx %u, changing active_idx\n",
> > > > +                        boot_idx, active_idx);
> > > > +               ret = fwu_update_active_index(boot_idx);
> > > > +               if (!ret)
> > > > +                       boottime_check = 1;
> > > >
> > > We may not want to do anything FWU (accept, reject, modify mdata)
> > > until we reboot, if we are recovering from last bad upgrade. So maybe
> > > not set boottime_check
> >
> > Actually, the difference between the boot bank and active bank will
> > happen when there is some kind of corruption on the media due to which
> > the platform could not boot from the active bank(could also be due to
> > repeated wd timeouts).
> >
> ... which may have been caused by the last upgrade attempt, among other reasons.
>
> fwu_trial_state_check() will never be called in this case and any
> subsequent fwu_update_checks_pass() will pass even if we are in trial
> state.

If the platform is unable to boot from the updated partition,
resulting in booting from a different partition, the platform is no
longer in the trial state, since it has not booted from the updated
partition -- determination of trial state is only based on reading the
accepted bit of all images in the booted partition. I believe this
would be a reason to want to change the images on the other partition
from which the platform could not boot, unless that was due to some
hardware error, in which case it would require manual intervention.
But my point is, not allowing FWU updates in the scenario you mention
does not help prevent any unwanted situation.

-sughosh

  reply	other threads:[~2022-09-27  7:00 UTC|newest]

Thread overview: 64+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-09-15  8:14 [PATCH v10 00/15] FWU: Add FWU Multi Bank Update feature support Sughosh Ganu
2022-09-15  8:14 ` [PATCH v10 01/15] dt/bindings: Add bindings for GPT based FWU Metadata storage device Sughosh Ganu
2022-09-15  8:14 ` [PATCH v10 02/15] FWU: Add FWU metadata structure and driver for accessing metadata Sughosh Ganu
2022-09-19  0:33   ` Jassi Brar
2022-09-19 12:39     ` Sughosh Ganu
2022-09-26  2:57   ` Jassi Brar
2022-09-26 10:00     ` Sughosh Ganu
2022-09-26 14:42       ` Jassi Brar
2022-09-27  7:14         ` Sughosh Ganu
2022-09-27 16:25           ` Jassi Brar
2022-09-28  6:00             ` Sughosh Ganu
2022-09-28 19:29               ` Jassi Brar
2022-09-29  6:01                 ` Sughosh Ganu
2022-09-15  8:14 ` [PATCH v10 03/15] FWU: Add FWU metadata access driver for GPT partitioned block devices Sughosh Ganu
2022-09-22  8:46   ` Ilias Apalodimas
2022-09-26  8:46     ` Sughosh Ganu
2022-09-27 11:35       ` Etienne Carriere
2022-09-27 11:57         ` Ilias Apalodimas
2022-09-26  2:52   ` Jassi Brar
2022-09-26  8:48     ` Sughosh Ganu
2022-09-26 15:00       ` Jassi Brar
2022-09-15  8:14 ` [PATCH v10 04/15] stm32mp1: dk2: Add a node for the FWU metadata device Sughosh Ganu
2022-09-15  8:14 ` [PATCH v10 05/15] stm32mp1: dk2: Add image information for capsule updates Sughosh Ganu
2022-09-15  8:14 ` [PATCH v10 06/15] FWU: Add helper functions for accessing FWU metadata Sughosh Ganu
2022-09-22  8:59   ` Ilias Apalodimas
2022-09-22  9:35     ` Sughosh Ganu
2022-09-23  6:16       ` Ilias Apalodimas
2022-09-15  8:14 ` [PATCH v10 07/15] FWU: STM32MP1: Add support to read boot index from backup register Sughosh Ganu
2022-09-27 11:35   ` Etienne Carriere
2022-09-15  8:14 ` [PATCH v10 08/15] event: Add an event for main_loop Sughosh Ganu
2022-09-20  7:30   ` Ilias Apalodimas
2022-09-15  8:14 ` [PATCH v10 09/15] FWU: Add boot time checks as highlighted by the FWU specification Sughosh Ganu
2022-09-26  2:59   ` Jassi Brar
2022-09-26 10:08     ` Sughosh Ganu
2022-09-26 14:07       ` Jassi Brar
2022-09-27  7:00         ` Sughosh Ganu [this message]
2022-09-15  8:14 ` [PATCH v10 10/15] FWU: Add support for the FWU Multi Bank Update feature Sughosh Ganu
2022-09-16  1:47   ` Takahiro Akashi
2022-09-16  5:22     ` Sughosh Ganu
2022-09-16  6:50       ` Takahiro Akashi
2022-09-16 10:54         ` Sughosh Ganu
2022-09-20  8:16           ` Takahiro Akashi
2022-09-20 13:04             ` Sughosh Ganu
2022-09-21  5:28               ` Takahiro Akashi
2022-09-21 11:26                 ` Sughosh Ganu
2022-09-22  5:21                   ` Takahiro Akashi
2022-09-26  2:55   ` Jassi Brar
2022-09-26  9:01     ` Sughosh Ganu
2022-09-26 14:53       ` Jassi Brar
2022-09-27  7:22         ` Sughosh Ganu
2022-09-27 16:48           ` Jassi Brar
2022-09-28  6:22             ` Sughosh Ganu
2022-09-28  7:30               ` Etienne Carriere
2022-09-28 15:16                 ` Jassi Brar
2022-10-03 11:54                   ` Etienne Carriere
2022-10-03 12:21                   ` Ilias Apalodimas
2022-10-03 13:29                     ` Jassi Brar
2022-09-15  8:14 ` [PATCH v10 11/15] FWU: cmd: Add a command to read FWU metadata Sughosh Ganu
2022-09-15  8:14 ` [PATCH v10 12/15] test: dm: Add test cases for FWU Metadata uclass Sughosh Ganu
2022-09-15  8:14 ` [PATCH v10 13/15] mkeficapsule: Add support for generating empty capsules Sughosh Ganu
2022-09-15  8:14 ` [PATCH v10 14/15] mkeficapsule: Add support for setting OEM flags in capsule header Sughosh Ganu
2022-09-15  8:14 ` [PATCH v10 15/15] FWU: doc: Add documentation for the FWU feature Sughosh Ganu
2022-09-19 21:37   ` Jassi Brar
2022-09-27 12:01   ` Etienne Carriere

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=CADg8p95nx9qwgSUKR0_m3dCn8xv3XAm7KwBesR31jS+MJH+TXA@mail.gmail.com \
    --to=sughosh.ganu@linaro.org \
    --cc=bmeng.cn@gmail.com \
    --cc=etienne.carriere@linaro.org \
    --cc=ilias.apalodimas@linaro.org \
    --cc=jassisinghbrar@gmail.com \
    --cc=jaswinder.singh@linaro.org \
    --cc=monstr@monstr.eu \
    --cc=patrice.chotard@foss.st.com \
    --cc=patrick.delaunay@foss.st.com \
    --cc=sjg@chromium.org \
    --cc=takahiro.akashi@linaro.org \
    --cc=trini@konsulko.com \
    --cc=u-boot@lists.denx.de \
    --cc=xypron.glpk@gmx.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;
as well as URLs for NNTP newsgroup(s).