From: AKASHI Takahiro <takahiro.akashi@linaro.org>
To: Simon Glass <sjg@chromium.org>
Cc: Heinrich Schuchardt <xypron.glpk@gmx.de>,
Masami Hiramatsu <masami.hiramatsu@linaro.org>,
Tom Rini <trini@konsulko.com>,
U-Boot Mailing List <u-boot@lists.denx.de>,
Patrick Delaunay <patrick.delaunay@foss.st.com>,
Patrice Chotard <patrice.chotard@foss.st.com>,
Alexander Graf <agraf@csgraf.de>, Bin Meng <bmeng.cn@gmail.com>,
Ilias Apalodimas <ilias.apalodimas@linaro.org>,
Jose Marinho <jose.marinho@arm.com>,
Grant Likely <grant.likely@arm.com>,
Etienne Carriere <etienne.carriere@linaro.org>,
Sughosh Ganu <sughosh.ganu@linaro.org>,
Paul Liu <paul.liu@linaro.org>
Subject: Re: [PATCH] test/py: efi_capsule: Handle expected reset after capsule on disk
Date: Mon, 14 Mar 2022 11:42:58 +0900 [thread overview]
Message-ID: <20220314024258.GC37492@laputa> (raw)
In-Reply-To: <CAPnjgZ2yvw5OeVZ=aNJNHhgDvUzbOft7whHCj3LO7B1Nxni_TA@mail.gmail.com>
On Sun, Mar 13, 2022 at 08:15:02PM -0600, Simon Glass wrote:
> Hi Takahiro,
>
> On Sun, 13 Mar 2022 at 19:08, AKASHI Takahiro
> <takahiro.akashi@linaro.org> wrote:
> >
> > Hi Simon,
> >
> > On Fri, Mar 11, 2022 at 07:24:39PM -0700, Simon Glass wrote:
> > > Hi Takahiro,
> > >
> > > On Fri, 18 Feb 2022 at 18:16, AKASHI Takahiro
> > > <takahiro.akashi@linaro.org> wrote:
> > > >
> > > > On Fri, Feb 18, 2022 at 02:48:54PM +0100, Heinrich Schuchardt wrote:
> > > > > On 2/18/22 03:16, Masami Hiramatsu wrote:
> > > > > > Hi Simon,
> > > > > >
> > > > > > Thank you for your reply.
> > > > > >
> > > > > > 2022年2月18日(金) 2:56 Simon Glass <sjg@chromium.org>:
> > > > > >
> > > > > > >
> > > > > > > Hi Masami,
> > > > > > >
> > > > > > > On Wed, 16 Feb 2022 at 18:11, Masami Hiramatsu
> > > > > > > <masami.hiramatsu@linaro.org> wrote:
> > > > > > > >
> > > > > > > > Hi Simon,
> > > > > > > >
> > > > > > > > Let me confirm your point.
> > > > > > > > So are you concerning the 'real' reset for the capsule update test
> > > > > > > > case itself or this patch?
> > > > > > > >
> > > > > > > > I'm actually learning how the test is working, so please help me to
> > > > > > > > understand how I can solve it.
> > > > > > > >
> > > > > > > > There are 3 environments to run the test, sandbox, Qemu, and a real board.
> > > > > > > > If we reset a sandbox, it will continue to run (just restart itself),
> > > > > > >
> > > > > > > Here you should be able to avoid doing a reset. See
> > > > > > > dm_test_sysreset_base() which tests sysreset drivers on sandbox.
> > > > > >
> > > > > > Would you mean that reset-after-capsule-on-disk itself should not
> > > > > > make a reset on sandbox?
> > > > >
> > > > > We have several tests that do resets by calling do_reset(), e.g. the
> > > > > UEFI unit tests. There is nothing wrong about it.
> > > > >
> > > > > We want the sandbox to behave like any other board where capsule updates
> > > > > lead to resets.
> > > > >
> > > > > >
> > > > > > In dm_test_sysreset_base(), I can see the below code, this means
> > > > > > sysreset_request()
> > > > > > will not execute real reset, but just mimic the reset, right?
> > > > > >
> > > > > > state->sysreset_allowed[SYSRESET_WARM] = true;
> > > > > > ut_asserteq(-EINPROGRESS, sysreset_request(dev, SYSRESET_WARM));
> > > > > > state->sysreset_allowed[SYSRESET_WARM] = false;
> > > > > >
> > > > > > > > but Qemu and real board will cause a real reset and it will terminate
> > > > > > > > the qemu or stop the board (depends on how it is implemented). Thus,
> > > > > > > > if a command or boot process will cause a reset, it will need a
> > > > > > > > special care (maybe respawn?).
> > > > > > >
> > > > > > > Here you need to worry about the surrounding automation logic which
> > > > > > > could be tbot of the U-Boot pytest hooks. I suggest you avoid this and
> > > > > > > handle it some other way, without reset.
> > > > >
> > > > > The sandbox should run through exactly the same code path as all other
> > > > > boards to get a meaningful test results. Therefore don't put in any
> > > > > quirks on C level. Your Python test changes are all that is needed.
> > > >
> > > > +1, I have the same opinion here.
> > > > To exercise capsule-on-disk code, we need a "real" reset
> > > > because pytest/CI loop is basically a black-box test.
> > >
> > > I don't see why you need the reset at all to test the code.
> >
> > As I repeatedly said, I believe that this is a black-box test and
> > a system test. The purpose of the test is to make sure the firmware
> > update be performed in real operations as expected, that is,
> > a *reset* triggers the action *at the beginning of* system reboot.
>
> I understand you are frustrated with this, but I just don't agree, or
> perhaps don't understand.
>
> What specific mechanism is used to initiate the firmware update? Is
> this happening in U-Boot or somewhere else?
There are two ways:
a. CapsuleUpdate runtime service
b. capsule delivery on disk
My original patch provides only (b), partly, because runtime
service is a bit hard to implement under the current framework.
UEFI specification requires that (b) can/should be initiated
by a *reset by a user* and another reset be automatically triggered by UEFI
when the update has been completed either successfully or in vain.
The latter behavior has been enforced on U-BOOT UEFI implementation
by Masami's patch (not this series).
Masami's patch (this series) fixes issues around those two resets
in pytest.
> >
> > > You should
> > > be able to run a command to make the update happen. How does the
> > > updata actually get triggered when you reset?
> >
> > It's not the purpose of this test.
>
> Then drop the reset and design the feature with testing in mind.
So it's just beyond of my scope.
-Takahiro Akashi
> Regards,
> SImon
next prev parent reply other threads:[~2022-03-14 2:43 UTC|newest]
Thread overview: 59+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-02-03 9:23 [PATCH v4 0/2] EFI: Reset system after capsule-on-disk Masami Hiramatsu
2022-02-03 9:23 ` [PATCH v4 1/2] efi_loader: use efi_update_capsule_firmware() for capsule on disk Masami Hiramatsu
2022-02-13 8:58 ` Heinrich Schuchardt
2022-02-03 9:23 ` [PATCH v4 2/2] efi_loader: Reset system after CapsuleUpdate " Masami Hiramatsu
2022-02-09 3:13 ` AKASHI Takahiro
2022-02-09 3:54 ` Masami Hiramatsu
2022-02-13 9:01 ` Heinrich Schuchardt
2022-02-13 10:17 ` Heinrich Schuchardt
2022-02-14 1:06 ` AKASHI Takahiro
2022-02-14 2:39 ` Masami Hiramatsu
2022-02-15 9:05 ` [PATCH] test/py: efi_capsule: Handle expected reset after capsule " Masami Hiramatsu
2022-02-15 9:09 ` Masami Hiramatsu
2022-02-15 13:51 ` Heinrich Schuchardt
2022-02-15 13:52 ` Heinrich Schuchardt
2022-02-15 14:15 ` Heinrich Schuchardt
2022-02-15 23:50 ` Masami Hiramatsu
2022-02-16 1:34 ` AKASHI Takahiro
2022-02-16 1:46 ` Masami Hiramatsu
2022-02-16 15:26 ` Simon Glass
2022-02-16 15:32 ` Heinrich Schuchardt
2022-02-16 15:46 ` Tom Rini
2022-02-16 17:45 ` Heinrich Schuchardt
2022-02-16 17:51 ` Tom Rini
2022-02-16 17:52 ` Simon Glass
2022-02-17 1:11 ` Masami Hiramatsu
2022-02-17 17:55 ` Simon Glass
2022-02-18 2:16 ` Masami Hiramatsu
2022-02-18 13:48 ` Heinrich Schuchardt
2022-02-19 1:15 ` AKASHI Takahiro
2022-03-12 2:24 ` Simon Glass
2022-03-13 14:00 ` Masami Hiramatsu
2022-03-13 22:23 ` Simon Glass
2022-03-14 1:08 ` AKASHI Takahiro
2022-03-14 2:15 ` Simon Glass
2022-03-14 2:42 ` AKASHI Takahiro [this message]
2022-03-14 6:45 ` Simon Glass
2022-03-14 7:35 ` Masami Hiramatsu
2022-03-14 8:03 ` AKASHI Takahiro
2022-03-14 18:24 ` Simon Glass
2022-03-15 0:40 ` Masami Hiramatsu
2022-03-15 5:02 ` AKASHI Takahiro
2022-03-15 5:04 ` Simon Glass
2022-03-15 8:36 ` Masami Hiramatsu
2022-03-16 3:13 ` Simon Glass
2022-03-16 3:26 ` AKASHI Takahiro
2022-03-16 6:09 ` Masami Hiramatsu
2022-03-16 19:23 ` Simon Glass
2022-03-16 20:41 ` Heinrich Schuchardt
2022-03-17 0:29 ` Simon Glass
2022-02-18 13:59 ` Heinrich Schuchardt
2022-02-18 14:11 ` Tom Rini
2022-02-19 4:18 ` Masami Hiramatsu
2022-02-18 16:50 ` Tom Rini
2022-02-16 17:46 ` Simon Glass
2022-02-26 18:37 ` [PATCH v4 2/2] efi_loader: Reset system after CapsuleUpdate " Simon Glass
2022-02-28 4:19 ` Masami Hiramatsu
2022-02-28 7:53 ` Masami Hiramatsu
2022-03-01 14:58 ` Simon Glass
2022-03-02 1:58 ` 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=20220314024258.GC37492@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