Difference between revisions of "IO Registers"

From 3dbrew
Jump to navigation Jump to search
Line 4: Line 4:
 
!  Category
 
!  Category
 
! Physical address start
 
! Physical address start
 +
! Used by
 
! Comments
 
! Comments
 
|-
 
|-
 
| [[CONFIG]]
 
| [[CONFIG]]
 
| 0x10000000
 
| 0x10000000
 +
| Boot9
 
|
 
|
 
|-
 
|-
 
| [[IRQ]]
 
| [[IRQ]]
 
| 0x10001000
 
| 0x10001000
 +
| Kernel9
 
|
 
|
 
|-
 
|-
 
| [[NDMA]]
 
| [[NDMA]]
 
| 0x10002000
 
| 0x10002000
 +
| Process9
 
|
 
|
 
|-
 
|-
 
| [[TIMER]]
 
| [[TIMER]]
 
| 0x10003000
 
| 0x10003000
 +
| Process9
 
|
 
|
 
|-
 
|-
 
| [[CTRCARD]]
 
| [[CTRCARD]]
 
| 0x10004000 / 0x10005000
 
| 0x10004000 / 0x10005000
 +
| Process9
 
|
 
|
 
|-
 
|-
 
| [[SDMC]] / [[NAND]]
 
| [[SDMC]] / [[NAND]]
 
| 0x10006000 / 0x10007000
 
| 0x10006000 / 0x10007000
 +
| Boot9, Process9
 
| 0x10007000 is apparently not used on retail
 
| 0x10007000 is apparently not used on retail
 
|-
 
|-
 
| [[PXI]]
 
| [[PXI]]
 
| 0x10008000
 
| 0x10008000
 +
| Boot9
 
|  
 
|  
 
|-
 
|-
 
| [[AES]]
 
| [[AES]]
 
| 0x10009000
 
| 0x10009000
 +
| Boot9, Process9
 
|
 
|
 
|-
 
|-
 
| [[SHA]]
 
| [[SHA]]
 
| 0x1000A000
 
| 0x1000A000
 +
| Process9
 
|
 
|
 
|-
 
|-
 
| [[RSA]]
 
| [[RSA]]
 
| 0x1000B000
 
| 0x1000B000
 +
| Boot9, Process9
 
|
 
|
 
|-
 
|-
 
| [[XDMA]]
 
| [[XDMA]]
 
| 0x1000C000
 
| 0x1000C000
 +
| Kernel9
 
| 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]
 
|-
 
|-
 
| [[SPICARD]]
 
| [[SPICARD]]
 
| 0x1000D800
 
| 0x1000D800
 +
|
 
|
 
|
 
|-
 
|-
 
| [[CONFIG]]
 
| [[CONFIG]]
 
| 0x10010000
 
| 0x10010000
 +
|
 
|
 
|
 
|-
 
|-
 
| ?
 
| ?
 
| 0x10011000
 
| 0x10011000
 +
|
 
|
 
|
 
|-
 
|-
 
| ?
 
| ?
 
| 0x10012000
 
| 0x10012000
 +
|
 
|
 
|
 
|-
 
|-
 
| ?
 
| ?
 
| 0x10018000
 
| 0x10018000
| Used during TWL_FIRM.
+
| TWL_FIRM
 +
|
 
|-
 
|-
 
| ?
 
| ?
 
| 0x10100000
 
| 0x10100000
 +
|
 
|  
 
|  
 
|-
 
|-
 
| [[HASH]]
 
| [[HASH]]
 
| 0x10101000
 
| 0x10101000
 +
|
 
|  
 
|  
 
|-
 
|-
 
| ?
 
| ?
 
| 0x10102000
 
| 0x10102000
 +
|
 
|  
 
|  
 
|-
 
|-
 
| [[CSND]] / DSP
 
| [[CSND]] / DSP
 
| 0x10103000
 
| 0x10103000
 +
|
 
|  
 
|  
 
|-
 
|-
 
| ?
 
| ?
 
| 0x10110000
 
| 0x10110000
 +
|
 
|  
 
|  
 
|-
 
|-
 
| ?
 
| ?
 
| 0x10111000
 
| 0x10111000
| Used by TwlBg.
+
| TwlBg
 +
|
 
|-
 
|-
 
| [[DSP]]
 
| [[DSP]]
 
| 0x10140000
 
| 0x10140000
 +
| Kernel11
 
|  
 
|  
 
|-
 
|-
 
| [[PDN]] / [[CODEC]]
 
| [[PDN]] / [[CODEC]]
 
| 0x10141000
 
| 0x10141000
 +
| Kernel11
 
|  
 
|  
 
|-
 
|-
 
| [[SPI]]
 
| [[SPI]]
 
| 0x10142000
 
| 0x10142000
 +
|
 
|  
 
|  
 
|-
 
|-
 
| [[SPI]]
 
| [[SPI]]
 
| 0x10143000
 
| 0x10143000
 +
|
 
| Only used under TWL_FIRM?
 
| Only used under TWL_FIRM?
 
|-
 
|-
 
| [[I2C]]
 
| [[I2C]]
 
| 0x10144000
 
| 0x10144000
 +
| Kernel11
 
|  
 
|  
 
|-
 
|-
 
| [[CODEC]]
 
| [[CODEC]]
 
| 0x10145000
 
| 0x10145000
 +
|
 
|  
 
|  
 
|-
 
|-
 
| [[PAD]] / [[HID]] / [[PTM]]
 
| [[PAD]] / [[HID]] / [[PTM]]
 
| 0x10146000
 
| 0x10146000
 +
| Kernel11
 
|  
 
|  
 
|-
 
|-
 
| [[GPIO]]
 
| [[GPIO]]
 
| 0x10147000
 
| 0x10147000
 +
|
 
|  
 
|  
 
|-  
 
|-  
 
| [[I2C]]
 
| [[I2C]]
 
| 0x10148000
 
| 0x10148000
 +
|
 
|  
 
|  
 
|-
 
|-
 
| [[SPI]]
 
| [[SPI]]
 
| 0x10160000
 
| 0x10160000
 +
|
 
|  
 
|  
 
|-
 
|-
 
| [[I2C]]
 
| [[I2C]]
 
| 0x10161000
 
| 0x10161000
 +
|
 
|  
 
|  
 
|-
 
|-
 
| [[MIC]]
 
| [[MIC]]
 
| 0x10162000
 
| 0x10162000
 +
|
 
|  
 
|  
 
|-
 
|-
 
| [[PXI]]
 
| [[PXI]]
 
| 0x10163000
 
| 0x10163000
 +
| Boot11, Kernel11
 
|  
 
|  
 
|-
 
|-
 
| [[NTRCARD]]
 
| [[NTRCARD]]
 
| 0x10164000
 
| 0x10164000
 +
|
 
|
 
|
 
|-
 
|-
 
| [[MP]]
 
| [[MP]]
 
| 0x10165000
 
| 0x10165000
 +
|
 
|
 
|
 
|-
 
|-
 
|  [[MP]]
 
|  [[MP]]
 
| 0x10170000 / 0x10171000
 
| 0x10170000 / 0x10171000
 +
|
 
| Mirrored?
 
| Mirrored?
 
|-
 
|-
 
| ?
 
| ?
 
| 0x10172000
 
| 0x10172000
 +
|
 
|
 
|
 
|-
 
|-
 
| ?
 
| ?
 
| 0x10173000
 
| 0x10173000
 +
|
 
|
 
|
 
|-
 
|-
 
| [[MP]]
 
| [[MP]]
 
| 0x10174000
 
| 0x10174000
 +
|
 
|
 
|
 
|-
 
|-
 
| [[MP]]
 
| [[MP]]
 
| 0x10176000 / 0x10177000
 
| 0x10176000 / 0x10177000
 +
|
 
| Mirrored. Same as 0x10170000.
 
| Mirrored. Same as 0x10170000.
 
|-
 
|-
 
| [[MP]]
 
| [[MP]]
 
| 0x10178000 - 0x10180000
 
| 0x10178000 - 0x10180000
 +
|
 
| Mirror of 0x10170000-0x10178000.
 
| Mirror of 0x10170000-0x10178000.
 
|-
 
|-
 
| [[CDMA]]
 
| [[CDMA]]
 
| 0x10200000
 
| 0x10200000
 +
| Kernel11
 
| 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]
 
|-
 
|-
 
| ?
 
| ?
 
| 0x10202000
 
| 0x10202000
 +
| Kernel11
 
|
 
|
 
|-
 
|-
 
| [[DSP]]
 
| [[DSP]]
 
| 0x10203000
 
| 0x10203000
 +
|
 
|  
 
|  
 
|-
 
|-
 
| GPU?
 
| GPU?
 
| 0x1020F000
 
| 0x1020F000
 +
|
 
|  
 
|  
 
|-
 
|-
 
| [[HASH]]
 
| [[HASH]]
 
| 0x10301000
 
| 0x10301000
 +
|
 
|  
 
|  
 
|-
 
|-
 
| [[LCD]]
 
| [[LCD]]
 
| 0x10400000
 
| 0x10400000
 +
| Kernel11
 
|
 
|
 
|}
 
|}

Revision as of 13:15, 28 September 2014

Overview

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

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.