Difference between revisions of "IO Registers"
Jump to navigation
Jump to search
Line 4: | Line 4: | ||
! Old3DS | ! Old3DS | ||
! A9/A11 | ! A9/A11 | ||
− | ! | + | ! Category |
− | ! | + | ! Physaddr |
! Used by | ! Used by | ||
! Comments | ! Comments | ||
|- | |- | ||
− | | Yes | + | | style="background: green" | Yes |
| A9 | | A9 | ||
| [[CONFIG Registers]] | | [[CONFIG Registers]] | ||
Line 16: | Line 16: | ||
| | | | ||
|- | |- | ||
− | | Yes | + | | style="background: green" | Yes |
| A9 | | A9 | ||
| [[IRQ Registers]] | | [[IRQ Registers]] | ||
Line 23: | Line 23: | ||
| ARM9 Interrupt Masking | | ARM9 Interrupt Masking | ||
|- | |- | ||
− | | Yes | + | | style="background: green" | Yes |
| A9 | | A9 | ||
| [[NDMA Registers]] | | [[NDMA Registers]] | ||
Line 30: | Line 30: | ||
| DMA Engine | | DMA Engine | ||
|- | |- | ||
− | | Yes | + | | style="background: green" | Yes |
| A9 | | A9 | ||
| [[TIMER Registers]] | | [[TIMER Registers]] | ||
Line 37: | Line 37: | ||
| | | | ||
|- | |- | ||
− | | Yes | + | | style="background: green" | Yes |
| A9 | | A9 | ||
| [[CTRCARD Registers]] | | [[CTRCARD Registers]] | ||
Line 44: | Line 44: | ||
| | | | ||
|- | |- | ||
− | | Yes | + | | style="background: green" | Yes |
| A9 | | A9 | ||
| [[EMMC Registers]] | | [[EMMC Registers]] | ||
Line 51: | Line 51: | ||
| 0x10007000 is apparently not used on retail | | 0x10007000 is apparently not used on retail | ||
|- | |- | ||
− | | Yes | + | | style="background: green" | Yes |
| A9 | | A9 | ||
| [[PXI Registers]] | | [[PXI Registers]] | ||
Line 58: | Line 58: | ||
| | | | ||
|- | |- | ||
− | | Yes | + | | style="background: green" | Yes |
| A9 | | A9 | ||
| [[AES Registers]] | | [[AES Registers]] | ||
Line 65: | Line 65: | ||
| | | | ||
|- | |- | ||
− | | Yes | + | | style="background: green" | Yes |
| A9 | | A9 | ||
| [[SHA Registers]] | | [[SHA Registers]] | ||
Line 72: | Line 72: | ||
| | | | ||
|- | |- | ||
− | | Yes | + | | style="background: green" | Yes |
| A9 | | A9 | ||
| [[RSA Registers]] | | [[RSA Registers]] | ||
Line 79: | Line 79: | ||
| | | | ||
|- | |- | ||
− | | Yes | + | | style="background: green" | Yes |
| A9 | | A9 | ||
| [[XDMA Registers]] | | [[XDMA Registers]] | ||
Line 86: | Line 86: | ||
| CoreLink™ DMA-330. [http://infocenter.arm.com/help/topic/com.arm.doc.ddi0424d/index.html Info] | | CoreLink™ DMA-330. [http://infocenter.arm.com/help/topic/com.arm.doc.ddi0424d/index.html Info] | ||
|- | |- | ||
− | | Yes | + | | style="background: green" | Yes |
| A9 | | A9 | ||
| [[SPICARD Registers]] | | [[SPICARD Registers]] | ||
Line 93: | Line 93: | ||
| | | | ||
|-style="border-top: double" | |-style="border-top: double" | ||
− | | Yes | + | | style="background: green" | Yes |
| ? | | ? | ||
| [[CONFIG Registers]] | | [[CONFIG Registers]] | ||
Line 100: | Line 100: | ||
| | | | ||
|- | |- | ||
− | | Yes | + | | style="background: green" | Yes |
| ? | | ? | ||
| [[CONFIG Registers]] | | [[CONFIG Registers]] | ||
Line 107: | Line 107: | ||
| | | | ||
|- | |- | ||
− | | Yes | + | | style="background: green" | Yes |
| ? | | ? | ||
| ? | | ? | ||
Line 114: | Line 114: | ||
| Top secret. | | Top secret. | ||
|- | |- | ||
− | | Yes | + | | style="background: green" | Yes |
| ? | | ? | ||
| ? | | ? | ||
Line 121: | Line 121: | ||
| Used to setup the ARM7 core for AGB/TWL | | Used to setup the ARM7 core for AGB/TWL | ||
|-style="border-top: double" | |-style="border-top: double" | ||
− | | Yes | + | | style="background: green" | Yes |
| ? | | ? | ||
| | | | ||
Line 128: | Line 128: | ||
| | | | ||
|- | |- | ||
− | | Yes | + | | style="background: green" | Yes |
| A11/A9 | | A11/A9 | ||
| [[HASH Registers]] | | [[HASH Registers]] | ||
Line 135: | Line 135: | ||
| | | | ||
|- | |- | ||
− | | Yes | + | | style="background: green" | Yes |
| A11/A9 | | A11/A9 | ||
| ? | | ? | ||
Line 142: | Line 142: | ||
| Never used? | | Never used? | ||
|- | |- | ||
− | | Yes | + | | style="background: green" | Yes |
| A11/A9 | | A11/A9 | ||
| [[CSND Registers]] / DSP | | [[CSND Registers]] / DSP | ||
Line 149: | Line 149: | ||
| Sound Hardware | | Sound Hardware | ||
|-style="border-top: double" | |-style="border-top: double" | ||
− | | Yes | + | | style="background: green" | Yes |
| A11/A9 | | A11/A9 | ||
| ? | | ? | ||
Line 156: | Line 156: | ||
| | | | ||
|- | |- | ||
− | | Yes | + | | style="background: green" | Yes |
| A11/A9 | | A11/A9 | ||
| ? | | ? | ||
Line 163: | Line 163: | ||
| | | | ||
|-style="border-top: double" | |-style="border-top: double" | ||
− | | Yes | + | | style="background: green" | Yes |
| A11/A9 | | A11/A9 | ||
| ? | | ? | ||
Line 170: | Line 170: | ||
| | | | ||
|- | |- | ||
− | | Yes | + | | style="background: green" | Yes |
| A11/A9 | | A11/A9 | ||
| ? | | ? | ||
Line 177: | Line 177: | ||
| Mirror of 0x10120000? | | Mirror of 0x10120000? | ||
|- | |- | ||
− | | Yes | + | | style="background: green" | Yes |
| A11/A9 | | A11/A9 | ||
| ? | | ? | ||
Line 184: | Line 184: | ||
| WIFI ? | | WIFI ? | ||
|- | |- | ||
− | | Yes | + | | style="background: green" | Yes |
| A11/A9 | | A11/A9 | ||
| ? | | ? | ||
Line 191: | Line 191: | ||
| WIFI ? | | WIFI ? | ||
|-style="border-top: double" | |-style="border-top: double" | ||
− | | ? | + | | style="background: orange" | ? |
| A11/A9 | | A11/A9 | ||
| [[MVD Registers]] | | [[MVD Registers]] | ||
Line 198: | Line 198: | ||
| New3DS only? | | New3DS only? | ||
|- | |- | ||
− | | ? | + | | style="background: orange" | ? |
| A11/A9 | | A11/A9 | ||
| [[MVD Registers]] | | [[MVD Registers]] | ||
Line 205: | Line 205: | ||
| New3DS only? | | New3DS only? | ||
|- | |- | ||
− | | ? | + | | style="background: orange" | ? |
| A11/A9 | | A11/A9 | ||
| [[MVD Registers]] | | [[MVD Registers]] | ||
Line 212: | Line 212: | ||
| New3DS only? | | New3DS only? | ||
|-style="border-top: double" | |-style="border-top: double" | ||
− | | Yes | + | | style="background: green" | Yes |
| A11/A9 | | A11/A9 | ||
| | | | ||
Line 219: | Line 219: | ||
| Power management | | Power management | ||
|- | |- | ||
− | | Yes | + | | style="background: green" | Yes |
| A11/A9 | | A11/A9 | ||
| [[PDN Registers]] / [[CODEC Registers]] | | [[PDN Registers]] / [[CODEC Registers]] | ||
Line 226: | Line 226: | ||
| Power management | | Power management | ||
|- | |- | ||
− | | Yes | + | | style="background: green" | Yes |
| A11/A9 | | A11/A9 | ||
| [[SPI Registers]] | | [[SPI Registers]] | ||
Line 233: | Line 233: | ||
| | | | ||
|- | |- | ||
− | | Yes | + | | style="background: green" | Yes |
| A11/A9 | | A11/A9 | ||
| [[SPI Registers]] | | [[SPI Registers]] | ||
Line 240: | Line 240: | ||
| Only used under TWL_FIRM? | | Only used under TWL_FIRM? | ||
|- | |- | ||
− | | Yes | + | | style="background: green" | Yes |
| A11/A9 | | A11/A9 | ||
| [[I2C Registers]] | | [[I2C Registers]] | ||
Line 247: | Line 247: | ||
| | | | ||
|- | |- | ||
− | | Yes | + | | style="background: green" | Yes |
| A11/A9 | | A11/A9 | ||
| [[CODEC Registers]] | | [[CODEC Registers]] | ||
Line 254: | Line 254: | ||
| | | | ||
|- | |- | ||
− | | Yes | + | | style="background: green" | Yes |
| A11/A9 | | A11/A9 | ||
| [[HID Registers]] | | [[HID Registers]] | ||
Line 261: | Line 261: | ||
| See [[PAD]]. | | See [[PAD]]. | ||
|- | |- | ||
− | | Yes | + | | style="background: green" | Yes |
| A11/A9 | | A11/A9 | ||
| [[GPIO Registers]] | | [[GPIO Registers]] | ||
Line 268: | Line 268: | ||
| | | | ||
|- | |- | ||
− | | Yes | + | | style="background: green" | Yes |
| A11/A9 | | A11/A9 | ||
| [[I2C Registers]] | | [[I2C Registers]] | ||
Line 275: | Line 275: | ||
| | | | ||
|-style="border-top: double" | |-style="border-top: double" | ||
− | | Yes | + | | style="background: green" | Yes |
| A11/A9 | | A11/A9 | ||
| [[SPI Registers]] | | [[SPI Registers]] | ||
Line 282: | Line 282: | ||
| | | | ||
|- | |- | ||
− | | Yes | + | | style="background: green" | Yes |
| A11/A9 | | A11/A9 | ||
| [[I2C Registers]] | | [[I2C Registers]] | ||
Line 289: | Line 289: | ||
| | | | ||
|- | |- | ||
− | | Yes | + | | style="background: green" | Yes |
| A11/A9 | | A11/A9 | ||
| [[MIC Registers]] | | [[MIC Registers]] | ||
Line 296: | Line 296: | ||
| | | | ||
|- | |- | ||
− | | Yes | + | | style="background: green" | Yes |
| A11/A9 | | A11/A9 | ||
| [[PXI Registers]] | | [[PXI Registers]] | ||
Line 303: | Line 303: | ||
| | | | ||
|- | |- | ||
− | | Yes | + | | style="background: green" | Yes |
| A11/A9 | | A11/A9 | ||
| [[NTRCARD Registers]] | | [[NTRCARD Registers]] | ||
Line 310: | Line 310: | ||
| | | | ||
|- | |- | ||
− | | Yes | + | | style="background: green" | Yes |
| A11/A9 | | A11/A9 | ||
| [[MP Registers]] | | [[MP Registers]] | ||
Line 317: | Line 317: | ||
| | | | ||
|-style="border-top: double" | |-style="border-top: double" | ||
− | | Yes | + | | style="background: green" | Yes |
| A11/A9 | | A11/A9 | ||
| [[MP Registers]] | | [[MP Registers]] | ||
Line 324: | Line 324: | ||
| NTR WIFI Registers, see [http://problemkaputt.de/gbatek.htm#dswirelesscommunications GBATek]. | | NTR WIFI Registers, see [http://problemkaputt.de/gbatek.htm#dswirelesscommunications GBATek]. | ||
|- | |- | ||
− | | Yes | + | | style="background: green" | Yes |
| A11/A9 | | A11/A9 | ||
| [[MP Registers]] | | [[MP Registers]] | ||
Line 331: | Line 331: | ||
| NTR WIFI Registers (mirror) | | NTR WIFI Registers (mirror) | ||
|- | |- | ||
− | | Yes | + | | style="background: green" | Yes |
| A11/A9 | | A11/A9 | ||
| | | | ||
Line 338: | Line 338: | ||
| NTR WIFI Unused? | | NTR WIFI Unused? | ||
|- | |- | ||
− | | Yes | + | | style="background: green" | Yes |
| A11/A9 | | A11/A9 | ||
| | | | ||
Line 345: | Line 345: | ||
| NTR WIFI Unused? | | NTR WIFI Unused? | ||
|- | |- | ||
− | | Yes | + | | style="background: green" | Yes |
| A11/A9 | | A11/A9 | ||
| [[MP Registers]] | | [[MP Registers]] | ||
Line 352: | Line 352: | ||
| NTR WIFI RAM | | NTR WIFI RAM | ||
|- | |- | ||
− | | Yes | + | | style="background: green" | Yes |
| A11/A9 | | A11/A9 | ||
| [[MP Registers]] | | [[MP Registers]] | ||
Line 359: | Line 359: | ||
| NTR WIFI RAM | | NTR WIFI RAM | ||
|- | |- | ||
− | | Yes | + | | style="background: green" | Yes |
| A11/A9 | | A11/A9 | ||
| [[MP Registers]] | | [[MP Registers]] | ||
Line 366: | Line 366: | ||
| NTR WIFI Registers (mirror) | | NTR WIFI Registers (mirror) | ||
|- | |- | ||
− | | Yes | + | | style="background: green" | Yes |
| A11/A9 | | A11/A9 | ||
| [[MP Registers]] | | [[MP Registers]] | ||
Line 373: | Line 373: | ||
| NTR WIFI Registers (mirror) | | NTR WIFI Registers (mirror) | ||
|- | |- | ||
− | | Yes | + | | style="background: green" | Yes |
| A11/A9 | | A11/A9 | ||
| [[MP Registers]] | | [[MP Registers]] | ||
Line 380: | Line 380: | ||
| Wifi WS1 Region | | Wifi WS1 Region | ||
|-style="border-top: double" | |-style="border-top: double" | ||
− | | Yes | + | | style="background: green" | Yes |
| A11 | | A11 | ||
| CDMA | | CDMA | ||
Line 387: | Line 387: | ||
| CoreLink™ DMA-330. [http://infocenter.arm.com/help/topic/com.arm.doc.ddi0424d/index.html Info] | | CoreLink™ DMA-330. [http://infocenter.arm.com/help/topic/com.arm.doc.ddi0424d/index.html Info] | ||
|- | |- | ||
− | | Yes | + | | style="background: green" | Yes |
| A11 | | A11 | ||
| ? | | ? | ||
Line 394: | Line 394: | ||
| | | | ||
|- | |- | ||
− | | Yes | + | | style="background: green" | Yes |
| A11 | | A11 | ||
| DSP | | DSP | ||
Line 401: | Line 401: | ||
| | | | ||
|- | |- | ||
− | | ? | + | | style="background: orange" | ? |
| A11 | | A11 | ||
| [[MVD Registers]] | | [[MVD Registers]] | ||
Line 408: | Line 408: | ||
| New3DS only? | | New3DS only? | ||
|- | |- | ||
− | | Yes | + | | style="background: green" | Yes |
| A11 | | A11 | ||
| GPU? | | GPU? | ||
Line 415: | Line 415: | ||
| | | | ||
|-style="border-top: double" | |-style="border-top: double" | ||
− | | Yes | + | | style="background: green" | Yes |
| A11 | | A11 | ||
| [[HASH Registers]] | | [[HASH Registers]] | ||
Line 422: | Line 422: | ||
| | | | ||
|- | |- | ||
− | | ? | + | | style="background: orange" | ? |
| A11 | | A11 | ||
| [[MVD Registers]] | | [[MVD Registers]] | ||
Line 429: | Line 429: | ||
| New3DS only? | | New3DS only? | ||
|- | |- | ||
− | | ? | + | | style="background: orange" | ? |
| A11 | | A11 | ||
| [[MVD Registers]] | | [[MVD Registers]] | ||
Line 436: | Line 436: | ||
| New3DS only? | | New3DS only? | ||
|- | |- | ||
− | | ? | + | | style="background: orange" | ? |
| A11 | | A11 | ||
| [[MVD Registers]] | | [[MVD Registers]] | ||
Line 443: | Line 443: | ||
| New3DS only? | | New3DS only? | ||
|-style="border-top: double" | |-style="border-top: double" | ||
− | | Yes | + | | style="background: green" | Yes |
| A11 | | A11 | ||
| ? | | ? | ||
Line 450: | Line 450: | ||
| | | | ||
|- | |- | ||
− | | Yes | + | | style="background: green" | Yes |
| A11 | | A11 | ||
| ? | | ? | ||
Line 457: | Line 457: | ||
| | | | ||
|-style="border-top: double" | |-style="border-top: double" | ||
− | | Yes | + | | style="background: green" | Yes |
| A11 | | A11 | ||
| [[LCD Registers]] | | [[LCD Registers]] | ||
Line 464: | Line 464: | ||
| | | | ||
|- | |- | ||
− | | Yes | + | | style="background: green" | Yes |
| A11 | | A11 | ||
| [[LCD Registers]] | | [[LCD Registers]] |
Revision as of 00:41, 8 October 2014
Overview
Old3DS | A9/A11 | Category | Physaddr | 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.