IO Registers: Difference between revisions

Smea (talk | contribs)
mNo edit summary
Neobrain (talk | contribs)
Gotta be short and concise :)
Line 11: Line 11:
| style="background: green" | Yes
| style="background: green" | Yes
| A9
| A9
| [[CONFIG Registers]]
| [[CONFIG rgstrs]]
| 0x10000000
| 0x10000000
| Boot9, Process9
| Boot9, Process9
Line 18: Line 18:
| style="background: green" | Yes
| style="background: green" | Yes
| A9
| A9
| [[IRQ Registers]]
| [[IRQ rgstrs]]
| 0x10001000
| 0x10001000
| Boot9, Process9, Kernel9
| Boot9, Process9, Kernel9
Line 25: Line 25:
| style="background: green" | Yes
| style="background: green" | Yes
| A9
| A9
| [[NDMA Registers]]
| [[NDMA rgstrs]]
| 0x10002000
| 0x10002000
| Boot9, Process9
| Boot9, Process9
Line 32: Line 32:
| style="background: green" | Yes
| style="background: green" | Yes
| A9
| A9
| [[TIMER Registers]]
| [[TIMER rgstrs]]
| 0x10003000
| 0x10003000
| Boot9, Process9
| Boot9, Process9
Line 39: Line 39:
| style="background: green" | Yes
| style="background: green" | Yes
| A9
| A9
| [[CTRCARD Registers]]
| [[CTRCARD rgstrs]]
| 0x10004000 / 0x10005000
| 0x10004000 / 0x10005000
| Process9
| Process9
Line 46: Line 46:
| style="background: green" | Yes
| style="background: green" | Yes
| A9
| A9
| [[EMMC Registers]]
| [[EMMC rgstrs]]
| 0x10006000 / 0x10007000
| 0x10006000 / 0x10007000
| Boot9, Process9
| Boot9, Process9
Line 53: Line 53:
| style="background: green" | Yes
| style="background: green" | Yes
| A9
| A9
| [[PXI Registers]]
| [[PXI rgstrs]]
| 0x10008000
| 0x10008000
| Boot9, Process9
| Boot9, Process9
Line 60: Line 60:
| style="background: green" | Yes
| style="background: green" | Yes
| A9
| A9
| [[AES Registers]]
| [[AES rgstrs]]
| 0x10009000
| 0x10009000
| Boot9, Process9
| Boot9, Process9
Line 67: Line 67:
| style="background: green" | Yes
| style="background: green" | Yes
| A9
| A9
| [[SHA Registers]]
| [[SHA rgstrs]]
| 0x1000A000
| 0x1000A000
| Boot9, Process9
| Boot9, Process9
Line 74: Line 74:
| style="background: green" | Yes
| style="background: green" | Yes
| A9
| A9
| [[RSA Registers]]
| [[RSA rgstrs]]
| 0x1000B000
| 0x1000B000
| Boot9, Process9
| Boot9, Process9
Line 81: Line 81:
| style="background: green" | Yes
| style="background: green" | Yes
| A9
| A9
| [[XDMA Registers]]
| [[XDMA rgstrs]]
| 0x1000C000
| 0x1000C000
| Boot9, Kernel9
| Boot9, Kernel9
Line 88: Line 88:
| style="background: green" | Yes
| style="background: green" | Yes
| A9
| A9
| [[SPICARD Registers]]
| [[SPICARD rgstrs]]
| 0x1000D800
| 0x1000D800
| Process9
| Process9
Line 95: Line 95:
| style="background: green" | Yes
| style="background: green" | Yes
| ?
| ?
| [[CONFIG Registers]]
| [[CONFIG rgstrs]]
| 0x10010000
| 0x10010000
| Process9
| Process9
Line 102: Line 102:
| style="background: green" | Yes
| style="background: green" | Yes
| ?
| ?
| PRNG Registers
| PRNG rgstrs
| 0x10011000
| 0x10011000
| Process9
| Process9
Line 109: Line 109:
| style="background: green" | Yes
| style="background: green" | Yes
| ?
| ?
| [[OTP Registers]]
| [[OTP rgstrs]]
| 0x10012000
| 0x10012000
| Kernel9, NewKernel9Loader
| Kernel9, NewKernel9Loader
Line 130: Line 130:
| style="background: green" | Yes
| style="background: green" | Yes
| A11/A9
| A11/A9
| [[HASH Registers]]
| [[HASH rgstrs]]
| 0x10101000
| 0x10101000
| [[Filesystem services]]
| [[Filesystem services]]
Line 137: Line 137:
| style="background: green" | Yes
| style="background: green" | Yes
| A11/A9
| A11/A9
| [[Camera Registers]]
| [[Camera rgstrs]]
| 0x10102000
| 0x10102000
| [[Camera Services]]
| [[Camera Services]]
Line 144: Line 144:
| style="background: green" | Yes
| style="background: green" | Yes
| A11/A9
| A11/A9
| [[CSND Registers]] / [[DSP Registers]]
| [[CSND rgstrs]] / [[DSP rgstrs]]
| 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 registers used to access legacy output framebuffer, as well as configure the upscaling filter.
| IO rgstrs 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 registers used to access legacy output framebuffer, as well as configure the upscaling filter.
| IO rgstrs 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 Registers]]  
| [[Camera rgstrs]]  
| 0x10120000
| 0x10120000
| [[Camera Services]]
| [[Camera Services]]
Line 172: Line 172:
| style="background: green" | Yes
| style="background: green" | Yes
| A11/A9
| A11/A9
| [[Camera Registers]]
| [[Camera rgstrs]]
| 0x10121000
| 0x10121000
| [[Camera Services]]
| [[Camera Services]]
Line 193: Line 193:
| style="background: red" | No
| style="background: red" | No
| A11/A9
| A11/A9
| [[MVD Registers]]
| [[MVD rgstrs]]
| 0x10130000
| 0x10130000
| [[MVD Services]]
| [[MVD Services]]
Line 200: Line 200:
| style="background: red" | No
| style="background: red" | No
| A11/A9
| A11/A9
| [[MVD Registers]]
| [[MVD rgstrs]]
| 0x10131000
| 0x10131000
| [[MVD Services]]
| [[MVD Services]]
Line 207: Line 207:
| style="background: red" | No
| style="background: red" | No
| A11/A9
| A11/A9
| [[MVD Registers]]
| [[MVD rgstrs]]
| 0x10132000
| 0x10132000
| [[MVD Services]]
| [[MVD Services]]
Line 214: Line 214:
| style="background: green" | Yes
| style="background: green" | Yes
| A11/A9
| A11/A9
| [[PDN Registers]]
| [[PDN rgstrs]]
| 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 Registers]]
| [[PDN rgstrs]]
| 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 Registers]]
| [[SPI rgstrs]]
| 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 Registers]]
| [[SPI rgstrs]]
| 0x10143000
| 0x10143000
| TwlBg
| TwlBg
Line 242: Line 242:
| style="background: green" | Yes
| style="background: green" | Yes
| A11/A9
| A11/A9
| [[I2C Registers]]
| [[I2C rgstrs]]
| 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 Registers]]
| [[CODEC rgstrs]]
| 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 Registers]]
| [[HID rgstrs]]
| 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 Registers]]
| [[GPIO rgstrs]]
| 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 Registers]]
| [[I2C rgstrs]]
| 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 Registers]]
| [[SPI rgstrs]]
| 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 Registers]]
| [[I2C rgstrs]]
| 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 Registers]]
| [[MIC rgstrs]]
| 0x10162000
| 0x10162000
| [[MIC Services]]
| [[MIC Services]]
Line 298: Line 298:
| style="background: green" | Yes
| style="background: green" | Yes
| A11/A9
| A11/A9
| [[PXI Registers]]
| [[PXI rgstrs]]
| 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 Registers]]
| [[NTRCARD rgstrs]]
| 0x10164000
| 0x10164000
| Boot9, Process9
| Boot9, Process9
Line 312: Line 312:
| style="background: green" | Yes
| style="background: green" | Yes
| A11/A9
| A11/A9
| [[MP Registers]]
| [[MP rgstrs]]
| 0x10165000
| 0x10165000
| [[MP Services]]
| [[MP Services]]
Line 319: Line 319:
| style="background: green" | Yes
| style="background: green" | Yes
| A11/A9
| A11/A9
|  [[MP Registers]]
|  [[MP rgstrs]]
| 0x10170000
| 0x10170000
| [[MP Services]]
| [[MP Services]]
| NTR WIFI Registers, see [http://problemkaputt.de/gbatek.htm#dswirelesscommunications GBATek].
| NTR WIFI rgstrs, see [http://problemkaputt.de/gbatek.htm#dswirelesscommunications GBATek].
|-
|-
| style="background: green" | Yes
| style="background: green" | Yes
| A11/A9
| A11/A9
|  [[MP Registers]]
|  [[MP rgstrs]]
| 0x10171000
| 0x10171000
| [[MP Services]]
| [[MP Services]]
| NTR WIFI Registers (mirror)
| NTR WIFI rgstrs (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 Registers]]
| [[MP rgstrs]]
| 0x10174000
| 0x10174000
| [[MP Services]]
| [[MP Services]]
Line 354: Line 354:
| style="background: green" | Yes
| style="background: green" | Yes
| A11/A9
| A11/A9
| [[MP Registers]]
| [[MP rgstrs]]
| 0x10175000
| 0x10175000
|?
|?
Line 361: Line 361:
| style="background: green" | Yes
| style="background: green" | Yes
| A11/A9
| A11/A9
|  [[MP Registers]]
|  [[MP rgstrs]]
| 0x10176000
| 0x10176000
|?
|?
| NTR WIFI Registers (mirror)
| NTR WIFI rgstrs (mirror)
|-
|-
| style="background: green" | Yes
| style="background: green" | Yes
| A11/A9
| A11/A9
|  [[MP Registers]]
|  [[MP rgstrs]]
| 0x10177000
| 0x10177000
|?
|?
| NTR WIFI Registers (mirror)
| NTR WIFI rgstrs (mirror)
|-
|-
| style="background: green" | Yes
| style="background: green" | Yes
| A11/A9
| A11/A9
| [[MP Registers]]
| [[MP rgstrs]]
| 0x10178000 - 0x10180000
| 0x10178000 - 0x10180000
| [[MP Services]]
| [[MP Services]]
Line 396: Line 396:
| style="background: green" | Yes
| style="background: green" | Yes
| A11
| A11
| [[LCD Registers]]
| [[LCD rgstrs]]
| 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 Registers]]
| [[DSP rgstrs]]
| 0x10203000
| 0x10203000
| [[DSP Services]]
| [[DSP Services]]
Line 424: Line 424:
| style="background: red" | No
| style="background: red" | No
| A11
| A11
| [[MVD Registers]]
| [[MVD rgstrs]]
| 0x10207000
| 0x10207000
| [[MVD Services]]
| [[MVD Services]]
Line 445: Line 445:
| style="background: green" | Yes
| style="background: green" | Yes
| A11
| A11
| [[GPU Registers]]
| [[GPU rgstrs]]
| 0x10400000
| 0x10400000
| Boot11, Kernel11, [[GSP Services]]
| Boot11, Kernel11, [[GSP Services]]
Line 451: Line 451:
|}
|}


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.
IO rgstrs starting at physical address 0x10200000 are not accessible from the ARM9 (which includes all LCD/GPU rgstrs). It seems IO rgstrs 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:
ARM11 kernel virtual address mappings for these rgstrs varies for different builds. For ARM11 user mode applications you have:
  physaddr = virtaddr - 0x1EC00000 + 0x10100000
  physaddr = virtaddr - 0x1EC00000 + 0x10100000