Memory layout: Difference between revisions

Line 65: Line 65:


=ARM9 Physical memory regions =
=ARM9 Physical memory regions =
==Old3DS==
{| class="wikitable" border="1"
{| class="wikitable" border="1"
|-
|-
!  Old 3DS
!  Address
!  Address
!  Size
!  Size
!  Description
!  Description
|-
|-
| style="background: green" | Yes
| 0x00000000
| 0x00000000
| 0x08000000
| 0x08000000
| Instruction TCM, repeating each 0x8000 bytes.
| Instruction TCM, repeating each 0x8000 bytes.
|-
|-
| style="background: green" | Yes
| 0x01FF8000
| 0x01FF8000
| 0x8000
| 0x8000
| Instruction TCM (Accessed by the kernel and process by this address)
| Instruction TCM (Accessed by the kernel and process by this address)
|-
|-
| style="background: green" | Yes
| 0x07FF8000
| 0x07FF8000
| 0x8000
| 0x8000
| Instruction TCM (Accessed by bootrom by this address)
| Instruction TCM (Accessed by bootrom by this address)
|-
|-
| style="background: green" | Yes
| 0x08000000
| 0x08000000
| 0x00100000
| 0x00100000
| ARM9-only internal memory
| ARM9-only internal memory
|-
|-
| style="background: red" | No
| 0x08100000
| 0x00080000
| [[New_3DS]] ARM9-only extension
|-
| style="background: green" | Yes
| 0x10000000
| 0x10000000
| 0x08000000
| 0x08000000
| [[IO]] memory
| [[IO]] memory
|-
|-
| style="background: green" | Yes
| 0x18000000
| 0x18000000
| 0x600000
| 0x600000
| VRAM
| VRAM
|-
|-
| style="background: green" | Yes
| 0x1FF00000
| 0x1FF00000
| 0x80000
| 0x80000
| DSP memory
| DSP memory
|-
|-
| style="background: green" | Yes
| 0x1FF80000
| 0x1FF80000
| 0x80000
| 0x80000
| AXI WRAM
| AXI WRAM
|-
|-
| style="background: green" | Yes
| 0x20000000
| 0x20000000
| 0x8000000
| 0x8000000
| FCRAM
| FCRAM
|-
|-
| 0xFFF00000
| style="background: red" | No
| 0x4000
| 0x28000000
| Data TCM (Mapped during bootrom)
| 0x8000000
|-
| [[New_3DS]] FCRAM extension
| 0xFFFF0000
| 0x10000
| Bootrom, the main region is at +0x8000, which is disabled during system boot.
|}
 
==New3DS==
{| class="wikitable" border="1"
|-
!  Address
!  Size
!  Description
|-
| 0x00000000
| 0x08000000
| Instruction TCM, repeating each 0x8000 bytes.
|-
| 0x01FF8000
| 0x8000
| Instruction TCM (Accessed by the kernel and process by this address)
|-
| 0x07FF8000
| 0x8000
| Instruction TCM (Accessed by bootrom by this address)
|-
| 0x08000000
| 0x00180000
| ARM9-only internal memory
|-
| 0x10000000
| 0x08000000
| [[IO]] memory
|-
| 0x18000000
| 0x600000
| VRAM
|-
| 0x1FF00000
| 0x80000
| DSP memory
|-
| 0x1FF80000
| 0x80000
| AXI WRAM
|-
| 0x20000000
| 0x10000000
| FCRAM
|-
|-
| style="background: green" | Yes
| 0xFFF00000
| 0xFFF00000
| 0x4000
| 0x4000
| Data TCM (Mapped during bootrom)
| Data TCM (Mapped during bootrom)
|-
|-
| style="background: green" | Yes
| 0xFFFF0000
| 0xFFFF0000
| 0x10000
| 0x10000