IO Registers: Difference between revisions

Neobrain (talk | contribs)
Gotta be short and concise :)
Smea (talk | contribs)
Undo revision 12253 by Neobrain (talk)
Line 11: Line 11:
| style="background: green" | Yes
| style="background: green" | Yes
| A9
| A9
| [[CONFIG rgstrs]]
| [[CONFIG Registers]]
| 0x10000000
| 0x10000000
| Boot9, Process9
| Boot9, Process9
Line 18: Line 18:
| style="background: green" | Yes
| style="background: green" | Yes
| A9
| A9
| [[IRQ rgstrs]]
| [[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 rgstrs]]
| [[NDMA Registers]]
| 0x10002000
| 0x10002000
| Boot9, Process9
| Boot9, Process9
Line 32: Line 32:
| style="background: green" | Yes
| style="background: green" | Yes
| A9
| A9
| [[TIMER rgstrs]]
| [[TIMER Registers]]
| 0x10003000
| 0x10003000
| Boot9, Process9
| Boot9, Process9
Line 39: Line 39:
| style="background: green" | Yes
| style="background: green" | Yes
| A9
| A9
| [[CTRCARD rgstrs]]
| [[CTRCARD Registers]]
| 0x10004000 / 0x10005000
| 0x10004000 / 0x10005000
| Process9
| Process9
Line 46: Line 46:
| style="background: green" | Yes
| style="background: green" | Yes
| A9
| A9
| [[EMMC rgstrs]]
| [[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 rgstrs]]
| [[PXI Registers]]
| 0x10008000
| 0x10008000
| Boot9, Process9
| Boot9, Process9
Line 60: Line 60:
| style="background: green" | Yes
| style="background: green" | Yes
| A9
| A9
| [[AES rgstrs]]
| [[AES Registers]]
| 0x10009000
| 0x10009000
| Boot9, Process9
| Boot9, Process9
Line 67: Line 67:
| style="background: green" | Yes
| style="background: green" | Yes
| A9
| A9
| [[SHA rgstrs]]
| [[SHA Registers]]
| 0x1000A000
| 0x1000A000
| Boot9, Process9
| Boot9, Process9
Line 74: Line 74:
| style="background: green" | Yes
| style="background: green" | Yes
| A9
| A9
| [[RSA rgstrs]]
| [[RSA Registers]]
| 0x1000B000
| 0x1000B000
| Boot9, Process9
| Boot9, Process9
Line 81: Line 81:
| style="background: green" | Yes
| style="background: green" | Yes
| A9
| A9
| [[XDMA rgstrs]]
| [[XDMA Registers]]
| 0x1000C000
| 0x1000C000
| Boot9, Kernel9
| Boot9, Kernel9
Line 88: Line 88:
| style="background: green" | Yes
| style="background: green" | Yes
| A9
| A9
| [[SPICARD rgstrs]]
| [[SPICARD Registers]]
| 0x1000D800
| 0x1000D800
| Process9
| Process9
Line 95: Line 95:
| style="background: green" | Yes
| style="background: green" | Yes
| ?
| ?
| [[CONFIG rgstrs]]
| [[CONFIG Registers]]
| 0x10010000
| 0x10010000
| Process9
| Process9
Line 102: Line 102:
| style="background: green" | Yes
| style="background: green" | Yes
| ?
| ?
| PRNG rgstrs
| PRNG Registers
| 0x10011000
| 0x10011000
| Process9
| Process9
Line 109: Line 109:
| style="background: green" | Yes
| style="background: green" | Yes
| ?
| ?
| [[OTP rgstrs]]
| [[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 rgstrs]]
| [[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 rgstrs]]
| [[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 rgstrs]] / [[DSP rgstrs]]
| [[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 rgstrs used to access legacy output framebuffer, as well as configure the upscaling filter.
| 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 rgstrs used to access legacy output framebuffer, as well as configure the upscaling filter.
| 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 rgstrs]]  
| [[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 rgstrs]]
| [[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 rgstrs]]
| [[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 rgstrs]]
| [[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 rgstrs]]
| [[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 rgstrs]]
| [[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 rgstrs]]
| [[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 rgstrs]]
| [[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 rgstrs]]
| [[SPI Registers]]
| 0x10143000
| 0x10143000
| TwlBg
| TwlBg
Line 242: Line 242:
| style="background: green" | Yes
| style="background: green" | Yes
| A11/A9
| A11/A9
| [[I2C rgstrs]]
| [[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 rgstrs]]
| [[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 rgstrs]]
| [[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 rgstrs]]
| [[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 rgstrs]]
| [[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 rgstrs]]
| [[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 rgstrs]]
| [[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 rgstrs]]
| [[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 rgstrs]]
| [[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 rgstrs]]
| [[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 rgstrs]]
| [[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 rgstrs]]
|  [[MP Registers]]
| 0x10170000
| 0x10170000
| [[MP Services]]
| [[MP Services]]
| NTR WIFI rgstrs, see [http://problemkaputt.de/gbatek.htm#dswirelesscommunications GBATek].
| NTR WIFI Registers, see [http://problemkaputt.de/gbatek.htm#dswirelesscommunications GBATek].
|-
|-
| style="background: green" | Yes
| style="background: green" | Yes
| A11/A9
| A11/A9
|  [[MP rgstrs]]
|  [[MP Registers]]
| 0x10171000
| 0x10171000
| [[MP Services]]
| [[MP Services]]
| NTR WIFI rgstrs (mirror)
| 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 rgstrs]]
| [[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 rgstrs]]
| [[MP Registers]]
| 0x10175000
| 0x10175000
|?
|?
Line 361: Line 361:
| style="background: green" | Yes
| style="background: green" | Yes
| A11/A9
| A11/A9
|  [[MP rgstrs]]
|  [[MP Registers]]
| 0x10176000
| 0x10176000
|?
|?
| NTR WIFI rgstrs (mirror)
| NTR WIFI Registers (mirror)
|-
|-
| style="background: green" | Yes
| style="background: green" | Yes
| A11/A9
| A11/A9
|  [[MP rgstrs]]
|  [[MP Registers]]
| 0x10177000
| 0x10177000
|?
|?
| NTR WIFI rgstrs (mirror)
| NTR WIFI Registers (mirror)
|-
|-
| style="background: green" | Yes
| style="background: green" | Yes
| A11/A9
| A11/A9
| [[MP rgstrs]]
| [[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 rgstrs]]
| [[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 rgstrs]]
| [[DSP Registers]]
| 0x10203000
| 0x10203000
| [[DSP Services]]
| [[DSP Services]]
Line 424: Line 424:
| style="background: red" | No
| style="background: red" | No
| A11
| A11
| [[MVD rgstrs]]
| [[MVD Registers]]
| 0x10207000
| 0x10207000
| [[MVD Services]]
| [[MVD Services]]
Line 445: Line 445:
| style="background: green" | Yes
| style="background: green" | Yes
| A11
| A11
| [[GPU rgstrs]]
| [[GPU Registers]]
| 0x10400000
| 0x10400000
| Boot11, Kernel11, [[GSP Services]]
| Boot11, Kernel11, [[GSP Services]]
Line 451: Line 451:
|}
|}


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.
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 rgstrs varies for different builds. For ARM11 user mode applications you have:
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