Difference between revisions of "IO Registers"
Jump to navigation
Jump to search
Line 151: | Line 151: | ||
| style="background: green" | Yes | | style="background: green" | Yes | ||
| A11/A9 | | A11/A9 | ||
− | | | + | | LGYFB_SUB |
| 0x10110000 | | 0x10110000 | ||
| TwlBg | | TwlBg | ||
Line 158: | Line 158: | ||
| style="background: green" | Yes | | style="background: green" | Yes | ||
| A11/A9 | | A11/A9 | ||
− | | | + | | LGYFB_MAIN |
| 0x10111000 | | 0x10111000 | ||
| TwlBg | | TwlBg |
Revision as of 19:22, 7 April 2015
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 normally not enabled on retail, all-zeros when read. |
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 (single-channel). |
Yes | A9 | SPICARD Registers | 0x1000D800 | Process9 | |
Yes | ? | CONFIG Registers | 0x10010000 | Process9 | |
Yes | ? | PRNG Registers | 0x10011000 | Process9 | Used as entropy-source for seeding random number generators. |
Yes | ? | OTP Registers | 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 | Camera Registers | 0x10102000 | Camera Services | y2r |
Yes | A11/A9 | CSND Registers / DSP Registers | 0x10103000 | TwlBg, Codec Services, CSND Services, DSP Services | Sound hardware. For DSP regs, see the "DSi XpertTeak" section in no$gba help. |
Yes | A11/A9 | LGYFB_SUB | 0x10110000 | TwlBg | IO registers used to access legacy output framebuffer, as well as configure the upscaling filter. |
Yes | A11/A9 | LGYFB_MAIN | 0x10111000 | TwlBg | IO registers used to access legacy output framebuffer, as well as configure the upscaling filter. |
Yes | A11/A9 | Camera Registers | 0x10120000 | Camera Services | |
Yes | A11/A9 | Camera Registers | 0x10121000 | Camera Services | Mirror of 0x10120000? |
Yes | A11/A9 | ? | 0x10122000 | NWM Services | WIFI? |
Yes | A11/A9 | ? | 0x10123000 | NWM Services | WIFI? |
No | A11/A9 | MVD Registers | 0x10130000 | MVD Services | |
No | A11/A9 | MVD Registers | 0x10131000 | MVD Services | |
No | A11/A9 | MVD Registers | 0x10132000 | MVD Services | |
Yes | A11/A9 | PDN Registers | 0x10140000 | Process9, Boot11, Kernel11, TwlBg, DSP Services, NWM Services, SPI Services | Power management. |
Yes | A11/A9 | PDN Registers | 0x10141000 | Process9, Boot11, Kernel11, TwlBg, Codec Services, NWM Services, SPI Services, PDN 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, dlp Services | See PAD. |
Yes | A11/A9 | GPIO Registers | 0x10147000 | Boot11, TwlBg, GPIO Services, DSP Services(v0) | |
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 | See no$gba help for some clues maybe. |
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 | NTR WIFI WS1 Region |
Yes | A11 | CDMA | 0x10200000 | Boot11, Kernel11 | CoreLink™ DMA-330. Not used on New3DS. |
Yes | A11 | ? | 0x10201000 | ||
Yes | A11 | LCD Registers | 0x10202000 | TwlBg, Kernel11, GSP Services | |
Yes | A11 | DSP Registers | 0x10203000 | DSP Services | |
Yes | A11 | ? | 0x10204000 | ||
No | A11 | CDMA | 0x10206000 | NewKernel11 | CDMA was moved here on New 3DS. CoreLink™ DMA-330. |
No | A11 | MVD Registers | 0x10207000 | MVD Services | New 3DS only? |
Yes | A11 | AXI | 0x1020F000 | TwlBg, GSP Services | CoreLink™ NIC-301 r1p0. |
Yes | A11 | MIRROR | 0x10300000-0x10400000 | Mirror of 0x10100000-0x10200000 (faster bus?), CDMA wants these addresses | |
Yes | A11 | GPU Registers | 0x10400000 | Boot11, Kernel11, GSP Services |
IO registers starting at physical address 0x10200000 are not accessible from the ARM9 (which includes all LCD/GPU registers). It seems IO registers below physical address 0x10100000 are not accessible from the ARM11 bus.
ARM11 kernel virtual address mappings for these registers varies for different builds. For ARM11 user mode applications you have:
physaddr = virtaddr - 0x1EC00000 + 0x10100000