Changes

909 bytes added ,  11:27, 23 June 2016
m
More code tags
Line 10: Line 10:  
|-
 
|-
 
| style="background: green" | Yes
 
| style="background: green" | Yes
| 0x00000000
+
| <code>0x00000000</code>
| 0x00010000
+
| <code>0x10000</code>
| Bootrom (super secret code/data @ 0x8000)
+
| Boot ROM (super secret code/data @ 0x8000)
 
|-
 
|-
 
| style="background: green" | Yes
 
| style="background: green" | Yes
| 0x00010000
+
| <code>0x10000</code>
| 0x00010000
+
| <code>0x10000</code>
| Bootrom mirror
+
| Boot ROM mirror
 
|-
 
|-
 
| style="background: green" | Yes
 
| style="background: green" | Yes
| 0x10000000
+
| <code>0x10000000</code>
|?
+
| ''Unknown''
 
| [[IO]] memory
 
| [[IO]] memory
 
|-
 
|-
 
| style="background: green" | Yes
 
| style="background: green" | Yes
| 0x17E00000
+
| <code>0x17E00000</code>
| 0x00002000
+
| <code>0x2000</code>
 
| MPCore private memory region
 
| MPCore private memory region
    
|-
 
|-
 
| style="background: red" | No
 
| style="background: red" | No
| 0x17E10000
+
| <code>0x17E10000</code>
| 0x00001000
+
| <code>0x1000</code>
 
| L2C-310 Level 2 Cache Controller (2MB)
 
| L2C-310 Level 2 Cache Controller (2MB)
 
|-
 
|-
 
| style="background: green" | Yes
 
| style="background: green" | Yes
| 0x18000000
+
| <code>0x18000000</code>
| 0x00600000
+
| <code>0x600000</code>
 
| VRAM (divided in two banks, VRAM and VRAMB)
 
| VRAM (divided in two banks, VRAM and VRAMB)
 
|-
 
|-
 
| style="background: red" | No
 
| style="background: red" | No
| 0x1F000000
+
| <code>0x1F000000</code>
| 0x00400000
+
| <code>0x400000</code>
| [[New_3DS]] additional memory
+
| [[New 3DS]] additional memory
 
|-
 
|-
 
| style="background: green" | Yes
 
| style="background: green" | Yes
| 0x1FF00000
+
| <code>0x1FF00000</code>
| 0x00080000
+
| <code>0x80000</code>
 
| DSP memory
 
| DSP memory
 
|-
 
|-
 
| style="background: green" | Yes
 
| style="background: green" | Yes
| 0x1FF80000
+
| <code>0x1FF80000</code>
| 0x00080000
+
| <code>0x80000</code>
 
| AXI WRAM
 
| AXI WRAM
 
|-
 
|-
 
| style="background: green" | Yes
 
| style="background: green" | Yes
| 0x20000000
+
| <code>0x20000000</code>
| 0x08000000
+
| <code>0x8000000</code>
 
| FCRAM
 
| FCRAM
 
|-
 
|-
 
| style="background: red" | No
 
| style="background: red" | No
| 0x28000000
+
| <code>0x28000000</code>
| 0x08000000
+
| <code>0x8000000</code>
| [[New_3DS]] FCRAM extension
+
| [[New 3DS]] FCRAM extension
 
|-
 
|-
 
| style="background: green" | Yes
 
| style="background: green" | Yes
| 0xFFFF0000
+
| <code>0xFFFF0000</code>
| 0x00010000
+
| <code>0x10000</code>
| Bootrom mirror
+
| Boot ROM mirror
 
|}
 
|}
    
===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 32-bit register at <code>0x17E10000</code>+<code>0x100</code> only has bit 0 set when, on New 3DS, [[PTMSYSM:ConfigureNew3DSCPU]] was used with bit 1 set for the input value (the L2 cache flag). All other bits in this register are normally all-zero. Therefore, bit 0 set = new cache hardware enabled, bit 0 clear = new cache hardware disabled. This bit is how the ARM11 kernel checks whether the additional cache hardware is enabled).
   −
To enable the additional cache hw, the following is used by the ARM11-kernel:
+
To enable the additional cache hardware, the following is used by the ARM11 kernel:
* Sets bit0 in 32bit register 0x17E10000+0x100.
+
* Sets bit 0 in 32-bit register <code>0x17E10000</code>+<code>0x100</code>.
   −
To disable the additional cache hw, the following is used by the ARM11-kernel:
+
To disable the additional cache hardware, the following is used by the ARM11 kernel:
* Writes value 0xFFFF to 32bit register 0x17E10000+0x77C.
+
* Writes value <code>0xFFFF</code> to 32-bit register <code>0x17E10000</code>+<code>0x77C</code>.
* Waits for bit0 in 32bit register 0x17E10000+0x730 to become clear.
+
* Waits for bit 0 in 32-bit register <code>0x17E10000</code>+<code>0x730</code> to become clear.
* Writes value 0x0 to 32bit register 0x17E10000+0x0.
+
* Writes value <code>0x0<code> to 32-bit register <code>0x17E10000</code>+<code>0x0</code>.
* Clears bit0 in 32bit register 0x17E10000+0x100.
+
* Clears bit 0 in 32-bit register <code>0x17E10000</code>+<code>0x100</code>.
   −
=== 0x1F000000 ([[New_3DS]]-only) ===
+
=== <code>0x1F000000</code> ([[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.
+
This area is used by [[QTM Services]],starting at offset <code>0x200000</code>, size <code>0x180000</code>. This area is not accessible to the GPU on the old 3DS. The old 3DS and New 3DS GSP module has <code>vaddr-&gt;physaddr</code> conversion code for this entire region. On the New 3DS, only the first <code>0x200000</code> bytes (half of this memory) are accessible to the GPU.
    
== ARM9 ==
 
== ARM9 ==
Line 95: Line 95:  
|-
 
|-
 
| style="background: green" | Yes
 
| style="background: green" | Yes
| 0x00000000
+
| <code>0x00000000</code>
| 0x08000000
+
| <code>0x8000000</code>
| Instruction TCM, repeating each 0x8000 bytes.
+
| Instruction TCM, repeating each <code>0x8000</code> bytes.
 
|-
 
|-
 
| style="background: green" | Yes
 
| style="background: green" | Yes
| 0x01FF8000
+
| <code>0x01FF8000</code>
| 0x00008000
+
| <code>0x8000</code>
 
| Instruction TCM (Accessed by the kernel and process by this address)
 
| Instruction TCM (Accessed by the kernel and process by this address)
 
|-
 
|-
 
| style="background: green" | Yes
 
| style="background: green" | Yes
| 0x07FF8000
+
| <code>0x07FF8000</code>
| 0x00008000
+
| <code>0x8000</code>
 
| Instruction TCM (Accessed by bootrom by this address)
 
| Instruction TCM (Accessed by bootrom by this address)
 
|-
 
|-
 
| style="background: green" | Yes
 
| style="background: green" | Yes
| 0x08000000
+
| <code>0x08000000</code>
| 0x00100000
+
| <code>0x100000</code>
 
| ARM9-only internal memory (ARM7's internal regions are mapped here as well)
 
| ARM9-only internal memory (ARM7's internal regions are mapped here as well)
 
|-
 
|-
 
| style="background: red" | No
 
| style="background: red" | No
| 0x08100000
+
| <code>0x08100000</code>
| 0x00080000
+
| <code>0x80000</code>
| [[New_3DS]] ARM9-only extension, only enabled when a certain [[CONFIG_Registers|CONFIG]] register is set.
+
| [[New 3DS]] ARM9-only extension, only enabled when a certain [[CONFIG_Registers|CONFIG]] register is set.
 
|-
 
|-
 
| style="background: green" | Yes
 
| style="background: green" | Yes
| 0x10000000
+
| <code>0x10000000</code>
| 0x08000000
+
| <code>0x8000000</code>
 
| [[IO]] memory
 
| [[IO]] memory
 
|-
 
|-
 
| style="background: green" | Yes
 
| style="background: green" | Yes
| 0x18000000
+
| <code>0x18000000</code>
| 0x00600000
+
| <code>0x600000</code>
 
| VRAM (divided in two banks, VRAM and VRAMB)  
 
| VRAM (divided in two banks, VRAM and VRAMB)  
 
|-
 
|-
 
| style="background: green" | Yes
 
| style="background: green" | Yes
| 0x1FF00000
+
| <code>0x1FF00000</code>
| 0x00080000
+
| <code>0x80000</code>
 
| DSP memory
 
| DSP memory
 
|-
 
|-
 
| style="background: green" | Yes
 
| style="background: green" | Yes
| 0x1FF80000
+
| <code>0x1FF80000</code>
| 0x00080000
+
| <code>0x80000</code>
 
| AXI WRAM
 
| AXI WRAM
 
|-
 
|-
 
| style="background: green" | Yes
 
| style="background: green" | Yes
| 0x20000000
+
| <code>0x20000000</code>
| 0x08000000
+
| <code>0x8000000</code>
 
| FCRAM
 
| FCRAM
 
|-
 
|-
 
| style="background: red" | No
 
| style="background: red" | No
| 0x28000000
+
| <code>0x28000000</code>
| 0x08000000
+
| <code>0x8000000</code>
| [[New_3DS]] FCRAM extension
+
| [[New 3DS]] FCRAM extension
 
|-
 
|-
| style="background: green" | Yes
+
| style="background: gre</code>en" | Yes
| 0xFFF00000
+
| <code>0xFFF00000</code>
| 0x00004000
+
| <code>0x4000</code>
| Data TCM (Mapped during bootrom)
+
| Data TCM (Mapped during boot ROM)
 
|-
 
|-
 
| style="background: green" | Yes
 
| style="background: green" | Yes
| 0xFFFF0000
+
| <code>0xFFFF0000</code>
| 0x00010000
+
| <code>0x10000</code>
| Bootrom, the main region is at +0x8000, which is disabled during system boot.
+
| Boot ROM, the main region is at +<code>0x8000</code>, which is disabled during system boot.
 
|}
 
|}