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 ==
= 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 ==
= 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)