From: AKASHI Takahiro <takahiro.akashi@linaro.org>
To: Masami Hiramatsu <masami.hiramatsu@linaro.org>
Cc: Heinrich Schuchardt <xypron.glpk@gmx.de>,
Patrick Delaunay <patrick.delaunay@foss.st.com>,
Patrice Chotard <patrice.chotard@foss.st.com>,
Alexander Graf <agraf@csgraf.de>, Simon Glass <sjg@chromium.org>,
Bin Meng <bmeng.cn@gmail.com>,
Ilias Apalodimas <ilias.apalodimas@linaro.org>,
Jose Marinho <jose.marinho@arm.com>,
Tom Rini <trini@konsulko.com>,
Etienne Carriere <etienne.carriere@linaro.org>,
Sughosh Ganu <sughosh.ganu@linaro.org>,
Paul Liu <paul.liu@linaro.org>,
Grant Likely <grant.likely@arm.com>,
u-boot@lists.denx.de
Subject: Re: [PATCH 2/2] efi_loader: Reset system after CapsuleUpdate on disk
Date: Tue, 1 Feb 2022 12:16:43 +0900 [thread overview]
Message-ID: <20220201031643.GA67325@laputa> (raw)
In-Reply-To: <CAA93ih3sq7Lk_X-38Y_RgMrGBWHyOy+-tmNwyjW7oaFtbJ-Vhg@mail.gmail.com>
On Tue, Feb 01, 2022 at 11:26:38AM +0900, Masami Hiramatsu wrote:
> Hi Heinrich,
>
> 2022年1月31日(月) 21:17 Heinrich Schuchardt <xypron.glpk@gmx.de>:
> >
> > On 1/31/22 12:19, Grant Likely wrote:
> > > On 31/01/2022 09:19, Masami Hiramatsu wrote:
> > >> Add a config option to reset system soon after processing capsule update
> > >> on disk. This is required in UEFI specification 2.9 Section 8.5.5
> > >> "Delivery of Capsules via file on Mass Storage device" as;
> > >>
> > >> In all cases that a capsule is identified for processing the
> > >> system is
> > >> restarted after capsule processing is completed.
> > >>
> > >> Signed-off-by: Masami Hiramatsu <masami.hiramatsu@linaro.org>
> > >
> > > Is there known use cases for making this an option? Feels a bit like
> > > option creep that is too easy to choose the wrong setting.
> > >
> > > Otherwise, this looks good to me.
> > >
> > > g.
> > >
> > >> ---
> > >> lib/efi_loader/Kconfig | 10 ++++++++++
> > >> lib/efi_loader/efi_capsule.c | 9 +++++++++
> > >> 2 files changed, 19 insertions(+)
> > >>
> > >> diff --git a/lib/efi_loader/Kconfig b/lib/efi_loader/Kconfig
> > >> index 24f9a2bb75..db05c3ad90 100644
> > >> --- a/lib/efi_loader/Kconfig
> > >> +++ b/lib/efi_loader/Kconfig
> > >> @@ -146,6 +146,16 @@ config EFI_IGNORE_OSINDICATIONS
> > >> without setting the
> > >> EFI_OS_INDICATIONS_FILE_CAPSULE_DELIVERY_SUPPORTED
> > >> flag in variable OsIndications.
> > >>
> > >> +config EFI_RESET_AFTER_CAPSULE_ON_DISK
> > >> + bool "Reset right after CapsuleUpdate on-disk"
> > >> + depends on EFI_CAPSULE_ON_DISK
> > >> + default y
> > >> + help
> > >> + UEFI specification requests the system to be restarted after
> > >> capsule
> > >> + processing is complete. This implements that, but for some
> > >> reason,
> > >> + if you want to keep the (old) system running after the capsule
> > >> update
> > >> + on-disk, you can say 'n' here.
> > >> +
> > >> config EFI_CAPSULE_ON_DISK_EARLY
> > >> bool "Initiate capsule-on-disk at U-Boot boottime"
> > >> depends on EFI_CAPSULE_ON_DISK
> > >> diff --git a/lib/efi_loader/efi_capsule.c b/lib/efi_loader/efi_capsule.c
> > >> index 98dab1c6f5..44d4fa2f82 100644
> > >> --- a/lib/efi_loader/efi_capsule.c
> > >> +++ b/lib/efi_loader/efi_capsule.c
> > >> @@ -1142,6 +1142,15 @@ efi_status_t efi_launch_capsules(void)
> > >> free(files[i]);
> > >> free(files);
> > >>
> > >> + /*
> > >> + * UEFI spec requires to reset system after complete processing
> > >> capsule
> > >> + * update on the storage.
> > >> + */
> > >> + if (IS_ENABLED(CONFIG_EFI_RESET_AFTER_CAPSULE_ON_DISK)) {
> >
> > We should not allow configuring a non-compliant behavior.
>
> OK, let me remove this option then.
>
> >
> > >> + log_info("Restarting the system to boot the updated
> > >> firmware.\n");
> >
> > I am missing a success message for each installed capsule.
>
> Indeed, but this reboot will be done unconditionally.
> let me add a message when the capsule update is successfully completed.
> Thank you,
While I don't object to adding a message, I'd rather see that a sub-command,
like "efidebug capsule show-result," be added to efidebug command.
Please note the result for each capsule will be recorded in "CapsuleNNNN"
variable which may contain additional information.
(I haven't implemented efi_variable_result_fmp though.)
-Takahiro Akashi
>
> >
> > >> + do_reset(NULL, 0, 0, NULL);
> >
> > do_reset() may return. How about:
> >
> > panic("Reboot after firmware update");
> >
> > This will hang if do_reset() returns.
> >
> > >> + }
> > >> +
> > >> if (IS_ENABLED(CONFIG_EFI_ESRT)) {
> >
> > We don't need this code anymore if we call panic() above.
> >
> > Best regards
> >
> > Heinrich
> >
> > >> /* Rebuild the ESRT to reflect any updated FW images. */
> > >> ret = efi_esrt_populate();
> > >>
> > >
>
>
>
> --
> Masami Hiramatsu
next prev parent reply other threads:[~2022-02-01 3:17 UTC|newest]
Thread overview: 10+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-01-31 9:18 [PATCH 0/2] EFI: Reset system after capsule-on-disk Masami Hiramatsu
2022-01-31 9:18 ` [PATCH 1/2] efi_loader: Avoid using efi_update_capsule() from update capsule on disk Masami Hiramatsu
2022-01-31 19:26 ` Heinrich Schuchardt
2022-02-01 2:21 ` Masami Hiramatsu
2022-01-31 9:19 ` [PATCH 2/2] efi_loader: Reset system after CapsuleUpdate " Masami Hiramatsu
2022-01-31 11:19 ` Grant Likely
2022-01-31 12:17 ` Heinrich Schuchardt
2022-02-01 2:26 ` Masami Hiramatsu
2022-02-01 3:16 ` AKASHI Takahiro [this message]
2022-01-31 12:38 ` Masami Hiramatsu
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=20220201031643.GA67325@laputa \
--to=takahiro.akashi@linaro.org \
--cc=agraf@csgraf.de \
--cc=bmeng.cn@gmail.com \
--cc=etienne.carriere@linaro.org \
--cc=grant.likely@arm.com \
--cc=ilias.apalodimas@linaro.org \
--cc=jose.marinho@arm.com \
--cc=masami.hiramatsu@linaro.org \
--cc=patrice.chotard@foss.st.com \
--cc=patrick.delaunay@foss.st.com \
--cc=paul.liu@linaro.org \
--cc=sjg@chromium.org \
--cc=sughosh.ganu@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