Memory layout: Difference between revisions
Reordering |
|||
Line 1: | Line 1: | ||
=ARM11 | = Physical Memory = | ||
== ARM11 == | |||
{| class="wikitable" border="1" | {| class="wikitable" border="1" | ||
|- | |- | ||
Line 69: | Line 71: | ||
|} | |} | ||
==0x17E10000== | ===0x17E10000=== | ||
The 32bit register at 0x17E10000+0x100 only has bit0 set when, on New3DS, [[PTMSYSM:ConfigureNew3DSCPU]] was used with bit1 set for the input value(the L2 cache flag). All other bits in this register are normally all-zero. Therefore: bit0 set = new cache hardware enabled, clear = new cache hardware disabled(this bit is how the ARM11-kernel checks whether the additional cache hw is enabled). | The 32bit register at 0x17E10000+0x100 only has bit0 set when, on New3DS, [[PTMSYSM:ConfigureNew3DSCPU]] was used with bit1 set for the input value(the L2 cache flag). All other bits in this register are normally all-zero. Therefore: bit0 set = new cache hardware enabled, clear = new cache hardware disabled(this bit is how the ARM11-kernel checks whether the additional cache hw is enabled). | ||
Line 81: | Line 83: | ||
* Clears bit0 in 32bit register 0x17E10000+0x100. | * Clears bit0 in 32bit register 0x17E10000+0x100. | ||
=ARM9 | === 0x1F000000 ([[New_3DS]]-only) === | ||
This area is used by [[QTM Services]](starting at offset 0x200000, size 0x180000). This area is not accessible to the GPU on the old 3DS. The old 3DS and New 3DS GSP module has vaddr->physaddr conversion code for this entire region. On the New 3DS, only the first 0x200000-bytes (half of this memory) are accessible to the GPU. | |||
== ARM9 == | |||
{| class="wikitable" border="1" | {| class="wikitable" border="1" | ||
|- | |- | ||
Line 155: | Line 160: | ||
|} | |} | ||
==ARM9 MPU | ==ARM9 MPU Setup== | ||
For the below instruction permissions: RO = memory is executable, while None = not-executable. | For the below instruction permissions: RO = memory is executable, while None = not-executable. | ||
Line 550: | Line 555: | ||
0x01FFFC00 size 0x100-bytes starting with [[9.5.0-22|9.5.0-X]] is the FIRM header used during FIRM-launching. | 0x01FFFC00 size 0x100-bytes starting with [[9.5.0-22|9.5.0-X]] is the FIRM header used during FIRM-launching. | ||
|} | |} | ||
=Memory map by firmware= | =Memory map by firmware= |