Cafe OS: Difference between revisions

Processes: Add PFID list
Yellows8 (talk | contribs)
No edit summary
Line 185: Line 185:


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