Line 195:
Line 195:
{| class="wikitable"
{| class="wikitable"
|-
|-
−
! Virtual address range/start
+
! Virtual address start
−
! Physical address range/start
+
! Virtual address size
−
! Size
+
! Physical address start
+
! Flags
! Description
! Description
|-
|-
−
| 0x01000000 - 0x01800000
+
| 0x1000000
−
| 0x32000000 - 0x32800000
| 0x800000
| 0x800000
+
| 0x32000000
+
| 0x2CE08002
| Loader and system libraries
| Loader and system libraries
|-
|-
−
| 0x01800000
+
| 0x1800000
−
| ?
+
| 0x20000
−
|
+
| 0
−
| This is the [[Coreinit.rpl|codegen]]/JIT memory area, only available under processes which have it enabled under cos.xml(the size comes from cos.xml too).
+
| 0x28101200
+
| This is the [[Coreinit.rpl|codegen]]/JIT memory area, only available under processes which have it enabled under cos.xml (the size comes from cos.xml too)
|-
|-
−
| 0x0??????? - 0x10000000
+
| 0x2000000 (variable)
−
| End of app MEM2 region (see [[Physical_Memory|here]])
+
| 0xE000000 (variable)
−
|
+
| 0x72000000 or 0xB2000000 (variable)
+
| 0x2CF09400
| App executable and libraries (start varies, but end is always 0x10000000)
| App executable and libraries (start varies, but end is always 0x10000000)
|-
|-
−
| 0x10000000 - 0x50000000
+
| 0x10000000
−
| App MEM2 region (see [[Physical_Memory|here]])
+
| 0x52000000 or 0x92000000 (variable)
−
| 0x40000000
+
| 0x20000000 (variable)
+
| 0x28305800
| Application/library data area (may be smaller)
| Application/library data area (may be smaller)
|-
|-
−
| 0xa0000000 - 0xe0000000
+
| 0xA0000000
−
|
| 0x40000000
| 0x40000000
+
| 0
+
| 0x2000
| Overlay of application memory (used by loader?)
| Overlay of application memory (used by loader?)
|-
|-
−
| 0xe0000000 - 0xe4000000
+
| 0xE0000000
−
| 0x14000000 - 0x18000000
+
| 0x4000000
−
| 0x04000000
+
| 0x14000000
+
| 0x28204004
| Some sort of hardware communication area
| Some sort of hardware communication area
|-
|-
−
| 0xefe00000 - 0xefe80000
+
| 0xE8000000
−
|
+
| 0x2000000
+
| 0xD0000000
+
| 0x78200004
|
|
+
|-
+
| 0xEFE00000
+
| 0x80000
+
| 0x1B900000
+
| 0x28109010
| Loader data area (only mapped when running loader)
| Loader data area (only mapped when running loader)
|-
|-
−
| 0xf4000000 - 0xf6000000
+
| 0xF4000000
−
| 0x00000000 - 0x02000000
+
| 0x2000000
−
| 0x02000000
+
| 0
+
| 0x28204004
| MEM1
| MEM1
|-
|-
−
| 0xf6000000 - 0xf6800000
+
| 0xF6000000
−
| 0x1b000000 - 0x1b800000
+
| 0x800000
−
| 0x00800000
+
| 0x1B000000
+
| 0x3CA08002
| [[Loader]] chunk buffer
| [[Loader]] chunk buffer
|-
|-
−
| 0xf8000000 - 0xfb000000
+
| 0xF8000000
−
| 0x18000000 - 0x1b000000
+
| 0x3000000
−
| 0x03000000
+
| 0x18000000
+
| 0x2CA08002
| Read-only shared data (system fonts mostly)
| Read-only shared data (system fonts mostly)
|-
|-
−
| 0xfc000000 - 0xfc400000
+
| 0xFB000000
−
| 0x0c000000 - 0x0c400000
+
| 0x800000
−
| 0x00400000
+
| 0x1C800000
−
| Espresso IO registers.
+
| 0x28200002
+
|
|-
|-
−
| 0xfc000000 - 0xfc0c0000
+
| 0xFC000000
−
| 0x0c000000 - 0x0c0c0000
+
| 0xC0000
−
| 0x000c0000
+
| 0xC000000
+
| 0x70100022
| {{hw|Processor Interface}}
| {{hw|Processor Interface}}
|-
|-
−
| 0xfc200000 - 0xfc280000
+
| 0xFC0C0000
−
| 0x0c200000 - 0x0c280000
+
| 0x120000
−
| 0x00080000
+
| 0xC0C0000
+
| 0x70100022
+
|
+
|-
+
| 0xFC1E0000
+
| 0x20000
+
| 0xC1E0000
+
| 0x78100024
+
|
+
|-
+
| 0xFC200000
+
| 0x80000
+
| 0xC200000
+
| 0x78100024
| {{hw|GX2 Registers}}
| {{hw|GX2 Registers}}
|-
|-
−
| 0xfc280000 - 0xfc2a0000
+
| 0xFC280000
−
| 0x0c280000 - 0x0c2a0000
+
| 0x20000
−
| 0x00020000
+
| 0xC280000
+
| 0x78100024
| DSP registers
| DSP registers
|-
|-
−
| 0xfc2a0000 - 0xfc2c0000
+
| 0xFC2A0000
−
| 0x0c2a0000 - 0x0c2c0000
+
| 0x20000
−
| 0x00020000
+
| 0xC2A0000
+
| 0x78100023
| GX2 FIFO space? (Radeon PKT3 sent here)
| GX2 FIFO space? (Radeon PKT3 sent here)
|-
|-
−
| 0xfc320000 - 0xfc400000
+
| 0xFC300000
−
| 0x0c320000 - 0x0c400000
+
| 0x20000
−
| 0x000e0000
+
| 0xC300000
+
| 0x78100024
+
|
+
|-
+
| 0xFC320000
+
| 0xE0000
+
| 0xC320000
+
| 0x70100022
| Espresso OTP (and other stuff?)
| Espresso OTP (and other stuff?)
|-
|-
−
| 0xfd000000 - 0xfd??????
+
| 0xFD000000
−
| 0x0d000000
+
| 0x400000
−
|
+
| 0xD000000
+
| 0x70100022
| {{hw|Latte Registers}}
| {{hw|Latte Registers}}
|-
|-
−
| 0xfd040250 - 0xfd046c00
+
| 0xFE000000
−
| 0x0d040250 - 0x0d046c00
+
| 0x800000
−
| 0x000069b0
+
| 0x1C000000
−
| I2C registers
+
| 0x20200002
+
|
|-
|-
−
| 0xfd046e00 - 0xfd060520
+
| 0xFF200000
−
| 0x0d046e00 - 0x0d060520
+
| 0x80000
−
| 0x00019720
+
| 0x1B800000
−
| AI registers?
+
| 0x20100040
+
| Kernel heap
|-
|-
−
| 0xff200000 - 0xff280000
+
| 0xFF280000
−
| 0x1b800000 - 0x1b880000
+
| 0x80000
−
| 0x00080000
+
| 0x1B880000
−
| Kernel heap
+
| 0x20100040
+
|
|-
|-
−
| 0xffc00000 - 0xffc20000
+
| 0xFFC00000
−
| ?
+
| 0x20000
−
| 0x00020000
+
| 0xFFC00000
−
| Codegen area used with OSCodegenCopy. It's unknown when this contains actual proper data.
+
| 0x8100004
+
| Codegen area used with OSCodegenCopy
|-
|-
−
| 0xffc40000 - 0xffc60000
+
| 0xFFC40000
−
| ?
+
| 0x20000
−
| 0x00020000
+
| 0xFFC40000
−
| Codegen area used with OSCodegenCopy. It's unknown when this contains actual proper data.
+
| 0x8100004
+
| Codegen area used with OSCodegenCopy
|-
|-
−
| 0xffc80000 - 0xffca0000
+
| 0xFFC80000
−
| ?
+
| 0x20000
−
| 0x00020000
+
| 0xFFC80000
−
| Codegen area used with OSCodegenCopy. It's unknown when this contains actual proper data.
+
| 0x810000C
+
| Codegen area used with OSCodegenCopy
|-
|-
−
| 0xffe00000 - 0xfff20000
+
| 0xFFCE0000
−
| 0xffe00000 - 0xfff20000
+
| 0x20000
−
| 0x00120000
+
| 0
+
| 0x50100004
+
|
+
|-
+
| 0xFFE00000
+
| 0x20000
+
| 0xFFE00000
+
| 0x20100040
| Kernel ancast image
| Kernel ancast image
|-
|-
−
| 0xffffffe0(?) - 0xfffffffc(?)
+
| 0xFFE40000
+
| 0x20000
+
| 0xFFE40000
+
| 0x20100040
+
|
+
|-
+
| 0xFFE80000
+
| 0x60000
+
| 0xFFE80000
+
| 0x20100040
+
|
+
|-
+
| 0xFFEE0000
+
| 0x20000
+
| 0xFFEE0000
+
| 0x20100040
+
|
+
|-
+
| 0xFFF00000
+
| 0x20000
+
| 0xFFF00000
+
| 0x20100040
|
|
+
|-
+
| 0xFFF60000
+
| 0x20000
+
| 0xFFE20000
+
| 0x20100080
|
|
−
| Per-thread data (e.g. pointer to thread descriptor and thread queue)
+
|-
+
| 0xFFF80000
+
| 0x20000
+
| 0xFFE60000
+
| 0x2C100040
+
|
+
|-
+
| 0xFFFA0000
+
| 0x20000
+
| 0xFFE60000
+
| 0x20100080
+
|
+
|-
+
| 0xFFFC0000
+
| 0x20000
+
| 0x1BFE0000
+
| 0x24100002
+
|
+
|-
+
| 0xFFFE0000
+
| 0x20000
+
| 0x1BF80000
+
| 0x28100102
+
| Per-thread data (e.g. pointer to thread descriptor and thread queue) at 0xFFFFFFE0 - 0xFFFFFFFC.
|}
|}