if_urereg.h revision 1.2 1 1.2 msaitoh /* $NetBSD: if_urereg.h,v 1.2 2019/04/12 03:32:06 msaitoh Exp $ */
2 1.1 rin /* $OpenBSD: if_urereg.h,v 1.5 2018/11/02 21:32:30 jcs Exp $ */
3 1.1 rin /*-
4 1.1 rin * Copyright (c) 2015-2016 Kevin Lo <kevlo (at) FreeBSD.org>
5 1.1 rin * All rights reserved.
6 1.1 rin *
7 1.1 rin * Redistribution and use in source and binary forms, with or without
8 1.1 rin * modification, are permitted provided that the following conditions
9 1.1 rin * are met:
10 1.1 rin * 1. Redistributions of source code must retain the above copyright
11 1.1 rin * notice, this list of conditions and the following disclaimer.
12 1.1 rin * 2. Redistributions in binary form must reproduce the above copyright
13 1.1 rin * notice, this list of conditions and the following disclaimer in the
14 1.1 rin * documentation and/or other materials provided with the distribution.
15 1.1 rin *
16 1.1 rin * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
17 1.1 rin * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
18 1.1 rin * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
19 1.1 rin * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
20 1.1 rin * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
21 1.1 rin * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
22 1.1 rin * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
23 1.1 rin * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
24 1.1 rin * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
25 1.1 rin * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
26 1.1 rin * SUCH DAMAGE.
27 1.1 rin *
28 1.1 rin * $FreeBSD$
29 1.1 rin */
30 1.1 rin
31 1.1 rin #define URE_CONFIG_IDX 0 /* config number 1 */
32 1.1 rin #define URE_IFACE_IDX 0
33 1.1 rin
34 1.1 rin #define URE_CTL_READ 0x01
35 1.1 rin #define URE_CTL_WRITE 0x02
36 1.1 rin
37 1.1 rin #define URE_TIMEOUT 1000
38 1.1 rin #define URE_PHY_TIMEOUT 2000
39 1.1 rin
40 1.1 rin #define URE_BYTE_EN_DWORD 0xff
41 1.1 rin #define URE_BYTE_EN_WORD 0x33
42 1.1 rin #define URE_BYTE_EN_BYTE 0x11
43 1.1 rin #define URE_BYTE_EN_SIX_BYTES 0x3f
44 1.1 rin
45 1.1 rin #define URE_MAX_FRAMELEN (ETHER_MAX_LEN + ETHER_VLAN_ENCAP_LEN)
46 1.1 rin
47 1.1 rin #define URE_PLA_IDR 0xc000
48 1.1 rin #define URE_PLA_RCR 0xc010
49 1.1 rin #define URE_PLA_RMS 0xc016
50 1.1 rin #define URE_PLA_RXFIFO_CTRL0 0xc0a0
51 1.1 rin #define URE_PLA_RXFIFO_CTRL1 0xc0a4
52 1.1 rin #define URE_PLA_RXFIFO_CTRL2 0xc0a8
53 1.1 rin #define URE_PLA_DMY_REG0 0xc0b0
54 1.1 rin #define URE_PLA_FMC 0xc0b4
55 1.1 rin #define URE_PLA_CFG_WOL 0xc0b6
56 1.1 rin #define URE_PLA_TEREDO_CFG 0xc0bc
57 1.1 rin #define URE_PLA_MAR0 0xcd00
58 1.1 rin #define URE_PLA_MAR4 0xcd04
59 1.1 rin #define URE_PLA_BACKUP 0xd000
60 1.1 rin #define URE_PLA_BDC_CR 0xd1a0
61 1.1 rin #define URE_PLA_TEREDO_TIMER 0xd2cc
62 1.1 rin #define URE_PLA_REALWOW_TIMER 0xd2e8
63 1.1 rin #define URE_PLA_LEDSEL 0xdd90
64 1.1 rin #define URE_PLA_LED_FEATURE 0xdd92
65 1.1 rin #define URE_PLA_PHYAR 0xde00
66 1.1 rin #define URE_PLA_BOOT_CTRL 0xe004
67 1.1 rin #define URE_PLA_GPHY_INTR_IMR 0xe022
68 1.1 rin #define URE_PLA_EEE_CR 0xe040
69 1.1 rin #define URE_PLA_EEEP_CR 0xe080
70 1.1 rin #define URE_PLA_MAC_PWR_CTRL 0xe0c0
71 1.1 rin #define URE_PLA_MAC_PWR_CTRL2 0xe0ca
72 1.1 rin #define URE_PLA_MAC_PWR_CTRL3 0xe0cc
73 1.1 rin #define URE_PLA_MAC_PWR_CTRL4 0xe0ce
74 1.1 rin #define URE_PLA_WDT6_CTRL 0xe428
75 1.1 rin #define URE_PLA_TCR0 0xe610
76 1.1 rin #define URE_PLA_TCR1 0xe612
77 1.1 rin #define URE_PLA_MTPS 0xe615
78 1.1 rin #define URE_PLA_TXFIFO_CTRL 0xe618
79 1.1 rin #define URE_PLA_RSTTELLY 0xe800
80 1.1 rin #define URE_PLA_CR 0xe813
81 1.1 rin #define URE_PLA_CRWECR 0xe81c
82 1.1 rin #define URE_PLA_CONFIG5 0xe822
83 1.1 rin #define URE_PLA_PHY_PWR 0xe84c
84 1.1 rin #define URE_PLA_OOB_CTRL 0xe84f
85 1.1 rin #define URE_PLA_CPCR 0xe854
86 1.1 rin #define URE_PLA_MISC_0 0xe858
87 1.1 rin #define URE_PLA_MISC_1 0xe85a
88 1.1 rin #define URE_PLA_OCP_GPHY_BASE 0xe86c
89 1.1 rin #define URE_PLA_TELLYCNT 0xe890
90 1.1 rin #define URE_PLA_SFF_STS_7 0xe8de
91 1.1 rin #define URE_PLA_PHYSTATUS 0xe908
92 1.1 rin
93 1.1 rin #define URE_USB_USB2PHY 0xb41e
94 1.1 rin #define URE_USB_SSPHYLINK2 0xb428
95 1.1 rin #define URE_USB_U2P3_CTRL 0xb460
96 1.1 rin #define URE_USB_CSR_DUMMY1 0xb464
97 1.1 rin #define URE_USB_CSR_DUMMY2 0xb466
98 1.1 rin #define URE_USB_DEV_STAT 0xb808
99 1.1 rin #define URE_USB_CONNECT_TIMER 0xcbf8
100 1.1 rin #define URE_USB_BURST_SIZE 0xcfc0
101 1.1 rin #define URE_USB_USB_CTRL 0xd406
102 1.1 rin #define URE_USB_PHY_CTRL 0xd408
103 1.1 rin #define URE_USB_TX_AGG 0xd40a
104 1.1 rin #define URE_USB_RX_BUF_TH 0xd40c
105 1.1 rin #define URE_USB_USB_TIMER 0xd428
106 1.1 rin #define URE_USB_RX_EARLY_AGG 0xd42c
107 1.1 rin #define URE_USB_PM_CTRL_STATUS 0xd432
108 1.1 rin #define URE_USB_TX_DMA 0xd434
109 1.1 rin #define URE_USB_TOLERANCE 0xd490
110 1.1 rin #define URE_USB_LPM_CTRL 0xd41a
111 1.1 rin #define URE_USB_UPS_CTRL 0xd800
112 1.1 rin #define URE_USB_MISC_0 0xd81a
113 1.1 rin #define URE_USB_POWER_CUT 0xd80a
114 1.1 rin #define URE_USB_AFE_CTRL2 0xd824
115 1.1 rin #define URE_USB_WDT11_CTRL 0xe43c
116 1.1 rin
117 1.1 rin /* OCP Registers. */
118 1.1 rin #define URE_OCP_ALDPS_CONFIG 0x2010
119 1.1 rin #define URE_OCP_EEE_CONFIG1 0x2080
120 1.1 rin #define URE_OCP_EEE_CONFIG2 0x2092
121 1.1 rin #define URE_OCP_EEE_CONFIG3 0x2094
122 1.1 rin #define URE_OCP_BASE_MII 0xa400
123 1.1 rin #define URE_OCP_EEE_AR 0xa41a
124 1.1 rin #define URE_OCP_EEE_DATA 0xa41c
125 1.1 rin #define URE_OCP_PHY_STATUS 0xa420
126 1.1 rin #define URE_OCP_POWER_CFG 0xa430
127 1.1 rin #define URE_OCP_EEE_CFG 0xa432
128 1.1 rin #define URE_OCP_SRAM_ADDR 0xa436
129 1.1 rin #define URE_OCP_SRAM_DATA 0xa438
130 1.1 rin #define URE_OCP_DOWN_SPEED 0xa442
131 1.1 rin #define URE_OCP_EEE_ABLE 0xa5c4
132 1.1 rin #define URE_OCP_EEE_ADV 0xa5d0
133 1.1 rin #define URE_OCP_EEE_LPABLE 0xa5d2
134 1.1 rin #define URE_OCP_PHY_STATE 0xa708
135 1.1 rin #define URE_OCP_ADC_CFG 0xbc06
136 1.1 rin
137 1.1 rin /* SRAM Register. */
138 1.1 rin #define URE_SRAM_LPF_CFG 0x8012
139 1.1 rin #define URE_SRAM_10M_AMP1 0x8080
140 1.1 rin #define URE_SRAM_10M_AMP2 0x8082
141 1.1 rin #define URE_SRAM_IMPEDANCE 0x8084
142 1.1 rin
143 1.1 rin /* PLA_RCR */
144 1.1 rin #define URE_RCR_AAP 0x00000001
145 1.1 rin #define URE_RCR_APM 0x00000002
146 1.1 rin #define URE_RCR_AM 0x00000004
147 1.1 rin #define URE_RCR_AB 0x00000008
148 1.1 rin #define URE_RCR_ACPT_ALL \
149 1.1 rin (URE_RCR_AAP | URE_RCR_APM | URE_RCR_AM | URE_RCR_AB)
150 1.1 rin
151 1.1 rin /* PLA_RXFIFO_CTRL0 */
152 1.1 rin #define URE_RXFIFO_THR1_NORMAL 0x00080002
153 1.1 rin #define URE_RXFIFO_THR1_OOB 0x01800003
154 1.1 rin
155 1.1 rin /* PLA_RXFIFO_CTRL1 */
156 1.1 rin #define URE_RXFIFO_THR2_FULL 0x00000060
157 1.1 rin #define URE_RXFIFO_THR2_HIGH 0x00000038
158 1.1 rin #define URE_RXFIFO_THR2_OOB 0x0000004a
159 1.1 rin #define URE_RXFIFO_THR2_NORMAL 0x00a0
160 1.1 rin
161 1.1 rin /* PLA_RXFIFO_CTRL2 */
162 1.1 rin #define URE_RXFIFO_THR3_FULL 0x00000078
163 1.1 rin #define URE_RXFIFO_THR3_HIGH 0x00000048
164 1.1 rin #define URE_RXFIFO_THR3_OOB 0x0000005a
165 1.1 rin #define URE_RXFIFO_THR3_NORMAL 0x0110
166 1.1 rin
167 1.1 rin /* PLA_TXFIFO_CTRL */
168 1.1 rin #define URE_TXFIFO_THR_NORMAL 0x00400008
169 1.1 rin #define URE_TXFIFO_THR_NORMAL2 0x01000008
170 1.1 rin
171 1.1 rin /* PLA_DMY_REG0 */
172 1.1 rin #define URE_ECM_ALDPS 0x0002
173 1.1 rin
174 1.1 rin /* PLA_FMC */
175 1.1 rin #define URE_FMC_FCR_MCU_EN 0x0001
176 1.1 rin
177 1.1 rin /* PLA_EEEP_CR */
178 1.1 rin #define URE_EEEP_CR_EEEP_TX 0x0002
179 1.1 rin
180 1.1 rin /* PLA_WDT6_CTRL */
181 1.2 msaitoh #define URE_WDT6_SET_MODE 0x0010
182 1.1 rin
183 1.1 rin /* PLA_TCR0 */
184 1.1 rin #define URE_TCR0_TX_EMPTY 0x0800
185 1.1 rin #define URE_TCR0_AUTO_FIFO 0x0080
186 1.1 rin
187 1.1 rin /* PLA_TCR1 */
188 1.1 rin #define URE_VERSION_MASK 0x7cf0
189 1.1 rin
190 1.1 rin /* PLA_CR */
191 1.1 rin #define URE_CR_RST 0x10
192 1.1 rin #define URE_CR_RE 0x08
193 1.1 rin #define URE_CR_TE 0x04
194 1.1 rin
195 1.1 rin /* PLA_CRWECR */
196 1.1 rin #define URE_CRWECR_NORAML 0x00
197 1.1 rin #define URE_CRWECR_CONFIG 0xc0
198 1.1 rin
199 1.1 rin /* PLA_OOB_CTRL */
200 1.1 rin #define URE_NOW_IS_OOB 0x80
201 1.1 rin #define URE_TXFIFO_EMPTY 0x20
202 1.1 rin #define URE_RXFIFO_EMPTY 0x10
203 1.1 rin #define URE_LINK_LIST_READY 0x02
204 1.1 rin #define URE_DIS_MCU_CLROOB 0x01
205 1.1 rin #define URE_FIFO_EMPTY (URE_TXFIFO_EMPTY | URE_RXFIFO_EMPTY)
206 1.1 rin
207 1.1 rin /* PLA_MISC_1 */
208 1.1 rin #define URE_RXDY_GATED_EN 0x0008
209 1.1 rin
210 1.1 rin /* PLA_SFF_STS_7 */
211 1.1 rin #define URE_RE_INIT_LL 0x8000
212 1.1 rin #define URE_MCU_BORW_EN 0x4000
213 1.1 rin
214 1.1 rin /* PLA_CPCR */
215 1.1 rin #define URE_CPCR_RX_VLAN 0x0040
216 1.1 rin
217 1.1 rin /* PLA_TEREDO_CFG */
218 1.1 rin #define URE_TEREDO_SEL 0x8000
219 1.1 rin #define URE_TEREDO_WAKE_MASK 0x7f00
220 1.1 rin #define URE_TEREDO_RS_EVENT_MASK 0x00fe
221 1.1 rin #define URE_OOB_TEREDO_EN 0x0001
222 1.1 rin
223 1.1 rin /* PAL_BDC_CR */
224 1.1 rin #define URE_ALDPS_PROXY_MODE 0x0001
225 1.1 rin
226 1.1 rin /* PLA_CONFIG5 */
227 1.1 rin #define URE_LAN_WAKE_EN 0x0002
228 1.1 rin
229 1.1 rin /* PLA_LED_FEATURE */
230 1.1 rin #define URE_LED_MODE_MASK 0x0700
231 1.1 rin
232 1.1 rin /* PLA_PHY_PWR */
233 1.1 rin #define URE_TX_10M_IDLE_EN 0x0080
234 1.1 rin #define URE_PFM_PWM_SWITCH 0x0040
235 1.1 rin
236 1.1 rin /* PLA_MAC_PWR_CTRL */
237 1.1 rin #define URE_D3_CLK_GATED_EN 0x00004000
238 1.1 rin #define URE_MCU_CLK_RATIO 0x07010f07
239 1.1 rin #define URE_MCU_CLK_RATIO_MASK 0x0f0f0f0f
240 1.1 rin #define URE_ALDPS_SPDWN_RATIO 0x0f87
241 1.1 rin
242 1.1 rin /* PLA_MAC_PWR_CTRL2 */
243 1.1 rin #define URE_EEE_SPDWN_RATIO 0x8007
244 1.1 rin
245 1.1 rin /* PLA_MAC_PWR_CTRL3 */
246 1.1 rin #define URE_PKT_AVAIL_SPDWN_EN 0x0100
247 1.1 rin #define URE_SUSPEND_SPDWN_EN 0x0004
248 1.1 rin #define URE_U1U2_SPDWN_EN 0x0002
249 1.1 rin #define URE_L1_SPDWN_EN 0x0001
250 1.1 rin
251 1.1 rin /* PLA_MAC_PWR_CTRL4 */
252 1.1 rin #define URE_PWRSAVE_SPDWN_EN 0x1000
253 1.1 rin #define URE_RXDV_SPDWN_EN 0x0800
254 1.1 rin #define URE_TX10MIDLE_EN 0x0100
255 1.1 rin #define URE_TP100_SPDWN_EN 0x0020
256 1.1 rin #define URE_TP500_SPDWN_EN 0x0010
257 1.1 rin #define URE_TP1000_SPDWN_EN 0x0008
258 1.1 rin #define URE_EEE_SPDWN_EN 0x0001
259 1.1 rin
260 1.1 rin /* PLA_GPHY_INTR_IMR */
261 1.1 rin #define URE_GPHY_STS_MSK 0x0001
262 1.1 rin #define URE_SPEED_DOWN_MSK 0x0002
263 1.1 rin #define URE_SPDWN_RXDV_MSK 0x0004
264 1.1 rin #define URE_SPDWN_LINKCHG_MSK 0x0008
265 1.1 rin
266 1.1 rin /* PLA_PHYAR */
267 1.1 rin #define URE_PHYAR_PHYDATA 0x0000ffff
268 1.1 rin #define URE_PHYAR_BUSY 0x80000000
269 1.1 rin
270 1.1 rin /* PLA_EEE_CR */
271 1.1 rin #define URE_EEE_RX_EN 0x0001
272 1.1 rin #define URE_EEE_TX_EN 0x0002
273 1.1 rin
274 1.1 rin /* PLA_BOOT_CTRL */
275 1.1 rin #define URE_AUTOLOAD_DONE 0x0002
276 1.1 rin
277 1.1 rin /* USB_USB2PHY */
278 1.1 rin #define URE_USB2PHY_SUSPEND 0x0001
279 1.1 rin #define URE_USB2PHY_L1 0x0002
280 1.1 rin
281 1.1 rin /* USB_SSPHYLINK2 */
282 1.1 rin #define URE_PWD_DN_SCALE_MASK 0x3ffe
283 1.1 rin #define URE_PWD_DN_SCALE(x) ((x) << 1)
284 1.1 rin
285 1.1 rin /* USB_CSR_DUMMY1 */
286 1.1 rin #define URE_DYNAMIC_BURST 0x0001
287 1.1 rin
288 1.1 rin /* USB_CSR_DUMMY2 */
289 1.1 rin #define URE_EP4_FULL_FC 0x0001
290 1.1 rin
291 1.1 rin /* USB_DEV_STAT */
292 1.1 rin #define URE_STAT_SPEED_MASK 0x0006
293 1.1 rin #define URE_STAT_SPEED_HIGH 0x0000
294 1.1 rin #define URE_STAT_SPEED_FULL 0x0001
295 1.1 rin
296 1.1 rin /* USB_TX_AGG */
297 1.1 rin #define URE_TX_AGG_MAX_THRESHOLD 0x03
298 1.1 rin
299 1.1 rin /* USB_RX_BUF_TH */
300 1.1 rin #define URE_RX_THR_SUPER 0x0c350180
301 1.1 rin #define URE_RX_THR_HIGH 0x7a120180
302 1.1 rin #define URE_RX_THR_SLOW 0xffff0180
303 1.1 rin
304 1.1 rin /* USB_TX_DMA */
305 1.1 rin #define URE_TEST_MODE_DISABLE 0x00000001
306 1.1 rin #define URE_TX_SIZE_ADJUST1 0x00000100
307 1.1 rin
308 1.1 rin /* USB_UPS_CTRL */
309 1.1 rin #define URE_POWER_CUT 0x0100
310 1.1 rin
311 1.1 rin /* USB_PM_CTRL_STATUS */
312 1.1 rin #define URE_RESUME_INDICATE 0x0001
313 1.1 rin
314 1.1 rin /* USB_USB_CTRL */
315 1.1 rin #define URE_RX_AGG_DISABLE 0x0010
316 1.1 rin #define URE_RX_ZERO_EN 0x0080
317 1.1 rin
318 1.1 rin /* USB_U2P3_CTRL */
319 1.1 rin #define URE_U2P3_ENABLE 0x0001
320 1.1 rin
321 1.1 rin /* USB_POWER_CUT */
322 1.1 rin #define URE_PWR_EN 0x0001
323 1.1 rin #define URE_PHASE2_EN 0x0008
324 1.1 rin
325 1.1 rin /* USB_MISC_0 */
326 1.1 rin #define URE_PCUT_STATUS 0x0001
327 1.1 rin
328 1.1 rin /* USB_RX_EARLY_TIMEOUT */
329 1.1 rin #define URE_COALESCE_SUPER 85000U
330 1.1 rin #define URE_COALESCE_HIGH 250000U
331 1.1 rin #define URE_COALESCE_SLOW 524280U
332 1.1 rin
333 1.1 rin /* USB_WDT11_CTRL */
334 1.1 rin #define URE_TIMER11_EN 0x0001
335 1.1 rin
336 1.1 rin /* USB_LPM_CTRL */
337 1.1 rin #define URE_FIFO_EMPTY_1FB 0x30
338 1.1 rin #define URE_LPM_TIMER_MASK 0x0c
339 1.1 rin #define URE_LPM_TIMER_500MS 0x04
340 1.1 rin #define URE_LPM_TIMER_500US 0x0c
341 1.1 rin #define URE_ROK_EXIT_LPM 0x02
342 1.1 rin
343 1.1 rin /* USB_AFE_CTRL2 */
344 1.1 rin #define URE_SEN_VAL_MASK 0xf800
345 1.1 rin #define URE_SEN_VAL_NORMAL 0xa000
346 1.1 rin #define URE_SEL_RXIDLE 0x0100
347 1.1 rin
348 1.1 rin /* OCP_ALDPS_CONFIG */
349 1.1 rin #define URE_ENPWRSAVE 0x8000
350 1.1 rin #define URE_ENPDNPS 0x0200
351 1.1 rin #define URE_LINKENA 0x0100
352 1.1 rin #define URE_DIS_SDSAVE 0x0010
353 1.1 rin
354 1.1 rin /* OCP_PHY_STATUS */
355 1.1 rin #define URE_PHY_STAT_MASK 0x0007
356 1.1 rin #define URE_PHY_STAT_LAN_ON 3
357 1.1 rin #define URE_PHY_STAT_PWRDN 5
358 1.1 rin
359 1.1 rin /* OCP_POWER_CFG */
360 1.1 rin #define URE_EEE_CLKDIV_EN 0x8000
361 1.1 rin #define URE_EN_ALDPS 0x0004
362 1.1 rin #define URE_EN_10M_PLLOFF 0x0001
363 1.1 rin
364 1.1 rin /* OCP_EEE_CFG */
365 1.1 rin #define URE_CTAP_SHORT_EN 0x0040
366 1.1 rin #define URE_EEE10_EN 0x0010
367 1.1 rin
368 1.1 rin /* OCP_DOWN_SPEED */
369 1.1 rin #define URE_EN_10M_BGOFF 0x0080
370 1.1 rin
371 1.1 rin /* OCP_PHY_STATE */
372 1.1 rin #define URE_TXDIS_STATE 0x01
373 1.1 rin #define URE_ABD_STATE 0x02
374 1.1 rin
375 1.1 rin /* OCP_ADC_CFG */
376 1.1 rin #define URE_CKADSEL_L 0x0100
377 1.1 rin #define URE_ADC_EN 0x0080
378 1.1 rin #define URE_EN_EMI_L 0x0040
379 1.1 rin
380 1.1 rin #define URE_MCU_TYPE_PLA 0x0100
381 1.1 rin #define URE_MCU_TYPE_USB 0x0000
382