Message ID | 1493122030-32191-6-git-send-email-peter.maydell@linaro.org |
---|---|
State | Superseded |
Headers | show |
Series | armv7m: Implement MPU support | expand |
On Tue, Apr 25, 2017 at 5:07 AM, Peter Maydell <peter.maydell@linaro.org> wrote: > Fix the handling of QOM properties for PMSA CPUs with no MPU: > > Allow no-MPU to be specified by either: > * has-mpu = false > * pmsav7_dregion = 0 > and make setting one imply the other. Don't clear the PMSA > feature bit in this situation. > > Signed-off-by: Peter Maydell <peter.maydell@linaro.org> Reviewed-by: Alistair Francis <alistair.francis@xilinx.com> Thanks, Alistair > --- > target/arm/cpu.c | 8 +++++++- > 1 file changed, 7 insertions(+), 1 deletion(-) > > diff --git a/target/arm/cpu.c b/target/arm/cpu.c > index f17e279..8e57498 100644 > --- a/target/arm/cpu.c > +++ b/target/arm/cpu.c > @@ -757,8 +757,14 @@ static void arm_cpu_realizefn(DeviceState *dev, Error **errp) > cpu->id_pfr1 &= ~0xf000; > } > > + /* MPU can be configured out of a PMSA CPU either by setting has-mpu > + * to false or by setting pmsav7-dregion to 0. > + */ > if (!cpu->has_mpu) { > - unset_feature(ARM_FEATURE_PMSA); > + cpu->pmsav7_dregion = 0; > + } > + if (cpu->pmsav7_dregion == 0) { > + cpu->has_mpu = false; > } > > if (arm_feature(env, ARM_FEATURE_PMSA) && > -- > 2.7.4 > >
On 04/25/2017 09:07 AM, Peter Maydell wrote: > Fix the handling of QOM properties for PMSA CPUs with no MPU: > > Allow no-MPU to be specified by either: > * has-mpu = false > * pmsav7_dregion = 0 > and make setting one imply the other. Don't clear the PMSA > feature bit in this situation. > > Signed-off-by: Peter Maydell <peter.maydell@linaro.org> > --- > target/arm/cpu.c | 8 +++++++- > 1 file changed, 7 insertions(+), 1 deletion(-) > > diff --git a/target/arm/cpu.c b/target/arm/cpu.c > index f17e279..8e57498 100644 > --- a/target/arm/cpu.c > +++ b/target/arm/cpu.c > @@ -757,8 +757,14 @@ static void arm_cpu_realizefn(DeviceState *dev, Error **errp) > cpu->id_pfr1 &= ~0xf000; > } > > + /* MPU can be configured out of a PMSA CPU either by setting has-mpu > + * to false or by setting pmsav7-dregion to 0. > + */ > if (!cpu->has_mpu) { > - unset_feature(ARM_FEATURE_PMSA); Oh, fixed here. > + cpu->pmsav7_dregion = 0; > + } > + if (cpu->pmsav7_dregion == 0) { > + cpu->has_mpu = false; > } > > if (arm_feature(env, ARM_FEATURE_PMSA) && > Reviewed-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
On 13 May 2017 at 23:37, Philippe Mathieu-Daudé <f4bug@amsat.org> wrote: > On 04/25/2017 09:07 AM, Peter Maydell wrote: >> >> Fix the handling of QOM properties for PMSA CPUs with no MPU: >> >> Allow no-MPU to be specified by either: >> * has-mpu = false >> * pmsav7_dregion = 0 >> and make setting one imply the other. Don't clear the PMSA >> feature bit in this situation. >> >> Signed-off-by: Peter Maydell <peter.maydell@linaro.org> >> --- >> target/arm/cpu.c | 8 +++++++- >> 1 file changed, 7 insertions(+), 1 deletion(-) >> >> diff --git a/target/arm/cpu.c b/target/arm/cpu.c >> index f17e279..8e57498 100644 >> --- a/target/arm/cpu.c >> +++ b/target/arm/cpu.c >> @@ -757,8 +757,14 @@ static void arm_cpu_realizefn(DeviceState *dev, Error >> **errp) >> cpu->id_pfr1 &= ~0xf000; >> } >> >> + /* MPU can be configured out of a PMSA CPU either by setting has-mpu >> + * to false or by setting pmsav7-dregion to 0. >> + */ >> if (!cpu->has_mpu) { >> - unset_feature(ARM_FEATURE_PMSA); > > > Oh, fixed here. Ah, yes, I was wondering why I hadn't noticed an obvious compile error. I'll fix up patch 4 so we don't break bisection. thanks -- PMM
diff --git a/target/arm/cpu.c b/target/arm/cpu.c index f17e279..8e57498 100644 --- a/target/arm/cpu.c +++ b/target/arm/cpu.c @@ -757,8 +757,14 @@ static void arm_cpu_realizefn(DeviceState *dev, Error **errp) cpu->id_pfr1 &= ~0xf000; } + /* MPU can be configured out of a PMSA CPU either by setting has-mpu + * to false or by setting pmsav7-dregion to 0. + */ if (!cpu->has_mpu) { - unset_feature(ARM_FEATURE_PMSA); + cpu->pmsav7_dregion = 0; + } + if (cpu->pmsav7_dregion == 0) { + cpu->has_mpu = false; } if (arm_feature(env, ARM_FEATURE_PMSA) &&
Fix the handling of QOM properties for PMSA CPUs with no MPU: Allow no-MPU to be specified by either: * has-mpu = false * pmsav7_dregion = 0 and make setting one imply the other. Don't clear the PMSA feature bit in this situation. Signed-off-by: Peter Maydell <peter.maydell@linaro.org> --- target/arm/cpu.c | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) -- 2.7.4