From 96a99a1bbe9ba50bd21f3687cf71b641c8e3509c Mon Sep 17 00:00:00 2001 From: Sergey Fedorov Date: Mon, 12 Feb 2018 20:48:13 -0500 Subject: [PATCH] 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. Backports commit 4eb276408363aef5435a72a8e818f24220b5edd0 from qemu --- qemu/target-arm/helper.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/qemu/target-arm/helper.c b/qemu/target-arm/helper.c index 7ad64ab5..9d14142c 100644 --- a/qemu/target-arm/helper.c +++ b/qemu/target-arm/helper.c @@ -696,8 +696,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; } }