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.  | ||