On 7/10/25 06:01, Peter Maydell wrote:
On Mon, 7 Jul 2025 at 21:58, Richard Henderson
<richard.hender...@linaro.org> wrote:

Signed-off-by: Richard Henderson <richard.hender...@linaro.org>
---
  target/arm/ptw.c | 6 +++---
  1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/target/arm/ptw.c b/target/arm/ptw.c
index a11df31b18..78a9c21fab 100644
--- a/target/arm/ptw.c
+++ b/target/arm/ptw.c
@@ -2754,14 +2754,14 @@ bool pmsav8_mpu_lookup(CPUARMState *env, uint32_t 
address,
  }

  static bool v8m_is_sau_exempt(CPUARMState *env,
-                              uint32_t address, MMUAccessType access_type)
+                              uint32_t address, unsigned access_perm)
  {
      /*
       * The architecture specifies that certain address ranges are
       * exempt from v8M SAU/IDAU checks.
       */
      return
-        (access_type == MMU_INST_FETCH && m_is_system_region(env, address)) ||
+        ((access_perm & PAGE_EXEC) && m_is_system_region(env, address)) ||
          (address >= 0xe0000000 && address <= 0xe0002fff) ||
          (address >= 0xe000e000 && address <= 0xe000efff) ||

This also is conflating "don't check access permissions" with
"access is data, not insn".

Yes.  We don't (yet) have a need for "don't check access permissions" for 
m-profile.

Talking a-profile for a moment, in order to match the pseudocode we would have the AccessType_* enumerators. The two relevant enumerators are AccessType_IFETCH and AccessType_AT, which means that all of the probing that we want to do is !IFETCH.


r~

Reply via email to