aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPeter Maydell <peter.maydell@linaro.org>2025-03-07 10:08:20 +0000
committerPeter Maydell <peter.maydell@linaro.org>2025-03-07 10:08:20 +0000
commitbdd641541fbef0a27bf9f60e7eba6f8a31d4706c (patch)
tree6c5cc03566a20cf4d3dc14c486889609ab05046e
parent5709038aa8b4d58b8c201ed53c327074173a35c6 (diff)
downloadqemu-bdd641541fbef0a27bf9f60e7eba6f8a31d4706c.zip
qemu-bdd641541fbef0a27bf9f60e7eba6f8a31d4706c.tar.gz
qemu-bdd641541fbef0a27bf9f60e7eba6f8a31d4706c.tar.bz2
target/arm: Make CNTPS_* UNDEF from Secure EL1 when Secure EL2 is enabled
When we added Secure EL2 support, we missed that this needs an update to the access code for the EL3 physical timer registers. These are supposed to UNDEF from Secure EL1 when Secure EL2 is enabled. (Note for stable backporting: for backports to branches where CP_ACCESS_UNDEFINED is not defined, the old name to use instead is CP_ACCESS_TRAP_UNCATEGORIZED.) Cc: qemu-stable@nongnu.org Signed-off-by: Peter Maydell <peter.maydell@linaro.org> Reviewed-by: Alex Bennée <alex.bennee@linaro.org> Message-id: 20250204125009.2281315-4-peter.maydell@linaro.org
-rw-r--r--target/arm/helper.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/target/arm/helper.c b/target/arm/helper.c
index 5729b31..5b6de44 100644
--- a/target/arm/helper.c
+++ b/target/arm/helper.c
@@ -2387,6 +2387,9 @@ static CPAccessResult gt_stimer_access(CPUARMState *env,
if (!arm_is_secure(env)) {
return CP_ACCESS_UNDEFINED;
}
+ if (arm_is_el2_enabled(env)) {
+ return CP_ACCESS_UNDEFINED;
+ }
if (!(env->cp15.scr_el3 & SCR_ST)) {
return CP_ACCESS_TRAP_EL3;
}