IO Registers: Difference between revisions
No edit summary |
Vgturtle127 (talk | contribs) m Fixed some stuff and added things we need to know |
||
Line 94: | Line 94: | ||
|-style="border-top: double" | |-style="border-top: double" | ||
| style="background: green" | Yes | | style="background: green" | Yes | ||
| ? | |? | ||
| [[CONFIG Registers]] | | [[CONFIG Registers]] | ||
| 0x10010000 | | 0x10010000 | ||
Line 101: | Line 101: | ||
|- | |- | ||
| style="background: green" | Yes | | style="background: green" | Yes | ||
| ? | |? | ||
| [[CONFIG Registers]] | | [[CONFIG Registers]] | ||
| 0x10011000 | | 0x10011000 | ||
Line 108: | Line 108: | ||
|- | |- | ||
| style="background: green" | Yes | | style="background: green" | Yes | ||
| ? | |? | ||
| ? | |? | ||
| 0x10012000 | | 0x10012000 | ||
| Kernel9, NewKernel9Loader | | Kernel9, NewKernel9Loader | ||
Line 115: | Line 115: | ||
|- | |- | ||
| style="background: green" | Yes | | style="background: green" | Yes | ||
| ? | |? | ||
| ? | |? | ||
| 0x10018000 | | 0x10018000 | ||
| TwlProcess9 | | TwlProcess9 | ||
Line 122: | Line 122: | ||
|-style="border-top: double" | |-style="border-top: double" | ||
| style="background: green" | Yes | | style="background: green" | Yes | ||
| ? | |? | ||
| | |? | ||
| 0x10100000 | | 0x10100000 | ||
| | |? | ||
| | |? | ||
|- | |- | ||
| style="background: green" | Yes | | style="background: green" | Yes | ||
Line 151: | Line 151: | ||
| style="background: green" | Yes | | style="background: green" | Yes | ||
| A11/A9 | | A11/A9 | ||
| ? | |? | ||
| 0x10110000 | | 0x10110000 | ||
| | |? | ||
| | |? | ||
|- | |- | ||
| style="background: green" | Yes | | style="background: green" | Yes | ||
| A11/A9 | | A11/A9 | ||
| ? | |? | ||
| 0x10111000 | | 0x10111000 | ||
| TwlBg | | TwlBg | ||
Line 179: | Line 179: | ||
| style="background: green" | Yes | | style="background: green" | Yes | ||
| A11/A9 | | A11/A9 | ||
| ? | |? | ||
| 0x10122000 | | 0x10122000 | ||
| [[NWM Services]] | | [[NWM Services]] | ||
| WIFI ? | | WIFI? | ||
|- | |- | ||
| style="background: green" | Yes | | style="background: green" | Yes | ||
| A11/A9 | | A11/A9 | ||
| ? | |? | ||
| 0x10123000 | | 0x10123000 | ||
| [[NWM Services]] | | [[NWM Services]] | ||
| WIFI ? | | WIFI? | ||
|-style="border-top: double" | |-style="border-top: double" | ||
| style="background: red" | No | | style="background: red" | No | ||
Line 333: | Line 333: | ||
| style="background: green" | Yes | | style="background: green" | Yes | ||
| A11/A9 | | A11/A9 | ||
| | |? | ||
| 0x10172000 | | 0x10172000 | ||
| | | | ||
Line 340: | Line 340: | ||
| style="background: green" | Yes | | style="background: green" | Yes | ||
| A11/A9 | | A11/A9 | ||
| | |? | ||
| 0x10173000 | | 0x10173000 | ||
| | | | ||
Line 356: | Line 356: | ||
| [[MP Registers]] | | [[MP Registers]] | ||
| 0x10175000 | | 0x10175000 | ||
| | |? | ||
| NTR WIFI RAM | | NTR WIFI RAM | ||
|- | |- | ||
Line 363: | Line 363: | ||
| [[MP Registers]] | | [[MP Registers]] | ||
| 0x10176000 | | 0x10176000 | ||
| | |? | ||
| NTR WIFI Registers (mirror) | | NTR WIFI Registers (mirror) | ||
|- | |- | ||
Line 370: | Line 370: | ||
| [[MP Registers]] | | [[MP Registers]] | ||
| 0x10177000 | | 0x10177000 | ||
| | |? | ||
| NTR WIFI Registers (mirror) | | NTR WIFI Registers (mirror) | ||
|- | |- | ||
Line 380: | Line 380: | ||
| NTR WIFI WS1 Region | | NTR WIFI WS1 Region | ||
|-style="border-top: double" | |-style="border-top: double" | ||
| style="background: orange" | ? | | style="background: orange" |? | ||
| A11 | | A11 | ||
| CDMA | | CDMA | ||
| 0x10200000 | | 0x10200000 | ||
| Boot11, Kernel11 | | Boot11, Kernel11 | ||
| On | | On old 3DS this is [http://infocenter.arm.com/help/topic/com.arm.doc.ddi0424d/index.html CoreLink™ DMA-330]. On the New 3DS it is unknown what this is. | ||
|- | |- | ||
| style="background: green" | Yes | | style="background: green" | Yes | ||
| A11 | | A11 | ||
| ? | |? | ||
| 0x10202000 | | 0x10202000 | ||
| TwlBg, Kernel11, [[GSP Services]] | | TwlBg, Kernel11, [[GSP Services]] | ||
Line 401: | Line 401: | ||
| | | | ||
|- | |- | ||
| style="background: orange" | ? | | style="background: orange" |? | ||
| A11 | | A11 | ||
| CDMA | | CDMA | ||
| 0x10206000 | | 0x10206000 | ||
| NewKernel11 | | NewKernel11 | ||
| CDMA was moved here on | | CDMA was moved here on New 3DS. [http://infocenter.arm.com/help/topic/com.arm.doc.ddi0424d/index.html CoreLink™ DMA-330]. | ||
|- | |- | ||
| style="background: orange" | ? | | style="background: orange" |? | ||
| A11 | | A11 | ||
| [[MVD Registers]] | | [[MVD Registers]] | ||
| 0x10207000 | | 0x10207000 | ||
| [[MVD Services]] | | [[MVD Services]] | ||
| | | New 3DS only? | ||
|- | |- | ||
| style="background: green" | Yes | | style="background: green" | Yes | ||
Line 427: | Line 427: | ||
| 0x10300000-0x10400000 | | 0x10300000-0x10400000 | ||
| | | | ||
| Mirror of 0x10100000-0x10200000 (faster bus?), CDMA wants these | | Mirror of 0x10100000-0x10200000 (faster bus?), CDMA wants these addresses | ||
|-style="border-top: double" | |-style="border-top: double" | ||
| style="background: green" | Yes | | style="background: green" | Yes | ||
Line 444: | Line 444: | ||
|} | |} | ||
IO registers starting at physical address 0x10200000 are not accessible from the ARM9(which includes all LCD/GPU registers). | IO registers starting at physical address 0x10200000 are not accessible from the ARM9 (which includes all LCD/GPU registers). | ||
ARM11 kernel virtual address mappings for these registers varies for different builds. For ARM11 user mode applications you have: | ARM11 kernel virtual address mappings for these registers varies for different builds. For ARM11 user mode applications you have: | ||
Line 450: | Line 450: | ||
=0x10012000= | =0x10012000= | ||
Keys seem to be stored here? Access to this region is disabled once the ARM9 writes 0x2 to [[CONFIG|REG_SYSPROT9]]. Before writing that bit, the ARM9 copies the low u32 for the TWL keydata to +0x100(and high u32 keydata to +0x104 with | Keys seem to be stored here? Access to this region is disabled once the ARM9 writes 0x2 to [[CONFIG|REG_SYSPROT9]]. Before writing that bit, the ARM9 copies the low u32 for the TWL keydata to +0x100 (and high u32 keydata to +0x104 with the New 3DS). On development units ([[CONFIG|UNITINFO]]!=0) ARM9 uses the first 8-bytes from 0x10012000 for the TWL keydata. | ||
Originally the above TWL keyinit + region disable was done by Kernel9. However, with the [[New_3DS]] FIRM ARM9 binary this is now done in the [[FIRM]] ARM9 binary loader, which also uses the 0x10012000 region for key generation. | Originally the above TWL keyinit + region disable was done by Kernel9. However, with the [[New_3DS]] FIRM ARM9 binary this is now done in the [[FIRM]] ARM9 binary loader, which also uses the 0x10012000 region for key generation. |