Memory layout: Difference between revisions

Line 146: Line 146:
For the below instruction permissions: RO = memory is executable, while None = not-executable.
For the below instruction permissions: RO = memory is executable, while None = not-executable.


===NATIVE_FIRM ARM9 kernel===
===NATIVE_FIRM/SAFE_MODE_FIRM ARM9 kernel===
{| class="wikitable" border="1"
{| class="wikitable" border="1"
|-
|-
Line 273: Line 273:


MPU regions 4-7 are disabled. Note that the entire ARM9-loader runs in SVC-mode.
MPU regions 4-7 are disabled. Note that the entire ARM9-loader runs in SVC-mode.
===TWL_FIRM/AGB_FIRM ARM9 kernel===
{| class="wikitable" border="1"
|-
!  Region
!  Address
!  Size
!  Privileged-mode data permissions
!  User-mode data permissions
!  Privileged-mode instruction permissions
!  User-mode instruction permissions
|-
| 0
| 0xFFFF0000
| 32KB/0x8000
| RO
| None
| RO
| None
|-
| 1
| 0x01FF8000
| 32KB/0x8000
| RW
| RW
| RO
| RO
|-
| 2
| 0x08000000
| 1MB/0x100000. New3DS: 2MB/0x200000.
| RW
| RW
| RO
| RO
|-
| 3
| 0x10000000
| 2MB/0x200000.
| RW
| RW
| None
| None
|-
| 4
| 0x1FF00000
| 512KB/0x80000
| RW
| RW
| None
| None
|-
| 5
| 0x20000000
| 128MB/0x8000000. New3DS: 256MB/0x10000000.
| RW
| RW
| None
| None
|-
| 6
| 0x08000000
| 256KB/0x40000. New3DS: 128KB/0x20000
| RW
| None
| RO
| None
|-
| 7
| 0x08080000
| 128KB/0x20000
| RW
| RW
| RO
| RO
|}


==ARM9 ITCM==
==ARM9 ITCM==