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