aboutsummaryrefslogtreecommitdiff
path: root/target-arm/helper.c
diff options
context:
space:
mode:
authorGreg Bellows <greg.bellows@linaro.org>2015-04-26 16:49:26 +0100
committerPeter Maydell <peter.maydell@linaro.org>2015-04-26 16:49:26 +0100
commit4eb276408363aef5435a72a8e818f24220b5edd0 (patch)
tree5ce26d727a66743655e681fc5fd16bfe4c6c9b6c /target-arm/helper.c
parent3d5c84ff21a8a7a3bfb3a75154be8905e62f51db (diff)
Allow ARMv8 SCR.SMD updates
Updated scr_write to always allow updates to the SCR.SMD bit on ARMv8 regardless of whether virtualization (EL2) is enabled or not. Signed-off-by: Greg Bellows <greg.bellows@linaro.org> Message-id: 1429888797-4378-1-git-send-email-greg.bellows@linaro.org Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
Diffstat (limited to 'target-arm/helper.c')
-rw-r--r--target-arm/helper.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/target-arm/helper.c b/target-arm/helper.c
index 0ac6ff15fb..f8f8d76fc0 100644
--- a/target-arm/helper.c
+++ b/target-arm/helper.c
@@ -816,8 +816,10 @@ static void scr_write(CPUARMState *env, const ARMCPRegInfo *ri, uint64_t value)
* supported if EL2 exists. The bit is UNK/SBZP when
* EL2 is unavailable. In QEMU ARMv7, we force it to always zero
* when EL2 is unavailable.
+ * On ARMv8, this bit is always available.
*/
- if (arm_feature(env, ARM_FEATURE_V7)) {
+ if (arm_feature(env, ARM_FEATURE_V7) &&
+ !arm_feature(env, ARM_FEATURE_V8)) {
valid_mask &= ~SCR_SMD;
}
}