armadaxpreg.h revision 1.4 1 1.1 kiyohara /*******************************************************************************
2 1.1 kiyohara Copyright (C) Marvell International Ltd. and its affiliates
3 1.1 kiyohara
4 1.1 kiyohara Developed by Semihalf
5 1.1 kiyohara
6 1.1 kiyohara ********************************************************************************
7 1.1 kiyohara Marvell BSD License
8 1.1 kiyohara
9 1.1 kiyohara If you received this File from Marvell, you may opt to use, redistribute and/or
10 1.1 kiyohara modify this File under the following licensing terms.
11 1.1 kiyohara Redistribution and use in source and binary forms, with or without modification,
12 1.1 kiyohara are permitted provided that the following conditions are met:
13 1.1 kiyohara
14 1.1 kiyohara * Redistributions of source code must retain the above copyright notice,
15 1.1 kiyohara this list of conditions and the following disclaimer.
16 1.1 kiyohara
17 1.1 kiyohara * Redistributions in binary form must reproduce the above copyright
18 1.1 kiyohara notice, this list of conditions and the following disclaimer in the
19 1.1 kiyohara documentation and/or other materials provided with the distribution.
20 1.1 kiyohara
21 1.1 kiyohara * Neither the name of Marvell nor the names of its contributors may be
22 1.1 kiyohara used to endorse or promote products derived from this software without
23 1.1 kiyohara specific prior written permission.
24 1.1 kiyohara
25 1.1 kiyohara THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
26 1.1 kiyohara ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
27 1.1 kiyohara WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
28 1.1 kiyohara DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR
29 1.1 kiyohara ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
30 1.1 kiyohara (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
31 1.1 kiyohara LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
32 1.1 kiyohara ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
33 1.1 kiyohara (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
34 1.1 kiyohara SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
35 1.1 kiyohara
36 1.1 kiyohara *******************************************************************************/
37 1.1 kiyohara
38 1.1 kiyohara #ifndef _ARMADAXPREG_H_
39 1.1 kiyohara #define _ARMADAXPREG_H_
40 1.1 kiyohara
41 1.1 kiyohara #include <arm/marvell/mvsocreg.h>
42 1.1 kiyohara #include <evbarm/marvell/marvellvar.h>
43 1.1 kiyohara
44 1.1 kiyohara #define ARMADAXP_UNITID_DDR MVSOC_UNITID_DDR
45 1.1 kiyohara #define ARMADAXP_UNITID_DEVBUS MVSOC_UNITID_DEVBUS
46 1.1 kiyohara #define ARMADAXP_UNITID_MBUS MVSOC_UNITID_MBUS
47 1.1 kiyohara #define ARMADAXP_UNITID_MLMB MVSOC_UNITID_MLMB
48 1.1 kiyohara #define ARMADAXP_UNITID_PEX MVSOC_UNITID_PEX
49 1.1 kiyohara #define ARMADAXP_UNITID_USB 0x5 /* USB registers */
50 1.1 kiyohara #define ARMADAXP_UNITID_XORE0 0x6 /* Reserved? */
51 1.1 kiyohara #define ARMADAXP_UNITID_GBE0 0x7
52 1.1 kiyohara #define ARMADAXP_UNITID_GBE2 0x3
53 1.1 kiyohara #define ARMADAXP_UNITID_PEX0 MVSOC_UNITID_PEX
54 1.1 kiyohara #define ARMADAXP_UNITID_PEX1 0x8
55 1.1 kiyohara #define ARMADAXP_UNITID_PEX2 MVSOC_UNITID_PEX
56 1.1 kiyohara #define ARMADAXP_UNITID_PEX3 0x8
57 1.1 kiyohara #define ARMADAXP_UNITID_CRYPT 0x9
58 1.1 kiyohara #define ARMADAXP_UNITID_SATA 0xa
59 1.1 kiyohara #define ARMADAXP_UNITID_BM 0xc
60 1.1 kiyohara #define ARMADAXP_UNITID_PNC 0xc
61 1.1 kiyohara #define ARMADAXP_UNITID_SDIO 0xd /* SDIO registers */
62 1.1 kiyohara #define ARMADAXP_UNITID_LCD 0xe /* Reserved? */
63 1.1 kiyohara #define ARMADAXP_UNITID_XORE1 0xf /* Reserved? */
64 1.1 kiyohara
65 1.1 kiyohara #define ARMADAXP_ATTR_PEXx0_MEM 0xe8
66 1.1 kiyohara #define ARMADAXP_ATTR_PEXx0_IO 0xe0
67 1.1 kiyohara #define ARMADAXP_ATTR_PEXx1_MEM 0xd8
68 1.1 kiyohara #define ARMADAXP_ATTR_PEXx1_IO 0xd0
69 1.1 kiyohara #define ARMADAXP_ATTR_PEXx2_MEM 0xb8
70 1.1 kiyohara #define ARMADAXP_ATTR_PEXx2_IO 0xb0
71 1.1 kiyohara #define ARMADAXP_ATTR_PEXx3_MEM 0x78
72 1.1 kiyohara #define ARMADAXP_ATTR_PEXx3_IO 0x70
73 1.1 kiyohara #define ARMADAXP_ATTR_PEX2_MEM 0xf8
74 1.1 kiyohara #define ARMADAXP_ATTR_PEX2_IO 0xf0
75 1.1 kiyohara #define ARMADAXP_ATTR_PEX3_MEM 0xf8
76 1.1 kiyohara #define ARMADAXP_ATTR_PEX3_IO 0xf0
77 1.1 kiyohara
78 1.1 kiyohara #define ARMADAXP_IRQ_GBE0_TH_RXTX 8 /* GBE0_TH_RXTX_Int */
79 1.1 kiyohara #define ARMADAXP_IRQ_GBE1_TH_RXTX 10 /* GBE1_TH_RXTX_Int */
80 1.1 kiyohara #define ARMADAXP_IRQ_GBE2_TH_RXTX 12 /* GBE2_TH_RXTX_Int */
81 1.1 kiyohara #define ARMADAXP_IRQ_GBE3_TH_RXTX 14 /* GBE3_TH_RXTX_Int */
82 1.1 kiyohara
83 1.1 kiyohara #define ARMADAXP_IRQ_LCD 29
84 1.1 kiyohara #define ARMADAXP_IRQ_SPI 30
85 1.1 kiyohara #define ARMADAXP_IRQ_TWSI0 31
86 1.1 kiyohara #define ARMADAXP_IRQ_TWSI1 32
87 1.1 kiyohara #define ARMADAXP_IRQ_IDMA0 33 /* IDMA Channel 0 */
88 1.1 kiyohara #define ARMADAXP_IRQ_IDMA1 34 /* IDMA Channel 1 */
89 1.1 kiyohara #define ARMADAXP_IRQ_IDMA2 35 /* IDMA Channel 2 */
90 1.1 kiyohara #define ARMADAXP_IRQ_IDMA3 36 /* IDMA Channel 3 */
91 1.1 kiyohara #define ARMADAXP_IRQ_TIMER0 37
92 1.1 kiyohara #define ARMADAXP_IRQ_TIMER1 38
93 1.1 kiyohara #define ARMADAXP_IRQ_TIMER2 39
94 1.1 kiyohara #define ARMADAXP_IRQ_TIMER3 40
95 1.1 kiyohara #define ARMADAXP_IRQ_UART0 41
96 1.1 kiyohara #define ARMADAXP_IRQ_UART1 42
97 1.1 kiyohara #define ARMADAXP_IRQ_UART2 43
98 1.1 kiyohara #define ARMADAXP_IRQ_UART3 44
99 1.1 kiyohara #if 0
100 1.1 kiyohara #define ARMADAXP_IRQ_USB0 45
101 1.1 kiyohara #define ARMADAXP_IRQ_USB1 46
102 1.1 kiyohara #define ARMADAXP_IRQ_USB2 47
103 1.1 kiyohara #else
104 1.1 kiyohara /*
105 1.1 kiyohara * According to functional specification (MV-S107021-00B.pdf), interrupt number
106 1.1 kiyohara * for USB0_int is 47, in fact this number is 45. Because of that interrupt
107 1.1 kiyohara * number definitions are not equivalent to ArmadaXP functional specification
108 1.1 kiyohara * (MV-S107021-00B.pdf).
109 1.1 kiyohara */
110 1.1 kiyohara #define ARMADAXP_IRQ_USB0 45 /* USB2 */
111 1.1 kiyohara #define ARMADAXP_IRQ_USB1 46 /* USB1 */
112 1.1 kiyohara #define ARMADAXP_IRQ_USB2 47 /* USB0 */
113 1.1 kiyohara #endif
114 1.1 kiyohara #define ARMADAXP_IRQ_CESA0 48
115 1.1 kiyohara #define ARMADAXP_IRQ_CESA1 49
116 1.1 kiyohara #define ARMADAXP_IRQ_RTC 50
117 1.1 kiyohara #define ARMADAXP_IRQ_XOR0CH0 51 /* XOR0 Ch0 */
118 1.1 kiyohara #define ARMADAXP_IRQ_XOR0CH1 52 /* XOR0 Ch1 */
119 1.1 kiyohara #define ARMADAXP_IRQ_BM 53 /* Buffer Management */
120 1.1 kiyohara #define ARMADAXP_IRQ_SDIO 54
121 1.1 kiyohara #define ARMADAXP_IRQ_SATA0 55
122 1.1 kiyohara #define ARMADAXP_IRQ_TDM 56
123 1.1 kiyohara #define ARMADAXP_IRQ_SATA1 57
124 1.1 kiyohara #define ARMADAXP_IRQ_PEX00 58 /* PCIe Port0.0 INTA/B/C/D */
125 1.1 kiyohara #define ARMADAXP_IRQ_PEX01 59 /* PCIe Port0.1 INTA/B/C/D */
126 1.1 kiyohara #define ARMADAXP_IRQ_PEX02 60 /* PCIe Port0.2 INTA/B/C/D */
127 1.1 kiyohara #define ARMADAXP_IRQ_PEX03 61 /* PCIe Port0.3 INTA/B/C/D */
128 1.1 kiyohara #define ARMADAXP_IRQ_PEX10 62 /* PCIe Port1.0 INTA/B/C/D */
129 1.1 kiyohara #define ARMADAXP_IRQ_PEX11 63 /* PCIe Port1.1 INTA/B/C/D */
130 1.1 kiyohara #define ARMADAXP_IRQ_PEX12 64 /* PCIe Port1.2 INTA/B/C/D */
131 1.1 kiyohara #define ARMADAXP_IRQ_PEX13 65 /* PCIe Port1.3 INTA/B/C/D */
132 1.1 kiyohara #define ARMADAXP_IRQ_XOR1CH2 94 /* XOR1 Ch2 */
133 1.1 kiyohara #define ARMADAXP_IRQ_XOR1CH3 95 /* XOR1 Ch3 */
134 1.1 kiyohara #define ARMADAXP_IRQ_PEX2 99 /* PCIe Port2 INTA/B/C/D */
135 1.1 kiyohara #define ARMADAXP_IRQ_PEX3 103 /* PCIe Port3 INTA/B/C/D */
136 1.1 kiyohara
137 1.1 kiyohara
138 1.1 kiyohara #define ARMADAXP_MLMB_NWINDOW 19
139 1.1 kiyohara #define ARMADAXP_MLMB_NREMAP 8
140 1.1 kiyohara
141 1.1 kiyohara /*
142 1.1 kiyohara * Physical address of integrated peripherals
143 1.1 kiyohara */
144 1.1 kiyohara
145 1.1 kiyohara #undef UNITID2PHYS
146 1.1 kiyohara #define UNITID2PHYS(uid) ((ARMADAXP_UNITID_ ## uid) << 16)
147 1.1 kiyohara
148 1.1 kiyohara /*
149 1.1 kiyohara * Real-Time Clock Unit Registers
150 1.1 kiyohara */
151 1.1 kiyohara #define ARMADAXP_RTC_BASE (MVSOC_DEVBUS_BASE + 0x0300)
152 1.1 kiyohara
153 1.1 kiyohara /*
154 1.1 kiyohara * SPI Interface Registers
155 1.1 kiyohara */
156 1.1 kiyohara #define ARMADAXP_SPI_BASE (MVSOC_DEVBUS_BASE + 0x0600)
157 1.1 kiyohara
158 1.1 kiyohara /*
159 1.1 kiyohara * TWSI Interface Registers
160 1.1 kiyohara */
161 1.1 kiyohara #define ARMADAXP_TWSI1_BASE (MVSOC_DEVBUS_BASE + 0x1100)
162 1.1 kiyohara
163 1.1 kiyohara /*
164 1.1 kiyohara * UART Interface Registers
165 1.1 kiyohara */ /* NS16550 compatible */
166 1.1 kiyohara #define ARMADAXP_COM2_BASE (MVSOC_DEVBUS_BASE + 0x2200)
167 1.1 kiyohara #define ARMADAXP_COM3_BASE (MVSOC_DEVBUS_BASE + 0x2300)
168 1.1 kiyohara
169 1.1 kiyohara /*
170 1.1 kiyohara * General Purpose Input/Output Port Registers
171 1.1 kiyohara */
172 1.1 kiyohara #define ARMADAXP_GPIO0_BASE (MVSOC_DEVBUS_BASE + 0x8100)
173 1.1 kiyohara #define ARMADAXP_GPIO1_BASE (MVSOC_DEVBUS_BASE + 0x8120)
174 1.1 kiyohara #define ARMADAXP_GPIO2_BASE (MVSOC_DEVBUS_BASE + 0x8140)
175 1.1 kiyohara
176 1.1 kiyohara /*
177 1.1 kiyohara * Power Management Unit Registers
178 1.1 kiyohara */ /* NS16550 compatible */
179 1.1 kiyohara #define ARMADAXP_PMU_BASE (MVSOC_DEVBUS_BASE + 0xc000)
180 1.1 kiyohara
181 1.1 kiyohara /*
182 1.2 kiyohara * Miscellanseous Register
183 1.1 kiyohara */
184 1.2 kiyohara #define ARMADAXP_MISC_BASE (MVSOC_DEVBUS_BASE + 0x8200)
185 1.2 kiyohara
186 1.2 kiyohara #define ARMADAXP_MISC_PMCGC 0x20 /* PM Clock Gating Control */
187 1.1 kiyohara #define ARMADAXP_MISC_SAR_LO 0x30 /* Sample At Reset Low */
188 1.1 kiyohara #define ARMADAXP_MISC_SAR_HI 0x34 /* Sample At Reset High */
189 1.2 kiyohara #define ARMADAXP_MISC_RSTOUTNMASKR 0x60 /* RSTOUTn Mask Register */
190 1.2 kiyohara #define ARMADAXP_MISC_RSTOUTNMASKR_GLOBALSOFTRSTOUTEN (1 << 0)
191 1.2 kiyohara #define ARMADAXP_MISC_SSRR 0x64 /* System Soft Reset Register */
192 1.2 kiyohara #define ARMADAXP_MISC_SSRR_GLOBALSOFTRST (1 << 0)
193 1.1 kiyohara
194 1.1 kiyohara /* Multiprocessor Interrupt Controller Registers */
195 1.1 kiyohara #define ARMADAXP_MLMB_MPIC_BASE 0x20a00
196 1.1 kiyohara #define ARMADAXP_MLMB_MPIC_CPU_BASE 0x21800
197 1.1 kiyohara #define ARMADAXP_MLMB_MPIC_CTRL 0x0
198 1.1 kiyohara #define ARMADAXP_MLMB_MPIC_SOFT_INT 0x4
199 1.1 kiyohara #define ARMADAXP_MLMB_MPIC_ERR_CAUSE 0x20
200 1.1 kiyohara #define ARMADAXP_MLMB_MPIC_ISE 0x30
201 1.1 kiyohara #define ARMADAXP_MLMB_MPIC_ICE 0x34
202 1.1 kiyohara #define ARMADAXP_MLMB_MPIC_ISCR_BASE 0x100
203 1.1 kiyohara
204 1.1 kiyohara #define ARMADAXP_MLMB_MPIC_DOORBELL 0x78
205 1.1 kiyohara #define ARMADAXP_MLMB_MPIC_DOORBELL_MASK 0x7c
206 1.1 kiyohara #define ARMADAXP_MLMB_MPIC_CTP 0xb0
207 1.1 kiyohara #define ARMADAXP_MLMB_MPIC_IIACK 0xb4
208 1.1 kiyohara #define ARMADAXP_MLMB_MPIC_ISM 0xb8
209 1.1 kiyohara #define ARMADAXP_MLMB_MPIC_ICM 0xbc
210 1.1 kiyohara #define ARMADAXP_MLMB_MPIC_ERR_MASK 0xec0
211 1.1 kiyohara
212 1.1 kiyohara /* Multiprocessor Interrupt Controller Shifts */
213 1.1 kiyohara #define MPIC_CTP_SHIFT 28 /* Global priority level field */
214 1.1 kiyohara #define MPIC_ISCR_SHIFT 24 /* IRQ source priority level field */
215 1.1 kiyohara
216 1.1 kiyohara /* Cache Main Control */
217 1.1 kiyohara #define ARMADAXP_L2_BASE 0x8000
218 1.1 kiyohara #define ARMADAXP_L2_CTRL 0x100
219 1.1 kiyohara #define ARMADAXP_L2_AUX_CTRL 0x104
220 1.1 kiyohara #define ARMADAXP_L2_CNTR_CTRL 0x200
221 1.1 kiyohara #define ARMADAXP_L2_CNTR_CONF(x) (0x204 + (x) * 0xc)
222 1.1 kiyohara #define ARMADAXP_L2_INT_CAUSE 0x220
223 1.1 kiyohara #define ARMADAXP_L2_CFU 0x228
224 1.3 hsuenaga #define ARMADAXP_L2_SYNC 0x700
225 1.3 hsuenaga #define ARMADAXP_L2_STATUS 0x704
226 1.3 hsuenaga /* Cache maintance operations */
227 1.3 hsuenaga #define ARMADAXP_L2_RANGE_BASE 0x720
228 1.3 hsuenaga #define ARMADAXP_L2_INV_PHYS 0x770
229 1.3 hsuenaga #define ARMADAXP_L2_INV_RANGE 0x774
230 1.3 hsuenaga #define ARMADAXP_L2_INV_IDXWAY 0x778
231 1.3 hsuenaga #define ARMADAXP_L2_INV_WAY 0x77c
232 1.3 hsuenaga #define ARMADAXP_L2_BLOCK 0x78c
233 1.3 hsuenaga #define ARMADAXP_L2_WB_PHYS 0x7b0
234 1.3 hsuenaga #define ARMADAXP_L2_WB_RANGE 0x7b4
235 1.3 hsuenaga #define ARMADAXP_L2_WB_IDXWAY 0x7b8
236 1.3 hsuenaga #define ARMADAXP_L2_WB_WAY 0x7bc
237 1.3 hsuenaga #define ARMADAXP_L2_WBINV_PHYS 0x7f0
238 1.3 hsuenaga #define ARMADAXP_L2_WBINV_RANGE 0x7f4
239 1.3 hsuenaga #define ARMADAXP_L2_WBINV_IDXWAY 0x7f8
240 1.3 hsuenaga #define ARMADAXP_L2_WBINV_WAY 0x7fc
241 1.4 hsuenaga
242 1.4 hsuenaga /* Cache line size */
243 1.4 hsuenaga #define ARMADAXP_L2_SIZE (256 * 1024) /* bytes */
244 1.4 hsuenaga #define ARMADAXP_L2_LINE_SIZE 32
245 1.4 hsuenaga #define ARMADAXP_L2_ALIGN (ARMADAXP_L2_LINE_SIZE - 1)
246 1.4 hsuenaga #define ARMADAXP_L2_WAYS 4
247 1.4 hsuenaga #define ARMADAXP_L2_WAY_SIZE (ARMADAXP_L2_SIZE / ARMADAXP_L2_WAYS)
248 1.4 hsuenaga #define ARMADAXP_L2_SETS \
249 1.4 hsuenaga (ARMADAXP_L2_WAY_SIZE / ARMADAXP_L2_LINE_SIZE)
250 1.4 hsuenaga
251 1.4 hsuenaga /* ARMADAXP_L2_CTRL */
252 1.4 hsuenaga #define L2_CTRL_ENABLE (1 << 0)
253 1.4 hsuenaga
254 1.4 hsuenaga /* ARMADAXP_L2_AUX_CTRL */
255 1.4 hsuenaga #define L2_AUX_WBWT_MODE_MASK (3 << 0)
256 1.4 hsuenaga #define L2_AUX_WBWT_MODE_BY_ATTR (0 << 0)
257 1.4 hsuenaga #define L2_AUX_WBWT_MODE_WB (1 << 0)
258 1.4 hsuenaga #define L2_AUX_WBWT_MODE_WT (2 << 0)
259 1.4 hsuenaga #define L2_AUX_FLUSH_ON_POWERDOWN (1 << 3)
260 1.4 hsuenaga #define L2_AUX_ECC_ENABLE (1 << 20)
261 1.4 hsuenaga #define L2_AUX_PARITY_ENABLE (1 << 21)
262 1.4 hsuenaga #define L2_AUX_INVAL_UCE (1 << 22)
263 1.4 hsuenaga #define L2_AUX_FORCE_WA (1 << 23)
264 1.4 hsuenaga #define L2_AUX_REP_STRAT_MASK (3 << 27)
265 1.4 hsuenaga #define L2_AUX_REP_STRAT_LFSR (1 << 27)
266 1.4 hsuenaga #define L2_AUX_REP_STRAT_PLRU (2 << 27)
267 1.4 hsuenaga #define L2_AUX_REP_STRAT_SEMIPLRU (3 << 27)
268 1.4 hsuenaga #define L2_AUX_L2_SIZE_MASK (0x03 << 10)
269 1.4 hsuenaga #define L2_AUX_L2_SIZE_256K (0x00 << 10)
270 1.4 hsuenaga #define L2_AUX_L2_ASSOC_MASK (0x0f << 13)
271 1.4 hsuenaga #define L2_AUX_L2_ASSOC_4WAY (0x03 << 13)
272 1.4 hsuenaga #define L2_AUX_L2_WAY_MASK (0x07 << 17)
273 1.4 hsuenaga #define L2_AUX_L2_WAY_16K (0x02 << 17)
274 1.4 hsuenaga #define L2_AUX_L2_WAY_32K (0x03 << 17)
275 1.4 hsuenaga #define L2_AUX_L2_WAY_64K (0x04 << 17)
276 1.4 hsuenaga #define L2_AUX_L2_WAY_128K (0x05 << 17)
277 1.4 hsuenaga #define L2_AUX_L2_WAY_256K (0x06 << 17)
278 1.4 hsuenaga #define L2_AUX_L2_WAY_512K (0x07 << 17)
279 1.4 hsuenaga
280 1.1 kiyohara #define L2_ALL_WAYS 0xffffffff
281 1.1 kiyohara
282 1.1 kiyohara /*
283 1.1 kiyohara * PCI-Express Interface Registers
284 1.1 kiyohara */
285 1.1 kiyohara #define ARMADAXP_PEX01_BASE (MVSOC_PEX_BASE + 0x4000)
286 1.1 kiyohara #define ARMADAXP_PEX02_BASE (MVSOC_PEX_BASE + 0x8000)
287 1.1 kiyohara #define ARMADAXP_PEX03_BASE (MVSOC_PEX_BASE + 0xc000)
288 1.1 kiyohara #define ARMADAXP_PEX10_BASE (UNITID2PHYS(PEX1))
289 1.1 kiyohara #define ARMADAXP_PEX11_BASE (ARMADAXP_PEX10_BASE + 0x4000)
290 1.1 kiyohara #define ARMADAXP_PEX12_BASE (ARMADAXP_PEX10_BASE + 0x8000)
291 1.1 kiyohara #define ARMADAXP_PEX13_BASE (ARMADAXP_PEX10_BASE + 0xc000)
292 1.1 kiyohara #define ARMADAXP_PEX2_BASE (UNITID2PHYS(PEX2) + 0x2000)
293 1.1 kiyohara #define ARMADAXP_PEX3_BASE (UNITID2PHYS(PEX3) + 0x2000)
294 1.1 kiyohara
295 1.1 kiyohara /*
296 1.1 kiyohara * USB 2.0 Interface Registers
297 1.1 kiyohara */
298 1.1 kiyohara #define ARMADAXP_USB_BASE (UNITID2PHYS(USB)) /* 0x50000 */
299 1.1 kiyohara #define ARMADAXP_USB0_BASE (ARMADAXP_USB_BASE + 0x0000)
300 1.1 kiyohara #define ARMADAXP_USB1_BASE (ARMADAXP_USB_BASE + 0x1000)
301 1.1 kiyohara #define ARMADAXP_USB2_BASE (ARMADAXP_USB_BASE + 0x2000)
302 1.1 kiyohara
303 1.1 kiyohara /*
304 1.1 kiyohara * XOR Engine Registers
305 1.1 kiyohara */
306 1.1 kiyohara #define ARMADAXP_XORE0_BASE (UNITID2PHYS(XORE0)) /* 0x60000 */
307 1.1 kiyohara #define ARMADAXP_XORE1_BASE (UNITID2PHYS(XORE1)) /* 0xf0000 */
308 1.1 kiyohara
309 1.1 kiyohara /*
310 1.1 kiyohara * Gigabit Ethernet Registers
311 1.1 kiyohara */
312 1.1 kiyohara #define ARMADAXP_GBE0_BASE (UNITID2PHYS(GBE0)) /* 0x70000 */
313 1.1 kiyohara #define ARMADAXP_GBE1_BASE (ARMADAXP_GBE0_BASE + 0x4000)
314 1.1 kiyohara #define ARMADAXP_GBE2_BASE (UNITID2PHYS(GBE2)) /* 0x30000 */
315 1.1 kiyohara #define ARMADAXP_GBE3_BASE (ARMADAXP_GBE2_BASE + 0x4000)
316 1.1 kiyohara
317 1.1 kiyohara /*
318 1.1 kiyohara * Precise Time Protocol (PTP) Registers
319 1.1 kiyohara */
320 1.1 kiyohara #define ARMADAXP_PTP_BASE (UNITID2PHYS(GBE0)) /* 0x7c000 */
321 1.1 kiyohara
322 1.1 kiyohara /*
323 1.1 kiyohara * Cryptographic Engine and Security Accelerator Registers
324 1.1 kiyohara */
325 1.1 kiyohara #define ARMADAXP_CESA0_BASE (UNITID2PHYS(CRYPT) + 0xd000) /* 0x9d000 */
326 1.1 kiyohara #define ARMADAXP_CESA1_BASE (UNITID2PHYS(CRYPT) + 0xf000) /* 0x9f000 */
327 1.1 kiyohara
328 1.1 kiyohara /*
329 1.1 kiyohara * Serial-ATA Host Controller (SATAHC) Registers
330 1.1 kiyohara */
331 1.1 kiyohara #define ARMADAXP_SATAHC_BASE (UNITID2PHYS(SATA)) /* 0xa0000 */
332 1.1 kiyohara
333 1.1 kiyohara /*
334 1.1 kiyohara * Buffer Management Controller Registers
335 1.1 kiyohara */
336 1.1 kiyohara #define ARMADAXP_BMC_BASE (UNITID2PHYS(BM)) /* 0xc0000 */
337 1.1 kiyohara
338 1.1 kiyohara /*
339 1.1 kiyohara * NAND Flash Controller Version 2.0 Registers
340 1.1 kiyohara */
341 1.1 kiyohara #define ARMADAXP_NAND_BASE 0xc0000
342 1.1 kiyohara
343 1.1 kiyohara /*
344 1.1 kiyohara * PnC Unit Registers
345 1.1 kiyohara */
346 1.1 kiyohara #define ARMADAXP_PNC_BASE (UNITID2PHYS(PNC)) /* 0xc8000 */
347 1.1 kiyohara
348 1.1 kiyohara /*
349 1.1 kiyohara * SDIO Registers
350 1.1 kiyohara */
351 1.1 kiyohara #define ARMADAXP_SDIO_BASE (UNITID2PHYS(SDIO) + 0x4000) /* 0xd4000 */
352 1.1 kiyohara
353 1.1 kiyohara /*
354 1.1 kiyohara * Liquid Crystal Display Registers
355 1.1 kiyohara */
356 1.1 kiyohara #define ARMADAXP_LCD_BASE (UNITID2PHYS(LCD)) /* 0xe0000 */
357 1.1 kiyohara
358 1.1 kiyohara #endif /* _ARMADAXPREG_H_ */
359