From: Richard Henderson <richard.henderson@linaro.org>
To: Peter Maydell <peter.maydell@linaro.org>,
qemu-arm@nongnu.org, qemu-devel@nongnu.org
Cc: "Eduardo Habkost" <eduardo@habkost.net>,
"Rob Herring" <robh@kernel.org>,
"Andrew Jeffery" <andrew@aj.id.au>,
"Andre Przywara" <andre.przywara@arm.com>,
"Alistair Francis" <alistair@alistair23.me>,
"Philippe Mathieu-Daudé" <f4bug@amsat.org>,
"Jean-Christophe Dubois" <jcd@tribudubois.net>,
"Beniamino Galvani" <b.galvani@gmail.com>,
"Tyrone Ting" <kfting@nuvoton.com>,
"Niek Linnenbank" <nieklinnenbank@gmail.com>,
"Alexander Graf" <agraf@csgraf.de>,
"Igor Mitsyanko" <i.mitsyanko@gmail.com>,
"Cédric Le Goater" <clg@kaod.org>,
"Havard Skinnemoen" <hskinnemoen@google.com>,
"Edgar E. Iglesias" <edgar.iglesias@gmail.com>,
"Yanan Wang" <wangyanan55@huawei.com>,
"Andrey Smirnov" <andrew.smirnov@gmail.com>,
"Joel Stanley" <joel@jms.id.au>
Subject: Re: [PATCH 11/16] hw/arm/highbank: Drop use of secure_board_setup
Date: Mon, 31 Jan 2022 19:03:31 +1100 [thread overview]
Message-ID: <34e6de6c-d80d-b438-0e33-c9b50191a88e@linaro.org> (raw)
In-Reply-To: <20220127154639.2090164-12-peter.maydell@linaro.org>
On 1/28/22 02:46, Peter Maydell wrote:
> Guest code on highbank may make non-PSCI SMC calls in order to
> enable/disable the L2x0 cache controller (see the Linux kernel's
> arch/arm/mach-highbank/highbank.c highbank_l2c310_write_sec()
> function). The ABI for this is documented in kernel commit
> 8e56130dcb as being borrowed from the OMAP44xx ROM. The OMAP44xx TRM
> documents this function ID as having no return value and potentially
> trashing all guest registers except SP and PC. For QEMU's purposes
> (where our L2x0 model is a stub and enabling or disabling it doesn't
> affect the guest behaviour) a simple "do nothing" SMC is fine.
>
> We currently implement this NOP behaviour using a little bit of
> Secure code we run before jumping to the guest kernel, which is
> written by arm_write_secure_board_setup_dummy_smc(). The code sets
> up a set of Secure vectors where the SMC entry point returns without
> doing anything.
>
> Now that the PSCI SMC emulation handles all SMC calls (setting r0 to
> an error code if the input r0 function identifier is not recognized),
> we can use that default behaviour as sufficient for the highbank
> cache controller call. (Because the guest code assumes r0 has no
> interesting value on exit it doesn't matter that we set it to the
> error code). We can therefore delete the highbank board code that
> sets secure_board_setup to true and writes the secure-code bootstub.
>
> (Note that because the OMAP44xx ABI puts function-identifiers in
> r12 and PSCI uses r0, we only avoid a clash because Linux's code
> happens to put the function-identifier in both registers. But this
> is true also when the kernel is running on real firmware that
> implements both ABIs as far as I can see.)
>
> This change fixes in passing booting on the 'midway' board model,
> which has been completely broken since we added support for Hyp
> mode to the Cortex-A15 CPU. When we did that boot.c was made to
> start running the guest code in Hyp mode; this includes the
> board_setup hook, which instantly UNDEFs because the NSACR is
> not accessible from Hyp. (Put another way, we never made the
> secure_board_setup hook support cope with Hyp mode.)
>
> Signed-off-by: Peter Maydell<peter.maydell@linaro.org>
> ---
> hw/arm/highbank.c | 8 --------
> 1 file changed, 8 deletions(-)
Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
r~
next prev parent reply other threads:[~2022-01-31 8:17 UTC|newest]
Thread overview: 50+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-01-27 15:46 [PATCH 00/16] arm: Fix handling of unrecognized functions in PSCI emulation Peter Maydell
2022-01-27 15:46 ` [PATCH 01/16] target/arm: make psci-conduit settable after realize Peter Maydell
2022-01-30 21:34 ` Richard Henderson
2022-01-27 15:46 ` [PATCH 02/16] cpu.c: Make start-powered-off " Peter Maydell
2022-01-30 21:46 ` Richard Henderson
2022-01-27 15:46 ` [PATCH 03/16] hw/arm/boot: Support setting psci-conduit based on guest EL Peter Maydell
2022-01-30 22:15 ` Richard Henderson
2022-01-27 15:46 ` [PATCH 04/16] hw/arm: imx: Don't enable PSCI conduit when booting guest in EL3 Peter Maydell
2022-01-31 6:43 ` Richard Henderson
2022-01-27 15:46 ` [PATCH 05/16] hw/arm: allwinner: " Peter Maydell
2022-01-30 22:35 ` Niek Linnenbank
2022-01-31 10:52 ` Andre Przywara
2022-02-02 21:11 ` Samuel Holland
2022-01-27 15:46 ` [PATCH 06/16] hw/arm/xlnx-zcu102: " Peter Maydell
2022-01-31 6:49 ` Richard Henderson
2022-02-07 14:21 ` Alexander Graf
2022-02-07 15:22 ` Peter Maydell
2022-02-07 15:33 ` Alexander Graf
2022-02-07 15:52 ` Edgar E. Iglesias
2022-02-07 15:59 ` Alexander Graf
2022-02-07 16:06 ` Philippe Mathieu-Daudé via
2022-02-07 16:24 ` Alexander Graf
2022-02-07 18:13 ` Edgar E. Iglesias
2022-02-07 18:59 ` Philippe Mathieu-Daudé via
2022-02-07 23:20 ` Alexander Graf
2022-01-27 15:46 ` [PATCH 07/16] hw/arm/versal: Let boot.c handle PSCI enablement Peter Maydell
2022-01-31 6:50 ` Richard Henderson
2022-02-07 14:26 ` Alexander Graf
2022-01-27 15:46 ` [PATCH 08/16] hw/arm/virt: " Peter Maydell
2022-01-31 6:52 ` Richard Henderson
2022-01-27 15:46 ` [PATCH 09/16] hw/arm: highbank: For EL3 guests, don't enable PSCI, start all cores Peter Maydell
2022-01-31 6:55 ` Richard Henderson
2022-01-27 15:46 ` [PATCH 10/16] Revert "Revert "arm: tcg: Adhere to SMCCC 1.3 section 5.2"" Peter Maydell
2022-01-31 6:57 ` Richard Henderson
2022-02-07 14:29 ` Alexander Graf
2022-01-27 15:46 ` [PATCH 11/16] hw/arm/highbank: Drop use of secure_board_setup Peter Maydell
2022-01-31 8:03 ` Richard Henderson [this message]
2022-01-27 15:46 ` [PATCH 12/16] hw/arm/boot: Prevent setting both psci_conduit and secure_board_setup Peter Maydell
2022-01-31 8:04 ` Richard Henderson
2022-01-27 15:46 ` [PATCH 13/16] hw/arm/boot: Don't write secondary boot stub if using PSCI Peter Maydell
2022-01-31 8:06 ` Richard Henderson
2022-01-27 15:46 ` [PATCH 14/16] hw/arm/highbank: Drop unused secondary boot stub code Peter Maydell
2022-01-31 8:08 ` Richard Henderson
2022-01-27 15:46 ` [PATCH 15/16] hw/arm/boot: Drop nb_cpus field from arm_boot_info Peter Maydell
2022-01-31 8:09 ` Richard Henderson
2022-01-27 15:46 ` [PATCH 16/16] hw/arm/boot: Drop existing dtb /psci node rather than retaining it Peter Maydell
2022-01-31 8:21 ` Richard Henderson
2022-01-30 14:03 ` [PATCH 00/16] arm: Fix handling of unrecognized functions in PSCI emulation Edgar E. Iglesias
2022-02-01 8:32 ` Cédric Le Goater
2022-02-07 11:19 ` 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=34e6de6c-d80d-b438-0e33-c9b50191a88e@linaro.org \
--to=richard.henderson@linaro.org \
--cc=agraf@csgraf.de \
--cc=alistair@alistair23.me \
--cc=andre.przywara@arm.com \
--cc=andrew.smirnov@gmail.com \
--cc=andrew@aj.id.au \
--cc=b.galvani@gmail.com \
--cc=clg@kaod.org \
--cc=edgar.iglesias@gmail.com \
--cc=eduardo@habkost.net \
--cc=f4bug@amsat.org \
--cc=hskinnemoen@google.com \
--cc=i.mitsyanko@gmail.com \
--cc=jcd@tribudubois.net \
--cc=joel@jms.id.au \
--cc=kfting@nuvoton.com \
--cc=nieklinnenbank@gmail.com \
--cc=peter.maydell@linaro.org \
--cc=qemu-arm@nongnu.org \
--cc=qemu-devel@nongnu.org \
--cc=robh@kernel.org \
--cc=wangyanan55@huawei.com \
/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).