Memory layout: Difference between revisions

No edit summary
Line 28: Line 28:
| 0x1F000000
| 0x1F000000
| 0x400000
| 0x400000
| New3DS VRAM
| [[New_3DS]] additional memory
|-
|-
| 0x1FF00000
| 0x1FF00000
Line 44: Line 44:
| 0x28000000
| 0x28000000
| 0x8000000
| 0x8000000
| New3DS FCRAM extension
| [[New_3DS]] FCRAM extension
|}
|}


Line 372: Line 372:
| 0x1F000000
| 0x1F000000
| 0x00400000
| 0x00400000
| New3DS VRAM, access to this is specified by the exheader. Added with [[8.0.0-18]]. This area is used by [[QTM Services]]. This area is not accessible to the GPU on an original 3DS system.
| [[New_3DS]] additional memory, access to this is specified by the exheader. Added with [[8.0.0-18]]. This area is used by [[QTM Services]]. This area is not accessible to the GPU on an original 3DS system.
|-
|-
| 0x1EC00000
| 0x1EC00000
Line 406: Line 406:
| 0x30000000
| 0x30000000
| FCRAM+0
| FCRAM+0
| 0x08000000 / 0x10000000
| 0x08000000(Old3DS) / 0x10000000([[New_3DS]])
| This LINEAR memory mapping was added with [[8.0.0-18]], see [[SVC#enum_MemoryOperation|here]]. This replaces the original 0x14000000 mapping, for system(memory-region=BASE)/newer titles. Note that while the kernel uses size 0x08000000 for LINEAR-memory address range checks, system-module code doing vaddr->phys-addr conversion uses size 0x10000000 instead of 0x08000000.
| This LINEAR memory mapping was added with [[8.0.0-18]], see [[SVC#enum_MemoryOperation|here]]. This replaces the original 0x14000000 mapping, for system(memory-region=BASE)/newer titles. The Old3DS kernel uses size 0x08000000 for LINEAR-memory address range checks, system-module code doing vaddr->phys-addr conversion uses size 0x10000000 instead of 0x08000000.
|-
|-
| 0x20000000 / 0x40000000
| 0x20000000 / 0x40000000