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
|
Size
|
Description
|
0x00100000 / 0x14000000
|
|
The ExeFS:/.code is usually loaded here, most executables are loaded to 0x00100000.
|
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.