Memory layout: Difference between revisions

Line 142: Line 142:
| Bootrom, the main region is at +0x8000, which is disabled during system boot.
| Bootrom, the main region is at +0x8000, which is disabled during system boot.
|}
|}
==NATIVE_FIRM ARM9 kernel MPU regions==
{| 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. >=[[8.0.0-18|8.0.0-X]]: 2MB/0x200000.
| RW
| RW
| RO
| RO
|-
| 3
| 0x10000000
| 128KB/0x20000
| RW
| RW
| None
| None
|-
| 4
| 0x10100000
| 512KB/0x80000
| RW
| RW
| None
| None
|-
| 5
| 0x20000000
| 128MB/0x8000000. >=[[8.0.0-18|8.0.0-X]]: 256MB/0x10000000.
| RW
| RW
| None
| None
|-
| 6
| 0x08000000
| 128KB/0x20000
| RW
| None
| RO
| None
|-
| 7
| 0x08020000
| <[[3.0.0-5]]: 64KB/0x10000. >=[[3.0.0-5]]: 32KB/0x8000.
| RW
| None
| RO
| None
|}
The above is the MPU region settings setup by the ARM9-kernel in the crt0.
Instruction permissions RO = memory is executable, while None = not-executable.
The New3DS ARM9-kernel MPU region settings are the same as the Old3DS MPU region settings for >=[[8.0.0-18|8.0.0-X]].


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