bcm53xx_reg.h revision 1.14 1 1.1 matt /*-
2 1.1 matt * Copyright (c) 2012 The NetBSD Foundation, Inc.
3 1.1 matt * All rights reserved.
4 1.1 matt *
5 1.1 matt * This code is derived from software contributed to The NetBSD Foundation
6 1.1 matt * by Matt Thomas of 3am Software Foundry.
7 1.1 matt *
8 1.1 matt * Redistribution and use in source and binary forms, with or without
9 1.1 matt * modification, are permitted provided that the following conditions
10 1.1 matt * are met:
11 1.1 matt * 1. Redistributions of source code must retain the above copyright
12 1.1 matt * notice, this list of conditions and the following disclaimer.
13 1.1 matt * 2. Redistributions in binary form must reproduce the above copyright
14 1.1 matt * notice, this list of conditions and the following disclaimer in the
15 1.1 matt * documentation and/or other materials provided with the distribution.
16 1.1 matt *
17 1.1 matt * THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS
18 1.1 matt * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
19 1.1 matt * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
20 1.1 matt * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS
21 1.1 matt * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
22 1.1 matt * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
23 1.1 matt * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
24 1.1 matt * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
25 1.1 matt * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
26 1.1 matt * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
27 1.1 matt * POSSIBILITY OF SUCH DAMAGE.
28 1.1 matt */
29 1.1 matt
30 1.1 matt #ifndef _ARM_BROADCOM_BCM53XX_REG_H_
31 1.1 matt #define _ARM_BROADCOM_BCM53XX_REG_H_
32 1.1 matt
33 1.1 matt /*
34 1.1 matt * 0x0000_0000..0x07ff_ffff 128MB DDR2/3 DRAM Memory Region (dual map)
35 1.1 matt * 0x0800_0000..0x0fff_ffff 128MB PCIe 0 Address Match Region
36 1.1 matt * 0x1800_0000..0x180f_ffff 1MB Core Register Region
37 1.1 matt * 0x1810_0000..0x181f_ffff 1MB IDM Register Region
38 1.1 matt * 0x1900_0000..0x190f_ffff 1MB ARMcore (CORTEX-A9) Register Region
39 1.1 matt * 0x1c00_0000..0x1dff_ffff 1MB NAND Flash Region
40 1.1 matt * 0x1e00_0000..0x1dff_ffff 1MB Serial Flash Region
41 1.1 matt * 0x4000_0000..0x47ff_ffff 128MB PCIe 1 Address Match Region
42 1.1 matt * 0x4800_0000..0x4fff_ffff 128MB PCIe 2 Address Match Region
43 1.1 matt * 0x8000_0000..0xbfff_ffff 1024MB DDR2/3 DRAM Memory Region
44 1.1 matt * 0xfffd_0000..0xfffe_ffff 128KB Internal Boot ROM Region
45 1.1 matt * 0xffff_0000..0xffff_043f 1088B Internal SKU ROM Region
46 1.1 matt * 0xffff_1000..0xffff_1fff 4KB Enumeration ROM Register Region
47 1.1 matt */
48 1.3 matt #define BCM53XX_PCIE0_OWIN_PBASE 0x08000000
49 1.3 matt #define BCM53XX_PCIE0_OWIN_SIZE 0x04000000
50 1.3 matt #define BCM53XX_PCIE0_OWIN_MAX 0x08000000
51 1.3 matt
52 1.1 matt #define BCM53XX_IOREG_PBASE 0x18000000
53 1.1 matt #define BCM53XX_IOREG_SIZE 0x00200000
54 1.1 matt
55 1.1 matt #define BCM53XX_ARMCORE_PBASE 0x19000000
56 1.1 matt #define BCM53XX_ARMCORE_SIZE 0x00100000
57 1.1 matt
58 1.1 matt #define BCM53XX_NAND_PBASE 0x1c000000
59 1.1 matt #define BCM53XX_NAND_SIZE 0x01000000
60 1.1 matt
61 1.1 matt #define BCM53XX_SPIFLASH_PBASE 0x1d000000
62 1.1 matt #define BCM53XX_SPIFLASH_SIZE 0x01000000
63 1.1 matt
64 1.3 matt #define BCM53XX_PCIE1_OWIN_PBASE 0x40000000
65 1.3 matt #define BCM53XX_PCIE1_OWIN_SIZE 0x04000000
66 1.3 matt #define BCM53XX_PCIE1_OWIN_MAX 0x08000000
67 1.3 matt
68 1.3 matt #define BCM53XX_PCIE2_OWIN_PBASE 0x48000000
69 1.3 matt #define BCM53XX_PCIE2_OWIN_SIZE 0x04000000
70 1.3 matt #define BCM53XX_PCIE2_OWIN_MAX 0x08000000
71 1.3 matt
72 1.3 matt #define BCM53XX_IO_SIZE (BCM53XX_IOREG_SIZE \
73 1.3 matt + BCM53XX_ARMCORE_SIZE \
74 1.3 matt + BCM53XX_PCIE0_OWIN_SIZE \
75 1.3 matt + BCM53XX_PCIE1_OWIN_SIZE \
76 1.3 matt + BCM53XX_PCIE2_OWIN_SIZE)
77 1.1 matt
78 1.1 matt #define BCM53XX_REF_CLK (25*1000*1000)
79 1.1 matt
80 1.1 matt #define CCA_UART_FREQ BCM53XX_REF_CLK
81 1.1 matt
82 1.1 matt /* Chip Common A */
83 1.1 matt #define CCA_MISC_BASE 0x000000
84 1.1 matt #define CCA_MISC_SIZE 0x001000
85 1.1 matt #define CCA_UART0_BASE 0x000300
86 1.1 matt #define CCA_UART1_BASE 0x000400
87 1.1 matt
88 1.1 matt /* Chip Common B */
89 1.1 matt #define CCB_BASE 0x000000
90 1.1 matt #define CCB_SIZE 0x030000
91 1.1 matt #define PWM_BASE 0x002000
92 1.1 matt #define MII_BASE 0x003000
93 1.1 matt #define RNG_BASE 0x004000
94 1.1 matt #define TIMER0_BASE 0x005000
95 1.1 matt #define TIMER1_BASE 0x006000
96 1.1 matt #define SRAB_BASE 0x007000
97 1.1 matt
98 1.1 matt #define CRU_BASE 0x00b000
99 1.1 matt #define DMU_BASE 0x00c000
100 1.1 matt
101 1.1 matt #define DDR_BASE 0x010000
102 1.1 matt
103 1.1 matt #define PCIE0_BASE 0x012000
104 1.1 matt #define PCIE1_BASE 0x013000
105 1.14 matt
106 1.14 matt #ifdef BCM5301X
107 1.14 matt #define UART2_BASE 0x008000
108 1.14 matt #define SMBUS1_BASE 0x009000
109 1.1 matt #define PCIE2_BASE 0x014000
110 1.1 matt #define SDIO_BASE 0x020000
111 1.1 matt #define EHCI_BASE 0x021000
112 1.1 matt #define OHCI_BASE 0x022000
113 1.1 matt #define GMAC0_BASE 0x024000
114 1.1 matt #define GMAC1_BASE 0x025000
115 1.1 matt #define GMAC2_BASE 0x026000
116 1.1 matt #define GMAC3_BASE 0x027000
117 1.14 matt #define NAND_BASE 0x028000
118 1.14 matt #define QSPI_BASE 0x029000
119 1.14 matt #define I2S_BASE 0x02A000
120 1.14 matt #define DMAC_BASE 0x02C000
121 1.14 matt #endif
122 1.14 matt
123 1.14 matt #ifdef BCM563XX
124 1.14 matt #define UART2_BASE 0x007000
125 1.14 matt #define SMBUS1_BASE 0x008000
126 1.14 matt #define WDT_BASE 0x009000
127 1.14 matt #define PKA_BASE 0x00a000
128 1.14 matt #define SMBUS2_BASE 0x00b000
129 1.14 matt #define DMAC_BASE 0x020000
130 1.14 matt #define GMAC0_BASE 0x022000
131 1.14 matt #define GMAC1_BASE 0x023000
132 1.14 matt #define NAND_BASE 0x026000
133 1.14 matt #define QSPI_BASE 0x027000
134 1.14 matt #define EHCI_BASE 0x02A000
135 1.14 matt #define OHCI_BASE 0x02B000
136 1.14 matt #endif
137 1.1 matt
138 1.1 matt #define IDM_BASE 0x100000
139 1.1 matt #define IDM_SIZE 0x100000
140 1.1 matt
141 1.1 matt /* Chip Common A */
142 1.1 matt
143 1.1 matt #ifdef CCA_PRIVATE
144 1.1 matt
145 1.1 matt #define MISC_CHIPID 0x000
146 1.1 matt #define CHIPID_REV __BITS(19,16)
147 1.1 matt #define CHIPID_ID __BITS(15,0)
148 1.1 matt #define ID_BCM53010 0xcf12 // 53010
149 1.1 matt #define ID_BCM53011 0xcf13 // 53011
150 1.1 matt #define ID_BCM53012 0xcf14 // 53012
151 1.1 matt #define ID_BCM53013 0xcf15 // 53013
152 1.14 matt #define ID_BCM56340 0xdc14 // 56340
153 1.1 matt
154 1.1 matt #define MISC_CAPABILITY 0x004
155 1.1 matt #define CAPABILITY_JTAG_PRESENT __BIT(22)
156 1.1 matt #define CAPABILITY_UART_CLKSEL __BITS(4,3)
157 1.1 matt #define UART_CLKSEL_REFCLK 0
158 1.1 matt #define UART_CLKSEL_INTCLK 1
159 1.1 matt /* 2 & 3 are reserved */
160 1.1 matt #define CAPABILITY_BIG_ENDIAN __BIT(2)
161 1.1 matt #define CAPABILITY_UART_COUNT __BITS(1,0)
162 1.1 matt
163 1.1 matt #define MISC_CORECTL 0x008
164 1.1 matt #define CORECTL_UART_CLK_EN __BIT(3)
165 1.1 matt #define CORECTL_GPIO_ASYNC_INT_EN __BIT(2)
166 1.1 matt #define CORECTL_UART_CLK_OVERRIDE __BIT(0)
167 1.1 matt
168 1.1 matt #define MISC_INTSTATUS 0x020
169 1.1 matt #define INTSTATUS_WDRESET __BIT(31) // WO2C
170 1.1 matt #define INTSTATUS_UARTINT __BIT(6) // RO
171 1.1 matt #define INTSTATUS_GPIOINT __BIT(0) // RO
172 1.1 matt
173 1.1 matt #define MISC_INTMASK 0x024
174 1.1 matt #define INTMASK_UARTINT __BIT(6) // 1 = enabled
175 1.1 matt #define INTMASK_GPIOINT __BIT(0) // 1 = enabled
176 1.1 matt
177 1.1 matt /* Only bits [23:0] are used in the GPIO registers */
178 1.1 matt #define GPIO_INPUT 0x060 // RO
179 1.1 matt #define GPIO_OUT 0x064
180 1.1 matt #define GPIO_OUTEN 0x068
181 1.1 matt #define GPIO_INTPOLARITY 0x070 // 1 = active low
182 1.1 matt #define GPIO_INTMASK 0x074 // 1 = enabled (level)
183 1.1 matt #define GPIO_EVENT 0x078 // W1C, 1 = edge seen
184 1.1 matt #define GPIO_EVENT_INTMASK 0x07c // 1 = enabled (edge)
185 1.1 matt #define GPIO_EVENT_INTPOLARITY 0x084 // 1 = falling
186 1.1 matt #define GPIO_TIMER_VAL 0x088
187 1.1 matt #define TIMERVAL_ONCOUNT __BITS(31,16)
188 1.1 matt #define TIMERVAL_OFFCOUNT __BITS(15,0)
189 1.1 matt #define GPIO_TIMER_OUTMASK 0x08c
190 1.1 matt #define GPIO_DEBUG_SEL 0x0a8
191 1.1 matt
192 1.1 matt #define MISC_WATCHDOG 0x080 // 0 disables, 1 resets
193 1.1 matt
194 1.1 matt #define MISC_CLKDIV 0x0a4
195 1.1 matt #define CLKDIV_JTAG_MASTER_CLKDIV __BITS(13,9)
196 1.1 matt #define CLKDIV_UART_CLKDIV __BITS(7,1)
197 1.1 matt
198 1.1 matt #define MISC_CAPABILITY2 0x0ac
199 1.1 matt #define CAPABILITY2_GSIO_PRESENT __BIT(1) // SPI exists
200 1.1 matt
201 1.1 matt #define MISC_GSIOCTL 0x0e4
202 1.1 matt #define GSIOCTL_STARTBUSY __BIT(31)
203 1.1 matt #define GSIOCTL_GSIOMODE __BIT(30) // 0 = SPI
204 1.1 matt #define GSIOCTL_ERROR __BIT(23)
205 1.1 matt #define GSIOCTL_BIGENDIAN __BIT(22)
206 1.1 matt #define GSIOCTL_GSIOGO __BIT(21)
207 1.1 matt #define GSIOCTL_NUM_DATABYTES __BITS(17,16) // actual is + 1
208 1.1 matt #define GSIOCTL_NUM_WAITCYCLES __BITS(15,14) // actual is + 1
209 1.1 matt #define GSIOCTL_NUM_ADDRESSBYTES __BITS(13,12) // actual is + 1
210 1.1 matt #define GSIOCTL_GSIOCODE __BITS(10,8)
211 1.1 matt #define GSIOCODE_OP_RD1DATA 0
212 1.1 matt #define GSIOCODE_OP_WRADDR_RDADDR 1
213 1.1 matt #define GSIOCODE_OP_WRADDR_XFRDATA 2
214 1.1 matt #define GSIOCODE_OP_WRADDR_WAIT_XFRDATA 3
215 1.1 matt #define GSIOCODE_XFRDATA 4
216 1.1 matt #define GSIOCTL_GSIOOP __BITS(7,0)
217 1.1 matt
218 1.1 matt #define MISC_GSIOADDRESS 0x0e8
219 1.1 matt #define MISC_GSIODATA 0x0ec
220 1.1 matt
221 1.1 matt #define MISC_CLKDIV2 0x0f0
222 1.1 matt #define CLKDIV2_GSIODIV __BITS(20,5)
223 1.1 matt
224 1.1 matt #define MISC_EROM_PTR_OFFSET 0x0fc
225 1.1 matt
226 1.1 matt #endif /* CCA_PRIVATE */
227 1.1 matt
228 1.1 matt /*
229 1.1 matt * UART0 & 1 use the standard 16550 register layout (normal 1 byte stride)
230 1.1 matt * and have 64-byte FIFOs
231 1.1 matt */
232 1.1 matt
233 1.1 matt /* TIMER0 & 1 are implemented by the dtimer driver */
234 1.1 matt
235 1.1 matt #define TIMER_FREQ BCM53XX_REF_CLK
236 1.1 matt
237 1.6 matt #ifdef SRAB_PRIVATE
238 1.6 matt #define SRAB_CMDSTAT 0x002c
239 1.6 matt #define SRA_PAGE __BITS(31,24)
240 1.6 matt #define SRA_OFFSET __BITS(23,16)
241 1.6 matt #define SRA_PAGEOFFSET __BITS(31,16)
242 1.6 matt #define SRA_RST __BIT(2)
243 1.6 matt #define SRA_WRITE __BIT(1)
244 1.6 matt #define SRA_GORDYN __BIT(0)
245 1.6 matt #define SRAB_WDH 0x0030
246 1.6 matt #define SRAB_WDL 0x0034
247 1.6 matt #define SRAB_RDH 0x0038
248 1.6 matt #define SRAB_RDL 0x003c
249 1.6 matt #endif
250 1.6 matt
251 1.1 matt #ifdef MII_PRIVATE
252 1.1 matt #define MII_INTERNAL 0x0038003 /* internal phy bitmask */
253 1.1 matt #define MIIMGT 0x000
254 1.1 matt #define MIIMGT_BYP __BIT(10)
255 1.1 matt #define MIIMGT_EXT __BIT(9)
256 1.1 matt #define MIIMGT_BSY __BIT(8)
257 1.1 matt #define MIIMGT_PRE __BIT(7)
258 1.1 matt #define MIIMGT_MDCDIV __BITS(6,0)
259 1.1 matt #define MIICMD 0x004
260 1.1 matt #define MIICMD_SB __BITS(31,30)
261 1.13 matt #define MIICMD_SB_DEF __SHIFTIN(1, MIICMD_SB)
262 1.1 matt #define MIICMD_OP __BITS(29,28)
263 1.1 matt #define MIICMD_OP_RD __SHIFTIN(2, MIICMD_OP)
264 1.1 matt #define MIICMD_OP_WR __SHIFTIN(1, MIICMD_OP)
265 1.1 matt #define MIICMD_PHY __BITS(27,23)
266 1.1 matt #define MIICMD_REG __BITS(22,18)
267 1.1 matt #define MIICMD_TA __BITS(17,16)
268 1.13 matt #define MIICMD_TA_DEF __SHIFTIN(2, MIICMD_TA)
269 1.1 matt #define MIICMD_DATA __BITS(15,0)
270 1.1 matt
271 1.1 matt #define MIICMD_RD_DEF (MIICMD_SB_DEF|MIICMD_OP_RD|MIICMD_TA_DEF)
272 1.1 matt #define MIICMD_WR_DEF (MIICMD_SB_DEF|MIICMD_OP_WR|MIICMD_TA_DEF)
273 1.1 matt #define MIICMD__PHYREG(p,r) (__SHIFTIN(p,MIICMD_PHY)|__SHIFTIN(r,MIICMD_REG))
274 1.1 matt #define MIICMD_RD(p,r) (MIICMD_RD_DEF|MIICMD__PHYREG((p),(r)))
275 1.1 matt #define MIICMD_WR(p,r,v) (MIICMD_WR_DEF|MIICMD__PHYREG((p),(r))|(v))
276 1.1 matt #endif /* MII_PRIVATE */
277 1.1 matt
278 1.1 matt #ifdef RNG_PRIVATE
279 1.1 matt #define RNG_CTRL 0x000
280 1.1 matt #define RNG_COMBLK2_OSC_DIS __BITS(27,22)
281 1.1 matt #define RNG_COMBLK1_OSC_DIS __BITS(21,16)
282 1.1 matt #define RNG_ICLK_BYP_DIV_CNT __BITS(15,8)
283 1.1 matt #define RNG_JCLK_BYP_SRC __BIT(5)
284 1.1 matt #define RNG_JCLK_BYP_SEL __BIT(4)
285 1.1 matt #define RNG_RBG2X __BIT(1)
286 1.1 matt #define RNG_RBGEN __BIT(0)
287 1.1 matt #define RNG_STATUS 0x004
288 1.1 matt #define RNG_VAL __BITS(31,24)
289 1.1 matt #define RNG_WARM_CNT __BITS(19,0)
290 1.1 matt
291 1.1 matt #define RNG_DATA 0x008
292 1.1 matt #define RNG_FF_THRESHOLD 0x00c
293 1.1 matt #define RNG_INT_MASK 0x010
294 1.1 matt #define RNG_INT_OFF __BIT(0)
295 1.1 matt #endif /* RNG_PRIVATE */
296 1.1 matt
297 1.1 matt #ifdef UART2_PRIVATE
298 1.1 matt /*
299 1.1 matt * UART2 (ChipCommonB) uses a 4-byte stride and 16-byte FIFO.
300 1.1 matt * Its frequency is the APB clock.
301 1.1 matt */
302 1.1 matt #define UART2_LPDLL 0x020
303 1.1 matt #define UART2_LPDLH 0x024
304 1.1 matt #endif
305 1.1 matt
306 1.1 matt #ifdef CRU_PRIVATE
307 1.1 matt
308 1.1 matt #define CRU_CONTROL 0x000
309 1.1 matt #define CRUCTL_QSPI_CLK_SEL __BITS(2,1)
310 1.1 matt #define QSPI_CLK_25MHZ 0 // iproc_ref_clk
311 1.1 matt #define QSPI_CLK_50MHZ 1 // iproc_sdio_clk / 4
312 1.1 matt #define QSPI_CLK_31dot25MHZ 2 // iproc_clk250 / 8
313 1.1 matt #define QSPI_CLK_62dot5MHZ 3 // iproc_clk250 / 4
314 1.1 matt #define CRUCTL_SW_RESET __BIT(0)
315 1.1 matt
316 1.1 matt #define CRU_GENPLL_CONTROL5 0x1154
317 1.1 matt #define GENPLL_CONTROL5_NDIV_INT __BITS(29,20) // = (n ? n : 1024)
318 1.1 matt #define GENPLL_CONTROL5_NDIV_FRAC __BITS(19,0) // = 1 / n
319 1.1 matt #define CRU_GENPLL_CONTROL6 0x1158
320 1.1 matt #define GENPLL_CONTROL6_PDIV __BITS(26,24) // = (n ? n : 8)
321 1.1 matt #define GENPLL_CONTROL6_CH0_MDIV __BITS(23,16) // = (n ? n : 256), clk_mac
322 1.1 matt #define GENPLL_CONTROL6_CH1_MDIV __BITS(15,8) // = (n ? n : 256), clk_robo
323 1.1 matt #define GENPLL_CONTROL6_CH2_MDIV __BITS(7,0) // = (n ? n : 256), clf_usb2
324 1.1 matt #define CRU_GENPLL_CONTROL7 0x115c
325 1.1 matt #define GENPLL_CONTROL7_CH3_MDIV __BITS(23,16) // = (n ? n : 256), clk_iproc
326 1.1 matt
327 1.1 matt #define USB2_REF_CLK (1920*1000*1000)
328 1.1 matt #define CRU_USB2_CONTROL 0x1164
329 1.1 matt #define USB2_CONTROL_KA __BITS(24,22)
330 1.1 matt #define USB2_CONTROL_KI __BITS(31,19)
331 1.1 matt #define USB2_CONTROL_KP __BITS(18,15)
332 1.1 matt #define USB2_CONTROL_PDIV __BITS(14,12) // = (n ? n : 8)
333 1.1 matt #define USB2_CONTROL_NDIV_INT __BITS(11,2) // = (n ? n : 1024)
334 1.1 matt #define USB2_CONTROL_PLL_PCIEUSB3_RESET __BIT(1) // inverted 1=normal
335 1.1 matt #define USB2_CONTROL_PLL_USB2_RESET __BIT(0) // inverted 1=normal
336 1.1 matt
337 1.1 matt #define CRU_CLKSET_KEY 0x1180
338 1.1 matt #define CRU_CLKSET_KEY_MAGIC 0xea68
339 1.1 matt
340 1.1 matt #define CRU_GPIO_SELECT 0x11c0 // CRU GPIO Select
341 1.1 matt #define CRU_GPIO_DRIVE_SEL2 0x11c4
342 1.1 matt #define CRU_GPIO_DRIVE_SEL1 0x11c8
343 1.1 matt #define CRU_GPIO_DRIVE_SEL0 0x11cc
344 1.1 matt #define CRU_GPIO_INPUT_DISABLE 0x11d0
345 1.1 matt #define CRU_GPIO_HYSTERESIS 0x11d4
346 1.1 matt #define CRU_GPIO_SLEW_RATE 0x11d8
347 1.1 matt #define CRU_GPIO_PULL_UP 0x11dc
348 1.1 matt #define CRU_GPIO_PULL_DOWN 0x11e0
349 1.1 matt
350 1.1 matt #define CRU_STRAPS_CONTROL 0x12a0
351 1.6 matt #define STRAP_BOOT_DEV __BITS(17,16)
352 1.6 matt #define STRAP_NAND_TYPE __BITS(15,12)
353 1.6 matt #define STRAP_NAND_PAGE __BITS(11,10)
354 1.6 matt #define STRAP_DDR3 __BIT(9)
355 1.6 matt #define STRAP_P5_VOLT_15 __BIT(8)
356 1.6 matt #define STRAP_P5_MODE __BITS(7,6)
357 1.6 matt #define STRAP_PCIE0_MODE __BIT(5)
358 1.6 matt #define STRAP_USB3_SEL __BIT(4)
359 1.6 matt #define STRAP_EX_EXTCLK __BIT(3)
360 1.6 matt #define STRAP_HW_FWDG_EN __BIT(2)
361 1.6 matt #define STRAP_LED_SERIAL_MODE __BIT(1)
362 1.1 matt #define STRAP_BISR_BYPASS_AUTOLOAD __BIT(0)
363 1.1 matt
364 1.1 matt #endif /* CRU_PRIVATE */
365 1.1 matt
366 1.1 matt #ifdef DMU_PRIVATE
367 1.1 matt
368 1.1 matt #define DMU_LCPLL_CONTROL0 0x100
369 1.1 matt #define DMU_LCPLL_CONTROL1 0x104
370 1.1 matt #define LCPLL_CONTROL1_PDIV __BITS(30,28) // = (n ? n : 8)
371 1.1 matt #define LCPLL_CONTROL1_NDIV_INT __BITS(27,20) // = (n ? n : 256)
372 1.1 matt #define LCPLL_CONTROL1_NDIV_FRAC __BITS(19,0) // = 1 / n
373 1.1 matt /*
374 1.1 matt * SYS_CLK = (1 / pdiv) * (ndiv_int + (ndiv_frac / 0x40000000)) x F(ref)
375 1.1 matt */
376 1.1 matt #define DMU_LCPLL_CONTROL2 0x108
377 1.1 matt #define LCPLL_CONTROL2_CH0_MDIV __BITS(31,24) // = (n ? n : 256), clk_pcie_ref
378 1.1 matt #define LCPLL_CONTROL2_CH1_MDIV __BITS(23,16) // = (n ? n : 256), clk_sdio
379 1.1 matt #define LCPLL_CONTROL2_CH2_MDIV __BITS(15,8) // = (n ? n : 256), clk_ddr
380 1.1 matt #define LCPLL_CONTROL2_CH3_MDIV __BITS(7,0) // = (n ? n : 256), clf_dft
381 1.1 matt
382 1.1 matt #endif /* DMU_PRIVATE */
383 1.1 matt
384 1.1 matt #ifdef DDR_PRIVATE
385 1.1 matt /*
386 1.1 matt * DDR CTL register has such inspired names.
387 1.1 matt */
388 1.1 matt #define DDR_CTL_01 0x004
389 1.1 matt #define CTL_01_MAX_CHIP_SEL __BITS(18,16) // not documented as such
390 1.1 matt #define CTL_01_MAX_COL __BITS(11,8)
391 1.1 matt #define CTL_01_MAX_ROW __BITS(4,0)
392 1.1 matt
393 1.1 matt #define DDR_CTL_82 0x148
394 1.1 matt #define CTL_82_COL_DIFF __BITS(26,24)
395 1.1 matt #define CTL_82_ROW_DIFF __BITS(18,16)
396 1.1 matt #define CTL_82_BANK_DIFF __BITS(9,8)
397 1.1 matt #define CTL_82_ZQCS_ROTATE __BIT(0)
398 1.1 matt
399 1.1 matt #define DDR_CTL_86 0x158
400 1.1 matt #define CTL_86_CS_MAP __BITS(27,24)
401 1.1 matt #define CTL_86_INHIBIT_DRAM_CMD __BIT(16)
402 1.1 matt #define CTL_86_DIS_RD_INTRLV __BIT(8)
403 1.1 matt #define CTL_86_NUM_QENT_ACT_DIS __BITS(2,0)
404 1.1 matt
405 1.1 matt #define DDR_CTL_87 0x15c
406 1.1 matt #define CTL_87_IN_ORDER_ACCEPT __BIT(24)
407 1.1 matt #define CTL_87_Q_FULLNESS __BITS(18,16)
408 1.1 matt #define CTL_87_REDUC __BIT(8)
409 1.1 matt #define CTL_87_BURST_ON_FLY_BIT __BITS(3,0)
410 1.1 matt
411 1.1 matt #define DDR_PHY_CTL_PLL_STATUS 0x810
412 1.1 matt #define PLL_STATUS_LOCK_LOST __BIT(26)
413 1.1 matt #define PLL_STATUS_MHZ __BITS(25,14)
414 1.1 matt #define PLL_STATUS_CLOCKING_4X __BIT(13)
415 1.1 matt #define PLL_STATUS_STATUS __BITS(12,1)
416 1.1 matt #define PLL_STATUS_LOCK __BIT(0)
417 1.1 matt
418 1.1 matt #define DDR_PHY_CTL_PLL_DIVIDERS 0x81c
419 1.1 matt #define PLL_DIVIDERS_POST_DIV __BITS(13,11)
420 1.1 matt #define PLL_DIVIDERS_PDIV __BITS(10,8) // 4x: (n ? n : 8), n = n - 4, 4x
421 1.1 matt #define PLL_DIVIDERS_NDIV __BITS(7,0)
422 1.1 matt
423 1.1 matt #endif /* DDR_PRIVATE */
424 1.1 matt
425 1.1 matt #ifdef PCIE_PRIVATE
426 1.1 matt
427 1.2 matt #define PCIE_CLK_CONTROL 0x000
428 1.2 matt
429 1.10 matt #define PCIE_RC_AXI_CONFIG 0x100
430 1.10 matt #define PCIE_AWCACHE_CONFIG __BITS(17,14)
431 1.10 matt #define PCIE_AWUSER_CONFIG __BITS(13,9)
432 1.10 matt #define PCIE_ARCACHE_CONFIG __BITS(8,5)
433 1.10 matt #define PCIE_ARUSER_CONFIG __BITS(4,0)
434 1.10 matt
435 1.1 matt #define PCIE_CFG_IND_ADDR 0x120
436 1.1 matt #define CFG_IND_ADDR_FUNC __BITS(15,13)
437 1.1 matt #define CFG_IND_ADDR_LAYER __BITS(12,11)
438 1.2 matt #define CFG_IND_ADDR_REG __BITS(10,2)
439 1.1 matt #define PCIE_CFG_IND_DATA 0x124
440 1.1 matt #define PCIE_CFG_ADDR 0x1f8
441 1.1 matt #define CFG_ADDR_BUS __BITS(27,20)
442 1.4 matt #define CFG_ADDR_DEV __BITS(19,15)
443 1.1 matt #define CFG_ADDR_FUNC __BITS(14,12)
444 1.1 matt #define CFG_ADDR_REG __BITS(11,2)
445 1.1 matt #define CFG_ADDR_TYPE __BITS(1,0)
446 1.1 matt #define CFG_ADDR_TYPE0 __SHIFTIN(0, CFG_ADDR_TYPE)
447 1.1 matt #define CFG_ADDR_TYPE1 __SHIFTIN(1, CFG_ADDR_TYPE)
448 1.1 matt #define PCIE_CFG_DATA 0x1fc
449 1.1 matt #define PCIE_EQ_PAGE 0x200
450 1.1 matt #define PCIE_MSI_PAGE 0x204
451 1.1 matt #define PCIE_MSI_INTR_EN 0x208
452 1.1 matt #define PCIE_MSI_CTRL_0 0x210
453 1.1 matt #define PCIE_MSI_CTRL_1 0x214
454 1.1 matt #define PCIE_MSI_CTRL_2 0x218
455 1.1 matt #define PCIE_MSI_CTRL_3 0x21c
456 1.1 matt #define PCIE_MSI_CTRL_4 0x220
457 1.1 matt #define PCIE_MSI_CTRL_5 0x224
458 1.1 matt #define PCIE_SYS_EQ_HEAD_0 0x250
459 1.1 matt #define PCIE_SYS_EQ_TAIL_0 0x254
460 1.1 matt #define PCIE_SYS_EQ_HEAD_1 0x258
461 1.1 matt #define PCIE_SYS_EQ_TAIL_1 0x25c
462 1.1 matt #define PCIE_SYS_EQ_HEAD_2 0x260
463 1.1 matt #define PCIE_SYS_EQ_TAIL_2 0x264
464 1.1 matt #define PCIE_SYS_EQ_HEAD_3 0x268
465 1.1 matt #define PCIE_SYS_EQ_TAIL_3 0x26c
466 1.1 matt #define PCIE_SYS_EQ_HEAD_4 0x270
467 1.1 matt #define PCIE_SYS_EQ_TAIL_4 0x274
468 1.1 matt #define PCIE_SYS_EQ_HEAD_5 0x278
469 1.1 matt #define PCIE_SYS_EQ_TAIL_5 0x27c
470 1.1 matt #define PCIE_SYS_RC_INTX_EN 0x330
471 1.1 matt #define PCIE_SYS_RC_INTX_CSR 0x334
472 1.1 matt
473 1.8 matt #define PCIE_CFG000_BASE 0x400
474 1.8 matt
475 1.1 matt #define PCIE_FUNC0_IMAP0_0 0xc00
476 1.1 matt #define PCIE_FUNC0_IMAP0_1 0xc04
477 1.1 matt #define PCIE_FUNC0_IMAP0_2 0xc08
478 1.1 matt #define PCIE_FUNC0_IMAP0_3 0xc0c
479 1.1 matt #define PCIE_FUNC0_IMAP0_4 0xc10
480 1.1 matt #define PCIE_FUNC0_IMAP0_5 0xc14
481 1.1 matt #define PCIE_FUNC0_IMAP0_6 0xc18
482 1.1 matt #define PCIE_FUNC0_IMAP0_7 0xc1c
483 1.1 matt
484 1.1 matt #define PCIE_FUNC0_IMAP1 0xc80
485 1.1 matt #define PCIE_FUNC1_IMAP1 0xc88
486 1.1 matt #define PCIE_FUNC0_IMAP2 0xcc0
487 1.1 matt #define PCIE_FUNC1_IMAP2 0xcc8
488 1.1 matt
489 1.1 matt #define PCIE_IARR_0_LOWER 0xd00
490 1.1 matt #define PCIE_IARR_0_UPPER 0xd04
491 1.1 matt #define PCIE_IARR_1_LOWER 0xd08
492 1.1 matt #define PCIE_IARR_1_UPPER 0xd0c
493 1.1 matt #define PCIE_IARR_2_LOWER 0xd10
494 1.1 matt #define PCIE_IARR_2_UPPER 0xd14
495 1.1 matt
496 1.1 matt #define PCIE_OARR_0 0xd20
497 1.1 matt #define PCIE_OARR_1 0xd28
498 1.1 matt
499 1.3 matt #define PCIE_OARR_ADDR __BITS(31,26)
500 1.3 matt
501 1.1 matt #define PCIE_OMAP_0_LOWER 0xd40
502 1.1 matt #define PCIE_OMAP_0_UPPER 0xd44
503 1.1 matt #define PCIE_OMAP_1_LOWER 0xd48
504 1.1 matt #define PCIE_OMAP_1_UPPER 0xd4c
505 1.1 matt
506 1.3 matt #define PCIE_OMAP_ADDRL __BITS(31,26)
507 1.3 matt
508 1.1 matt #define PCIE_FUNC1_IARR_1_SIZE 0xd58
509 1.1 matt #define PCIE_FUNC1_IARR_2_SIZE 0xd5c
510 1.1 matt
511 1.1 matt #define PCIE_MEM_CONTROL 0xf00
512 1.1 matt #define PCIE_MEM_ECC_ERR_LOG_0 0xf04
513 1.1 matt #define PCIE_MEM_ECC_ERR_LOG_1 0xf08
514 1.1 matt
515 1.1 matt #define PCIE_LINK_STATUS 0xf0c
516 1.1 matt #define PCIE_PHYLINKUP __BIT(3)
517 1.1 matt #define PCIE_DL_ACTIVE __BIT(2)
518 1.1 matt #define PCIE_RX_LOS_TIMEOUT __BIT(1)
519 1.1 matt #define PCIE_LINK_IN_L1 __BIT(0)
520 1.1 matt #define PCIE_STRAP_STATUS 0xf10
521 1.1 matt #define STRAP_PCIE_REPLAY_BUF_TM __BITS(8,4)
522 1.1 matt #define STRAP_PCIE_USER_FOR_CE_GEN1 __BIT(3)
523 1.1 matt #define STRAP_PCIE_USER_FOR_CE_1LANE __BIT(2)
524 1.1 matt #define STRAP_PCIE_IF_ENABLE __BIT(1)
525 1.1 matt #define STRAP_PCIE_USER_RC_MODE __BIT(0)
526 1.1 matt #define PCIE_RESET_STATUS 0xf14
527 1.1 matt
528 1.1 matt #define PCIE_RESET_ENABLE_IN_PCIE_LINK_DOWN 0xf18
529 1.1 matt
530 1.1 matt #define PCIE_MISC_INTR_EN 0xf1c
531 1.1 matt #define PCIE_TX_DEBUG_CFG 0xf20
532 1.5 matt #define PCIE_ERROR_INTR_EN 0xf30
533 1.5 matt #define PCIE_ERROR_INTR_CLR 0xf34
534 1.5 matt #define PCIE_ERROR_INTR_STS 0xf38
535 1.1 matt
536 1.1 matt
537 1.1 matt // PCIE_SYS_MSI_INTR_EN
538 1.1 matt #define MSI_INTR_EN_EQ_5 __BIT(5)
539 1.1 matt #define MSI_INTR_EN_EQ_4 __BIT(4)
540 1.1 matt #define MSI_INTR_EN_EQ_3 __BIT(3)
541 1.1 matt #define MSI_INTR_EN_EQ_2 __BIT(2)
542 1.1 matt #define MSI_INTR_EN_EQ_1 __BIT(1)
543 1.1 matt #define MSI_INTR_EN_EQ_0 __BIT(0)
544 1.1 matt
545 1.1 matt // PCIE_SYS_MSI_CTRL<n>
546 1.1 matt #define INT_N_DELAY __BITS(9,6)
547 1.1 matt #define INT_N_EVENT __BITS(1,1)
548 1.1 matt #define EQ_ENABLE __BIT(0)
549 1.1 matt
550 1.1 matt // PCIE_SYS_EQ_HEAD<n>
551 1.1 matt #define HEAD_PTR __BITS(5,0)
552 1.1 matt
553 1.1 matt // PCIE_SYS_EQ_TAIL<n>
554 1.1 matt #define EQ_OVERFLOW __BIT(6)
555 1.1 matt #define TAIL_PTR __BITS(5,0)
556 1.1 matt
557 1.1 matt // PCIE_SYS_RC_INTRX_EN
558 1.1 matt #define RC_EN_INTD __BIT(3)
559 1.1 matt #define RC_EN_INTC __BIT(2)
560 1.1 matt #define RC_EN_INTB __BIT(1)
561 1.1 matt #define RC_EN_INTA __BIT(0)
562 1.1 matt
563 1.1 matt // PCIE_SYS_RC_INTRX_CSR
564 1.1 matt #define RC_INTD __BIT(3)
565 1.1 matt #define RC_INTC __BIT(2)
566 1.1 matt #define RC_INTB __BIT(1)
567 1.1 matt #define RC_INTA __BIT(0)
568 1.1 matt
569 1.1 matt // PCIE_IARR_0_LOWER / UPPER
570 1.1 matt #define IARR0_ADDR __BIT(31,15)
571 1.1 matt #define IARR0_VALID __BIT(0)
572 1.1 matt
573 1.1 matt // PCIE_IARR_1_LOWER / UPPER
574 1.1 matt #define IARR1_ADDR __BIT(31,20)
575 1.1 matt #define IARR1_SIZE __BIT(7,0)
576 1.5 matt
577 1.5 matt // PCIE_IARR_2_LOWER / UPPER
578 1.5 matt #define IARR2_ADDR __BIT(31,20)
579 1.5 matt #define IARR2_SIZE __BIT(7,0)
580 1.5 matt
581 1.5 matt // PCIE_MISC_INTR_EN
582 1.5 matt #define INTR_EN_PCIE_ERR_ATTN __BIT(2)
583 1.5 matt #define INTR_EN_PAXB_ECC_2B_ATTN __BIT(1)
584 1.5 matt #define INTR_EN_PCIE_IN_WAKE_B __BIT(0)
585 1.5 matt
586 1.5 matt // PCIE_ERR_INTR_{EN,CLR,STS}
587 1.5 matt #define PCIE_OVERFLOW_UNDERFLOW_INTR __BIT(10)
588 1.5 matt #define PCIE_AXI_MASTER_RRESP_SLV_ERR_INTR __BIT(9)
589 1.5 matt #define PCIE_AXI_MASTER_RRESP_DECERR_INTR __BIT(8)
590 1.5 matt #define PCIE_ECRC_ERR_INTR __BIT(7)
591 1.5 matt #define PCIE_CMPL_TIMEROUT_INTR __BIT(6)
592 1.5 matt #define PCIE_ERR_ATTN_INTR __BIT(5)
593 1.5 matt #define PCIE_IN_WAKE_B_INTR __BIT(4)
594 1.5 matt #define PCIE_REPLAY_BUF_2B_ECC_ERR_INTR __BIT(3)
595 1.5 matt #define PCIE_RD_CMPL_BUF_1_2B_ECC_ERR_INTR __BIT(2)
596 1.5 matt #define PCIE_RD_CMPL_BUF_0_2B_ECC_ERR_INTR __BIT(1)
597 1.5 matt #define PCIE_WR_DATA_BUF_2B_ECC_ERR_INTR __BIT(0)
598 1.1 matt
599 1.1 matt #define REGS_DEVICE_CAPACITY 0x04d4
600 1.1 matt #define REGS_LINK_CAPACITY 0x03dc
601 1.1 matt #define REGS_TL_CONTROL_0 0x0800
602 1.1 matt #define REGS_DL_STATUS 0x1048
603 1.1 matt
604 1.1 matt #endif /* PCIE_PRIVATE */
605 1.1 matt
606 1.1 matt #define ARMCORE_SCU_BASE 0x20000 /* CBAR is 19020000 */
607 1.3 matt #define ARMCORE_L2C_BASE 0x22000
608 1.1 matt
609 1.1 matt #ifdef ARMCORE_PRIVATE
610 1.1 matt
611 1.1 matt #define ARMCORE_CLK_POLICY_FREQ 0x008
612 1.1 matt #define CLK_POLICY_FREQ_PRIVED __BIT(31)
613 1.1 matt #define CLK_POLICY_FREQ_POLICY3 __BITS(26,24)
614 1.1 matt #define CLK_POLICY_FREQ_POLICY2 __BITS(18,16)
615 1.1 matt #define CLK_POLICY_FREQ_POLICY1 __BITS(10,8)
616 1.1 matt #define CLK_POLICY_FREQ_POLICY0 __BITS(2,0)
617 1.1 matt #define CLK_POLICY_REF_CLK 0 // 25 MHZ
618 1.1 matt #define CLK_POLICY_SYS_CLK 1 // sys clk (200MHZ)
619 1.1 matt #define CLK_POLICY_ARM_PLL_CH0 6 // slow clock
620 1.1 matt #define CLK_POLICY_ARM_PLL_CH1 7 // fast clock
621 1.1 matt
622 1.1 matt #define ARMCORE_CLK_APB_DIV 0xa10
623 1.1 matt #define CLK_APB_DIV_PRIVED __BIT(31)
624 1.1 matt #define CLK_APB_DIV_VALUE __BITS(1,0) // n = n + 1
625 1.1 matt
626 1.1 matt #define ARMCORE_CLK_APB_DIV_TRIGGER 0xa10
627 1.1 matt #define CLK_APB_DIV_TRIGGER_PRIVED __BIT(31)
628 1.1 matt #define CLK_APB_DIV_TRIGGER_OVERRIDE __BIT(0)
629 1.1 matt
630 1.1 matt #define ARMCORE_CLK_PLLARMA 0xc00
631 1.1 matt #define CLK_PLLARMA_PDIV __BITS(26,24) // = (n ? n : 16(?))
632 1.1 matt #define CLK_PLLARMA_NDIV_INT __BITS(17,8) // = (n ? n : 1024)
633 1.1 matt
634 1.1 matt #define ARMCORE_CLK_PLLARMB 0xc04
635 1.1 matt #define CLK_PLLARMB_NDIV_FRAC __BITS(19,0) // = 1 / n
636 1.1 matt
637 1.1 matt #endif
638 1.1 matt
639 1.1 matt #ifdef IDM_PRIVATE
640 1.1 matt
641 1.1 matt #define IDM_ARMCORE_M0_BASE 0x00000
642 1.1 matt #define IDM_PCIE_M0_BASE 0x01000
643 1.1 matt #define IDM_PCIE_M1_BASE 0x02000
644 1.1 matt #define IDM_PCIE_M2_BASE 0x03000
645 1.1 matt #define IDM_USB3_BASE 0x05000
646 1.1 matt #define IDM_ARMCORE_S1_BASE 0x06000
647 1.1 matt #define IDM_ARMCORE_S0_BASE 0x07000
648 1.1 matt #define IDM_DDR_S1_BASE 0x08000
649 1.1 matt #define IDM_DDR_S2_BASE 0x09000
650 1.1 matt #define IDM_ROM_S0_BASE 0x0d000
651 1.1 matt #define IDM_AMAC0_BASE 0x10000
652 1.1 matt #define IDM_AMAC1_BASE 0x11000
653 1.1 matt #define IDM_AMAC2_BASE 0x12000
654 1.1 matt #define IDM_AMAC3_BASE 0x13000
655 1.1 matt #define IDM_DMAC_M0_BASE 0x14000
656 1.1 matt #define IDM_USB2_BASE 0x15000
657 1.1 matt #define IDM_SDIO_BASE 0x16000
658 1.1 matt #define IDM_I2S_M0_BASE 0x17000
659 1.1 matt #define IDM_A9JTAG_M0_BASE 0x18000
660 1.1 matt #define IDM_NAND_BASE 0x1a000
661 1.1 matt #define IDM_QSPI_BASE 0x1b000
662 1.1 matt #define IDM_APBX_BASE 0x21000
663 1.1 matt
664 1.1 matt #define IDM_IO_CONTROL_DIRECT 0x0408
665 1.1 matt #define IDM_IO_STATUS 0x0500
666 1.1 matt #define IDM_RESET_CONTROL 0x0800
667 1.1 matt #define IDM_RESET_STATUS 0x0804
668 1.1 matt #define IDM_INTERRUPT_STATUS 0x0a00
669 1.1 matt
670 1.12 matt #define IO_CONTROL_DIRECT_ARUSER __BITS(29,25)
671 1.12 matt #define IO_CONTROL_DIRECT_AWUSER __BITS(24,20)
672 1.9 matt #define IO_CONTROL_DIRECT_ARCACHE __BITS(19,16)
673 1.9 matt #define IO_CONTROL_DIRECT_AWCACHE __BITS(10,7)
674 1.9 matt #define AXCACHE_WA __BIT(3)
675 1.9 matt #define AXCACHE_RA __BIT(2)
676 1.9 matt #define AXCACHE_C __BIT(1)
677 1.9 matt #define AXCACHE_B __BIT(0)
678 1.1 matt #define IO_CONTROL_DIRECT_UARTCLKSEL __BIT(17)
679 1.12 matt #define IO_CONTROL_DIRECT_CLK_250_SEL __BIT(6)
680 1.12 matt #define IO_CONTROL_DIRECT_DIRECT_GMII_MODE __BIT(5)
681 1.12 matt #define IO_CONTROL_DIRECT_TX_CLK_OUT_INVERT_EN __BIT(4)
682 1.12 matt #define IO_CONTROL_DIRECT_DEST_SYNC_MODE_EN __BIT(3)
683 1.12 matt #define IO_CONTROL_DIRECT_SOURCE_SYNC_MODE_EN __BIT(2)
684 1.12 matt #define IO_CONTROL_DIRECT_CLK_GATING_EN __BIT(0)
685 1.1 matt
686 1.1 matt #define RESET_CONTROL_RESET __BIT(0)
687 1.1 matt
688 1.1 matt #endif /* IDM_PRIVATE */
689 1.1 matt
690 1.11 matt #ifdef USBH_PRIVATE
691 1.11 matt #define USBH_PHY_CTRL_P0 0x200
692 1.11 matt #define USBH_PHY_CTRL_P1 0x204
693 1.11 matt
694 1.11 matt #define USBH_PHY_CTRL_INIT 0x3ff
695 1.11 matt #endif
696 1.11 matt
697 1.1 matt #ifdef GMAC_PRIVATE
698 1.1 matt
699 1.1 matt struct gmac_txdb {
700 1.1 matt uint32_t txdb_flags;
701 1.6 matt uint32_t txdb_buflen;
702 1.1 matt uint32_t txdb_addrlo;
703 1.1 matt uint32_t txdb_addrhi;
704 1.1 matt };
705 1.1 matt #define TXDB_FLAG_SF __BIT(31) // Start oF Frame
706 1.1 matt #define TXDB_FLAG_EF __BIT(30) // End oF Frame
707 1.1 matt #define TXDB_FLAG_IC __BIT(29) // Interupt on Completetion
708 1.1 matt #define TXDB_FLAG_ET __BIT(28) // End Of Table
709 1.1 matt
710 1.1 matt struct gmac_rxdb {
711 1.1 matt uint32_t rxdb_flags;
712 1.6 matt uint32_t rxdb_buflen;
713 1.1 matt uint32_t rxdb_addrlo;
714 1.1 matt uint32_t rxdb_addrhi;
715 1.1 matt };
716 1.1 matt #define RXDB_FLAG_SF __BIT(31) // Start oF Frame (ignored)
717 1.1 matt #define RXDB_FLAG_EF __BIT(30) // End oF Frame (ignored)
718 1.1 matt #define RXDB_FLAG_IC __BIT(29) // Interupt on Completetion
719 1.1 matt #define RXDB_FLAG_ET __BIT(28) // End Of Table
720 1.1 matt
721 1.1 matt #define RXSTS_FRAMELEN __BITS(15,0) // # of bytes (including padding)
722 1.1 matt #define RXSTS_PKTTYPE __BITS(17,16)
723 1.1 matt #define RXSTS_PKTTYPE_UC 0 // Unicast
724 1.1 matt #define RXSTS_PKTTYPE_MC 1 // Multicast
725 1.1 matt #define RXSTS_PKTTYPE_BC 2 // Broadcast
726 1.1 matt #define RXSTS_VLAN_PRESENT __BIT(18)
727 1.1 matt #define RXSTS_CRC_ERROR __BIT(19)
728 1.1 matt #define RXSTS_OVERSIZED __BIT(20)
729 1.1 matt #define RXSTS_CTF_HIT __BIT(21)
730 1.1 matt #define RXSTS_CTF_ERROR __BIT(22)
731 1.1 matt #define RXSTS_PKT_OVERFLOW __BIT(23)
732 1.1 matt #define RXSTS_DESC_COUNT __BITS(27,24) // # of descriptors - 1
733 1.1 matt
734 1.1 matt #define GMAC_DEVCONTROL 0x000
735 1.6 matt #define ENABLE_DEL_G_TXC __BIT(21)
736 1.6 matt #define ENABLE_DEL_G_RXC __BIT(20)
737 1.6 matt #define TXC_DRNG __BITS(19,18)
738 1.6 matt #define RXC_DRNG __BITS(17,16)
739 1.6 matt #define TXQ_FLUSH __BIT(8)
740 1.6 matt #define NWAY_AUTO_POLL_EN __BIT(7)
741 1.6 matt #define FLOW_CTRL_MODE __BITS(6,5)
742 1.6 matt #define MIB_RD_RESET_EN __BIT(4)
743 1.6 matt #define RGMII_LINK_STATUS_SEL __BIT(3)
744 1.6 matt #define CPU_FLOW_CTRL_ON __BIT(2)
745 1.6 matt #define RXQ_OVERFLOW_CTRL_SEL __BIT(1)
746 1.6 matt #define TXARB_STRICT_MODE __BIT(0)
747 1.1 matt #define GMAC_DEVSTATUS 0x004
748 1.1 matt #define GMAC_BISTSTATUS 0x00c
749 1.1 matt #define GMAC_INTSTATUS 0x020
750 1.1 matt #define GMAC_INTMASK 0x024
751 1.6 matt #define TXQECCUNCORRECTED __BIT(31)
752 1.6 matt #define TXQECCCORRECTED __BIT(30)
753 1.6 matt #define RXQECCUNCORRECTED __BIT(29)
754 1.6 matt #define RXQECCCORRECTED __BIT(28)
755 1.6 matt #define XMTINT_3 __BIT(27)
756 1.6 matt #define XMTINT_2 __BIT(26)
757 1.6 matt #define XMTINT_1 __BIT(25)
758 1.6 matt #define XMTINT_0 __BIT(24)
759 1.6 matt #define RCVINT __BIT(16)
760 1.6 matt #define XMTUF __BIT(15)
761 1.6 matt #define RCVFIFOOF __BIT(14)
762 1.6 matt #define RCVDESCUF __BIT(13)
763 1.6 matt #define DESCPROTOERR __BIT(12)
764 1.6 matt #define DATAERR __BIT(11)
765 1.6 matt #define DESCERR __BIT(10)
766 1.6 matt #define INT_SW_LINK_ST_CHG __BIT(8)
767 1.6 matt #define INT_TIMEOUT __BIT(7)
768 1.6 matt #define MIB_TX_INT __BIT(6)
769 1.6 matt #define MIB_RX_INT __BIT(5)
770 1.6 matt #define MDIOINT __BIT(4)
771 1.6 matt #define NWAYLINKSTATINT __BIT(3)
772 1.6 matt #define TXQ_FLUSH_DONEINT __BIT(2)
773 1.6 matt #define MIB_TX_OVERFLOW __BIT(1)
774 1.6 matt #define MIB_RX_OVERFLOW __BIT(0)
775 1.1 matt #define GMAC_GPTIMER 0x028
776 1.1 matt
777 1.1 matt #define GMAC_INTRCVLAZY 0x100
778 1.7 matt #define INTRCVLAZY_FRAMECOUNT __BITS(31,24)
779 1.7 matt #define INTRCVLAZY_TIMEOUT __BITS(23,0)
780 1.1 matt #define GMAC_FLOWCNTL_TH 0x104
781 1.1 matt #define GMAC_TXARB_WRR_TH 0x108
782 1.1 matt #define GMAC_GMACIDLE_CNT_TH 0x10c
783 1.1 matt
784 1.1 matt #define GMAC_FIFOACCESSADDR 0x120
785 1.1 matt #define GMAC_FIFOACCESSBYTE 0x124
786 1.1 matt #define GMAC_FIFOACCESSDATA 0x128
787 1.1 matt
788 1.1 matt #define GMAC_PHYACCESS 0x180
789 1.1 matt #define GMAC_PHYCONTROL 0x188
790 1.1 matt #define GMAC_TXQCONTROL 0x18c
791 1.1 matt #define GMAC_RXQCONTROL 0x190
792 1.1 matt #define GMAC_GPIOSELECT 0x194
793 1.1 matt #define GMAC_GPIOOUTPUTEN 0x198
794 1.1 matt #define GMAC_TXQRXQMEMORYCONTROL 0x1a0
795 1.1 matt #define GMAC_MEMORYECCSTATUS 0x1a4
796 1.1 matt
797 1.1 matt #define GMAC_CLOCKCONTROLSTATUS 0x1e0
798 1.1 matt #define GMAC_POWERCONTROL 0x1e8
799 1.1 matt
800 1.6 matt #define GMAC_XMTCONTROL 0x200
801 1.6 matt #define XMTCTL_PREFETCH_THRESH __BITS(25,24)
802 1.6 matt #define XMTCTL_PREFETCH_CTL __BITS(23,21)
803 1.6 matt #define XMTCTL_BURSTLEN __BITS(20,18)
804 1.6 matt #define XMTCTL_ADDREXT __BITS(17,16)
805 1.6 matt #define XMTCTL_DMA_ACT_INDEX __BIT(13)
806 1.6 matt #define XMTCTL_PARITY_DIS __BIT(11)
807 1.6 matt #define XMTCTL_OUTSTANDING_READS __BITS(7,6)
808 1.6 matt #define XMTCTL_BURST_ALIGN_EN __BIT(5)
809 1.6 matt #define XMTCTL_DMA_LOOPBACK __BIT(2)
810 1.6 matt #define XMTCTL_SUSPEND __BIT(1)
811 1.6 matt #define XMTCTL_ENABLE __BIT(0)
812 1.6 matt #define GMAC_XMTPTR 0x204
813 1.6 matt #define XMT_LASTDSCR __BITS(11,4)
814 1.6 matt #define GMAC_XMTADDR_LOW 0x208
815 1.6 matt #define GMAC_XMTADDR_HIGH 0x20c
816 1.6 matt #define GMAC_XMTSTATUS0 0x210
817 1.6 matt #define XMTSTATE __BITS(31,28)
818 1.6 matt #define XMTSTATE_DIS 0
819 1.6 matt #define XMTSTATE_ACTIVE 1
820 1.6 matt #define XMTSTATE_IDLE_WAIT 2
821 1.6 matt #define XMTSTATE_STOPPED 3
822 1.6 matt #define XMTSTATE_SUSP_PENDING 4
823 1.6 matt #define XMT_CURRDSCR __BITS(11,4)
824 1.6 matt #define GMAC_XMTSTATUS1 0x214
825 1.6 matt #define XMTERR __BITS(31,28)
826 1.6 matt #define XMT_ACTIVEDSCR __BITS(11,4)
827 1.6 matt #define GMAC_RCVCONTROL 0x220
828 1.6 matt #define RCVCTL_PREFETCH_THRESH __BITS(25,24)
829 1.6 matt #define RCVCTL_PREFETCH_CTL __BITS(23,21)
830 1.6 matt #define RCVCTL_BURSTLEN __BITS(20,18)
831 1.6 matt #define RCVCTL_ADDREXT __BITS(17,16)
832 1.6 matt #define RCVCTL_DMA_ACT_INDEX __BIT(13)
833 1.6 matt #define RCVCTL_PARITY_DIS __BIT(11)
834 1.6 matt #define RCVCTL_OFLOW_CONTINUE __BIT(10)
835 1.6 matt #define RCVCTL_SEPRXHDRDESC __BIT(9)
836 1.6 matt #define RCVCTL_RCVOFFSET __BITS(7,1)
837 1.6 matt #define RCVCTL_ENABLE __BIT(0)
838 1.1 matt #define GMAC_RCVPTR 0x224
839 1.6 matt #define RCVPTR __BITS(11,4)
840 1.1 matt #define GMAC_RCVADDR_LOW 0x228
841 1.1 matt #define GMAC_RCVADDR_HIGH 0x22c
842 1.1 matt #define GMAC_RCVSTATUS0 0x230
843 1.6 matt #define RCVSTATE __BITS(31,28)
844 1.6 matt #define RCVSTATE_DIS 0
845 1.6 matt #define RCVSTATE_ACTIVE 1
846 1.6 matt #define RCVSTATE_IDLE_WAIT 2
847 1.6 matt #define RCVSTATE_STOPPED 3
848 1.6 matt #define RCVSTATE_SUSP_PENDING 4
849 1.6 matt #define RCV_CURRDSCR __BITS(11,4)
850 1.1 matt #define GMAC_RCVSTATUS1 0x234
851 1.6 matt #define RCV_ACTIVEDSCR __BITS(11,4)
852 1.1 matt
853 1.1 matt #define GMAC_TX_GD_OCTETS_LO 0x300
854 1.1 matt
855 1.1 matt
856 1.1 matt #define UNIMAC_IPG_HD_BPG_CNTL 0x804
857 1.1 matt #define UNIMAC_COMMAND_CONFIG 0x808
858 1.6 matt #define RUNT_FILTER_DIS __BIT(30)
859 1.6 matt #define OOB_EFC_EN __BIT(29)
860 1.6 matt #define IGNORE_TX_PAUSE __BIT(28)
861 1.6 matt #define PRBL_ENA __BIT(27)
862 1.6 matt #define RX_ERR_DIS __BIT(26)
863 1.6 matt #define LINE_LOOPBACK __BIT(25)
864 1.6 matt #define NO_LENGTH_CHECK __BIT(24)
865 1.6 matt #define CNTRL_FRM_ENA __BIT(23)
866 1.6 matt #define ENA_EXT_CONFIG __BIT(22)
867 1.6 matt #define EN_INTERNAL_TX_CRS __BIT(21)
868 1.6 matt #define SW_OVERRIDE_RX __BIT(18)
869 1.6 matt #define SW_OVERRIDE_TX __BIT(17)
870 1.6 matt #define MAC_LOOP_CON __BIT(16)
871 1.6 matt #define LOOP_ENA __BIT(15)
872 1.6 matt #define RCS_CORRUPT_URUN_EN __BIT(14)
873 1.6 matt #define SW_RESET __BIT(13)
874 1.6 matt #define OVERFLOW_EN __BIT(12)
875 1.6 matt #define RX_LOW_LATENCY_EN __BIT(11)
876 1.6 matt #define HD_ENA __BIT(10)
877 1.6 matt #define TX_ADDR_INS __BIT(9)
878 1.6 matt #define PAUSE_IGNORE __BIT(8)
879 1.6 matt #define PAUSE_FWD __BIT(7)
880 1.6 matt #define CRC_FWD __BIT(6)
881 1.6 matt #define PAD_EN __BIT(5)
882 1.6 matt #define PROMISC_EN __BIT(4)
883 1.6 matt #define ETH_SPEED __BITS(3,2)
884 1.6 matt #define ETH_SPEED_10 0
885 1.6 matt #define ETH_SPEED_100 1
886 1.6 matt #define ETH_SPEED_1000 2
887 1.6 matt #define ETH_SPEED_2500 3
888 1.6 matt #define RX_ENA __BIT(1)
889 1.6 matt #define TX_ENA __BIT(0)
890 1.1 matt #define UNIMAC_MAC_0 0x80c // bits 16:47 of macaddr
891 1.1 matt #define UNIMAC_MAC_1 0x810 // bits 0:15 of macaddr
892 1.1 matt #define UNIMAC_FRAME_LEN 0x814
893 1.1 matt #define UNIMAC_PAUSE_QUANTA 0x818
894 1.1 matt #define UNIMAC_TX_TS_SEQ_ID 0x83c
895 1.1 matt #define UNIMAC_MAC_MODE 0x844
896 1.1 matt #define UNIMAC_TAG_0 0x848
897 1.1 matt #define UNIMAC_TAG_1 0x84c
898 1.1 matt #define UNIMAC_RX_PAUSE_QUANTA_SCALE 0x850
899 1.1 matt #define UNIMAC_TX_PREAMBLE 0x854
900 1.1 matt #define UNIMAC_TX_IPG_LENGTH 0x85c
901 1.1 matt #define UNIMAC_PRF_XOFF_TIMER 0x860
902 1.1 matt #define UNIMAC_UMAC_EEE_CTRL 0x864
903 1.1 matt #define UNIMAC_MII_EEE_DELAY_ENTRY_TIMER 0x868
904 1.1 matt #define UNIMAC_GMII_EEE_DELAY_ENTRY_TIMER 0x86c
905 1.1 matt #define UNIMAC_UMAC_EEE_REF_COUNT 0x870
906 1.1 matt #define UNIMAC_UMAX_RX_PKT_DROP_STATUS 0x878
907 1.1 matt
908 1.1 matt #define UNIMAC_UMAC_SYMMETRIC_IDLE_THRESHOLD 0x87c // RX IDLE threshold for LPI prediction
909 1.1 matt #define UNIMAC_MII_EEE_WAKE_TIMER 0x880 // MII_EEE Wake timer
910 1.1 matt #define UNIMAC_GMII_EEE_WAKE_TIMER 0x884 // GMII_EEE Wake timer
911 1.1 matt #define UNIMAC_UMAC_REV_ID 0x888 // UNIMAC_REV_ID
912 1.1 matt #define UNIMAC_MAC_PFC_TYPE 0xb00 // Programmable ethertype (GNAT 13440)
913 1.1 matt #define UNIMAC_MAC_PFC_OPCODE 0xb04 // Programmable opcode (GNAT 13440)
914 1.1 matt #define UNIMAC_MAC_PFC_DA_0 0xb08 // lower 32 bits of programmable DA for PPP (GNAT 13897)
915 1.1 matt #define UNIMAC_MAC_PFC_DA_1 0xb0c // upper 16 bits of programmable DA for PPP (GNAT 13897)
916 1.1 matt #define UNIMAC_MACSEC_CNTRL 0xb14 // Miscellaneous control for MACSEC (GNAT 11599,11600,12078,12198)
917 1.1 matt #define UNIMAC_TS_STATUS_CNTRL 0xb18 // Timestamp control/status
918 1.1 matt #define UNIMAC_TX_TS_DATA 0xb1c // Transmit Timestamp data
919 1.1 matt #define UNIMAC_PAUSE_CONTROL 0xb30 // PAUSE frame timer control register
920 1.1 matt #define UNIMAC_FLUSH_CONTROL 0xb34 // Flush enable control register
921 1.1 matt #define UNIMAC_RXFIFO_STAT 0xb38 // RXFIFO status register
922 1.1 matt #define UNIMAC_TXFIFO_STAT 0xb3c // TXFIFO status register
923 1.1 matt #define UNIMAC_MAC_PFC_CTRL 0xb40 // PPP control register
924 1.1 matt #define UNIMAC_MAC_PFC_REFRESH_CTRL 0xb44 // PPP refresh control register
925 1.1 matt
926 1.1 matt #endif /* GMAC_PRIVATE */
927 1.1 matt
928 1.14 matt #ifdef NAND_PRIVATE
929 1.14 matt
930 1.14 matt #define NAND_REVISION 0x0000 // NAND Revision
931 1.14 matt #define NAND_CMD_START 0x0004 // Nand Flash Command Start
932 1.14 matt #define NAND_CMD_EXT_ADDR 0x0008 // Nand Flash Command Extended Address
933 1.14 matt #define NAND_CMD_ADDR 0x000c // Nand Flash Command Address
934 1.14 matt #define NAND_CMD_END_ADDR 0x0010 // Nand Flash Command End Address
935 1.14 matt #define NAND_INTFC_STATUS 0x0014 // Nand Flash Interface Status
936 1.14 matt #define NAND_CS_NAND_XOR 0x001c // Nand Flash EBI
937 1.14 matt #define NAND_LL_OP 0x0020 // Nand Flash Low Level Operation
938 1.14 matt #define NAND_MPLANE_BASE_EXT_ADDR 0x0024 // Nand Flash Multiplane base address
939 1.14 matt #define NAND_MPLANE_BASE_ADDR 0x0028 // Nand Flash Multiplane base address
940 1.14 matt #define NAND_ACC_CONTROL_CS0 0x0050 // Nand Flash Access Control
941 1.14 matt #define NAND_CONFIG_CS0 0x0054 // Nand Flash Config
942 1.14 matt #define NAND_TIMING_1_CS0 0x0058 // Nand Flash Timing Parameters 1
943 1.14 matt #define NAND_TIMING_2_CS0 0x005c // Nand Flash Timing Parameters 2
944 1.14 matt #define NAND_ACC_CONTROL_CS1 0x0060 // Nand Flash Access Control
945 1.14 matt #define NAND_CONFIG_CS1 0x0064 // Nand Flash
946 1.14 matt #define NAND_TIMING_1_CS1 0x0068 // Nand Flash Timing Parameters 1
947 1.14 matt #define NAND_TIMING_2_CS1 0x006c // Nand Flash Timing Parameters 2
948 1.14 matt #define NAND_CORR_STAT_THRESHOLD 0x00c0 // Correctable Error Reporting Threshold
949 1.14 matt #define NAND_BLK_WR_PROTECT 0x00c8 // Block Write Protect Enable and Size for EBI_CS0b
950 1.14 matt #define NAND_MULTIPLANE_OPCODES_1 0x00cc // Nand Flash Multiplane Customized Opcodes
951 1.14 matt #define NAND_MULTIPLANE_OPCODES_2 0x00d0 // Nand Flash Multiplane Customized Opcodes
952 1.14 matt #define NAND_MULTIPLANE_CTRL 0x00d4 // Nand Flash Multiplane Control
953 1.14 matt #define NAND_UNCORR_ERROR_COUNT 0x00fc // Read Uncorrectable Event Count
954 1.14 matt #define NAND_CORR_ERROR_COUNT 0x0100 // Read Error Count
955 1.14 matt #define NAND_READ_ERROR_COUNT 0x0104 // Read Error Count
956 1.14 matt #define NAND_BLOCK_LOCK_STATUS 0x0108 // Nand Flash Block Lock Status
957 1.14 matt #define NAND_ECC_CORR_EXT_ADDR 0x010c // ECC Correctable Error Extended Address
958 1.14 matt #define NAND_ECC_CORR_ADDR 0x0110 // ECC Correctable Error Address
959 1.14 matt #define NAND_ECC_UNC_EXT_ADDR 0x0114 // ECC Uncorrectable Error Extended Address
960 1.14 matt #define NAND_ECC_UNC_ADDR 0x0118 // ECC Uncorrectable Error Address
961 1.14 matt #define NAND_FLASH_READ_EXT_ADDR 0x011c // Flash Read Data Extended Address
962 1.14 matt #define NAND_FLASH_READ_ADDR 0x0120 // Flash Read Data Address
963 1.14 matt #define NAND_PROGRAM_PAGE_EXT_ADDR 0x0124 // Page Program Extended Address
964 1.14 matt #define NAND_PROGRAM_PAGE_ADDR 0x0128 // Page Program Address
965 1.14 matt #define NAND_COPY_BACK_EXT_ADDR 0x012c // Copy Back Extended Address
966 1.14 matt #define NAND_COPY_BACK_ADDR 0x0130 // Copy Back Address
967 1.14 matt #define NAND_BLOCK_ERASE_EXT_ADDR 0x0134 // Block Erase Extended Address
968 1.14 matt #define NAND_BLOCK_ERASE_ADDR 0x0138 // Block Erase Address
969 1.14 matt #define NAND_INV_READ_EXT_ADDR 0x013c // Flash Invalid Data Extended Address
970 1.14 matt #define NAND_INV_READ_ADDR 0x0140 // Flash Invalid Data Address
971 1.14 matt #define NAND_INIT_STATUS 0x0144 // Initialization status
972 1.14 matt #define NAND_ONFI_STATUS 0x0148 // ONFI Status
973 1.14 matt #define NAND_ONFI_DEBUG_DATA 0x014c // ONFI Debug Data
974 1.14 matt #define NAND_SEMAPHORE 0x0150 // Semaphore
975 1.14 matt #define NAND_FLASH_DEVICE_ID 0x0194 // Nand Flash Device ID
976 1.14 matt #define NAND_FLASH_DEVICE_ID_EXT 0x0198 // Nand Flash Extended Device ID
977 1.14 matt #define NAND_LL_RDDATA 0x019c // Nand Flash Low Level Read Data
978 1.14 matt
979 1.14 matt #define NAND_SPARE_AREA_READ_OFSn(n) (0x0200+4*(n)) // Nand Flash Spare Area Read Bytes
980 1.14 matt #define NAND_SPARE_AREA_WRITE_OFSn(n) (0x0280+4*(n)) // Nand Flash Spare Area Write Bytes 8-11
981 1.14 matt #define NAND_FLASH_CACHEn(n) (0x0400+4*(n)) // Flash Cache Buffer Read Access
982 1.14 matt
983 1.14 matt #define NAND_DIRECT_READ_RD_MISS 0x0f00 // Interrupt from Nand indicating a read miss on internal memory
984 1.14 matt #define NAND_BLOCK_ERASE_COMPLETE 0x0f04 // Interrupt from Nand indicating block erase
985 1.14 matt #define NAND_COPY_BACK_COMPLETE 0x0f08 // Interrupt from Nand indicating Copy-Back complete.
986 1.14 matt #define NAND_PROGRAM_PAGE_COMPLETE 0x0f0c // Interrupt from nand indicating page program is complete.
987 1.14 matt #define NAND_RO_CTLR_READY 0x0f10 // Interrupt from nand indicating controller ready
988 1.14 matt #define NAND_NAND_RB_B 0x0f14 // Interrupt from nand indicating status of Nand Flash ready_bus pin
989 1.14 matt #define NAND_ECC_MIPS_UNCORR 0x0f18 // Interrupt from Nand indicating Uncorrectable error
990 1.14 matt #define NAND_ECC_MIPS_CORR 0x0f1c // Interrupt from Nand indicating correctable error
991 1.14 matt
992 1.14 matt #define NAND_CMD_START_OPCODE __BITS(28,24)
993 1.14 matt #define NAND_CMD_START_OPCODE_DEFAULT 0
994 1.14 matt #define NAND_CMD_START_OPCODE_NULL 0
995 1.14 matt #define NAND_CMD_START_OPCODE_PAGE_READ 1
996 1.14 matt #define NAND_CMD_START_OPCODE_SPARE_AREA_READ 2
997 1.14 matt #define NAND_CMD_START_OPCODE_STATUS_READ 3
998 1.14 matt #define NAND_CMD_START_OPCODE_PROGRAM_PAGE 4
999 1.14 matt #define NAND_CMD_START_OPCODE_PROGRAM_SPARE_AREA 5
1000 1.14 matt #define NAND_CMD_START_OPCODE_COPY_BACK 6
1001 1.14 matt #define NAND_CMD_START_OPCODE_DEVICE_ID_READ 7
1002 1.14 matt #define NAND_CMD_START_OPCODE_BLOCK_ERASE 8
1003 1.14 matt #define NAND_CMD_START_OPCODE_FLASH_RESET 9
1004 1.14 matt #define NAND_CMD_START_OPCODE_BLOCKS_LOCK 10
1005 1.14 matt #define NAND_CMD_START_OPCODE_BLOCKS_LOCK_DOWN 11
1006 1.14 matt #define NAND_CMD_START_OPCODE_BLOCKS_UNLOCK 12
1007 1.14 matt #define NAND_CMD_START_OPCODE_READ_BLOCKS_LOCK_STATUS 13
1008 1.14 matt #define NAND_CMD_START_OPCODE_PARAMETER_READ 14
1009 1.14 matt #define NAND_CMD_START_OPCODE_PARAMETER_CHANGE_COL 15
1010 1.14 matt #define NAND_CMD_START_OPCODE_LOW_LEVEL_OP 16
1011 1.14 matt #define NAND_CMD_START_OPCODE_PAGE_READ_MULTI 17
1012 1.14 matt #define NAND_CMD_START_OPCODE_STATUS_READ_MULTI 18
1013 1.14 matt #define NAND_CMD_START_OPCODE_PROGRAM_PAGE_MULTI 19
1014 1.14 matt #define NAND_CMD_START_OPCODE_PROGRAM_PAGE_MULTI_CACHE 20
1015 1.14 matt #define NAND_CMD_START_OPCODE_BLOCK_ERASE_MULTI 21
1016 1.14 matt #define NAND_CMD_START_CSEL __BITS(18,16)
1017 1.14 matt #define NAND_CMD_EXT_ADDRESS __BITS(15,0)
1018 1.14 matt
1019 1.14 matt #endif /* NAND_PRIVATE */
1020 1.14 matt
1021 1.1 matt #endif /* _ARM_BROADCOM_BCM53XX_REG_H_ */
1022