Difference between revisions of "IO Registers"
Jump to navigation
Jump to search
Line 21: | Line 21: | ||
| 0x10001000 | | 0x10001000 | ||
| Boot9, Process9, Kernel9 | | Boot9, Process9, Kernel9 | ||
− | | | + | | ARM9 Interrupt Masking |
|- | |- | ||
| Yes | | Yes | ||
Line 28: | Line 28: | ||
| 0x10002000 | | 0x10002000 | ||
| Boot9, Process9 | | Boot9, Process9 | ||
− | | | + | | DMA Engine |
|- | |- | ||
| Yes | | Yes | ||
Line 111: | Line 111: | ||
| ? | | ? | ||
| 0x10012000 | | 0x10012000 | ||
− | | | + | | Kernel9, NewKernel9Loader |
− | | | + | | Top secret. |
|- | |- | ||
| Yes | | Yes | ||
Line 119: | Line 119: | ||
| 0x10018000 | | 0x10018000 | ||
| TwlProcess9 | | TwlProcess9 | ||
− | | | + | | Used to setup the ARM7 core for AGB/TWL |
|-style="border-top: double" | |-style="border-top: double" | ||
| Yes | | Yes | ||
Line 140: | Line 140: | ||
| 0x10102000 | | 0x10102000 | ||
| | | | ||
− | | | + | | Never used? |
|- | |- | ||
| Yes | | Yes | ||
Line 147: | Line 147: | ||
| 0x10103000 | | 0x10103000 | ||
| TwlBg, [[Codec Services]], [[CSND Services]], [[DSP Services]] | | TwlBg, [[Codec Services]], [[CSND Services]], [[DSP Services]] | ||
− | | | + | | Sound Hardware |
|-style="border-top: double" | |-style="border-top: double" | ||
| Yes | | Yes | ||
Line 182: | Line 182: | ||
| 0x10122000 | | 0x10122000 | ||
| [[NWM Services]] | | [[NWM Services]] | ||
− | | | + | | WIFI ? |
|- | |- | ||
| Yes | | Yes | ||
Line 189: | Line 189: | ||
| 0x10123000 | | 0x10123000 | ||
| [[NWM Services]] | | [[NWM Services]] | ||
− | | | + | | WIFI ? |
|-style="border-top: double" | |-style="border-top: double" | ||
| ? | | ? |
Revision as of 00:31, 8 October 2014
Overview
Old3DS | A9/A11 | Category | Physical address start | Used by | Comments |
---|---|---|---|---|---|
Yes | A9 | CONFIG Registers | 0x10000000 | Boot9, Process9 | |
Yes | A9 | IRQ Registers | 0x10001000 | Boot9, Process9, Kernel9 | ARM9 Interrupt Masking |
Yes | A9 | NDMA Registers | 0x10002000 | Boot9, Process9 | DMA Engine |
Yes | A9 | TIMER Registers | 0x10003000 | Boot9, Process9 | |
Yes | A9 | CTRCARD Registers | 0x10004000 / 0x10005000 | Process9 | |
Yes | A9 | EMMC Registers | 0x10006000 / 0x10007000 | Boot9, Process9 | 0x10007000 is apparently not used on retail |
Yes | A9 | PXI Registers | 0x10008000 | Boot9, Process9 | |
Yes | A9 | AES Registers | 0x10009000 | Boot9, Process9 | |
Yes | A9 | SHA Registers | 0x1000A000 | Boot9, Process9 | |
Yes | A9 | RSA Registers | 0x1000B000 | Boot9, Process9 | |
Yes | A9 | XDMA Registers | 0x1000C000 | Boot9, Kernel9 | CoreLink™ DMA-330. Info |
Yes | A9 | SPICARD Registers | 0x1000D800 | Process9 | |
Yes | ? | CONFIG Registers | 0x10010000 | Process9 | |
Yes | ? | CONFIG Registers | 0x10011000 | Process9 | |
Yes | ? | ? | 0x10012000 | Kernel9, NewKernel9Loader | Top secret. |
Yes | ? | ? | 0x10018000 | TwlProcess9 | Used to setup the ARM7 core for AGB/TWL |
Yes | ? | 0x10100000 | |||
Yes | A11/A9 | HASH Registers | 0x10101000 | Filesystem services | |
Yes | A11/A9 | ? | 0x10102000 | Never used? | |
Yes | A11/A9 | CSND Registers / DSP | 0x10103000 | TwlBg, Codec Services, CSND Services, DSP Services | Sound Hardware |
Yes | A11/A9 | ? | 0x10110000 | ||
Yes | A11/A9 | ? | 0x10111000 | TwlBg | |
Yes | A11/A9 | ? | 0x10120000 | ||
Yes | A11/A9 | ? | 0x10121000 | Mirror of 0x10120000? | |
Yes | A11/A9 | ? | 0x10122000 | NWM Services | WIFI ? |
Yes | A11/A9 | ? | 0x10123000 | NWM Services | WIFI ? |
? | A11/A9 | MVD Registers | 0x10130000 | MVD Services | New3DS only? |
? | A11/A9 | MVD Registers | 0x10131000 | MVD Services | New3DS only? |
? | A11/A9 | MVD Registers | 0x10132000 | MVD Services | New3DS only? |
Yes | A11/A9 | 0x10140000 | Process9, Boot11, Kernel11, TwlBg, DSP Services, NWM Services, SPI Services | Power management | |
Yes | A11/A9 | PDN Registers / CODEC Registers | 0x10141000 | Process9, Boot11, Kernel11, TwlBg, Codec Services, NWM Services, SPI Services | Power management |
Yes | A11/A9 | SPI Registers | 0x10142000 | TwlBg, SPI Services | |
Yes | A11/A9 | SPI Registers | 0x10143000 | TwlBg | Only used under TWL_FIRM? |
Yes | A11/A9 | I2C Registers | 0x10144000 | Boot11, Kernel11, TwlBg, I2C Services | |
Yes | A11/A9 | CODEC Registers | 0x10145000 | TwlBg, Codec Services | |
Yes | A11/A9 | HID Registers | 0x10146000 | Boot11, Kernel11, TwlBg, HID Services | See PAD. |
Yes | A11/A9 | GPIO Registers | 0x10147000 | Boot11, TwlBg, GPIO Services | |
Yes | A11/A9 | I2C Registers | 0x10148000 | TwlBg, I2C Services | |
Yes | A11/A9 | SPI Registers | 0x10160000 | Boot9, TwlBg, SPI Services | |
Yes | A11/A9 | I2C Registers | 0x10161000 | Boot11, TwlBg, I2C Services | |
Yes | A11/A9 | MIC Registers | 0x10162000 | MIC Services | |
Yes | A11/A9 | PXI Registers | 0x10163000 | Boot11, Kernel11, TwlBg, PXI Services | |
Yes | A11/A9 | NTRCARD Registers | 0x10164000 | Boot9, Process9 | |
Yes | A11/A9 | MP Registers | 0x10165000 | MP Services | |
Yes | A11/A9 | MP Registers | 0x10170000 | MP Services | NTR WIFI Registers, see GBATek. |
Yes | A11/A9 | MP Registers | 0x10171000 | MP Services | NTR WIFI Registers (mirror) |
Yes | A11/A9 | 0x10172000 | NTR WIFI Unused? | ||
Yes | A11/A9 | 0x10173000 | NTR WIFI Unused? | ||
Yes | A11/A9 | MP Registers | 0x10174000 | MP Services | NTR WIFI RAM |
Yes | A11/A9 | MP Registers | 0x10175000 | NTR WIFI RAM | |
Yes | A11/A9 | MP Registers | 0x10176000 | NTR WIFI Registers (mirror) | |
Yes | A11/A9 | MP Registers | 0x10177000 | NTR WIFI Registers (mirror) | |
Yes | A11/A9 | MP Registers | 0x10178000 - 0x10180000 | MP Services | Wifi WS1 Region |
Yes | A11 | CDMA | 0x10200000 | Boot11, Kernel11 | CoreLink™ DMA-330. Info |
Yes | A11 | ? | 0x10202000 | TwlBg, Kernel11, GSP Services | |
Yes | A11 | DSP | 0x10203000 | ||
? | A11 | MVD Registers | 0x10207000 | MVD Services | New3DS only? |
Yes | A11 | GPU? | 0x1020F000 | TwlBg, GSP Services | |
Yes | A11 | HASH Registers | 0x10301000 | Filesystem services | |
? | A11 | MVD Registers | 0x10330000 | MVD services | New3DS only? |
? | A11 | MVD Registers | 0x10331000 | MVD services | New3DS only? |
? | A11 | MVD Registers | 0x10332000 | MVD services | New3DS only? |
Yes | A11 | ? | 0x10322000 | NWM Services | |
Yes | A11 | ? | 0x10323000 | NWM Services | |
Yes | A11 | LCD Registers | 0x10400000 | Boot11, Kernel11, GSP Services | |
Yes | A11 | LCD Registers | 0x10420000 | GSP Services |
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.
0x10012000
Keys seem to be stored here? Access to this region is disabled once Kernel9 crt0 writes 0x2 to REG_SYSPROT9. Before writing that bit, Kernel9 copies the low u32 for the TWL keydata to +0x100. On devunits(UNITINFO!=0) Kernel9 uses the first 8-bytes from 0x10012000 for the TWL keydata.
This region is also used by the New_3DS FIRM loader at the end of the FIRM ARM9 binary.