Difference between revisions of "IO Registers"

From 3dbrew
Jump to navigation Jump to search
Line 2: Line 2:
  
 
{| class="wikitable" border="1"
 
{| class="wikitable" border="1"
 +
! A9/A11
 
!  Category
 
!  Category
 
! Physical address start
 
! Physical address start
Line 7: Line 8:
 
! Comments
 
! Comments
 
|-
 
|-
 +
| A9
 
| [[CONFIG Registers]]
 
| [[CONFIG Registers]]
 
| 0x10000000
 
| 0x10000000
Line 12: Line 14:
 
|
 
|
 
|-
 
|-
 +
| A9
 
| [[IRQ Registers]]
 
| [[IRQ Registers]]
 
| 0x10001000
 
| 0x10001000
Line 17: Line 20:
 
|
 
|
 
|-
 
|-
 +
| A9
 
| [[NDMA Registers]]
 
| [[NDMA Registers]]
 
| 0x10002000
 
| 0x10002000
Line 22: Line 26:
 
|
 
|
 
|-
 
|-
 +
| A9
 
| [[TIMER Registers]]
 
| [[TIMER Registers]]
 
| 0x10003000
 
| 0x10003000
Line 27: Line 32:
 
|
 
|
 
|-
 
|-
 +
| A9
 
| [[CTRCARD Registers]]
 
| [[CTRCARD Registers]]
 
| 0x10004000 / 0x10005000
 
| 0x10004000 / 0x10005000
Line 32: Line 38:
 
|
 
|
 
|-
 
|-
 +
| A9
 
| [[EMMC Registers]]
 
| [[EMMC Registers]]
 
| 0x10006000 / 0x10007000
 
| 0x10006000 / 0x10007000
Line 37: Line 44:
 
| 0x10007000 is apparently not used on retail
 
| 0x10007000 is apparently not used on retail
 
|-
 
|-
 +
| A9
 
| [[PXI Registers]]
 
| [[PXI Registers]]
 
| 0x10008000
 
| 0x10008000
Line 42: Line 50:
 
|  
 
|  
 
|-
 
|-
 +
| A9
 
| [[AES Registers]]
 
| [[AES Registers]]
 
| 0x10009000
 
| 0x10009000
Line 47: Line 56:
 
|
 
|
 
|-
 
|-
 +
| A9
 
| [[SHA Registers]]
 
| [[SHA Registers]]
 
| 0x1000A000
 
| 0x1000A000
Line 52: Line 62:
 
|
 
|
 
|-
 
|-
 +
| A9
 
| [[RSA Registers]]
 
| [[RSA Registers]]
 
| 0x1000B000
 
| 0x1000B000
Line 57: Line 68:
 
|
 
|
 
|-
 
|-
 +
| A9
 
| [[XDMA Registers]]
 
| [[XDMA Registers]]
 
| 0x1000C000
 
| 0x1000C000
Line 62: Line 74:
 
| 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]
 
|-
 
|-
 +
| A9
 
| [[SPICARD Registers]]
 
| [[SPICARD Registers]]
 
| 0x1000D800
 
| 0x1000D800
Line 67: Line 80:
 
|
 
|
 
|-style="border-top: double"
 
|-style="border-top: double"
 +
| ?
 
| [[CONFIG Registers]]
 
| [[CONFIG Registers]]
 
| 0x10010000
 
| 0x10010000
Line 72: Line 86:
 
|
 
|
 
|-
 
|-
 +
| ?
 
| [[CONFIG Registers]]
 
| [[CONFIG Registers]]
 
| 0x10011000
 
| 0x10011000
Line 77: Line 92:
 
|
 
|
 
|-
 
|-
 +
| ?
 
| ?
 
| ?
 
| 0x10012000
 
| 0x10012000
Line 82: Line 98:
 
|
 
|
 
|-
 
|-
 +
| ?
 
| ?
 
| ?
 
| 0x10018000
 
| 0x10018000
Line 92: Line 109:
 
|  
 
|  
 
|-
 
|-
 +
| A11/A9
 
| [[HASH Registers]]
 
| [[HASH Registers]]
 
| 0x10101000
 
| 0x10101000
Line 97: Line 115:
 
|  
 
|  
 
|-
 
|-
 +
| A11/A9
 
| ?
 
| ?
 
| 0x10102000
 
| 0x10102000
Line 102: Line 121:
 
|  
 
|  
 
|-
 
|-
 +
| A11/A9
 
| [[CSND Registers]] / DSP
 
| [[CSND Registers]] / DSP
 
| 0x10103000
 
| 0x10103000
Line 112: Line 132:
 
|  
 
|  
 
|-
 
|-
 +
| A11/A9
 
| ?
 
| ?
 
| 0x10111000
 
| 0x10111000
Line 117: Line 138:
 
|
 
|
 
|-style="border-top: double"
 
|-style="border-top: double"
 +
| A11/A9
 
| DSP
 
| DSP
 
| 0x10140000
 
| 0x10140000
Line 122: Line 144:
 
|  
 
|  
 
|-
 
|-
 +
| A11/A9
 
| [[PDN Registers]] / [[CODEC Registers]]
 
| [[PDN Registers]] / [[CODEC Registers]]
 
| 0x10141000
 
| 0x10141000
Line 127: Line 150:
 
|  
 
|  
 
|-
 
|-
 +
| A11/A9
 
| [[SPI Registers]]
 
| [[SPI Registers]]
 
| 0x10142000
 
| 0x10142000
Line 132: Line 156:
 
|  
 
|  
 
|-
 
|-
 +
| A11/A9
 
| [[SPI Registers]]
 
| [[SPI Registers]]
 
| 0x10143000
 
| 0x10143000
Line 137: Line 162:
 
| Only used under TWL_FIRM?
 
| Only used under TWL_FIRM?
 
|-
 
|-
 +
| A11/A9
 
| [[I2C Registers]]
 
| [[I2C Registers]]
 
| 0x10144000
 
| 0x10144000
Line 142: Line 168:
 
|  
 
|  
 
|-
 
|-
 +
| A11/A9
 
| [[CODEC Registers]]
 
| [[CODEC Registers]]
 
| 0x10145000
 
| 0x10145000
Line 147: Line 174:
 
|  
 
|  
 
|-
 
|-
 +
| A11/A9
 
| [[HID Registers]]
 
| [[HID Registers]]
 
| 0x10146000
 
| 0x10146000
Line 152: Line 180:
 
| See [[PAD]].
 
| See [[PAD]].
 
|-
 
|-
 +
| A11/A9
 
| [[GPIO Registers]]
 
| [[GPIO Registers]]
 
| 0x10147000
 
| 0x10147000
Line 157: Line 186:
 
|  
 
|  
 
|-  
 
|-  
 +
| A11/A9
 
| [[I2C Registers]]
 
| [[I2C Registers]]
 
| 0x10148000
 
| 0x10148000
Line 162: Line 192:
 
|  
 
|  
 
|-style="border-top: double"
 
|-style="border-top: double"
 +
| A11/A9
 
| [[SPI Registers]]
 
| [[SPI Registers]]
 
| 0x10160000
 
| 0x10160000
Line 167: Line 198:
 
|  
 
|  
 
|-
 
|-
 +
| A11/A9
 
| [[I2C Registers]]
 
| [[I2C Registers]]
 
| 0x10161000
 
| 0x10161000
Line 172: Line 204:
 
|  
 
|  
 
|-
 
|-
 +
| A11/A9
 
| [[MIC Registers]]
 
| [[MIC Registers]]
 
| 0x10162000
 
| 0x10162000
Line 177: Line 210:
 
|  
 
|  
 
|-
 
|-
 +
| A11/A9
 
| [[PXI Registers]]
 
| [[PXI Registers]]
 
| 0x10163000
 
| 0x10163000
Line 182: Line 216:
 
|  
 
|  
 
|-
 
|-
 +
| A11/A9
 
| [[NTRCARD Registers]]
 
| [[NTRCARD Registers]]
 
| 0x10164000
 
| 0x10164000
Line 187: Line 222:
 
|
 
|
 
|-
 
|-
 +
| A11/A9
 
| [[MP Registers]]
 
| [[MP Registers]]
 
| 0x10165000
 
| 0x10165000
Line 192: Line 228:
 
|
 
|
 
|-style="border-top: double"
 
|-style="border-top: double"
 +
| A11/A9
 
|  [[MP Registers]]
 
|  [[MP Registers]]
 
| 0x10170000 / 0x10171000
 
| 0x10170000 / 0x10171000
Line 197: Line 234:
 
| Mirrored?
 
| Mirrored?
 
|-
 
|-
 +
| A11/A9
 
| ?
 
| ?
 
| 0x10172000
 
| 0x10172000
Line 202: Line 240:
 
|
 
|
 
|-
 
|-
 +
| A11/A9
 
| ?
 
| ?
 
| 0x10173000
 
| 0x10173000
Line 207: Line 246:
 
|
 
|
 
|-
 
|-
 +
| A11/A9
 
| [[MP Registers]]
 
| [[MP Registers]]
 
| 0x10174000
 
| 0x10174000
Line 212: Line 252:
 
|
 
|
 
|-
 
|-
 +
| A11/A9
 
| [[MP Registers]]
 
| [[MP Registers]]
 
| 0x10176000 / 0x10177000
 
| 0x10176000 / 0x10177000
Line 217: Line 258:
 
| Mirrored. Same as 0x10170000.
 
| Mirrored. Same as 0x10170000.
 
|-
 
|-
 +
| A11/A9
 
| [[MP Registers]]
 
| [[MP Registers]]
 
| 0x10178000 - 0x10180000
 
| 0x10178000 - 0x10180000
Line 222: Line 264:
 
| Mirror of 0x10170000-0x10178000.
 
| Mirror of 0x10170000-0x10178000.
 
|-style="border-top: double"
 
|-style="border-top: double"
 +
| A11
 
| CDMA
 
| CDMA
 
| 0x10200000
 
| 0x10200000
Line 227: Line 270:
 
| 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]
 
|-
 
|-
 +
| A11
 
| ?
 
| ?
 
| 0x10202000
 
| 0x10202000
Line 232: Line 276:
 
|
 
|
 
|-
 
|-
 +
| A11
 
| DSP
 
| DSP
 
| 0x10203000
 
| 0x10203000
Line 237: Line 282:
 
|  
 
|  
 
|-
 
|-
 +
| A11
 
| GPU?
 
| GPU?
 
| 0x1020F000
 
| 0x1020F000
Line 242: Line 288:
 
|  
 
|  
 
|-style="border-top: double"
 
|-style="border-top: double"
 +
| A11
 
| [[HASH Registers]]
 
| [[HASH Registers]]
 
| 0x10301000
 
| 0x10301000
Line 247: Line 294:
 
|  
 
|  
 
|-style="border-top: double"
 
|-style="border-top: double"
 +
| A11
 
| [[LCD Registers]]
 
| [[LCD Registers]]
 
| 0x10400000
 
| 0x10400000
Line 252: Line 300:
 
|
 
|
 
|-
 
|-
| ?
+
| A11
 +
| [[LCD Registers]]
 
| 0x10420000
 
| 0x10420000
 
| [[GSP Services]]
 
| [[GSP Services]]

Revision as of 13:52, 28 September 2014

Overview

A9/A11 Category Physical address start Used by Comments
A9 CONFIG Registers 0x10000000 Boot9
A9 IRQ Registers 0x10001000 Kernel9
A9 NDMA Registers 0x10002000 Process9
A9 TIMER Registers 0x10003000 Process9
A9 CTRCARD Registers 0x10004000 / 0x10005000 Process9
A9 EMMC Registers 0x10006000 / 0x10007000 Boot9, Process9 0x10007000 is apparently not used on retail
A9 PXI Registers 0x10008000 Boot9, Process9
A9 AES Registers 0x10009000 Boot9, Process9
A9 SHA Registers 0x1000A000 Process9
A9 RSA Registers 0x1000B000 Boot9, Process9
A9 XDMA Registers 0x1000C000 Kernel9 CoreLink™ DMA-330. Info
A9 SPICARD Registers 0x1000D800 Process9
? CONFIG Registers 0x10010000 Process9
? CONFIG Registers 0x10011000 Process9
? ? 0x10012000
? ? 0x10018000 TWL_FIRM
? 0x10100000
A11/A9 HASH Registers 0x10101000
A11/A9 ? 0x10102000
A11/A9 CSND Registers / DSP 0x10103000 Codec Services, CSND Services, DSP Services
? 0x10110000
A11/A9 ? 0x10111000 TwlBg
A11/A9 DSP 0x10140000 Process9, Kernel11, DSP Services
A11/A9 PDN Registers / CODEC Registers 0x10141000 Process9, Kernel11, Codec Services
A11/A9 SPI Registers 0x10142000
A11/A9 SPI Registers 0x10143000 Only used under TWL_FIRM?
A11/A9 I2C Registers 0x10144000 Kernel11, I2C Services
A11/A9 CODEC Registers 0x10145000 Codec Services
A11/A9 HID Registers 0x10146000 Kernel11, HID Services See PAD.
A11/A9 GPIO Registers 0x10147000 GPIO Services
A11/A9 I2C Registers 0x10148000 I2C Services
A11/A9 SPI Registers 0x10160000
A11/A9 I2C Registers 0x10161000 I2C Services
A11/A9 MIC Registers 0x10162000 MIC Services
A11/A9 PXI Registers 0x10163000 Boot11, Kernel11
A11/A9 NTRCARD Registers 0x10164000 Process9
A11/A9 MP Registers 0x10165000
A11/A9 MP Registers 0x10170000 / 0x10171000 Mirrored?
A11/A9 ? 0x10172000
A11/A9 ? 0x10173000
A11/A9 MP Registers 0x10174000
A11/A9 MP Registers 0x10176000 / 0x10177000 Mirrored. Same as 0x10170000.
A11/A9 MP Registers 0x10178000 - 0x10180000 Mirror of 0x10170000-0x10178000.
A11 CDMA 0x10200000 Kernel11 CoreLink™ DMA-330. Info
A11 ? 0x10202000 Kernel11, GSP Services
A11 DSP 0x10203000
A11 GPU? 0x1020F000 GSP Services
A11 HASH Registers 0x10301000
A11 LCD Registers 0x10400000 Kernel11, GSP Services
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.