]> git.ipfire.org Git - thirdparty/qemu.git/commitdiff
target/arm: Implement APPSAA
authorRichard Henderson <richard.henderson@linaro.org>
Fri, 26 Sep 2025 00:11:33 +0000 (17:11 -0700)
committerPeter Maydell <peter.maydell@linaro.org>
Tue, 7 Oct 2025 10:26:10 +0000 (11:26 +0100)
This bit allows all spaces to access memory above PPS.

Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
Reviewed-by: Pierrick Bouvier <pierrick.bouvier@linaro.org>
Message-id: 20250926001134.295547-10-richard.henderson@linaro.org
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
target/arm/ptw.c

index 236c3a9569b2f20bd020a2a8a8ed865aa31e686b..e03657f309e94e71811c39d508ba5775792eb822 100644 (file)
@@ -408,9 +408,10 @@ static bool granule_protection_check(CPUARMState *env, uint64_t paddress,
      * GPC Priority 3: Secure, Realm or Root address exceeds PPS.
      * R_CPDSB: A NonSecure physical address input exceeding PPS
      * does not experience any fault.
+     * R_PBPSH: Other address spaces have fault suppressed by APPSAA.
      */
     if (paddress & ~pps_mask) {
-        if (pspace == ARMSS_NonSecure) {
+        if (pspace == ARMSS_NonSecure || FIELD_EX64(gpccr, GPCCR, APPSAA)) {
             return true;
         }
         goto fault_fail;