Memory layout: Difference between revisions
No edit summary |
|||
| Line 134: | Line 134: | ||
=ARM11 User-land memory regions= | =ARM11 User-land memory regions= | ||
==NATIVE_FIRM/SAFE_MODE_FIRM Userland Memory== | |||
{| class="wikitable" border="1" | {| class="wikitable" border="1" | ||
|- | |- | ||
| Line 200: | Line 201: | ||
The physical address which memory for the application memory-type is mapped to begins at FCRAM+0, the total memory allocated for this memory-type is stored in [[Configuration_Memory]]. Applications' .text + .rodata + .data under the application memory-type is mapped at FCRAM + APPMEMALLOC - (aligned page-size for .text + .rodata + .data). The application .bss is mapped at CODEADDR - .bss size aligned down to the page size. | The physical address which memory for the application memory-type is mapped to begins at FCRAM+0, the total memory allocated for this memory-type is stored in [[Configuration_Memory]]. Applications' .text + .rodata + .data under the application memory-type is mapped at FCRAM + APPMEMALLOC - (aligned page-size for .text + .rodata + .data). The application .bss is mapped at CODEADDR - .bss size aligned down to the page size. | ||
== System memory details | ==TWL_FIRM Userland Memory== | ||
{| class="wikitable" border="1" | |||
|- | |||
! Virtual Address Base | |||
! Physical Address Base | |||
! Size | |||
! Description | |||
|- | |||
| 0x00100000 | |||
| 0x1FFAB000 | |||
| 0x00055000 | |||
| | |||
|- | |||
| 0x00155000 | |||
| 0x18555000 | |||
| 0x000AB000 | |||
| | |||
|- | |||
| 0x00200000 | |||
| 0x18500000 | |||
| 0x00100000 | |||
| | |||
|- | |||
| 0x00300000 | |||
| 0x24000000 | |||
| 0x04000000 | |||
| | |||
|- | |||
| 0x08000000 | |||
| 0x20000000 | |||
| 0x07E00000 | |||
|- | |||
| 0x1EC00000 | |||
| 0x10100000 | |||
| 0x00400000 | |||
| [[IO]] | |||
|- | |||
| 0x1F000000 | |||
| 0x18000000 | |||
| 0x00600000 | |||
| VRAM | |||
|- | |||
| 0x1FF00000 | |||
| 0x1FF00000 | |||
| 0x00080000 | |||
| This is mapped to the DSP memory. | |||
|} | |||
= System memory details = | |||
0xFFFF9000 Pointer to the current KThread instance | 0xFFFF9000 Pointer to the current KThread instance | ||
0xFFFF9004 Pointer to the current KProcess instance | 0xFFFF9004 Pointer to the current KProcess instance | ||
0xFFFF9010 Pointer a KThread (not sure what its role is) | 0xFFFF9010 Pointer a KThread (not sure what its role is) | ||
= Handles = | |||
The handle 0xFFFF8001 is a reference to the current KProcess. | The handle 0xFFFF8001 is a reference to the current KProcess. | ||
= VRAM Map While Running Webbrowser = | |||
*0x1e6000-0x22C500 -- top screen framebuffer 0(240x400x3) | *0x1e6000-0x22C500 -- top screen framebuffer 0(240x400x3) | ||
*0x22C800-0x272D00 -- top screen framebuffer 1(240x400x3) | *0x22C800-0x272D00 -- top screen framebuffer 1(240x400x3) | ||