Home | History | Annotate | Line # | Download | only in dev
      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