Difference between revisions of "Memory layout"

From 3dbrew
Jump to navigation Jump to search
Line 37: Line 37:
 
|-
 
|-
 
!  Virtual Address
 
!  Virtual Address
!  Size
+
Region Max Size
 
!  Description
 
!  Description
 
|-
 
|-
 
| 0x00100000 / 0x14000000
 
| 0x00100000 / 0x14000000
|  
+
| 0x03F00000
| The [[ExeFS]]:/.code is usually loaded here, most executables are loaded to 0x00100000.
+
| The [[ExeFS]]:/.code is loaded here, executables must be loaded to the 0x00100000 region when the exheader "special memory" flag is clear. The 0x03F00000-byte size restriction only applies when this flag is clear. Executables are usually loaded to 0x14000000 when the exheader "special memory" flag is set, however this address can be arbitrary.
 
|-
 
|-
 
| 0x08000000
 
| 0x08000000

Revision as of 08:34, 12 November 2012

Physical memory regions

Address Size Description
0x0 0x10000 Bootrom (super secret code/data @ 0x8000)
0x10000 0x10000 Bootrom mirror
0x10000000 ? IO memory
0x1FF00000 0x80000 DSP memory
0x1FF80000 0x80000 AXI WRAM
0x20000000 0x8000000 FCRAM

ARM11 User-land memory regions

Virtual Address Region Max Size Description
0x00100000 / 0x14000000 0x03F00000 The ExeFS:/.code is loaded here, executables must be loaded to the 0x00100000 region when the exheader "special memory" flag is clear. The 0x03F00000-byte size restriction only applies when this flag is clear. Executables are usually loaded to 0x14000000 when the exheader "special memory" flag is set, however this address can be arbitrary.
0x08000000 Heap mapped by ControlMemory
0x1EC00000 IO registers, the mapped IO pages which each process can access is specified in the CXI exheader.(Applications normally don't have access to registers in this range)

All executable pages are read-only, and data pages have the execute-never permission set. Normally .text from the loaded ExeFS:/.code is the only mapped executable memory. Executable CROs can be loaded into memory, once loaded the CRO .text section memory page permissions are changed via ControlProcessMemory from RW- to R-X.