Cafe OS: Difference between revisions
Marionumber1 (talk | contribs) →Processes: Add PFID list |
No edit summary |
||
Line 185: | Line 185: | ||
==Virtual Memory Map== | ==Virtual Memory Map== | ||
{| class="wikitable" | |||
|- | |||
! Virtual address range | |||
! Physical address range | |||
! Size | |||
! Userland memory permissions | |||
! Kernel-mode memory permissions | |||
! Description | |||
|- | |||
| 0x01000000 - 0x01800000 | |||
| | |||
| 0x800000 | |||
| | |||
| | |||
| Loader and system libraries | |||
|- | |||
| 0x0??????? - 0x10000000 | |||
| | |||
| | |||
| | |||
| | |||
| App executable and libraries (start varies, but end is always 0x10000000) | |||
|- | |||
| 0x10000000 - 0x50000000 | |||
| | |||
| 0x40000000 | |||
| | |||
| | |||
| Application/library data area (may be smaller) | |||
|- | |||
| 0xa0000000 - 0xe0000000 | |||
| | |||
| 0x40000000 | |||
| | |||
| | |||
| Overlay of application memory (used by loader?) | |||
|- | |||
| 0xe0000000 - 0xe4000000 | |||
| 0x14000000 - 0x18000000 | |||
| 0x04000000 | |||
| | |||
| | |||
| Some sort of hardware communication area | |||
|- | |||
| 0xefe00000 - 0xefe80000 | |||
| | |||
| | |||
| | |||
| | |||
| Loader data area (only mapped when running loader) | |||
|- | |||
| 0xf4000000 - 0xf6000000 | |||
| 0x00000000 - 0x02000000 | |||
| 0x02000000 | |||
| | |||
| | |||
| MEM1 | |||
|- | |||
| 0xf6000000 - 0xf6800000 | |||
| | |||
| | |||
| | |||
| | |||
| Unknown | |||
|- | |||
| 0xf8000000 - 0xfb000000 | |||
| | |||
| | |||
| | |||
| | |||
| Read-only shared data (system fonts mostly) | |||
|- | |||
| 0xfc000000 - 0xfc0c0000 | |||
| | |||
| | |||
| | |||
| | |||
| {{hw|Processor Interface}} | |||
|- | |||
| 0xfc200000 - 0xfc280000 | |||
| | |||
| | |||
| | |||
| | |||
| GX2 TCL registers | |||
|- | |||
| 0xfc280000 - 0xfc2a0000 | |||
| | |||
| | |||
| | |||
| | |||
| DSP registers | |||
|- | |||
| 0xfc2a0000 - 0xfc2c0000 | |||
| | |||
| | |||
| | |||
| | |||
| GX2 FIFO space? (Radeon PKT3 sent here) | |||
|- | |||
| 0xfc320000 - 0xfd000000 | |||
| | |||
| | |||
| | |||
| | |||
| Espresso OTP (and other stuff?) | |||
|- | |||
| 0xfd000000 - 0xfd?????? | |||
| | |||
| | |||
| | |||
| | |||
| {{hw|Latte registers}} | |||
|- | |||
| 0xfd040250 - 0xfd046c00 | |||
| | |||
| | |||
| | |||
| | |||
| I2C registers | |||
|- | |||
| 0xfd046e00 - 0xfd060520 | |||
| | |||
| | |||
| | |||
| | |||
| AI registers? | |||
|- | |||
| 0xff200000 - 0xff280000 | |||
| | |||
| | |||
| | |||
| | |||
| Kernel heap | |||
|- | |||
| 0xffe00000 - 0xfff20000 | |||
| | |||
| | |||
| | |||
| | |||
| Kernel ancast image | |||
|- | |||
| 0xffffffe0(?) - 0xfffffffc(?) | |||
| | |||
| | |||
| | |||
| | |||
| Per-thread data (e.g. pointer to thread descriptor and thread queue) | |||
|} |