From: Leif Lindholm <leif@nuviainc.com>
To: Peter Maydell <peter.maydell@linaro.org>
Cc: "Graeme Gregory" <graeme@nuviainc.com>,
"François Ozog" <francois.ozog@linaro.org>,
"Maxim Uvarov" <maxim.uvarov@linaro.org>,
"Radoslaw Biernacki" <rad@semihalf.com>,
"QEMU Developers" <qemu-devel@nongnu.org>,
tf-a@lists.trustedfirmware.org, qemu-arm <qemu-arm@nongnu.org>,
ard.biesheuvel@arm.com
Subject: Re: [RFC PATCH] hw/arm/virt: use sbsa-ec for reboot and poweroff in secure mode
Date: Thu, 29 Oct 2020 11:19:39 +0000 [thread overview]
Message-ID: <20201029111939.GI1664@vanye> (raw)
In-Reply-To: <CAFEAcA8_1w=4qdE_AJxUP-uPoFL=Fsg9hy62Lw7bLDjKzL9Vvg@mail.gmail.com>
Hi Peter, (+Ard)
Graeme is on holiday this week, and I would like his input.
On Wed, Oct 28, 2020 at 20:31:41 +0000, Peter Maydell wrote:
> On Wed, 28 Oct 2020 at 08:59, Maxim Uvarov <maxim.uvarov@linaro.org> wrote:
> >
> > If we're emulating EL3 then the EL3 guest firmware is responsible for
> > providing the PSCI ABI, including reboot, core power down, etc.
> > sbsa-ref machine has an embedded controller to do reboot, poweroff. Machine
> > virt,secure=on can reuse this code to do reboot inside ATF.
> >
> > Signed-off-by: Maxim Uvarov <maxim.uvarov@linaro.org>
>
> (I've cc'd the sbsa-ref machine maintainers.)
>
> > ---
> > Hello,
> >
> > This patch implements reboot for the secure machine inside ATF firmware. I.e. current qemu
> > patch should be used with [1] ATF patch. It looks like that Embedded Controller qemu
> > driver (sbsa-ec) can be common and widely used for other emulated machines. While if
> > there are plans to extend sbsa-ec then we might find some other solution.
> >
> > So for the long term it looks like machine virt was used as an initial playground for secure
> > firmware. While the original intent was a runner for kvm guests. Relation between kvm guest
> > and firmware is not very clear now. If everyone agree it might be good solution to move secure
> > firmware things from virt machine to bsa-ref and make this machine reference for secure boot,
> > firmware updates etc.
> >
> > [1] https://github.com/muvarov/arm-trusted-firmware/commit/6d3339a0081f6f2b45d99bd7e1b67bcbce8f4e0e
>
>
> Thanks for this patch. It is definitely a missing
> bit of functionality that we intend to allow virt to run
> EL3 guest code but don't provide a trigger-shutdown/reboot
> device that works in that setup.
>
> I think the key question here is whether we want to implement
> this by:
> (1) providing the sbsa-ec device in the virt board
> (2) some other mechanism, eg a secure-only pl061 GPIO
> some of whose output pins can trigger shutdown or reboot
>
> The sbsa-ec device has the advantage of doing the
> shutdown/reboot functionality at the moment. The question
> I have for the sbsa-ref board folks is: what are your future
> plans for that device? If the idea is that it's going to end
> up stuffed full of sbsa-ref specific functionality that we
> wouldn't want to try to expose in the virt board, then we
> should probably go with the pl061 approach instead. But if
> it's not likely to grow new functionality then it might be
> simpler...
>
> A couple of notes on this patch if we do go down that route:
> * we would need to arrange to only add the new device for
> new versions of the virt board (that is, the "virt-5.0"
> machine must not have this device because it must look
> like the version of "virt" that shipped with QEMU 5.0)
> * the device needs to be mapped into the Secure address
> space only, because Secure firmware wants control over
> it and doesn't want to allow NS code to reboot the system
> without asking the firmware
> * it would need to be described in the DTB (and maybe also
> ACPI tables? I forget whether we need to describe Secure-only
> devices there)
Would it? Could it be something that goes into the virt spec?
We don't consume ACPI in firmware (but TF-A will of course have access
to the DT regardless).
For sbsa-ref, I would ideally like to move to emulating communicating
with an SCP over time, as opposed to TF-A directly controlling the EC.
I am unsure if that leaves much opportunity for code sharing with
virt.
Ard: is this a config supported/able by ArmVirtPkg?
Best Regards,
Leif
> But let's find out if that's the route we want to take first.
>
> thanks
> -- PMM
next prev parent reply other threads:[~2020-10-29 11:20 UTC|newest]
Thread overview: 8+ messages / expand[flat|nested] mbox.gz Atom feed top
2020-10-28 8:59 [RFC PATCH] hw/arm/virt: use sbsa-ec for reboot and poweroff in secure mode Maxim Uvarov
2020-10-28 20:31 ` Peter Maydell
2020-10-29 11:19 ` Leif Lindholm [this message]
2020-10-29 11:26 ` Peter Maydell
2020-10-29 13:51 ` François Ozog
2020-11-02 13:53 ` Graeme Gregory
2020-11-05 7:47 ` Maxim Uvarov
2020-11-05 10:50 ` Peter Maydell
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=20201029111939.GI1664@vanye \
--to=leif@nuviainc.com \
--cc=ard.biesheuvel@arm.com \
--cc=francois.ozog@linaro.org \
--cc=graeme@nuviainc.com \
--cc=maxim.uvarov@linaro.org \
--cc=peter.maydell@linaro.org \
--cc=qemu-arm@nongnu.org \
--cc=qemu-devel@nongnu.org \
--cc=rad@semihalf.com \
--cc=tf-a@lists.trustedfirmware.org \
/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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.