Changes

267 bytes added ,  06:27, 1 February 2014
Line 656: Line 656:     
The LINEAR memory-operation indicates that the mapped physical address is always MappedVAddr+0x0C000000, thus this memory can be used for hardware devices' DMA(such as the [[GPU]]). Addr0+size for this must be within the 0x14000000-0x1C000000 range when Addr0 is non-zero(Addr1 must be zero), Addr0 isn't actually used by svcControlMemory for mapping memory since the kernel determines what vaddr to map. LINEAR memory is allocated in FCRAM the same way as any other virtual memory(like the regular process heap, etc).
 
The LINEAR memory-operation indicates that the mapped physical address is always MappedVAddr+0x0C000000, thus this memory can be used for hardware devices' DMA(such as the [[GPU]]). Addr0+size for this must be within the 0x14000000-0x1C000000 range when Addr0 is non-zero(Addr1 must be zero), Addr0 isn't actually used by svcControlMemory for mapping memory since the kernel determines what vaddr to map. LINEAR memory is allocated in FCRAM the same way as any other virtual memory(like the regular process heap, etc).
 +
 +
=== FCRAM layout with the default retail memory-regions ===
 +
{| class="wikitable" border="1"
 +
!  Region
 +
!  Base address relative to FCRAM+0
 +
!  Region size
 +
|-
 +
| APPLICATION
 +
| 0x0
 +
| 0x04000000
 +
|-
 +
| SYSTEM
 +
| 0x04000000
 +
| 0x02C00000
 +
|-
 +
| BASE
 +
| 0x06C00000
 +
| 0x01400000
 +
|}
    
== enum MemoryPermission ==
 
== enum MemoryPermission ==