I am running on Cortex-R82 FVP.
EL2: MPU disabled with background region also disabled. EL1: MPU enabled with multiple non-overlapping regions, background region disabled.
SCTLR_EL[2|1].WXN is set to 0.
Behavior: In EL1, when I write to a normal memory MPU region that has write and execute permissions enabled (around memory location 0x86400, if it matters), the write operation causes a fault. The issue disappears when the region is marked non-executable (prbar.XN bit is set).
My question is, if this is expected behavior or if it is an FVP parameter/bug? If it is expected, would be grateful if I could be pointed to the documentation that explains it further.
Adding to my post:
R-profile is a little different. When the MPU is disabled there is a special case:
“If the value of SCTLR_EL1.{M, BR} is {0, 1}, then for the Secure EL1&0 translation regime, any memory region that is writable at EL0 is also executable from EL1 if that address is marked as executable by the Background region.”