1178173Simp/* $NetBSD: if_admswreg.h,v 1.1 2007/03/20 08:52:02 dyoung Exp $ */
2178173Simp
3178173Simp/*-
4178173Simp * Copyright (c) 2007 Ruslan Ermilov and Vsevolod Lobko.
5178173Simp * All rights reserved.
6178173Simp *
7178173Simp * Redistribution and use in source and binary forms, with or
8178173Simp * without modification, are permitted provided that the following
9178173Simp * conditions are met:
10178173Simp * 1. Redistributions of source code must retain the above copyright
11178173Simp *    notice, this list of conditions and the following disclaimer.
12178173Simp * 2. Redistributions in binary form must reproduce the above
13178173Simp *    copyright notice, this list of conditions and the following
14178173Simp *    disclaimer in the documentation and/or other materials provided
15178173Simp *    with the distribution.
16178173Simp * 3. The names of the authors may not be used to endorse or promote
17178173Simp *    products derived from this software without specific prior
18178173Simp *    written permission.
19178173Simp *
20178173Simp * THIS SOFTWARE IS PROVIDED BY THE AUTHORS ``AS IS'' AND ANY
21178173Simp * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
22178173Simp * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
23178173Simp * PARTICULAR PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHORS
24178173Simp * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY,
25178173Simp * OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
26178173Simp * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA,
27178173Simp * OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
28178173Simp * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR
29178173Simp * TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
30178173Simp * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY
31178173Simp * OF SUCH DAMAGE.
32178173Simp *
33178173Simp * $FreeBSD$
34178173Simp */
35178173Simp#ifndef	_IF_ADMSWREG_H_
36178173Simp#define	_IF_ADMSWREG_H_
37178173Simp
38178173Simp#define	ADMSW_BOOT_DONE		0x0008
39178173Simp#define	ADMSW_BOOT_DONE_BO	__BIT(0)
40178173Simp#define	ADMSW_SW_RES		0x000c
41178173Simp#define	ADMSW_SW_RES_SWR	__BITS(31, 0)
42178173Simp#define	ADMSW_INT_ST		0x00b0
43178173Simp#define	ADMSW_INT_MASK		0x00b4
44178173Simp
45178173Simp#define	ADMSW_INTR_RSVD	__BITS(31, 25)
46178173Simp#define	ADMSW_INTR_CPUH	__BIT(24)
47178173Simp#define	ADMSW_INTR_SDE	__BIT(23)
48178173Simp#define	ADMSW_INTR_RDE	__BIT(22)
49178173Simp#define	ADMSW_INTR_W1TE	__BIT(21)
50178173Simp#define	ADMSW_INTR_W0TE	__BIT(20)
51178173Simp#define	ADMSW_INTR_MI	__BIT(19)
52178173Simp#define	ADMSW_INTR_PSC	__BIT(18)
53178173Simp#define	ADMSW_INTR_BCS	__BIT(16)
54178173Simp#define	ADMSW_INTR_MD	__BIT(15)
55178173Simp#define	ADMSW_INTR_GQF	__BIT(14)
56178173Simp#define	ADMSW_INTR_CPQ	__BIT(13)
57178173Simp#define	ADMSW_INTR_P5QF	__BIT(11)
58178173Simp#define	ADMSW_INTR_P4QF	__BIT(10)
59178173Simp#define	ADMSW_INTR_P3QF	__BIT(9)
60178173Simp#define	ADMSW_INTR_P2QF	__BIT(8)
61178173Simp#define	ADMSW_INTR_P1QF	__BIT(7)
62178173Simp#define	ADMSW_INTR_P0QF	__BIT(6)
63178173Simp#define	ADMSW_INTR_LDF	__BIT(5)
64178173Simp#define	ADMSW_INTR_HDF	__BIT(4)
65178173Simp#define	ADMSW_INTR_RLD	__BIT(3)
66178173Simp#define	ADMSW_INTR_RHD	__BIT(2)
67178173Simp#define	ADMSW_INTR_SLD	__BIT(1)
68178173Simp#define	ADMSW_INTR_SHD	__BIT(0)
69178173Simp
70178173Simp#define	ADMSW_INT_FMT	\
71178173Simp	"\x10"\
72178173Simp	"\x01SHD"\
73178173Simp	"\x02SLD"\
74178173Simp	"\x03RHD"\
75178173Simp	"\x04RLD"\
76178173Simp	"\x05HDF"\
77178173Simp	"\x06LDF"\
78178173Simp	"\x07P0QF"\
79178173Simp	"\x08P1QF"\
80178173Simp	"\x09P2QF"\
81178173Simp	"\x0aP3QF"\
82178173Simp	"\x0bP4QF"\
83178173Simp	"\x0cP5QF"\
84178173Simp	"\x0e"\
85178173Simp	"CPQ"\
86178173Simp	"\x0fGQF"\
87178173Simp	"\x10MD"\
88178173Simp	"\x11"\
89178173Simp	"BCS"\
90178173Simp	"\x13PSC"\
91178173Simp	"\x14MI"\
92178173Simp	"\x15W0TE"\
93178173Simp	"\x16W1TE"\
94178173Simp	"\x17RDE"\
95178173Simp	"\x18SDE"\
96178173Simp	"\x19"\
97178173Simp	"CPUH"
98178173Simp
99178173Simp#define	CODE_REG		0x0000
100178173Simp#define	SFTREST_REG		0x0004
101178173Simp#define	BOOT_DONE_REG		0x0008
102178173Simp#define	GLOBAL_ST_REG		0x0010
103178173Simp#define	PHY_ST_REG		0x0014
104178173Simp#define		PHY_ST_LINKUP		(1 << 0)
105178173Simp#define		PHY_ST_100M		(1 << 8)
106178173Simp#define		PHY_ST_FDX		(1 << 16)
107178173Simp#define	PORT_ST_REG		0x0018
108178173Simp#define	MEM_CONTROL_REG		0x001C
109178173Simp#define	SW_CONF_REG		0x0020
110178173Simp
111178173Simp#define	CPUP_CONF_REG		0x0024
112178173Simp#define		CPUP_CONF_DCPUP		0x00000001
113178173Simp#define		CPUP_CONF_CRCP		0x00000002
114178173Simp#define		CPUP_CONF_BTM		0x00000004
115178173Simp#define		CPUP_CONF_DUNP_SHIFT	9
116178173Simp#define		CPUP_CONF_DUNP_MASK	(0x3F << CPUP_CONF_DUNP_SHIFT)
117178173Simp#define		CPUP_CONF_DMCP_SHIFT	16
118178173Simp#define		CPUP_CONF_DMCP_MASK	(0x3F << CPUP_CONF_DMCP_SHIFT)
119178173Simp#define		CPUP_CONF_DBCP_SHIFT	24
120178173Simp#define		CPUP_CONF_DBCP_MASK	(0x3F << CPUP_CONF_DBCP_SHIFT)
121178173Simp
122178173Simp#define	PORT_CONF0_REG		0x0028
123178173Simp#define		PORT_CONF0_DP_MASK	0x0000003F
124178173Simp#define		PORT_CONF0_EMCP_MASK	0x00003F00
125178173Simp#define		PORT_CONF0_EMCP_SHIFT	8
126178173Simp#define		PORT_CONF0_EMBP_MASK	0x003F0000
127178173Simp#define		PORT_CONF0_EMBP_SHIFT	16
128178173Simp#define	PORT_CONF1_REG		0x002C
129178173Simp#define	PORT_CONF2_REG		0x0030
130178173Simp
131178173Simp#define	VLAN_G1_REG		0x0040
132178173Simp#define	VLAN_G2_REG		0x0044
133178173Simp#define	SEND_TRIG_REG		0x0048
134178173Simp#define	SRCH_CMD_REG		0x004C
135178173Simp#define	ADDR_ST0_REG		0x0050
136178173Simp#define	ADDR_ST1_REG		0x0054
137178173Simp#define	MAC_WT0_REG		0x0058
138178173Simp#define		MAC_WT0_WRITE	0x00000001
139178173Simp#define		MAC_WT0_WRITE_DONE	0x00000002
140178173Simp#define		MAC_WT0_FILTER_EN	0x00000004
141178173Simp#define		MAC_WT0_VLANID_SHIFT	3
142178173Simp#define		MAC_WT0_VLANID_MASK	0x00000038
143178173Simp#define		MAC_WT0_VLANID_EN	0x00000040
144178173Simp#define		MAC_WT0_PORTMAP_MASK	0x00001F80
145178173Simp#define		MAC_WT0_PORTMAP_SHIFT	7
146178173Simp#define		MAC_WT0_AGE_MASK	(0x7	<<	13)
147178173Simp#define		MAC_WT0_AGE_STATIC	(0x7	<<	13)
148178173Simp#define		MAC_WT0_AGE_VALID	(0x1	<<	13)
149178173Simp#define		MAC_WT0_AGE_EMPTY	0
150178173Simp#define	MAC_WT1_REG		0x005C
151178173Simp#define	BW_CNTL0_REG		0x0060
152178173Simp#define	BW_CNTL1_REG		0x0064
153178173Simp#define	PHY_CNTL0_REG		0x0068
154178173Simp#define	PHY_CNTL1_REG		0x006C
155178173Simp#define	FC_TH_REG		0x0070
156178173Simp#define		FC_TH_FCS_MASK		0x01FF0000
157178173Simp#define		FC_TH_D2R_MASK		0x0000FF00
158178173Simp#define		FC_TH_D2S_MASK		0x000000FF
159178173Simp#define	ADJ_PORT_TH_REG		0x0074
160178173Simp#define	PORT_TH_REG		0x0078
161178173Simp#define	PHY_CNTL2_REG		0x007C
162178173Simp#define		PHY_CNTL2_AUTONEG	(1 << 0)
163178173Simp#define		PHY_CNTL2_ANE_MASK	0x0000001F
164178173Simp#define		PHY_CNTL2_SC_MASK	0x000003E0
165178173Simp#define		PHY_CNTL2_SC_SHIFT	5
166178173Simp#define		PHY_CNTL2_100M		(1 << PHY_CNTL2_SC_SHIFT)
167178173Simp#define		PHY_CNTL2_DC_MASK	0x00007C00
168178173Simp#define		PHY_CNTL2_DC_SHIFT	10
169178173Simp#define		PHY_CNTL2_FDX		(1 << PHY_CNTL2_DC_SHIFT)
170178173Simp#define		PHY_CNTL2_RFCV_MASK	0x000F8000
171178173Simp#define		PHY_CNTL2_RFCV_SHIFT	15
172178173Simp#define		PHY_CNTL2_PHYR_MASK	0x01F00000
173178173Simp#define		PHY_CNTL2_PHYR_SHIFT	20
174178173Simp#define		PHY_CNTL2_AMDIX_MASK	0x3E000000
175178173Simp#define		PHY_CNTL2_AMDIX_SHIFT	25
176178173Simp#define		PHY_CNTL2_RMAE		0x40000000
177178173Simp#define	PHY_CNTL3_REG		0x0080
178178173Simp#define 	PHY_CNTL3_RNT         0x00000400
179178173Simp
180178173Simp#define	PRI_CNTL_REG		0x0084
181178173Simp#define	VLAN_PRI_REG		0x0088
182178173Simp#define	TOS_EN_REG		0x008C
183178173Simp#define	TOS_MAP0_REG		0x0090
184178173Simp#define	TOS_MAP1_REG		0x0094
185178173Simp#define	CUSTOM_PRI1_REG		0x0098
186178173Simp#define	CUSTOM_PRI2_REG		0x009C
187178173Simp
188178173Simp#define	EMPTY_CNT_REG		0x00A4
189178173Simp#define	PORT_CNT_SEL_REG	0x00A8
190178173Simp#define	PORT_CNT_REG		0x00AC
191178173Simp
192178173Simp#define	INT_MASK	0x1FDEFFF
193178173Simp
194178173Simp#define	GPIO_CONF0_REG		0x00B8
195178173Simp#define	GPIO_CONF2_REG		0x00BC
196178173Simp
197178173Simp#define	SWAP_IN_REG		0x00C8
198178173Simp#define	SWAP_OUT_REG		0x00CC
199178173Simp
200178173Simp#define	SEND_HBADDR_REG		0x00D0
201178173Simp#define	SEND_LBADDR_REG		0x00D4
202178173Simp#define	RECV_HBADDR_REG		0x00D8
203178173Simp#define	RECV_LBADDR_REG		0x00DC
204178173Simp#define	SEND_HWADDR_REG		0x00E0
205178173Simp#define	SEND_LWADDR_REG		0x00E4
206178173Simp#define	RECV_HWADDR_REG		0x00E8
207178173Simp#define	RECV_LWADDR_REG		0x00EC
208178173Simp
209178173Simp#define	TIMER_INT_REG		0x00F0
210178173Simp#define	TIMER_REG		0x00F4
211178173Simp
212178173Simp#define	PORT0_LED_REG		0x0100
213178173Simp#define	PORT1_LED_REG		0x0104
214178173Simp#define	PORT2_LED_REG		0x0108
215178173Simp#define	PORT3_LED_REG		0x010c
216178173Simp#define	PORT4_LED_REG		0x0110
217178173Simp
218178173Simp/* Hardware descriptor format */
219178173Simpstruct admsw_desc {
220178173Simp        volatile uint32_t data;
221178173Simp        volatile uint32_t cntl;
222178173Simp        volatile uint32_t len;
223178173Simp        volatile uint32_t status;
224178173Simp} __attribute__((__packed__, __aligned__(4)));
225178173Simp
226178173Simp#define ADM5120_DMA_MASK        0x01ffffff
227178173Simp#define ADM5120_DMA_OWN         0x80000000      /* buffer owner */
228178173Simp#define ADM5120_DMA_RINGEND     0x10000000      /* Last in DMA ring */
229178173Simp#define ADM5120_DMA_BUF2ENABLE	0x80000000
230178173Simp
231178173Simp#define ADM5120_DMA_PORTID      0x00007000
232178173Simp#define ADM5120_DMA_PORTSHIFT   12
233178173Simp#define ADM5120_DMA_LEN         0x07ff0000
234178173Simp#define ADM5120_DMA_LENSHIFT    16
235178173Simp#define	ADM5120_DMA_TYPE	0x00000003
236178173Simp#define	ADM5120_DMA_TYPE_IP	0x00000000
237178173Simp#define	ADM5120_DMA_TYPE_PPPOE	0x00000001
238178173Simp#define	ADM5120_DMA_CSUM	0x80000000
239178173Simp#define	ADM5120_DMA_CSUMFAIL	0x00000008
240178173Simp
241178173Simp#define SW_DEVS 6
242178173Simp
243178173Simp#if 0
244178173Simp/*	CODE_REG	*/
245178173Simp#define	CODE_ID_MASK	0x00FFFF
246178173Simp#define	CODE_ADM5120_ID	0x5120
247178173Simp
248178173Simp#define	CODE_REV_MASK	0x0F0000
249178173Simp#define	CODE_REV_SHIFT	16
250178173Simp#define	CODE_REV_ADM5120_0	0x8
251178173Simp
252178173Simp#define	CODE_CLK_MASK	0x300000
253178173Simp#define	CODE_CLK_SHIFT	20
254178173Simp
255178173Simp#define	CPU_CLK_175MHZ	0x0
256178173Simp#define	CPU_CLK_200MHZ	0x1
257178173Simp#define	CPU_CLK_225MHZ	0x2
258178173Simp#define	CPU_CLK_250MHZ	0x3
259178173Simp
260178173Simp#define	CPU_SPEED_175M	(175000000/2)
261178173Simp#define	CPU_SPEED_200M	(200000000/2)
262178173Simp#define	CPU_SPEED_225M	(225000000/2)
263178173Simp#define	CPU_SPEED_250M	(250000000/2)
264178173Simp
265178173Simp#define	CPU_NAND_BOOT	0x01000000
266178173Simp#define	CPU_DCACHE_2K_WAY	(0x1	<<	25)
267178173Simp#define	CPU_DCACHE_2WAY	(0x1	<<	26)
268178173Simp#define	CPU_ICACHE_2K_WAY	(0x1	<<	27)
269178173Simp#define	CPU_ICACHE_2WAY	(0x1	<<	28)
270178173Simp
271178173Simp#define	CPU_GMII_SUPPORT	0x20000000
272178173Simp
273178173Simp#define	CPU_PQFP_MODE	(0x1	<<	29)
274178173Simp
275178173Simp#define	CPU_CACHE_LINE_SIZE	16
276178173Simp
277178173Simp/*	SftRest_REG	*/
278178173Simp#define	SOFTWARE_RESET	0x1
279178173Simp
280178173Simp/*	Boot_done_REG	*/
281178173Simp#define	BOOT_DONE	0x1
282178173Simp
283178173Simp/*	SWReset_REG	*/
284178173Simp#define	SWITCH_RESET	0x1
285178173Simp
286178173Simp/*	Global_St_REG	*/
287178173Simp#define	DATA_BUF_BIST_FAILED	(0x1	<<	0)
288178173Simp#define	LINK_TAB_BIST_FAILED	(0x1	<<	1)
289178173Simp#define	MC_TAB_BIST_FAILED	(0x1	<<	2)
290178173Simp#define	ADDR_TAB_BIST_FAILED	(0x1	<<	3)
291178173Simp#define	DCACHE_D_FAILED	(0x3	<<	4)
292178173Simp#define	DCACHE_T_FAILED	(0x1	<<	6)
293178173Simp#define	ICACHE_D_FAILED	(0x3	<<	7)
294178173Simp#define	ICACHE_T_FAILED	(0x1	<<	9)
295178173Simp#define	BIST_FAILED_MASK	0x03FF
296178173Simp
297178173Simp#define	ALLMEM_TEST_DONE	(0x1	<<	10)
298178173Simp
299178173Simp#define	SKIP_BLK_CNT_MASK	0x1FF000
300178173Simp#define	SKIP_BLK_CNT_SHIFT	12
301178173Simp
302178173Simp
303178173Simp/*	PHY_st_REG	*/
304178173Simp#define	PORT_LINK_MASK	0x0000001F
305178173Simp#define	PORT_MII_LINKFAIL	0x00000020
306178173Simp#define	PORT_SPEED_MASK	0x00001F00
307178173Simp
308178173Simp#define	PORT_GMII_SPD_MASK	0x00006000
309178173Simp#define	PORT_GMII_SPD_10M	0
310178173Simp#define	PORT_GMII_SPD_100M	0x00002000
311178173Simp#define	PORT_GMII_SPD_1000M	0x00004000
312178173Simp
313178173Simp#define	PORT_DUPLEX_MASK	0x003F0000
314178173Simp#define	PORT_FLOWCTRL_MASK	0x1F000000
315178173Simp
316178173Simp#define	PORT_GMII_FLOWCTRL_MASK	0x60000000
317178173Simp#define	PORT_GMII_FC_ON	0x20000000
318178173Simp#define	PORT_GMII_RXFC_ON	0x20000000
319178173Simp#define	PORT_GMII_TXFC_ON	0x40000000
320178173Simp
321178173Simp/*	Port_st_REG	*/
322178173Simp#define	PORT_SECURE_ST_MASK	0x001F
323178173Simp#define	MII_PORT_TXC_ERR	0x0080
324178173Simp
325178173Simp/*	Mem_control_REG	*/
326178173Simp#define	SDRAM_SIZE_4MBYTES	0x0001
327178173Simp#define	SDRAM_SIZE_8MBYTES	0x0002
328178173Simp#define	SDRAM_SIZE_16MBYTES	0x0003
329178173Simp#define	SDRAM_SIZE_64MBYTES	0x0004
330178173Simp#define	SDRAM_SIZE_128MBYTES	0x0005
331178173Simp#define	SDRAM_SIZE_MASK	0x0007
332178173Simp
333178173Simp#define	MEMCNTL_SDRAM1_EN	(0x1	<<	5)
334178173Simp
335178173Simp#define	ROM_SIZE_DISABLE	0x0000
336178173Simp#define	ROM_SIZE_512KBYTES	0x0001
337178173Simp#define	ROM_SIZE_1MBYTES	0x0002
338178173Simp#define	ROM_SIZE_2MBYTES	0x0003
339178173Simp#define	ROM_SIZE_4MBYTES	0x0004
340178173Simp#define	ROM_SIZE_8MBYTES	0x0005
341178173Simp#define	ROM_SIZE_MASK	0x0007
342178173Simp
343178173Simp#define	ROM0_SIZE_SHIFT	8
344178173Simp#define	ROM1_SIZE_SHIFT	16
345178173Simp
346178173Simp
347178173Simp/*	SW_conf_REG	*/
348178173Simp#define	SW_AGE_TIMER_MASK	0x000000F0
349178173Simp#define	SW_AGE_TIMER_DISABLE	0x0
350178173Simp#define	SW_AGE_TIMER_FAST	0x00000080
351178173Simp#define	SW_AGE_TIMER_300SEC	0x00000010
352178173Simp#define	SW_AGE_TIMER_600SEC	0x00000020
353178173Simp#define	SW_AGE_TIMER_1200SEC	0x00000030
354178173Simp#define	SW_AGE_TIMER_2400SEC	0x00000040
355178173Simp#define	SW_AGE_TIMER_4800SEC	0x00000050
356178173Simp#define	SW_AGE_TIMER_9600SEC	0x00000060
357178173Simp#define	SW_AGE_TIMER_19200SEC	0x00000070
358178173Simp//#define	SW_AGE_TIMER_38400SEC	0x00000070
359178173Simp
360178173Simp#define	SW_BC_PREV_MASK	0x00000300
361178173Simp#define	SW_BC_PREV_DISABLE	0
362178173Simp#define	SW_BC_PREV_64BC	0x00000100
363178173Simp#define	SW_BC_PREV_48BC	0x00000200
364178173Simp#define	SW_BC_PREV_32BC	0x00000300
365178173Simp
366178173Simp#define	SW_MAX_LEN_MASK	0x00000C00
367178173Simp#define	SW_MAX_LEN_1536	0
368178173Simp#define	SW_MAX_LEN_1522	0x00000800
369178173Simp#define	SW_MAX_LEN_1518	0x00000400
370178173Simp
371178173Simp#define	SW_DIS_COLABT	0x00001000
372178173Simp
373178173Simp#define	SW_HASH_ALG_MASK	0x00006000
374178173Simp#define	SW_HASH_ALG_DIRECT	0
375178173Simp#define	SW_HASH_ALG_XOR48	0x00002000
376178173Simp#define	SW_HASH_ALG_XOR32	0x00004000
377178173Simp
378178173Simp#define	SW_DISABLE_BACKOFF_TIMER	0x00008000
379178173Simp
380178173Simp#define	SW_BP_NUM_MASK	0x000F0000
381178173Simp#define	SW_BP_NUM_SHIFT	16
382178173Simp#define	SW_BP_MODE_MASK	0x00300000
383178173Simp#define	SW_BP_MODE_DISABLE	0
384178173Simp#define	SW_BP_MODE_JAM	0x00100000
385178173Simp#define	SW_BP_MODE_JAMALL	0x00200000
386178173Simp#define	SW_BP_MODE_CARRIER	0x00300000
387178173Simp#define	SW_RESRV_MC_FILTER	0x00400000
388178173Simp#define	SW_BISR_DISABLE	0x00800000
389178173Simp
390178173Simp#define	SW_DIS_MII_WAS_TX	0x01000000
391178173Simp#define	SW_BISS_EN	0x02000000
392178173Simp#define	SW_BISS_TH_MASK	0x0C000000
393178173Simp#define	SW_BISS_TH_SHIFT	26
394178173Simp#define	SW_REQ_LATENCY_MASK	0xF0000000
395178173Simp#define	SW_REQ_LATENCY_SHIFT	28
396178173Simp
397178173Simp
398178173Simp/*	CPUp_conf_REG	*/
399178173Simp#define	SW_CPU_PORT_DISABLE	0x00000001
400178173Simp#define	SW_PADING_CRC	0x00000002
401178173Simp#define	SW_BRIDGE_MODE	0x00000004
402178173Simp
403178173Simp#define	SW_DIS_UN_SHIFT	9
404178173Simp#define	SW_DIS_UN_MASK	(0x3F	<<	SW_DIS_UN_SHIFT)
405178173Simp#define	SW_DIS_MC_SHIFT	16
406178173Simp#define	SW_DIS_MC_MASK	(0x3F	<<	SW_DIS_MC_SHIFT)
407178173Simp#define	SW_DIS_BC_SHIFT	24
408178173Simp#define	SW_DIS_BC_MASK	(0x3F	<<	SW_DIS_BC_SHIFT)
409178173Simp
410178173Simp
411178173Simp/*	Port_conf0_REG	*/
412178173Simp#define	SW_DISABLE_PORT_MASK	0x0000003F
413178173Simp#define	SW_EN_MC_MASK	0x00003F00
414178173Simp#define	SW_EN_MC_SHIFT	8
415178173Simp#define	SW_EN_BP_MASK	0x003F0000
416178173Simp#define	SW_EN_BP_SHIFT	16
417178173Simp#define	SW_EN_FC_MASK	0x3F000000
418178173Simp#define	SW_EN_FC_SHIFT	24
419178173Simp
420178173Simp
421178173Simp/*	Port_conf1_REG	*/
422178173Simp#define	SW_DIS_SA_LEARN_MASK	0x0000003F
423178173Simp#define	SW_PORT_BLOCKING_MASK	0x00000FC0
424178173Simp#define	SW_PORT_BLOCKING_SHIFT	6
425178173Simp#define	SW_PORT_BLOCKING_ON	0x1
426178173Simp
427178173Simp#define	SW_PORT_BLOCKING_MODE_MASK	0x0003F000
428178173Simp#define	SW_PORT_BLOCKING_MODE_SHIFT	12
429178173Simp#define	SW_PORT_BLOCKING_CTRLONLY	0x1
430178173Simp
431178173Simp#define	SW_EN_PORT_AGE_MASK	0x03F00000
432178173Simp#define	SW_EN_PORT_AGE_SHIFT	20
433178173Simp#define	SW_EN_SA_SECURED_MASK	0xFC000000
434178173Simp#define	SW_EN_SA_SECURED_SHIFT	26
435178173Simp
436178173Simp
437178173Simp/*	Port_conf2_REG	*/
438178173Simp#define	SW_GMII_AN_EN	0x00000001
439178173Simp#define	SW_GMII_FORCE_SPD_MASK	0x00000006
440178173Simp#define	SW_GMII_FORCE_SPD_10M	0
441178173Simp#define	SW_GMII_FORCE_SPD_100M	0x2
442178173Simp#define	SW_GMII_FORCE_SPD_1000M	0x4
443178173Simp
444178173Simp#define	SW_GMII_FORCE_FULL_DUPLEX	0x00000008
445178173Simp
446178173Simp#define	SW_GMII_FORCE_RXFC	0x00000010
447178173Simp#define	SW_GMII_FORCE_TXFC	0x00000020
448178173Simp
449178173Simp#define	SW_GMII_EN	0x00000040
450178173Simp#define	SW_GMII_REVERSE	0x00000080
451178173Simp
452178173Simp#define	SW_GMII_TXC_CHECK_EN	0x00000100
453178173Simp
454178173Simp#define	SW_LED_FLASH_TIME_MASK	0x00030000
455178173Simp#define	SW_LED_FLASH_TIME_30MS	0
456178173Simp#define	SW_LED_FLASH_TIME_60MS	0x00010000
457178173Simp#define	SW_LED_FLASH_TIME_240MS	0x00020000
458178173Simp#define	SW_LED_FLASH_TIME_480MS	0x00030000
459178173Simp
460178173Simp
461178173Simp/*	Send_trig_REG	*/
462178173Simp#define	SEND_TRIG_LOW	0x0001
463178173Simp#define	SEND_TRIG_HIGH	0x0002
464178173Simp
465178173Simp
466178173Simp/*	Srch_cmd_REG	*/
467178173Simp#define	SW_MAC_SEARCH_START	0x000001
468178173Simp#define	SW_MAX_SEARCH_AGAIN	0x000002
469178173Simp
470178173Simp
471178173Simp/*	MAC_wt0_REG	*/
472178173Simp#define	SW_MAC_WRITE	0x00000001
473178173Simp#define	SW_MAC_WRITE_DONE	0x00000002
474178173Simp#define	SW_MAC_FILTER_EN	0x00000004
475178173Simp#define	SW_MAC_VLANID_SHIFT	3
476178173Simp#define	SW_MAC_VLANID_MASK	0x00000038
477178173Simp#define	SW_MAC_VLANID_EN	0x00000040
478178173Simp#define	SW_MAC_PORTMAP_MASK	0x00001F80
479178173Simp#define	SW_MAC_PORTMAP_SHIFT	7
480178173Simp#define	SW_MAC_AGE_MASK	(0x7	<<	13)
481178173Simp#define	SW_MAC_AGE_STATIC	(0x7	<<	13)
482178173Simp#define	SW_MAC_AGE_VALID	(0x1	<<	13)
483178173Simp#define	SW_MAC_AGE_EMPTY	0
484178173Simp
485178173Simp/*	BW_cntl0_REG	*/
486178173Simp#define	SW_PORT_TX_NOLIMIT	0
487178173Simp#define	SW_PORT_TX_64K	1
488178173Simp#define	SW_PORT_TX_128K	2
489178173Simp#define	SW_PORT_TX_256K	3
490178173Simp#define	SW_PORT_TX_512K	4
491178173Simp#define	SW_PORT_TX_1M	5
492178173Simp#define	SW_PORT_TX_4M	6
493178173Simp#define	SW_PORT_TX_10MK	7
494178173Simp
495178173Simp/*	BW_cntl1_REG	*/
496178173Simp#define	SW_TRAFFIC_SHAPE_IPG	(0x1	<<	31)
497178173Simp
498178173Simp/*	PHY_cntl0_REG	*/
499178173Simp#define	SW_PHY_ADDR_MASK	0x0000001F
500178173Simp#define	PHY_ADDR_MAX	0x1f
501178173Simp#define	SW_PHY_REG_ADDR_MASK	0x00001F00
502178173Simp#define	SW_PHY_REG_ADDR_SHIFT	8
503178173Simp#define	PHY_REG_ADDR_MAX	0x1f
504178173Simp#define	SW_PHY_WRITE	0x00002000
505178173Simp#define	SW_PHY_READ	0x00004000
506178173Simp#define	SW_PHY_WDATA_MASK	0xFFFF0000
507178173Simp#define	SW_PHY_WDATA_SHIFT	16
508178173Simp
509178173Simp
510178173Simp/*	PHY_cntl1_REG	*/
511178173Simp#define	SW_PHY_WRITE_DONE	0x00000001
512178173Simp#define	SW_PHY_READ_DONE	0x00000002
513178173Simp#define	SW_PHY_RDATA_MASK	0xFFFF0000
514178173Simp#define	SW_PHY_RDATA_SHIFT	16
515178173Simp
516178173Simp/*	FC_th_REG	*/
517178173Simp/*	Adj_port_th_REG	*/
518178173Simp/*	Port_th_REG	*/
519178173Simp
520178173Simp/*	PHY_cntl2_REG	*/
521178173Simp#define	SW_PHY_AN_MASK	0x0000001F
522178173Simp#define	SW_PHY_SPD_MASK	0x000003E0
523178173Simp#define	SW_PHY_SPD_SHIFT	5
524178173Simp#define	SW_PHY_DPX_MASK	0x00007C00
525178173Simp#define	SW_PHY_DPX_SHIFT	10
526178173Simp#define	SW_FORCE_FC_MASK	0x000F8000
527178173Simp#define	SW_FORCE_FC_SHIFT	15
528178173Simp#define	SW_PHY_NORMAL_MASK	0x01F00000
529178173Simp#define	SW_PHY_NORMAL_SHIFT	20
530178173Simp#define	SW_PHY_AUTOMDIX_MASK	0x3E000000
531178173Simp#define	SW_PHY_AUTOMDIX_SHIFT	25
532178173Simp#define	SW_PHY_REC_MCCAVERAGE	0x40000000
533178173Simp
534178173Simp
535178173Simp/*	PHY_cntl3_REG	*/
536178173Simp/*	Pri_cntl_REG	*/
537178173Simp/*	VLAN_pri_REG	*/
538178173Simp/*	TOS_en_REG	*/
539178173Simp/*	TOS_map0_REG	*/
540178173Simp/*	TOS_map1_REG	*/
541178173Simp/*	Custom_pri1_REG	*/
542178173Simp/*	Custom_pri2_REG	*/
543178173Simp/*	Empty_cnt_REG	*/
544178173Simp/*	Port_cnt_sel_REG	*/
545178173Simp/*	Port_cnt_REG	*/
546178173Simp
547178173Simp
548178173Simp/*	SW_Int_st_REG	&	SW_Int_mask_REG	*/
549178173Simp#define	SEND_H_DONE_INT	0x0000001
550178173Simp#define	SEND_L_DONE_INT	0x0000002
551178173Simp#define	RX_H_DONE_INT	0x0000004
552178173Simp#define	RX_L_DONE_INT	0x0000008
553178173Simp#define	RX_H_DESC_FULL_INT	0x0000010
554178173Simp#define	RX_L_DESC_FULL_INT	0x0000020
555178173Simp#define	PORT0_QUE_FULL_INT	0x0000040
556178173Simp#define	PORT1_QUE_FULL_INT	0x0000080
557178173Simp#define	PORT2_QUE_FULL_INT	0x0000100
558178173Simp#define	PORT3_QUE_FULL_INT	0x0000200
559178173Simp#define	PORT4_QUE_FULL_INT	0x0000400
560178173Simp#define	PORT5_QUE_FULL_INT	0x0000800
561178173Simp
562178173Simp#define	CPU_QUE_FULL_INT	0x0002000
563178173Simp#define	GLOBAL_QUE_FULL_INT	0x0004000
564178173Simp#define	MUST_DROP_INT	0x0008000
565178173Simp#define	BC_STORM_INT	0x0010000
566178173Simp
567178173Simp#define	PORT_STATUS_CHANGE_INT	0x0040000
568178173Simp#define	INTRUDER_INT	0x0080000
569178173Simp#define	WATCHDOG0_EXPR_INT	0x0100000
570178173Simp#define	WATCHDOG1_EXPR_INT	0x0200000
571178173Simp#define	RX_DESC_ERR_INT	0x0400000
572178173Simp#define	SEND_DESC_ERR_INT	0x0800000
573178173Simp#define	CPU_HOLD_INT	0x1000000
574178173Simp#define	SWITCH_INT_MASK	0x1FDEFFF
575178173Simp
576178173Simp
577178173Simp/*	GPIO_conf0_REG	*/
578178173Simp#define	GPIO0_INPUT_MODE	0x00000001
579178173Simp#define	GPIO1_INPUT_MODE	0x00000002
580178173Simp#define	GPIO2_INPUT_MODE	0x00000004
581178173Simp#define	GPIO3_INPUT_MODE	0x00000008
582178173Simp#define	GPIO4_INPUT_MODE	0x00000010
583178173Simp#define	GPIO5_INPUT_MODE	0x00000020
584178173Simp#define	GPIO6_INPUT_MODE	0x00000040
585178173Simp#define	GPIO7_INPUT_MODE	0x00000080
586178173Simp
587178173Simp#define	GPIO0_OUTPUT_MODE	0
588178173Simp#define	GPIO1_OUTPUT_MODE	0
589178173Simp#define	GPIO2_OUTPUT_MODE	0
590178173Simp#define	GPIO3_OUTPUT_MODE	0
591178173Simp#define	GPIO4_OUTPUT_MODE	0
592178173Simp#define	GPIO5_OUTPUT_MODE	0
593178173Simp#define	GPIO6_OUTPUT_MODE	0
594178173Simp#define	GPIO7_OUTPUT_MODE	0
595178173Simp
596178173Simp#define	GPIO0_INPUT_MASK	0x00000100
597178173Simp#define	GPIO1_INPUT_MASK	0x00000200
598178173Simp#define	GPIO2_INPUT_MASK	0x00000400
599178173Simp#define	GPIO3_INPUT_MASK	0x00000800
600178173Simp#define	GPIO4_INPUT_MASK	0x00001000
601178173Simp#define	GPIO5_INPUT_MASK	0x00002000
602178173Simp#define	GPIO6_INPUT_MASK	0x00004000
603178173Simp#define	GPIO7_INPUT_MASK	0x00008000
604178173Simp
605178173Simp#define	GPIO0_OUTPUT_EN	0x00010000
606178173Simp#define	GPIO1_OUTPUT_EN	0x00020000
607178173Simp#define	GPIO2_OUTPUT_EN	0x00040000
608178173Simp#define	GPIO3_OUTPUT_EN	0x00080000
609178173Simp#define	GPIO4_OUTPUT_EN	0x00100000
610178173Simp#define	GPIO5_OUTPUT_EN	0x00200000
611178173Simp#define	GPIO6_OUTPUT_EN	0x00400000
612178173Simp#define	GPIO7_OUTPUT_EN	0x00800000
613178173Simp
614178173Simp#define	GPIO_CONF0_OUTEN_MASK	0x00ff0000
615178173Simp
616178173Simp#define	GPIO0_OUTPUT_HI	0x01000000
617178173Simp#define	GPIO1_OUTPUT_HI	0x02000000
618178173Simp#define	GPIO2_OUTPUT_HI	0x04000000
619178173Simp#define	GPIO3_OUTPUT_HI	0x08000000
620178173Simp#define	GPIO4_OUTPUT_HI	0x10000000
621178173Simp#define	GPIO5_OUTPUT_HI	0x20000000
622178173Simp#define	GPIO6_OUTPUT_HI	0x40000000
623178173Simp#define	GPIO7_OUTPUT_HI	0x80000000
624178173Simp
625178173Simp#define	GPIO0_OUTPUT_LOW	0
626178173Simp#define	GPIO1_OUTPUT_LOW	0
627178173Simp#define	GPIO2_OUTPUT_LOW	0
628178173Simp#define	GPIO3_OUTPUT_LOW	0
629178173Simp#define	GPIO4_OUTPUT_LOW	0
630178173Simp#define	GPIO5_OUTPUT_LOW	0
631178173Simp#define	GPIO6_OUTPUT_LOW	0
632178173Simp#define	GPIO7_OUTPUT_LOW	0
633178173Simp
634178173Simp
635178173Simp/*	GPIO_conf2_REG	*/
636178173Simp#define	EXTIO_WAIT_EN	(0x1	<<	6)
637178173Simp#define	EXTIO_CS1_INT1_EN	(0x1	<<	5)
638178173Simp#define	EXTIO_CS0_INT0_EN	(0x1	<<	4)
639178173Simp
640178173Simp/*	Timer_int_REG	*/
641178173Simp#define	SW_TIMER_INT_DISABLE	0x10000
642178173Simp#define	SW_TIMER_INT	0x1
643178173Simp
644178173Simp/*	Timer_REG	*/
645178173Simp#define	SW_TIMER_EN	0x10000
646178173Simp#define	SW_TIMER_MASK	0xffff
647178173Simp#define	SW_TIMER_10MS_TICKS	0x3D09
648178173Simp#define	SW_TIMER_1MS_TICKS	0x61A
649178173Simp#define	SW_TIMER_100US_TICKS	0x9D
650178173Simp
651178173Simp
652178173Simp/*	Port0_LED_REG,	Port1_LED_REG,	Port2_LED_REG,	Port3_LED_REG,	Port4_LED_REG*/
653178173Simp#define	GPIOL_INPUT_MODE	0x00
654178173Simp#define	GPIOL_OUTPUT_FLASH	0x01
655178173Simp#define	GPIOL_OUTPUT_LOW	0x02
656178173Simp#define	GPIOL_OUTPUT_HIGH	0x03
657178173Simp#define	GPIOL_LINK_LED	0x04
658178173Simp#define	GPIOL_SPEED_LED	0x05
659178173Simp#define	GPIOL_DUPLEX_LED	0x06
660178173Simp#define	GPIOL_ACT_LED	0x07
661178173Simp#define	GPIOL_COL_LED	0x08
662178173Simp#define	GPIOL_LINK_ACT_LED	0x09
663178173Simp#define	GPIOL_DUPLEX_COL_LED	0x0A
664178173Simp#define	GPIOL_10MLINK_ACT_LED	0x0B
665178173Simp#define	GPIOL_100MLINK_ACT_LED	0x0C
666178173Simp#define	GPIOL_CTRL_MASK	0x0F
667178173Simp
668178173Simp#define	GPIOL_INPUT_MASK	0x7000
669178173Simp#define	GPIOL_INPUT_0_MASK	0x1000
670178173Simp#define	GPIOL_INPUT_1_MASK	0x2000
671178173Simp#define	GPIOL_INPUT_2_MASK	0x4000
672178173Simp
673178173Simp#define	PORT_LED0_SHIFT	0
674178173Simp#define	PORT_LED1_SHIFT	4
675178173Simp#define	PORT_LED2_SHIFT	8
676178173Simp#endif
677178173Simp
678178173Simp#endif /* _IF_ADMSWREG_H_ */
679