IO Registers: Difference between revisions
Gotta be short and concise :) |
|||
Line 11: | Line 11: | ||
| style="background: green" | Yes | | style="background: green" | Yes | ||
| A9 | | A9 | ||
| [[CONFIG | | [[CONFIG Registers]] | ||
| 0x10000000 | | 0x10000000 | ||
| Boot9, Process9 | | Boot9, Process9 | ||
Line 18: | Line 18: | ||
| style="background: green" | Yes | | style="background: green" | Yes | ||
| A9 | | A9 | ||
| [[IRQ | | [[IRQ Registers]] | ||
| 0x10001000 | | 0x10001000 | ||
| Boot9, Process9, Kernel9 | | Boot9, Process9, Kernel9 | ||
Line 25: | Line 25: | ||
| style="background: green" | Yes | | style="background: green" | Yes | ||
| A9 | | A9 | ||
| [[NDMA | | [[NDMA Registers]] | ||
| 0x10002000 | | 0x10002000 | ||
| Boot9, Process9 | | Boot9, Process9 | ||
Line 32: | Line 32: | ||
| style="background: green" | Yes | | style="background: green" | Yes | ||
| A9 | | A9 | ||
| [[TIMER | | [[TIMER Registers]] | ||
| 0x10003000 | | 0x10003000 | ||
| Boot9, Process9 | | Boot9, Process9 | ||
Line 39: | Line 39: | ||
| style="background: green" | Yes | | style="background: green" | Yes | ||
| A9 | | A9 | ||
| [[CTRCARD | | [[CTRCARD Registers]] | ||
| 0x10004000 / 0x10005000 | | 0x10004000 / 0x10005000 | ||
| Process9 | | Process9 | ||
Line 46: | Line 46: | ||
| style="background: green" | Yes | | style="background: green" | Yes | ||
| A9 | | A9 | ||
| [[EMMC | | [[EMMC Registers]] | ||
| 0x10006000 / 0x10007000 | | 0x10006000 / 0x10007000 | ||
| Boot9, Process9 | | Boot9, Process9 | ||
Line 53: | Line 53: | ||
| style="background: green" | Yes | | style="background: green" | Yes | ||
| A9 | | A9 | ||
| [[PXI | | [[PXI Registers]] | ||
| 0x10008000 | | 0x10008000 | ||
| Boot9, Process9 | | Boot9, Process9 | ||
Line 60: | Line 60: | ||
| style="background: green" | Yes | | style="background: green" | Yes | ||
| A9 | | A9 | ||
| [[AES | | [[AES Registers]] | ||
| 0x10009000 | | 0x10009000 | ||
| Boot9, Process9 | | Boot9, Process9 | ||
Line 67: | Line 67: | ||
| style="background: green" | Yes | | style="background: green" | Yes | ||
| A9 | | A9 | ||
| [[SHA | | [[SHA Registers]] | ||
| 0x1000A000 | | 0x1000A000 | ||
| Boot9, Process9 | | Boot9, Process9 | ||
Line 74: | Line 74: | ||
| style="background: green" | Yes | | style="background: green" | Yes | ||
| A9 | | A9 | ||
| [[RSA | | [[RSA Registers]] | ||
| 0x1000B000 | | 0x1000B000 | ||
| Boot9, Process9 | | Boot9, Process9 | ||
Line 81: | Line 81: | ||
| style="background: green" | Yes | | style="background: green" | Yes | ||
| A9 | | A9 | ||
| [[XDMA | | [[XDMA Registers]] | ||
| 0x1000C000 | | 0x1000C000 | ||
| Boot9, Kernel9 | | Boot9, Kernel9 | ||
Line 88: | Line 88: | ||
| style="background: green" | Yes | | style="background: green" | Yes | ||
| A9 | | A9 | ||
| [[SPICARD | | [[SPICARD Registers]] | ||
| 0x1000D800 | | 0x1000D800 | ||
| Process9 | | Process9 | ||
Line 95: | Line 95: | ||
| style="background: green" | Yes | | style="background: green" | Yes | ||
| ? | | ? | ||
| [[CONFIG | | [[CONFIG Registers]] | ||
| 0x10010000 | | 0x10010000 | ||
| Process9 | | Process9 | ||
Line 102: | Line 102: | ||
| style="background: green" | Yes | | style="background: green" | Yes | ||
| ? | | ? | ||
| PRNG | | PRNG Registers | ||
| 0x10011000 | | 0x10011000 | ||
| Process9 | | Process9 | ||
Line 109: | Line 109: | ||
| style="background: green" | Yes | | style="background: green" | Yes | ||
| ? | | ? | ||
| [[OTP | | [[OTP Registers]] | ||
| 0x10012000 | | 0x10012000 | ||
| Kernel9, NewKernel9Loader | | Kernel9, NewKernel9Loader | ||
Line 130: | Line 130: | ||
| style="background: green" | Yes | | style="background: green" | Yes | ||
| A11/A9 | | A11/A9 | ||
| [[HASH | | [[HASH Registers]] | ||
| 0x10101000 | | 0x10101000 | ||
| [[Filesystem services]] | | [[Filesystem services]] | ||
Line 137: | Line 137: | ||
| style="background: green" | Yes | | style="background: green" | Yes | ||
| A11/A9 | | A11/A9 | ||
| [[Camera | | [[Camera Registers]] | ||
| 0x10102000 | | 0x10102000 | ||
| [[Camera Services]] | | [[Camera Services]] | ||
Line 144: | Line 144: | ||
| style="background: green" | Yes | | style="background: green" | Yes | ||
| A11/A9 | | A11/A9 | ||
| [[CSND | | [[CSND Registers]] / [[DSP Registers]] | ||
| 0x10103000 | | 0x10103000 | ||
| TwlBg, [[Codec Services]], [[CSND Services]], [[DSP Services]] | | TwlBg, [[Codec Services]], [[CSND Services]], [[DSP Services]] | ||
Line 154: | Line 154: | ||
| 0x10110000 | | 0x10110000 | ||
| TwlBg | | TwlBg | ||
| IO | | IO registers used to access legacy output framebuffer, as well as configure the upscaling filter. | ||
|- | |- | ||
| style="background: green" | Yes | | style="background: green" | Yes | ||
Line 161: | Line 161: | ||
| 0x10111000 | | 0x10111000 | ||
| TwlBg | | TwlBg | ||
| IO | | IO registers used to access legacy output framebuffer, as well as configure the upscaling filter. | ||
|-style="border-top: double" | |-style="border-top: double" | ||
| style="background: green" | Yes | | style="background: green" | Yes | ||
| A11/A9 | | A11/A9 | ||
| [[Camera | | [[Camera Registers]] | ||
| 0x10120000 | | 0x10120000 | ||
| [[Camera Services]] | | [[Camera Services]] | ||
Line 172: | Line 172: | ||
| style="background: green" | Yes | | style="background: green" | Yes | ||
| A11/A9 | | A11/A9 | ||
| [[Camera | | [[Camera Registers]] | ||
| 0x10121000 | | 0x10121000 | ||
| [[Camera Services]] | | [[Camera Services]] | ||
Line 193: | Line 193: | ||
| style="background: red" | No | | style="background: red" | No | ||
| A11/A9 | | A11/A9 | ||
| [[MVD | | [[MVD Registers]] | ||
| 0x10130000 | | 0x10130000 | ||
| [[MVD Services]] | | [[MVD Services]] | ||
Line 200: | Line 200: | ||
| style="background: red" | No | | style="background: red" | No | ||
| A11/A9 | | A11/A9 | ||
| [[MVD | | [[MVD Registers]] | ||
| 0x10131000 | | 0x10131000 | ||
| [[MVD Services]] | | [[MVD Services]] | ||
Line 207: | Line 207: | ||
| style="background: red" | No | | style="background: red" | No | ||
| A11/A9 | | A11/A9 | ||
| [[MVD | | [[MVD Registers]] | ||
| 0x10132000 | | 0x10132000 | ||
| [[MVD Services]] | | [[MVD Services]] | ||
Line 214: | Line 214: | ||
| style="background: green" | Yes | | style="background: green" | Yes | ||
| A11/A9 | | A11/A9 | ||
| [[PDN | | [[PDN Registers]] | ||
| 0x10140000 | | 0x10140000 | ||
| Process9, Boot11, Kernel11, TwlBg, [[DSP Services]], [[NWM Services]], [[SPI Services]] | | Process9, Boot11, Kernel11, TwlBg, [[DSP Services]], [[NWM Services]], [[SPI Services]] | ||
Line 221: | Line 221: | ||
| style="background: green" | Yes | | style="background: green" | Yes | ||
| A11/A9 | | A11/A9 | ||
| [[PDN | | [[PDN Registers]] | ||
| 0x10141000 | | 0x10141000 | ||
| Process9, Boot11, Kernel11, TwlBg, [[Codec Services]], [[NWM Services]], [[SPI Services]], [[PDN Services]] | | Process9, Boot11, Kernel11, TwlBg, [[Codec Services]], [[NWM Services]], [[SPI Services]], [[PDN Services]] | ||
Line 228: | Line 228: | ||
| style="background: green" | Yes | | style="background: green" | Yes | ||
| A11/A9 | | A11/A9 | ||
| [[SPI | | [[SPI Registers]] | ||
| 0x10142000 | | 0x10142000 | ||
| TwlBg, [[SPI Services]] | | TwlBg, [[SPI Services]] | ||
Line 235: | Line 235: | ||
| style="background: green" | Yes | | style="background: green" | Yes | ||
| A11/A9 | | A11/A9 | ||
| [[SPI | | [[SPI Registers]] | ||
| 0x10143000 | | 0x10143000 | ||
| TwlBg | | TwlBg | ||
Line 242: | Line 242: | ||
| style="background: green" | Yes | | style="background: green" | Yes | ||
| A11/A9 | | A11/A9 | ||
| [[I2C | | [[I2C Registers]] | ||
| 0x10144000 | | 0x10144000 | ||
| Boot11, Kernel11, TwlBg, [[I2C Services]] | | Boot11, Kernel11, TwlBg, [[I2C Services]] | ||
Line 249: | Line 249: | ||
| style="background: green" | Yes | | style="background: green" | Yes | ||
| A11/A9 | | A11/A9 | ||
| [[CODEC | | [[CODEC Registers]] | ||
| 0x10145000 | | 0x10145000 | ||
| TwlBg, [[Codec Services]] | | TwlBg, [[Codec Services]] | ||
Line 256: | Line 256: | ||
| style="background: green" | Yes | | style="background: green" | Yes | ||
| A11/A9 | | A11/A9 | ||
| [[HID | | [[HID Registers]] | ||
| 0x10146000 | | 0x10146000 | ||
| Boot11, Kernel11, TwlBg, [[HID Services]], dlp Services | | Boot11, Kernel11, TwlBg, [[HID Services]], dlp Services | ||
Line 263: | Line 263: | ||
| style="background: green" | Yes | | style="background: green" | Yes | ||
| A11/A9 | | A11/A9 | ||
| [[GPIO | | [[GPIO Registers]] | ||
| 0x10147000 | | 0x10147000 | ||
| Boot11, TwlBg, [[GPIO Services]], [[DSP Services]](v0) | | Boot11, TwlBg, [[GPIO Services]], [[DSP Services]](v0) | ||
Line 270: | Line 270: | ||
| style="background: green" | Yes | | style="background: green" | Yes | ||
| A11/A9 | | A11/A9 | ||
| [[I2C | | [[I2C Registers]] | ||
| 0x10148000 | | 0x10148000 | ||
| TwlBg, [[I2C Services]] | | TwlBg, [[I2C Services]] | ||
Line 277: | Line 277: | ||
| style="background: green" | Yes | | style="background: green" | Yes | ||
| A11/A9 | | A11/A9 | ||
| [[SPI | | [[SPI Registers]] | ||
| 0x10160000 | | 0x10160000 | ||
| Boot9, TwlBg, [[SPI Services]] | | Boot9, TwlBg, [[SPI Services]] | ||
Line 284: | Line 284: | ||
| style="background: green" | Yes | | style="background: green" | Yes | ||
| A11/A9 | | A11/A9 | ||
| [[I2C | | [[I2C Registers]] | ||
| 0x10161000 | | 0x10161000 | ||
| Boot11, TwlBg, [[I2C Services]] | | Boot11, TwlBg, [[I2C Services]] | ||
Line 291: | Line 291: | ||
| style="background: green" | Yes | | style="background: green" | Yes | ||
| A11/A9 | | A11/A9 | ||
| [[MIC | | [[MIC Registers]] | ||
| 0x10162000 | | 0x10162000 | ||
| [[MIC Services]] | | [[MIC Services]] | ||
Line 298: | Line 298: | ||
| style="background: green" | Yes | | style="background: green" | Yes | ||
| A11/A9 | | A11/A9 | ||
| [[PXI | | [[PXI Registers]] | ||
| 0x10163000 | | 0x10163000 | ||
| Boot11, Kernel11, TwlBg, [[PXI Services]] | | Boot11, Kernel11, TwlBg, [[PXI Services]] | ||
Line 305: | Line 305: | ||
| style="background: green" | Yes | | style="background: green" | Yes | ||
| A11/A9 | | A11/A9 | ||
| [[NTRCARD | | [[NTRCARD Registers]] | ||
| 0x10164000 | | 0x10164000 | ||
| Boot9, Process9 | | Boot9, Process9 | ||
Line 312: | Line 312: | ||
| style="background: green" | Yes | | style="background: green" | Yes | ||
| A11/A9 | | A11/A9 | ||
| [[MP | | [[MP Registers]] | ||
| 0x10165000 | | 0x10165000 | ||
| [[MP Services]] | | [[MP Services]] | ||
Line 319: | Line 319: | ||
| style="background: green" | Yes | | style="background: green" | Yes | ||
| A11/A9 | | A11/A9 | ||
| [[MP | | [[MP Registers]] | ||
| 0x10170000 | | 0x10170000 | ||
| [[MP Services]] | | [[MP Services]] | ||
| NTR WIFI | | NTR WIFI Registers, see [http://problemkaputt.de/gbatek.htm#dswirelesscommunications GBATek]. | ||
|- | |- | ||
| style="background: green" | Yes | | style="background: green" | Yes | ||
| A11/A9 | | A11/A9 | ||
| [[MP | | [[MP Registers]] | ||
| 0x10171000 | | 0x10171000 | ||
| [[MP Services]] | | [[MP Services]] | ||
| NTR WIFI | | NTR WIFI Registers (mirror) | ||
|- | |- | ||
| style="background: green" | Yes | | style="background: green" | Yes | ||
Line 347: | Line 347: | ||
| style="background: green" | Yes | | style="background: green" | Yes | ||
| A11/A9 | | A11/A9 | ||
| [[MP | | [[MP Registers]] | ||
| 0x10174000 | | 0x10174000 | ||
| [[MP Services]] | | [[MP Services]] | ||
Line 354: | Line 354: | ||
| style="background: green" | Yes | | style="background: green" | Yes | ||
| A11/A9 | | A11/A9 | ||
| [[MP | | [[MP Registers]] | ||
| 0x10175000 | | 0x10175000 | ||
|? | |? | ||
Line 361: | Line 361: | ||
| style="background: green" | Yes | | style="background: green" | Yes | ||
| A11/A9 | | A11/A9 | ||
| [[MP | | [[MP Registers]] | ||
| 0x10176000 | | 0x10176000 | ||
|? | |? | ||
| NTR WIFI | | NTR WIFI Registers (mirror) | ||
|- | |- | ||
| style="background: green" | Yes | | style="background: green" | Yes | ||
| A11/A9 | | A11/A9 | ||
| [[MP | | [[MP Registers]] | ||
| 0x10177000 | | 0x10177000 | ||
|? | |? | ||
| NTR WIFI | | NTR WIFI Registers (mirror) | ||
|- | |- | ||
| style="background: green" | Yes | | style="background: green" | Yes | ||
| A11/A9 | | A11/A9 | ||
| [[MP | | [[MP Registers]] | ||
| 0x10178000 - 0x10180000 | | 0x10178000 - 0x10180000 | ||
| [[MP Services]] | | [[MP Services]] | ||
Line 396: | Line 396: | ||
| style="background: green" | Yes | | style="background: green" | Yes | ||
| A11 | | A11 | ||
| [[LCD | | [[LCD Registers]] | ||
| 0x10202000 | | 0x10202000 | ||
| TwlBg, Kernel11, [[GSP Services]] | | TwlBg, Kernel11, [[GSP Services]] | ||
Line 403: | Line 403: | ||
| style="background: green" | Yes | | style="background: green" | Yes | ||
| A11 | | A11 | ||
| [[DSP | | [[DSP Registers]] | ||
| 0x10203000 | | 0x10203000 | ||
| [[DSP Services]] | | [[DSP Services]] | ||
Line 424: | Line 424: | ||
| style="background: red" | No | | style="background: red" | No | ||
| A11 | | A11 | ||
| [[MVD | | [[MVD Registers]] | ||
| 0x10207000 | | 0x10207000 | ||
| [[MVD Services]] | | [[MVD Services]] | ||
Line 445: | Line 445: | ||
| style="background: green" | Yes | | style="background: green" | Yes | ||
| A11 | | A11 | ||
| [[GPU | | [[GPU Registers]] | ||
| 0x10400000 | | 0x10400000 | ||
| Boot11, Kernel11, [[GSP Services]] | | Boot11, Kernel11, [[GSP Services]] | ||
Line 451: | Line 451: | ||
|} | |} | ||
IO | 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 | ARM11 kernel virtual address mappings for these registers varies for different builds. For ARM11 user mode applications you have: | ||
physaddr = virtaddr - 0x1EC00000 + 0x10100000 | physaddr = virtaddr - 0x1EC00000 + 0x10100000 |