[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-arm] [PATCH v3 15/22] target/arm: Add ARM_FEATURE_V7VE for v7
From: |
Aaron Lindsay |
Subject: |
Re: [Qemu-arm] [PATCH v3 15/22] target/arm: Add ARM_FEATURE_V7VE for v7 Virtualization Extensions |
Date: |
Tue, 17 Apr 2018 10:23:18 -0400 |
User-agent: |
Mutt/1.5.23 (2014-03-12) |
On Apr 12 18:17, Peter Maydell wrote:
> On 16 March 2018 at 20:31, Aaron Lindsay <address@hidden> wrote:
> > Signed-off-by: Aaron Lindsay <address@hidden>
> > ---
> > target/arm/cpu.c | 3 +++
> > target/arm/cpu.h | 1 +
> > 2 files changed, 4 insertions(+)
> >
> > diff --git a/target/arm/cpu.c b/target/arm/cpu.c
> > index b0d032c..e544f1d 100644
> > --- a/target/arm/cpu.c
> > +++ b/target/arm/cpu.c
> > @@ -765,6 +765,7 @@ static void arm_cpu_realizefn(DeviceState *dev, Error
> > **errp)
> > /* Some features automatically imply others: */
> > if (arm_feature(env, ARM_FEATURE_V8)) {
> > set_feature(env, ARM_FEATURE_V7);
> > + set_feature(env, ARM_FEATURE_V7VE);
> > set_feature(env, ARM_FEATURE_ARM_DIV);
> > set_feature(env, ARM_FEATURE_LPAE);
> > }
> > @@ -1481,6 +1482,7 @@ static void cortex_a7_initfn(Object *obj)
> >
> > cpu->dtb_compatible = "arm,cortex-a7";
> > set_feature(&cpu->env, ARM_FEATURE_V7);
> > + set_feature(&cpu->env, ARM_FEATURE_V7VE);
> > set_feature(&cpu->env, ARM_FEATURE_VFP4);
> > set_feature(&cpu->env, ARM_FEATURE_NEON);
> > set_feature(&cpu->env, ARM_FEATURE_THUMB2EE);
> > @@ -1526,6 +1528,7 @@ static void cortex_a15_initfn(Object *obj)
> >
> > cpu->dtb_compatible = "arm,cortex-a15";
> > set_feature(&cpu->env, ARM_FEATURE_V7);
> > + set_feature(&cpu->env, ARM_FEATURE_V7VE);
> > set_feature(&cpu->env, ARM_FEATURE_VFP4);
> > set_feature(&cpu->env, ARM_FEATURE_NEON);
> > set_feature(&cpu->env, ARM_FEATURE_THUMB2EE);
> > diff --git a/target/arm/cpu.h b/target/arm/cpu.h
> > index fb2f983..cc1e2fb 100644
> > --- a/target/arm/cpu.h
> > +++ b/target/arm/cpu.h
> > @@ -1439,6 +1439,7 @@ enum arm_features {
> > ARM_FEATURE_OMAPCP, /* OMAP specific CP15 ops handling. */
> > ARM_FEATURE_THUMB2EE,
> > ARM_FEATURE_V7MP, /* v7 Multiprocessing Extensions */
> > + ARM_FEATURE_V7VE, /* v7 with Virtualization Extensions */
> > ARM_FEATURE_V4T,
> > ARM_FEATURE_V5,
> > ARM_FEATURE_STRONGARM,
>
> What's the difference between this and ARM_FEATURE_EL2 ?
I use ARM_FEATURE_V7VE in a later patch to guard against implementing
PMOVSSET on v7 machines which don't implement the virtualization
extensions
(http://lists.nongnu.org/archive/html/qemu-devel/2018-03/msg04917.html).
I could use ARM_FEATURE_EL2, but declaring that v7 machines supported
EL2 didn't feel right. I don't feel strongly one way or the other - how
do you prefer to handle this?
-Aaron
--
Qualcomm Datacenter Technologies as an affiliate of Qualcomm Technologies, Inc.
Qualcomm Technologies, Inc. is a member of the
Code Aurora Forum, a Linux Foundation Collaborative Project.