From: "Edgar E. Iglesias" <edgar.iglesias@xilinx.com>
To: Peter Maydell <peter.maydell@linaro.org>
Cc: figlesia@xilinx.com, Stefano Stabellini <sstabellini@kernel.org>,
Sai Pavan Boddu <sai.pavan.boddu@xilinx.com>,
Francisco Iglesias <frasse.iglesias@gmail.com>,
Alistair Francis <alistair@alistair23.me>,
Richard Henderson <richard.henderson@linaro.org>,
QEMU Developers <qemu-devel@nongnu.org>,
KONRAD Frederic <frederic.konrad@adacore.com>,
qemu-arm <qemu-arm@nongnu.org>,
"Edgar E. Iglesias" <edgar.iglesias@gmail.com>
Subject: Re: [Qemu-devel] [PATCH v1 09/12] target-arm: powerctl: Enable HVC when starting CPUs to EL2
Date: Mon, 8 Oct 2018 21:56:33 +0200 [thread overview]
Message-ID: <20181008195633.GC4229@toto> (raw)
In-Reply-To: <CAFEAcA88T=VWXq5aSY2srgbo8PF7tLFJn-28nNpt3=ZGh5xM1g@mail.gmail.com>
On Mon, Oct 08, 2018 at 01:41:36PM +0100, Peter Maydell wrote:
> On 3 October 2018 at 16:07, Edgar E. Iglesias <edgar.iglesias@gmail.com> wrote:
> > From: "Edgar E. Iglesias" <edgar.iglesias@xilinx.com>
> >
> > When QEMU provides the equivalent of the EL3 firmware, we
> > need to enable HVCs in scr_el3 when turning on CPUs that
> > target EL2.
> >
> > Signed-off-by: Edgar E. Iglesias <edgar.iglesias@xilinx.com>
> > ---
> > target/arm/arm-powerctl.c | 11 +++++++++++
> > 1 file changed, 11 insertions(+)
> >
> > diff --git a/target/arm/arm-powerctl.c b/target/arm/arm-powerctl.c
> > index ce55eeb..54f2974 100644
> > --- a/target/arm/arm-powerctl.c
> > +++ b/target/arm/arm-powerctl.c
> > @@ -63,6 +63,7 @@ static void arm_set_cpu_on_async_work(CPUState *target_cpu_state,
> > struct CpuOnInfo *info = (struct CpuOnInfo *) data.host_ptr;
> >
> > /* Initialize the cpu we are turning on */
> > + qemu_log("CPU%d reset\n", target_cpu_state->cpu_index);
>
> qemu_log logging should always be masked to a particular
> log kind (either via qemu_log_mask() or by explicit check on
> the log level). If this was accidentally left-in debug, you could
> just drop it :-)
Hah, yes this is an accidental leftover...
>
> > cpu_reset(target_cpu_state);
> > target_cpu_state->halted = 0;
> >
> > @@ -103,6 +104,16 @@ static void arm_set_cpu_on_async_work(CPUState *target_cpu_state,
> > } else {
> > /* Processor is not in secure mode */
> > target_cpu->env.cp15.scr_el3 |= SCR_NS;
> > +
> > + /*
> > + * If QEMU is providing the equivalent of EL3 firmware, then we need
> > + * to make sure a CPU targeting EL2 comes out of reset with a
> > + * functional HVC insn.
> > + */
> > + if (arm_feature(&target_cpu->env, ARM_FEATURE_EL3)
> > + && info->target_el == 2) {
> > + target_cpu->env.cp15.scr_el3 |= SCR_HCE;
> > + }
> > }
>
> Otherwise
> Reviewed-by: Peter Maydell <peter.maydell@linaro.org>
> This is definitely required for PSCI and I think it makes sense
> in other cases that end up in this powerctl code with EL3 set.
Thanks,
Edgar
WARNING: multiple messages have this Message-ID (diff)
From: "Edgar E. Iglesias" <edgar.iglesias@xilinx.com>
To: Peter Maydell <peter.maydell@linaro.org>
Cc: "Edgar E. Iglesias" <edgar.iglesias@gmail.com>,
QEMU Developers <qemu-devel@nongnu.org>,
qemu-arm <qemu-arm@nongnu.org>,
Richard Henderson <richard.henderson@linaro.org>,
KONRAD Frederic <frederic.konrad@adacore.com>,
Alistair Francis <alistair@alistair23.me>,
Francisco Iglesias <frasse.iglesias@gmail.com>,
figlesia@xilinx.com, Stefano Stabellini <sstabellini@kernel.org>,
Sai Pavan Boddu <sai.pavan.boddu@xilinx.com>
Subject: Re: [Qemu-devel] [PATCH v1 09/12] target-arm: powerctl: Enable HVC when starting CPUs to EL2
Date: Mon, 8 Oct 2018 21:56:33 +0200 [thread overview]
Message-ID: <20181008195633.GC4229@toto> (raw)
In-Reply-To: <CAFEAcA88T=VWXq5aSY2srgbo8PF7tLFJn-28nNpt3=ZGh5xM1g@mail.gmail.com>
On Mon, Oct 08, 2018 at 01:41:36PM +0100, Peter Maydell wrote:
> On 3 October 2018 at 16:07, Edgar E. Iglesias <edgar.iglesias@gmail.com> wrote:
> > From: "Edgar E. Iglesias" <edgar.iglesias@xilinx.com>
> >
> > When QEMU provides the equivalent of the EL3 firmware, we
> > need to enable HVCs in scr_el3 when turning on CPUs that
> > target EL2.
> >
> > Signed-off-by: Edgar E. Iglesias <edgar.iglesias@xilinx.com>
> > ---
> > target/arm/arm-powerctl.c | 11 +++++++++++
> > 1 file changed, 11 insertions(+)
> >
> > diff --git a/target/arm/arm-powerctl.c b/target/arm/arm-powerctl.c
> > index ce55eeb..54f2974 100644
> > --- a/target/arm/arm-powerctl.c
> > +++ b/target/arm/arm-powerctl.c
> > @@ -63,6 +63,7 @@ static void arm_set_cpu_on_async_work(CPUState *target_cpu_state,
> > struct CpuOnInfo *info = (struct CpuOnInfo *) data.host_ptr;
> >
> > /* Initialize the cpu we are turning on */
> > + qemu_log("CPU%d reset\n", target_cpu_state->cpu_index);
>
> qemu_log logging should always be masked to a particular
> log kind (either via qemu_log_mask() or by explicit check on
> the log level). If this was accidentally left-in debug, you could
> just drop it :-)
Hah, yes this is an accidental leftover...
>
> > cpu_reset(target_cpu_state);
> > target_cpu_state->halted = 0;
> >
> > @@ -103,6 +104,16 @@ static void arm_set_cpu_on_async_work(CPUState *target_cpu_state,
> > } else {
> > /* Processor is not in secure mode */
> > target_cpu->env.cp15.scr_el3 |= SCR_NS;
> > +
> > + /*
> > + * If QEMU is providing the equivalent of EL3 firmware, then we need
> > + * to make sure a CPU targeting EL2 comes out of reset with a
> > + * functional HVC insn.
> > + */
> > + if (arm_feature(&target_cpu->env, ARM_FEATURE_EL3)
> > + && info->target_el == 2) {
> > + target_cpu->env.cp15.scr_el3 |= SCR_HCE;
> > + }
> > }
>
> Otherwise
> Reviewed-by: Peter Maydell <peter.maydell@linaro.org>
> This is definitely required for PSCI and I think it makes sense
> in other cases that end up in this powerctl code with EL3 set.
Thanks,
Edgar
next prev parent reply other threads:[~2018-10-08 19:59 UTC|newest]
Thread overview: 82+ messages / expand[flat|nested] mbox.gz Atom feed top
2018-10-03 15:07 [Qemu-devel] [PATCH v1 00/12] arm: Add first models of Xilinx Versal SoC Edgar E. Iglesias
2018-10-03 15:07 ` Edgar E. Iglesias
2018-10-03 15:07 ` [Qemu-arm] [PATCH v1 01/12] net: cadence_gem: Disable TSU feature bit Edgar E. Iglesias
2018-10-03 15:07 ` [Qemu-devel] " Edgar E. Iglesias
2018-10-04 17:36 ` [Qemu-arm] " Alistair Francis
2018-10-04 17:36 ` Alistair Francis
2018-10-03 15:07 ` [Qemu-arm] [PATCH v1 02/12] net: cadence_gem: Announce availability of priority queues Edgar E. Iglesias
2018-10-03 15:07 ` [Qemu-devel] " Edgar E. Iglesias
2018-10-04 22:14 ` [Qemu-arm] " Alistair
2018-10-04 22:14 ` Alistair
2018-10-03 15:07 ` [Qemu-devel] [PATCH v1 03/12] net: cadence_gem: Use uint32_t for 32bit descriptor words Edgar E. Iglesias
2018-10-03 15:07 ` Edgar E. Iglesias
2018-10-04 22:16 ` [Qemu-arm] " Alistair
2018-10-04 22:16 ` Alistair
2018-10-05 23:09 ` [Qemu-arm] " Philippe Mathieu-Daudé
2018-10-05 23:09 ` Philippe Mathieu-Daudé
2018-10-03 15:07 ` [Qemu-arm] [PATCH v1 04/12] net: cadence_gem: Add macro with max number of " Edgar E. Iglesias
2018-10-03 15:07 ` [Qemu-devel] " Edgar E. Iglesias
2018-10-04 22:16 ` Alistair
2018-10-05 23:10 ` Philippe Mathieu-Daudé
2018-10-03 15:07 ` [Qemu-arm] [PATCH v1 05/12] net: cadence_gem: Add support for extended descriptors Edgar E. Iglesias
2018-10-03 15:07 ` [Qemu-devel] " Edgar E. Iglesias
2018-10-04 22:29 ` [Qemu-arm] " Alistair
2018-10-04 22:29 ` Alistair
2018-10-03 15:07 ` [Qemu-arm] [PATCH v1 06/12] net: cadence_gem: Add support for selecting the DMA MemoryRegion Edgar E. Iglesias
2018-10-03 15:07 ` [Qemu-devel] " Edgar E. Iglesias
2018-10-05 22:35 ` [Qemu-arm] " Alistair
2018-10-05 22:35 ` Alistair
2018-10-05 23:14 ` [Qemu-arm] " Philippe Mathieu-Daudé
2018-10-05 23:14 ` Philippe Mathieu-Daudé
2018-10-08 12:26 ` [Qemu-arm] " Peter Maydell
2018-10-08 12:26 ` Peter Maydell
2018-10-08 12:24 ` [Qemu-arm] " Peter Maydell
2018-10-08 12:24 ` [Qemu-devel] " Peter Maydell
2018-10-08 19:54 ` [Qemu-arm] " Edgar E. Iglesias
2018-10-08 19:54 ` [Qemu-devel] " Edgar E. Iglesias
2018-10-08 12:30 ` [Qemu-arm] " Peter Maydell
2018-10-08 12:30 ` [Qemu-devel] " Peter Maydell
2018-10-08 19:55 ` [Qemu-arm] " Edgar E. Iglesias
2018-10-08 19:55 ` [Qemu-devel] " Edgar E. Iglesias
2018-10-03 15:07 ` [Qemu-arm] [PATCH v1 07/12] net: cadence_gem: Implement support for 64bit descriptor addresses Edgar E. Iglesias
2018-10-03 15:07 ` [Qemu-devel] " Edgar E. Iglesias
2018-10-05 23:12 ` [Qemu-arm] " Alistair
2018-10-05 23:12 ` Alistair
2018-10-03 15:07 ` [Qemu-arm] [PATCH v1 08/12] net: cadence_gem: Announce 64bit addressing support Edgar E. Iglesias
2018-10-03 15:07 ` [Qemu-devel] " Edgar E. Iglesias
2018-10-04 22:32 ` [Qemu-arm] " Alistair
2018-10-04 22:32 ` Alistair
2018-10-03 15:07 ` [Qemu-devel] [PATCH v1 09/12] target-arm: powerctl: Enable HVC when starting CPUs to EL2 Edgar E. Iglesias
2018-10-03 15:07 ` Edgar E. Iglesias
2018-10-08 12:41 ` Peter Maydell
2018-10-08 12:41 ` Peter Maydell
2018-10-08 19:56 ` Edgar E. Iglesias [this message]
2018-10-08 19:56 ` Edgar E. Iglesias
2018-10-03 15:07 ` [Qemu-arm] [PATCH v1 10/12] target/arm: Add the Cortex-A72 Edgar E. Iglesias
2018-10-03 15:07 ` [Qemu-devel] " Edgar E. Iglesias
2018-10-08 13:10 ` [Qemu-arm] " Peter Maydell
2018-10-08 13:10 ` [Qemu-devel] " Peter Maydell
2018-10-08 21:34 ` [Qemu-arm] " Edgar E. Iglesias
2018-10-08 21:34 ` [Qemu-devel] " Edgar E. Iglesias
2018-10-09 9:30 ` [Qemu-arm] " Peter Maydell
2018-10-09 9:30 ` [Qemu-devel] " Peter Maydell
2018-10-09 13:17 ` Edgar E. Iglesias
2018-10-09 13:17 ` Edgar E. Iglesias
2018-10-09 13:40 ` Laurent Desnogues
2018-10-09 13:40 ` Laurent Desnogues
2018-10-09 14:56 ` [Qemu-arm] " Edgar E. Iglesias
2018-10-09 14:56 ` Edgar E. Iglesias
2018-10-03 15:07 ` [Qemu-devel] [PATCH v1 11/12] hw/arm: versal: Add a model of Xilinx Versal SoC Edgar E. Iglesias
2018-10-03 15:07 ` Edgar E. Iglesias
2018-10-05 23:21 ` [Qemu-arm] " Philippe Mathieu-Daudé
2018-10-05 23:21 ` Philippe Mathieu-Daudé
2018-10-08 13:19 ` [Qemu-arm] " Peter Maydell
2018-10-08 13:19 ` [Qemu-devel] " Peter Maydell
2018-10-08 22:25 ` [Qemu-arm] " Edgar E. Iglesias
2018-10-08 22:25 ` [Qemu-devel] " Edgar E. Iglesias
2018-10-03 15:07 ` [Qemu-devel] [PATCH v1 12/12] hw/arm: versal: Add a virtual Xilinx Versal board Edgar E. Iglesias
2018-10-03 15:07 ` Edgar E. Iglesias
2018-10-08 14:08 ` [Qemu-devel] [PATCH v1 00/12] arm: Add first models of Xilinx Versal SoC Peter Maydell
2018-10-08 14:08 ` Peter Maydell
2018-10-09 12:57 ` [Qemu-arm] " Edgar E. Iglesias
2018-10-09 12:57 ` [Qemu-devel] " Edgar E. Iglesias
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=20181008195633.GC4229@toto \
--to=edgar.iglesias@xilinx.com \
--cc=alistair@alistair23.me \
--cc=edgar.iglesias@gmail.com \
--cc=figlesia@xilinx.com \
--cc=frasse.iglesias@gmail.com \
--cc=frederic.konrad@adacore.com \
--cc=peter.maydell@linaro.org \
--cc=qemu-arm@nongnu.org \
--cc=qemu-devel@nongnu.org \
--cc=richard.henderson@linaro.org \
--cc=sai.pavan.boddu@xilinx.com \
--cc=sstabellini@kernel.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.