target/arm: Implement APPSAA

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>
This commit is contained in:
Richard Henderson 2025-09-25 17:11:33 -07:00 committed by Peter Maydell
parent a0f1bb0dfe
commit 663f9c253e

View 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;