This discussion has been locked.
You can no longer post new replies to this discussion. If you have a question you can start a new discussion

[Cortex-A] Permission fault due to code region mapped as read/write

When I try to execute code from a region mapped as read/write (AP[2] == 0), the CPU issues a permission fault (exception class == 0b100001, instruction fault status code == 0b001111). When I change the mapping to read-only (AP[2] == 1), the permission fault goes away. Is this expected behavior from the MMU? I thought executing code from a region mapped as read/write was allowed. Could someone point me to a section in the "Arm Architecture Reference Manual" that explains this?

For reference:

  • See ARM DDI 0487I.a, page D8-5136 for information about the AP (access permission) bits
  • See ARM DDI 0487I.a, page D17-5657 for information about exception class 0b100001 (Instruction Abort taken without a change in Exception level)
  • See ARM DDI 0487I.a, page D17-5680 for information about instruction fault status code 0b001111 (Permission fault, level 3)