xref: /netbsd/sys/arch/mips/adm5120/dev/if_admswreg.h (revision 320845dd)
1 /* $NetBSD: if_admswreg.h,v 1.1 2007/03/20 08:52:02 dyoung Exp $ */
2 
3 /*-
4  * Copyright (c) 2007 Ruslan Ermilov and Vsevolod Lobko.
5  * All rights reserved.
6  *
7  * Redistribution and use in source and binary forms, with or
8  * without modification, are permitted provided that the following
9  * conditions are met:
10  * 1. Redistributions of source code must retain the above copyright
11  *    notice, this list of conditions and the following disclaimer.
12  * 2. Redistributions in binary form must reproduce the above
13  *    copyright notice, this list of conditions and the following
14  *    disclaimer in the documentation and/or other materials provided
15  *    with the distribution.
16  * 3. The names of the authors may not be used to endorse or promote
17  *    products derived from this software without specific prior
18  *    written permission.
19  *
20  * THIS SOFTWARE IS PROVIDED BY THE AUTHORS ``AS IS'' AND ANY
21  * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
22  * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
23  * PARTICULAR PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHORS
24  * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY,
25  * OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
26  * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA,
27  * OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
28  * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR
29  * TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
30  * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY
31  * OF SUCH DAMAGE.
32  */
33 /*
34  * Copyright (c) 2001 Wasabi Systems, Inc.
35  * All rights reserved.
36  *
37  * Written by Jason R. Thorpe for Wasabi Systems, Inc.
38  *
39  * Redistribution and use in source and binary forms, with or without
40  * modification, are permitted provided that the following conditions
41  * are met:
42  * 1. Redistributions of source code must retain the above copyright
43  *    notice, this list of conditions and the following disclaimer.
44  * 2. Redistributions in binary form must reproduce the above copyright
45  *    notice, this list of conditions and the following disclaimer in the
46  *    documentation and/or other materials provided with the distribution.
47  * 3. All advertising materials mentioning features or use of this software
48  *    must display the following acknowledgement:
49  *	This product includes software developed for the NetBSD Project by
50  *	Wasabi Systems, Inc.
51  * 4. The name of Wasabi Systems, Inc. may not be used to endorse
52  *    or promote products derived from this software without specific prior
53  *    written permission.
54  *
55  * THIS SOFTWARE IS PROVIDED BY WASABI SYSTEMS, INC. ``AS IS'' AND
56  * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
57  * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
58  * PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL WASABI SYSTEMS, INC
59  * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
60  * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
61  * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
62  * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
63  * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
64  * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
65  * POSSIBILITY OF SUCH DAMAGE.
66  */
67 #ifndef	_IF_ADMSWREG_H_
68 #define	_IF_ADMSWREG_H_
69 
70 /* ADMSW_ definitions Copyright (c) 2007 David Young. */
71 #define	ADMSW_BOOT_DONE		0x0008
72 #define	ADMSW_BOOT_DONE_BO	__BIT(0)
73 #define	ADMSW_SW_RES		0x000c
74 #define	ADMSW_SW_RES_SWR	__BITS(31, 0)
75 #define	ADMSW_INT_ST		0x00b0
76 #define	ADMSW_INT_MASK		0x00b4
77 
78 #define	ADMSW_INTR_RSVD	__BITS(31, 25)
79 #define	ADMSW_INTR_CPUH	__BIT(24)
80 #define	ADMSW_INTR_SDE	__BIT(23)
81 #define	ADMSW_INTR_RDE	__BIT(22)
82 #define	ADMSW_INTR_W1TE	__BIT(21)
83 #define	ADMSW_INTR_W0TE	__BIT(20)
84 #define	ADMSW_INTR_MI	__BIT(19)
85 #define	ADMSW_INTR_PSC	__BIT(18)
86 #define	ADMSW_INTR_BCS	__BIT(16)
87 #define	ADMSW_INTR_MD	__BIT(15)
88 #define	ADMSW_INTR_GQF	__BIT(14)
89 #define	ADMSW_INTR_CPQ	__BIT(13)
90 #define	ADMSW_INTR_P5QF	__BIT(11)
91 #define	ADMSW_INTR_P4QF	__BIT(10)
92 #define	ADMSW_INTR_P3QF	__BIT(9)
93 #define	ADMSW_INTR_P2QF	__BIT(8)
94 #define	ADMSW_INTR_P1QF	__BIT(7)
95 #define	ADMSW_INTR_P0QF	__BIT(6)
96 #define	ADMSW_INTR_LDF	__BIT(5)
97 #define	ADMSW_INTR_HDF	__BIT(4)
98 #define	ADMSW_INTR_RLD	__BIT(3)
99 #define	ADMSW_INTR_RHD	__BIT(2)
100 #define	ADMSW_INTR_SLD	__BIT(1)
101 #define	ADMSW_INTR_SHD	__BIT(0)
102 
103 #define	ADMSW_INT_FMT	\
104 	"\x10"\
105 	"\x01SHD"\
106 	"\x02SLD"\
107 	"\x03RHD"\
108 	"\x04RLD"\
109 	"\x05HDF"\
110 	"\x06LDF"\
111 	"\x07P0QF"\
112 	"\x08P1QF"\
113 	"\x09P2QF"\
114 	"\x0aP3QF"\
115 	"\x0bP4QF"\
116 	"\x0cP5QF"\
117 	"\x0e"\
118 	"CPQ"\
119 	"\x0fGQF"\
120 	"\x10MD"\
121 	"\x11"\
122 	"BCS"\
123 	"\x13PSC"\
124 	"\x14MI"\
125 	"\x15W0TE"\
126 	"\x16W1TE"\
127 	"\x17RDE"\
128 	"\x18SDE"\
129 	"\x19"\
130 	"CPUH"
131 
132 #define	CODE_REG		0x0000
133 #define	SFTREST_REG		0x0004
134 #define	BOOT_DONE_REG		0x0008
135 #define	GLOBAL_ST_REG		0x0010
136 #define	PHY_ST_REG		0x0014
137 #define		PHY_ST_LINKUP		(1 << 0)
138 #define		PHY_ST_100M		(1 << 8)
139 #define		PHY_ST_FDX		(1 << 16)
140 #define	PORT_ST_REG		0x0018
141 #define	MEM_CONTROL_REG		0x001C
142 #define	SW_CONF_REG		0x0020
143 
144 #define	CPUP_CONF_REG		0x0024
145 #define		CPUP_CONF_DCPUP		0x00000001
146 #define		CPUP_CONF_CRCP		0x00000002
147 #define		CPUP_CONF_BTM		0x00000004
148 #define		CPUP_CONF_DUNP_SHIFT	9
149 #define		CPUP_CONF_DUNP_MASK	(0x3F << CPUP_CONF_DUNP_SHIFT)
150 #define		CPUP_CONF_DMCP_SHIFT	16
151 #define		CPUP_CONF_DMCP_MASK	(0x3F << CPUP_CONF_DMCP_SHIFT)
152 #define		CPUP_CONF_DBCP_SHIFT	24
153 #define		CPUP_CONF_DBCP_MASK	(0x3F << CPUP_CONF_DBCP_SHIFT)
154 
155 #define	PORT_CONF0_REG		0x0028
156 #define		PORT_CONF0_DP_MASK	0x0000003F
157 #define		PORT_CONF0_EMCP_MASK	0x00003F00
158 #define		PORT_CONF0_EMCP_SHIFT	8
159 #define		PORT_CONF0_EMBP_MASK	0x003F0000
160 #define		PORT_CONF0_EMBP_SHIFT	16
161 #define	PORT_CONF1_REG		0x002C
162 #define	PORT_CONF2_REG		0x0030
163 
164 #define	VLAN_G1_REG		0x0040
165 #define	VLAN_G2_REG		0x0044
166 #define	SEND_TRIG_REG		0x0048
167 #define	SRCH_CMD_REG		0x004C
168 #define	ADDR_ST0_REG		0x0050
169 #define	ADDR_ST1_REG		0x0054
170 #define	MAC_WT0_REG		0x0058
171 #define		MAC_WT0_WRITE	0x00000001
172 #define		MAC_WT0_WRITE_DONE	0x00000002
173 #define		MAC_WT0_FILTER_EN	0x00000004
174 #define		MAC_WT0_VLANID_SHIFT	3
175 #define		MAC_WT0_VLANID_MASK	0x00000038
176 #define		MAC_WT0_VLANID_EN	0x00000040
177 #define		MAC_WT0_PORTMAP_MASK	0x00001F80
178 #define		MAC_WT0_PORTMAP_SHIFT	7
179 #define		MAC_WT0_AGE_MASK	(0x7	<<	13)
180 #define		MAC_WT0_AGE_STATIC	(0x7	<<	13)
181 #define		MAC_WT0_AGE_VALID	(0x1	<<	13)
182 #define		MAC_WT0_AGE_EMPTY	0
183 #define	MAC_WT1_REG		0x005C
184 #define	BW_CNTL0_REG		0x0060
185 #define	BW_CNTL1_REG		0x0064
186 #define	PHY_CNTL0_REG		0x0068
187 #define	PHY_CNTL1_REG		0x006C
188 #define	FC_TH_REG		0x0070
189 #define		FC_TH_FCS_MASK		0x01FF0000
190 #define		FC_TH_D2R_MASK		0x0000FF00
191 #define		FC_TH_D2S_MASK		0x000000FF
192 #define	ADJ_PORT_TH_REG		0x0074
193 #define	PORT_TH_REG		0x0078
194 #define	PHY_CNTL2_REG		0x007C
195 #define		PHY_CNTL2_AUTONEG	(1 << 0)
196 #define		PHY_CNTL2_ANE_MASK	0x0000001F
197 #define		PHY_CNTL2_SC_MASK	0x000003E0
198 #define		PHY_CNTL2_SC_SHIFT	5
199 #define		PHY_CNTL2_100M		(1 << PHY_CNTL2_SC_SHIFT)
200 #define		PHY_CNTL2_DC_MASK	0x00007C00
201 #define		PHY_CNTL2_DC_SHIFT	10
202 #define		PHY_CNTL2_FDX		(1 << PHY_CNTL2_DC_SHIFT)
203 #define		PHY_CNTL2_RFCV_MASK	0x000F8000
204 #define		PHY_CNTL2_RFCV_SHIFT	15
205 #define		PHY_CNTL2_PHYR_MASK	0x01F00000
206 #define		PHY_CNTL2_PHYR_SHIFT	20
207 #define		PHY_CNTL2_AMDIX_MASK	0x3E000000
208 #define		PHY_CNTL2_AMDIX_SHIFT	25
209 #define		PHY_CNTL2_RMAE		0x40000000
210 #define	PHY_CNTL3_REG		0x0080
211 #define 	PHY_CNTL3_RNT         0x00000400
212 
213 #define	PRI_CNTL_REG		0x0084
214 #define	VLAN_PRI_REG		0x0088
215 #define	TOS_EN_REG		0x008C
216 #define	TOS_MAP0_REG		0x0090
217 #define	TOS_MAP1_REG		0x0094
218 #define	CUSTOM_PRI1_REG		0x0098
219 #define	CUSTOM_PRI2_REG		0x009C
220 
221 #define	EMPTY_CNT_REG		0x00A4
222 #define	PORT_CNT_SEL_REG	0x00A8
223 #define	PORT_CNT_REG		0x00AC
224 
225 #define	INT_MASK	0x1FDEFFF
226 
227 #define	GPIO_CONF0_REG		0x00B8
228 #define	GPIO_CONF2_REG		0x00BC
229 
230 #define	SWAP_IN_REG		0x00C8
231 #define	SWAP_OUT_REG		0x00CC
232 
233 #define	SEND_HBADDR_REG		0x00D0
234 #define	SEND_LBADDR_REG		0x00D4
235 #define	RECV_HBADDR_REG		0x00D8
236 #define	RECV_LBADDR_REG		0x00DC
237 #define	SEND_HWADDR_REG		0x00E0
238 #define	SEND_LWADDR_REG		0x00E4
239 #define	RECV_HWADDR_REG		0x00E8
240 #define	RECV_LWADDR_REG		0x00EC
241 
242 #define	TIMER_INT_REG		0x00F0
243 #define	TIMER_REG		0x00F4
244 
245 #define	PORT0_LED_REG		0x0100
246 #define	PORT1_LED_REG		0x0104
247 #define	PORT2_LED_REG		0x0108
248 #define	PORT3_LED_REG		0x010c
249 #define	PORT4_LED_REG		0x0110
250 
251 /* Hardware descriptor format */
252 struct admsw_desc {
253         volatile uint32_t data;
254         volatile uint32_t cntl;
255         volatile uint32_t len;
256         volatile uint32_t status;
257 } __attribute__((__packed__, __aligned__(4)));
258 
259 #define ADM5120_DMA_MASK        0x01ffffff
260 #define ADM5120_DMA_OWN         0x80000000      /* buffer owner */
261 #define ADM5120_DMA_RINGEND     0x10000000      /* Last in DMA ring */
262 #define ADM5120_DMA_BUF2ENABLE	0x80000000
263 
264 #define ADM5120_DMA_PORTID      0x00007000
265 #define ADM5120_DMA_PORTSHIFT   12
266 #define ADM5120_DMA_LEN         0x07ff0000
267 #define ADM5120_DMA_LENSHIFT    16
268 #define	ADM5120_DMA_TYPE	0x00000003
269 #define	ADM5120_DMA_TYPE_IP	0x00000000
270 #define	ADM5120_DMA_TYPE_PPPOE	0x00000001
271 #define	ADM5120_DMA_CSUM	0x80000000
272 #define	ADM5120_DMA_CSUMFAIL	0x00000008
273 
274 #define SW_DEVS 6
275 
276 #if 0
277 /*	CODE_REG	*/
278 #define	CODE_ID_MASK	0x00FFFF
279 #define	CODE_ADM5120_ID	0x5120
280 
281 #define	CODE_REV_MASK	0x0F0000
282 #define	CODE_REV_SHIFT	16
283 #define	CODE_REV_ADM5120_0	0x8
284 
285 #define	CODE_CLK_MASK	0x300000
286 #define	CODE_CLK_SHIFT	20
287 
288 #define	CPU_CLK_175MHZ	0x0
289 #define	CPU_CLK_200MHZ	0x1
290 #define	CPU_CLK_225MHZ	0x2
291 #define	CPU_CLK_250MHZ	0x3
292 
293 #define	CPU_SPEED_175M	(175000000/2)
294 #define	CPU_SPEED_200M	(200000000/2)
295 #define	CPU_SPEED_225M	(225000000/2)
296 #define	CPU_SPEED_250M	(250000000/2)
297 
298 #define	CPU_NAND_BOOT	0x01000000
299 #define	CPU_DCACHE_2K_WAY	(0x1	<<	25)
300 #define	CPU_DCACHE_2WAY	(0x1	<<	26)
301 #define	CPU_ICACHE_2K_WAY	(0x1	<<	27)
302 #define	CPU_ICACHE_2WAY	(0x1	<<	28)
303 
304 #define	CPU_GMII_SUPPORT	0x20000000
305 
306 #define	CPU_PQFP_MODE	(0x1	<<	29)
307 
308 #define	CPU_CACHE_LINE_SIZE	16
309 
310 /*	SftRest_REG	*/
311 #define	SOFTWARE_RESET	0x1
312 
313 /*	Boot_done_REG	*/
314 #define	BOOT_DONE	0x1
315 
316 /*	SWReset_REG	*/
317 #define	SWITCH_RESET	0x1
318 
319 /*	Global_St_REG	*/
320 #define	DATA_BUF_BIST_FAILED	(0x1	<<	0)
321 #define	LINK_TAB_BIST_FAILED	(0x1	<<	1)
322 #define	MC_TAB_BIST_FAILED	(0x1	<<	2)
323 #define	ADDR_TAB_BIST_FAILED	(0x1	<<	3)
324 #define	DCACHE_D_FAILED	(0x3	<<	4)
325 #define	DCACHE_T_FAILED	(0x1	<<	6)
326 #define	ICACHE_D_FAILED	(0x3	<<	7)
327 #define	ICACHE_T_FAILED	(0x1	<<	9)
328 #define	BIST_FAILED_MASK	0x03FF
329 
330 #define	ALLMEM_TEST_DONE	(0x1	<<	10)
331 
332 #define	SKIP_BLK_CNT_MASK	0x1FF000
333 #define	SKIP_BLK_CNT_SHIFT	12
334 
335 
336 /*	PHY_st_REG	*/
337 #define	PORT_LINK_MASK	0x0000001F
338 #define	PORT_MII_LINKFAIL	0x00000020
339 #define	PORT_SPEED_MASK	0x00001F00
340 
341 #define	PORT_GMII_SPD_MASK	0x00006000
342 #define	PORT_GMII_SPD_10M	0
343 #define	PORT_GMII_SPD_100M	0x00002000
344 #define	PORT_GMII_SPD_1000M	0x00004000
345 
346 #define	PORT_DUPLEX_MASK	0x003F0000
347 #define	PORT_FLOWCTRL_MASK	0x1F000000
348 
349 #define	PORT_GMII_FLOWCTRL_MASK	0x60000000
350 #define	PORT_GMII_FC_ON	0x20000000
351 #define	PORT_GMII_RXFC_ON	0x20000000
352 #define	PORT_GMII_TXFC_ON	0x40000000
353 
354 /*	Port_st_REG	*/
355 #define	PORT_SECURE_ST_MASK	0x001F
356 #define	MII_PORT_TXC_ERR	0x0080
357 
358 /*	Mem_control_REG	*/
359 #define	SDRAM_SIZE_4MBYTES	0x0001
360 #define	SDRAM_SIZE_8MBYTES	0x0002
361 #define	SDRAM_SIZE_16MBYTES	0x0003
362 #define	SDRAM_SIZE_64MBYTES	0x0004
363 #define	SDRAM_SIZE_128MBYTES	0x0005
364 #define	SDRAM_SIZE_MASK	0x0007
365 
366 #define	MEMCNTL_SDRAM1_EN	(0x1	<<	5)
367 
368 #define	ROM_SIZE_DISABLE	0x0000
369 #define	ROM_SIZE_512KBYTES	0x0001
370 #define	ROM_SIZE_1MBYTES	0x0002
371 #define	ROM_SIZE_2MBYTES	0x0003
372 #define	ROM_SIZE_4MBYTES	0x0004
373 #define	ROM_SIZE_8MBYTES	0x0005
374 #define	ROM_SIZE_MASK	0x0007
375 
376 #define	ROM0_SIZE_SHIFT	8
377 #define	ROM1_SIZE_SHIFT	16
378 
379 
380 /*	SW_conf_REG	*/
381 #define	SW_AGE_TIMER_MASK	0x000000F0
382 #define	SW_AGE_TIMER_DISABLE	0x0
383 #define	SW_AGE_TIMER_FAST	0x00000080
384 #define	SW_AGE_TIMER_300SEC	0x00000010
385 #define	SW_AGE_TIMER_600SEC	0x00000020
386 #define	SW_AGE_TIMER_1200SEC	0x00000030
387 #define	SW_AGE_TIMER_2400SEC	0x00000040
388 #define	SW_AGE_TIMER_4800SEC	0x00000050
389 #define	SW_AGE_TIMER_9600SEC	0x00000060
390 #define	SW_AGE_TIMER_19200SEC	0x00000070
391 //#define	SW_AGE_TIMER_38400SEC	0x00000070
392 
393 #define	SW_BC_PREV_MASK	0x00000300
394 #define	SW_BC_PREV_DISABLE	0
395 #define	SW_BC_PREV_64BC	0x00000100
396 #define	SW_BC_PREV_48BC	0x00000200
397 #define	SW_BC_PREV_32BC	0x00000300
398 
399 #define	SW_MAX_LEN_MASK	0x00000C00
400 #define	SW_MAX_LEN_1536	0
401 #define	SW_MAX_LEN_1522	0x00000800
402 #define	SW_MAX_LEN_1518	0x00000400
403 
404 #define	SW_DIS_COLABT	0x00001000
405 
406 #define	SW_HASH_ALG_MASK	0x00006000
407 #define	SW_HASH_ALG_DIRECT	0
408 #define	SW_HASH_ALG_XOR48	0x00002000
409 #define	SW_HASH_ALG_XOR32	0x00004000
410 
411 #define	SW_DISABLE_BACKOFF_TIMER	0x00008000
412 
413 #define	SW_BP_NUM_MASK	0x000F0000
414 #define	SW_BP_NUM_SHIFT	16
415 #define	SW_BP_MODE_MASK	0x00300000
416 #define	SW_BP_MODE_DISABLE	0
417 #define	SW_BP_MODE_JAM	0x00100000
418 #define	SW_BP_MODE_JAMALL	0x00200000
419 #define	SW_BP_MODE_CARRIER	0x00300000
420 #define	SW_RESRV_MC_FILTER	0x00400000
421 #define	SW_BISR_DISABLE	0x00800000
422 
423 #define	SW_DIS_MII_WAS_TX	0x01000000
424 #define	SW_BISS_EN	0x02000000
425 #define	SW_BISS_TH_MASK	0x0C000000
426 #define	SW_BISS_TH_SHIFT	26
427 #define	SW_REQ_LATENCY_MASK	0xF0000000
428 #define	SW_REQ_LATENCY_SHIFT	28
429 
430 
431 /*	CPUp_conf_REG	*/
432 #define	SW_CPU_PORT_DISABLE	0x00000001
433 #define	SW_PADING_CRC	0x00000002
434 #define	SW_BRIDGE_MODE	0x00000004
435 
436 #define	SW_DIS_UN_SHIFT	9
437 #define	SW_DIS_UN_MASK	(0x3F	<<	SW_DIS_UN_SHIFT)
438 #define	SW_DIS_MC_SHIFT	16
439 #define	SW_DIS_MC_MASK	(0x3F	<<	SW_DIS_MC_SHIFT)
440 #define	SW_DIS_BC_SHIFT	24
441 #define	SW_DIS_BC_MASK	(0x3F	<<	SW_DIS_BC_SHIFT)
442 
443 
444 /*	Port_conf0_REG	*/
445 #define	SW_DISABLE_PORT_MASK	0x0000003F
446 #define	SW_EN_MC_MASK	0x00003F00
447 #define	SW_EN_MC_SHIFT	8
448 #define	SW_EN_BP_MASK	0x003F0000
449 #define	SW_EN_BP_SHIFT	16
450 #define	SW_EN_FC_MASK	0x3F000000
451 #define	SW_EN_FC_SHIFT	24
452 
453 
454 /*	Port_conf1_REG	*/
455 #define	SW_DIS_SA_LEARN_MASK	0x0000003F
456 #define	SW_PORT_BLOCKING_MASK	0x00000FC0
457 #define	SW_PORT_BLOCKING_SHIFT	6
458 #define	SW_PORT_BLOCKING_ON	0x1
459 
460 #define	SW_PORT_BLOCKING_MODE_MASK	0x0003F000
461 #define	SW_PORT_BLOCKING_MODE_SHIFT	12
462 #define	SW_PORT_BLOCKING_CTRLONLY	0x1
463 
464 #define	SW_EN_PORT_AGE_MASK	0x03F00000
465 #define	SW_EN_PORT_AGE_SHIFT	20
466 #define	SW_EN_SA_SECURED_MASK	0xFC000000
467 #define	SW_EN_SA_SECURED_SHIFT	26
468 
469 
470 /*	Port_conf2_REG	*/
471 #define	SW_GMII_AN_EN	0x00000001
472 #define	SW_GMII_FORCE_SPD_MASK	0x00000006
473 #define	SW_GMII_FORCE_SPD_10M	0
474 #define	SW_GMII_FORCE_SPD_100M	0x2
475 #define	SW_GMII_FORCE_SPD_1000M	0x4
476 
477 #define	SW_GMII_FORCE_FULL_DUPLEX	0x00000008
478 
479 #define	SW_GMII_FORCE_RXFC	0x00000010
480 #define	SW_GMII_FORCE_TXFC	0x00000020
481 
482 #define	SW_GMII_EN	0x00000040
483 #define	SW_GMII_REVERSE	0x00000080
484 
485 #define	SW_GMII_TXC_CHECK_EN	0x00000100
486 
487 #define	SW_LED_FLASH_TIME_MASK	0x00030000
488 #define	SW_LED_FLASH_TIME_30MS	0
489 #define	SW_LED_FLASH_TIME_60MS	0x00010000
490 #define	SW_LED_FLASH_TIME_240MS	0x00020000
491 #define	SW_LED_FLASH_TIME_480MS	0x00030000
492 
493 
494 /*	Send_trig_REG	*/
495 #define	SEND_TRIG_LOW	0x0001
496 #define	SEND_TRIG_HIGH	0x0002
497 
498 
499 /*	Srch_cmd_REG	*/
500 #define	SW_MAC_SEARCH_START	0x000001
501 #define	SW_MAX_SEARCH_AGAIN	0x000002
502 
503 
504 /*	MAC_wt0_REG	*/
505 #define	SW_MAC_WRITE	0x00000001
506 #define	SW_MAC_WRITE_DONE	0x00000002
507 #define	SW_MAC_FILTER_EN	0x00000004
508 #define	SW_MAC_VLANID_SHIFT	3
509 #define	SW_MAC_VLANID_MASK	0x00000038
510 #define	SW_MAC_VLANID_EN	0x00000040
511 #define	SW_MAC_PORTMAP_MASK	0x00001F80
512 #define	SW_MAC_PORTMAP_SHIFT	7
513 #define	SW_MAC_AGE_MASK	(0x7	<<	13)
514 #define	SW_MAC_AGE_STATIC	(0x7	<<	13)
515 #define	SW_MAC_AGE_VALID	(0x1	<<	13)
516 #define	SW_MAC_AGE_EMPTY	0
517 
518 /*	BW_cntl0_REG	*/
519 #define	SW_PORT_TX_NOLIMIT	0
520 #define	SW_PORT_TX_64K	1
521 #define	SW_PORT_TX_128K	2
522 #define	SW_PORT_TX_256K	3
523 #define	SW_PORT_TX_512K	4
524 #define	SW_PORT_TX_1M	5
525 #define	SW_PORT_TX_4M	6
526 #define	SW_PORT_TX_10MK	7
527 
528 /*	BW_cntl1_REG	*/
529 #define	SW_TRAFFIC_SHAPE_IPG	(0x1	<<	31)
530 
531 /*	PHY_cntl0_REG	*/
532 #define	SW_PHY_ADDR_MASK	0x0000001F
533 #define	PHY_ADDR_MAX	0x1f
534 #define	SW_PHY_REG_ADDR_MASK	0x00001F00
535 #define	SW_PHY_REG_ADDR_SHIFT	8
536 #define	PHY_REG_ADDR_MAX	0x1f
537 #define	SW_PHY_WRITE	0x00002000
538 #define	SW_PHY_READ	0x00004000
539 #define	SW_PHY_WDATA_MASK	0xFFFF0000
540 #define	SW_PHY_WDATA_SHIFT	16
541 
542 
543 /*	PHY_cntl1_REG	*/
544 #define	SW_PHY_WRITE_DONE	0x00000001
545 #define	SW_PHY_READ_DONE	0x00000002
546 #define	SW_PHY_RDATA_MASK	0xFFFF0000
547 #define	SW_PHY_RDATA_SHIFT	16
548 
549 /*	FC_th_REG	*/
550 /*	Adj_port_th_REG	*/
551 /*	Port_th_REG	*/
552 
553 /*	PHY_cntl2_REG	*/
554 #define	SW_PHY_AN_MASK	0x0000001F
555 #define	SW_PHY_SPD_MASK	0x000003E0
556 #define	SW_PHY_SPD_SHIFT	5
557 #define	SW_PHY_DPX_MASK	0x00007C00
558 #define	SW_PHY_DPX_SHIFT	10
559 #define	SW_FORCE_FC_MASK	0x000F8000
560 #define	SW_FORCE_FC_SHIFT	15
561 #define	SW_PHY_NORMAL_MASK	0x01F00000
562 #define	SW_PHY_NORMAL_SHIFT	20
563 #define	SW_PHY_AUTOMDIX_MASK	0x3E000000
564 #define	SW_PHY_AUTOMDIX_SHIFT	25
565 #define	SW_PHY_REC_MCCAVERAGE	0x40000000
566 
567 
568 /*	PHY_cntl3_REG	*/
569 /*	Pri_cntl_REG	*/
570 /*	VLAN_pri_REG	*/
571 /*	TOS_en_REG	*/
572 /*	TOS_map0_REG	*/
573 /*	TOS_map1_REG	*/
574 /*	Custom_pri1_REG	*/
575 /*	Custom_pri2_REG	*/
576 /*	Empty_cnt_REG	*/
577 /*	Port_cnt_sel_REG	*/
578 /*	Port_cnt_REG	*/
579 
580 
581 /*	SW_Int_st_REG	&	SW_Int_mask_REG	*/
582 #define	SEND_H_DONE_INT	0x0000001
583 #define	SEND_L_DONE_INT	0x0000002
584 #define	RX_H_DONE_INT	0x0000004
585 #define	RX_L_DONE_INT	0x0000008
586 #define	RX_H_DESC_FULL_INT	0x0000010
587 #define	RX_L_DESC_FULL_INT	0x0000020
588 #define	PORT0_QUE_FULL_INT	0x0000040
589 #define	PORT1_QUE_FULL_INT	0x0000080
590 #define	PORT2_QUE_FULL_INT	0x0000100
591 #define	PORT3_QUE_FULL_INT	0x0000200
592 #define	PORT4_QUE_FULL_INT	0x0000400
593 #define	PORT5_QUE_FULL_INT	0x0000800
594 
595 #define	CPU_QUE_FULL_INT	0x0002000
596 #define	GLOBAL_QUE_FULL_INT	0x0004000
597 #define	MUST_DROP_INT	0x0008000
598 #define	BC_STORM_INT	0x0010000
599 
600 #define	PORT_STATUS_CHANGE_INT	0x0040000
601 #define	INTRUDER_INT	0x0080000
602 #define	WATCHDOG0_EXPR_INT	0x0100000
603 #define	WATCHDOG1_EXPR_INT	0x0200000
604 #define	RX_DESC_ERR_INT	0x0400000
605 #define	SEND_DESC_ERR_INT	0x0800000
606 #define	CPU_HOLD_INT	0x1000000
607 #define	SWITCH_INT_MASK	0x1FDEFFF
608 
609 
610 /*	GPIO_conf0_REG	*/
611 #define	GPIO0_INPUT_MODE	0x00000001
612 #define	GPIO1_INPUT_MODE	0x00000002
613 #define	GPIO2_INPUT_MODE	0x00000004
614 #define	GPIO3_INPUT_MODE	0x00000008
615 #define	GPIO4_INPUT_MODE	0x00000010
616 #define	GPIO5_INPUT_MODE	0x00000020
617 #define	GPIO6_INPUT_MODE	0x00000040
618 #define	GPIO7_INPUT_MODE	0x00000080
619 
620 #define	GPIO0_OUTPUT_MODE	0
621 #define	GPIO1_OUTPUT_MODE	0
622 #define	GPIO2_OUTPUT_MODE	0
623 #define	GPIO3_OUTPUT_MODE	0
624 #define	GPIO4_OUTPUT_MODE	0
625 #define	GPIO5_OUTPUT_MODE	0
626 #define	GPIO6_OUTPUT_MODE	0
627 #define	GPIO7_OUTPUT_MODE	0
628 
629 #define	GPIO0_INPUT_MASK	0x00000100
630 #define	GPIO1_INPUT_MASK	0x00000200
631 #define	GPIO2_INPUT_MASK	0x00000400
632 #define	GPIO3_INPUT_MASK	0x00000800
633 #define	GPIO4_INPUT_MASK	0x00001000
634 #define	GPIO5_INPUT_MASK	0x00002000
635 #define	GPIO6_INPUT_MASK	0x00004000
636 #define	GPIO7_INPUT_MASK	0x00008000
637 
638 #define	GPIO0_OUTPUT_EN	0x00010000
639 #define	GPIO1_OUTPUT_EN	0x00020000
640 #define	GPIO2_OUTPUT_EN	0x00040000
641 #define	GPIO3_OUTPUT_EN	0x00080000
642 #define	GPIO4_OUTPUT_EN	0x00100000
643 #define	GPIO5_OUTPUT_EN	0x00200000
644 #define	GPIO6_OUTPUT_EN	0x00400000
645 #define	GPIO7_OUTPUT_EN	0x00800000
646 
647 #define	GPIO_CONF0_OUTEN_MASK	0x00ff0000
648 
649 #define	GPIO0_OUTPUT_HI	0x01000000
650 #define	GPIO1_OUTPUT_HI	0x02000000
651 #define	GPIO2_OUTPUT_HI	0x04000000
652 #define	GPIO3_OUTPUT_HI	0x08000000
653 #define	GPIO4_OUTPUT_HI	0x10000000
654 #define	GPIO5_OUTPUT_HI	0x20000000
655 #define	GPIO6_OUTPUT_HI	0x40000000
656 #define	GPIO7_OUTPUT_HI	0x80000000
657 
658 #define	GPIO0_OUTPUT_LOW	0
659 #define	GPIO1_OUTPUT_LOW	0
660 #define	GPIO2_OUTPUT_LOW	0
661 #define	GPIO3_OUTPUT_LOW	0
662 #define	GPIO4_OUTPUT_LOW	0
663 #define	GPIO5_OUTPUT_LOW	0
664 #define	GPIO6_OUTPUT_LOW	0
665 #define	GPIO7_OUTPUT_LOW	0
666 
667 
668 /*	GPIO_conf2_REG	*/
669 #define	EXTIO_WAIT_EN	(0x1	<<	6)
670 #define	EXTIO_CS1_INT1_EN	(0x1	<<	5)
671 #define	EXTIO_CS0_INT0_EN	(0x1	<<	4)
672 
673 /*	Timer_int_REG	*/
674 #define	SW_TIMER_INT_DISABLE	0x10000
675 #define	SW_TIMER_INT	0x1
676 
677 /*	Timer_REG	*/
678 #define	SW_TIMER_EN	0x10000
679 #define	SW_TIMER_MASK	0xffff
680 #define	SW_TIMER_10MS_TICKS	0x3D09
681 #define	SW_TIMER_1MS_TICKS	0x61A
682 #define	SW_TIMER_100US_TICKS	0x9D
683 
684 
685 /*	Port0_LED_REG,	Port1_LED_REG,	Port2_LED_REG,	Port3_LED_REG,	Port4_LED_REG*/
686 #define	GPIOL_INPUT_MODE	0x00
687 #define	GPIOL_OUTPUT_FLASH	0x01
688 #define	GPIOL_OUTPUT_LOW	0x02
689 #define	GPIOL_OUTPUT_HIGH	0x03
690 #define	GPIOL_LINK_LED	0x04
691 #define	GPIOL_SPEED_LED	0x05
692 #define	GPIOL_DUPLEX_LED	0x06
693 #define	GPIOL_ACT_LED	0x07
694 #define	GPIOL_COL_LED	0x08
695 #define	GPIOL_LINK_ACT_LED	0x09
696 #define	GPIOL_DUPLEX_COL_LED	0x0A
697 #define	GPIOL_10MLINK_ACT_LED	0x0B
698 #define	GPIOL_100MLINK_ACT_LED	0x0C
699 #define	GPIOL_CTRL_MASK	0x0F
700 
701 #define	GPIOL_INPUT_MASK	0x7000
702 #define	GPIOL_INPUT_0_MASK	0x1000
703 #define	GPIOL_INPUT_1_MASK	0x2000
704 #define	GPIOL_INPUT_2_MASK	0x4000
705 
706 #define	PORT_LED0_SHIFT	0
707 #define	PORT_LED1_SHIFT	4
708 #define	PORT_LED2_SHIFT	8
709 #endif
710 #endif /* _IF_ADMSWREG_H_ */
711