Allow ARMv8 SCR.SMD updates
authorGreg Bellows <greg.bellows@linaro.org>
Sun, 26 Apr 2015 15:49:26 +0000 (16:49 +0100)
committerPeter Maydell <peter.maydell@linaro.org>
Sun, 26 Apr 2015 15:49:26 +0000 (16:49 +0100)
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>
target-arm/helper.c

index 0ac6ff15fb37edf34284dc5fc38e72bf63e78cc9..f8f8d76fc0374c5d1fbc3bbb0c16dc394bbe9bd3 100644 (file)
@@ -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;
         }
     }