From: Alexander Graf <agraf@csgraf.de>
To: Peter Maydell <peter.maydell@linaro.org>,
qemu-arm@nongnu.org, qemu-devel@nongnu.org
Cc: "Eduardo Habkost" <eduardo@habkost.net>,
"Beniamino Galvani" <b.galvani@gmail.com>,
"Alistair Francis" <alistair@alistair23.me>,
"Rob Herring" <robh@kernel.org>,
"Andrew Jeffery" <andrew@aj.id.au>,
"Andre Przywara" <andre.przywara@arm.com>,
"Tyrone Ting" <kfting@nuvoton.com>,
"Philippe Mathieu-Daudé" <f4bug@amsat.org>,
"Jean-Christophe Dubois" <jcd@tribudubois.net>,
"Yanan Wang" <wangyanan55@huawei.com>,
"Igor Mitsyanko" <i.mitsyanko@gmail.com>,
"Niek Linnenbank" <nieklinnenbank@gmail.com>,
"Stefano Stabellini" <sstabellini@kernel.org>,
"Cédric Le Goater" <clg@kaod.org>,
"Marcel Apfelbaum" <marcel.apfelbaum@gmail.com>,
"Havard Skinnemoen" <hskinnemoen@google.com>,
"Andrey Smirnov" <andrew.smirnov@gmail.com>,
"Michal Simek" <michal.simek@xilinx.com>,
"Joel Stanley" <joel@jms.id.au>
Subject: Re: [PATCH 07/16] hw/arm/versal: Let boot.c handle PSCI enablement
Date: Mon, 7 Feb 2022 15:26:11 +0100 [thread overview]
Message-ID: <76af11e5-8727-86da-cd09-d15002dc0427@csgraf.de> (raw)
In-Reply-To: <20220127154639.2090164-8-peter.maydell@linaro.org>
On 27.01.22 16:46, Peter Maydell wrote:
> Instead of setting the CPU psci-conduit and start-powered-off
> properties in the xlnx-versal-virt board code, set the arm_boot_info
> psci_conduit field so that the boot.c code can do it.
>
> This will fix a corner case where we were incorrectly enabling PSCI
> emulation when booting guest code into EL3 because it was an ELF file
> passed to -kernel. (EL3 guest code started via -bios, -pflash, or
> the generic loader was already being run with PSCI emulation
> disabled.)
>
> Note that EL3 guest code has no way to turn on the secondary CPUs
> because there's no emulated power controller, but this was already
> true for EL3 guest code run via -bios, -pflash, or the generic
> loader.
>
> Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
Let's try with the same CCs here too - Versal uses the same mechanism as
ZynqMP :)
Alex
> ---
> include/hw/arm/xlnx-versal.h | 1 -
> hw/arm/xlnx-versal-virt.c | 6 ++++--
> hw/arm/xlnx-versal.c | 5 +----
> 3 files changed, 5 insertions(+), 7 deletions(-)
>
> diff --git a/include/hw/arm/xlnx-versal.h b/include/hw/arm/xlnx-versal.h
> index 895ba12c61e..2de487564e4 100644
> --- a/include/hw/arm/xlnx-versal.h
> +++ b/include/hw/arm/xlnx-versal.h
> @@ -89,7 +89,6 @@ struct Versal {
>
> struct {
> MemoryRegion *mr_ddr;
> - uint32_t psci_conduit;
> } cfg;
> };
>
> diff --git a/hw/arm/xlnx-versal-virt.c b/hw/arm/xlnx-versal-virt.c
> index 0c5edc898e1..1b25342501b 100644
> --- a/hw/arm/xlnx-versal-virt.c
> +++ b/hw/arm/xlnx-versal-virt.c
> @@ -626,6 +626,9 @@ static void versal_virt_init(MachineState *machine)
> * When loading an OS, we turn on QEMU's PSCI implementation with SMC
> * as the PSCI conduit. When there's no -kernel, we assume the user
> * provides EL3 firmware to handle PSCI.
> + *
> + * Even if the user provides a kernel filename, arm_load_kernel()
> + * may suppress PSCI if it's going to boot that guest code at EL3.
> */
> if (machine->kernel_filename) {
> psci_conduit = QEMU_PSCI_CONDUIT_SMC;
> @@ -635,8 +638,6 @@ static void versal_virt_init(MachineState *machine)
> TYPE_XLNX_VERSAL);
> object_property_set_link(OBJECT(&s->soc), "ddr", OBJECT(machine->ram),
> &error_abort);
> - object_property_set_int(OBJECT(&s->soc), "psci-conduit", psci_conduit,
> - &error_abort);
> sysbus_realize(SYS_BUS_DEVICE(&s->soc), &error_fatal);
>
> fdt_create(s);
> @@ -677,6 +678,7 @@ static void versal_virt_init(MachineState *machine)
> s->binfo.loader_start = 0x0;
> s->binfo.get_dtb = versal_virt_get_dtb;
> s->binfo.modify_dtb = versal_virt_modify_dtb;
> + s->binfo.psci_conduit = psci_conduit;
> if (machine->kernel_filename) {
> arm_load_kernel(&s->soc.fpd.apu.cpu[0], machine, &s->binfo);
> } else {
> diff --git a/hw/arm/xlnx-versal.c b/hw/arm/xlnx-versal.c
> index b2705b6925e..458ba33815f 100644
> --- a/hw/arm/xlnx-versal.c
> +++ b/hw/arm/xlnx-versal.c
> @@ -35,10 +35,8 @@ static void versal_create_apu_cpus(Versal *s)
> object_initialize_child(OBJECT(s), "apu-cpu[*]", &s->fpd.apu.cpu[i],
> XLNX_VERSAL_ACPU_TYPE);
> obj = OBJECT(&s->fpd.apu.cpu[i]);
> - object_property_set_int(obj, "psci-conduit", s->cfg.psci_conduit,
> - &error_abort);
> if (i) {
> - /* Secondary CPUs start in PSCI powered-down state */
> + /* Secondary CPUs start in powered-down state */
> object_property_set_bool(obj, "start-powered-off", true,
> &error_abort);
> }
> @@ -481,7 +479,6 @@ static void versal_init(Object *obj)
> static Property versal_properties[] = {
> DEFINE_PROP_LINK("ddr", Versal, cfg.mr_ddr, TYPE_MEMORY_REGION,
> MemoryRegion *),
> - DEFINE_PROP_UINT32("psci-conduit", Versal, cfg.psci_conduit, 0),
> DEFINE_PROP_END_OF_LIST()
> };
>
next prev parent reply other threads:[~2022-02-07 14:58 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 [this message]
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
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=76af11e5-8727-86da-cd09-d15002dc0427@csgraf.de \
--to=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=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=marcel.apfelbaum@gmail.com \
--cc=michal.simek@xilinx.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=sstabellini@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).