Back to home page

LXR

 
 

    


File indexing completed on 2025-05-11 08:23:57

0001 /*  $NetBSD: GT64260ethreg.h,v 1.2 2003/03/17 16:41:16 matt Exp $   */
0002 
0003 /*
0004  * Copyright (c) 2002 Allegro Networks, Inc., Wasabi Systems, Inc.
0005  * All rights reserved.
0006  *
0007  * Redistribution and use in source and binary forms, with or without
0008  * modification, are permitted provided that the following conditions
0009  * are met:
0010  * 1. Redistributions of source code must retain the above copyright
0011  *    notice, this list of conditions and the following disclaimer.
0012  * 2. Redistributions in binary form must reproduce the above copyright
0013  *    notice, this list of conditions and the following disclaimer in the
0014  *    documentation and/or other materials provided with the distribution.
0015  * 3. All advertising materials mentioning features or use of this software
0016  *    must display the following acknowledgement:
0017  *      This product includes software developed for the NetBSD Project by
0018  *      Allegro Networks, Inc., and Wasabi Systems, Inc.
0019  * 4. The name of Allegro Networks, Inc. may not be used to endorse
0020  *    or promote products derived from this software without specific prior
0021  *    written permission.
0022  * 5. The name of Wasabi Systems, Inc. may not be used to endorse
0023  *    or promote products derived from this software without specific prior
0024  *    written permission.
0025  *
0026  * THIS SOFTWARE IS PROVIDED BY ALLEGRO NETWORKS, INC. AND
0027  * WASABI SYSTEMS, INC. ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES,
0028  * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY
0029  * AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
0030  * IN NO EVENT SHALL EITHER ALLEGRO NETWORKS, INC. OR WASABI SYSTEMS, INC.
0031  * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
0032  * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
0033  * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
0034  * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
0035  * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
0036  * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
0037  * POSSIBILITY OF SUCH DAMAGE.
0038  */
0039 
0040 #ifndef _DEV_GTETHREG_H_
0041 #define _DEV_GTETHREG_H_
0042 
0043 #define ETH__BIT(bit)           (1U << (bit))
0044 #define ETH__LLBIT(bit)         (1ULL << (bit))
0045 #define ETH__MASK(bit)          (ETH__BIT(bit) - 1)
0046 #define ETH__LLMASK(bit)        (ETH__LLBIT(bit) - 1)
0047 #define ETH__GEN(n, off)        (0x2400+((n) << 10)+(ETH__ ## off))
0048 #define ETH__EXT(data, bit, len)    (((data) >> (bit)) & ETH__MASK(len))
0049 #define ETH__LLEXT(data, bit, len)  (((data) >> (bit)) & ETH__LLMASK(len))
0050 #define ETH__CLR(data, bit, len)    ((data) &= ~(ETH__MASK(len) << (bit)))
0051 #define ETH__INS(new, bit)      ((new) << (bit))
0052 #define ETH__LLINS(new, bit)        ((unsigned long long)(new) << (bit))
0053 
0054 /*
0055  * Descriptors used for both receive & transmit data.  Note that the descriptor
0056  * must start on a 4LW boundary.  Since the GT accesses the descriptor as
0057  * two 64-bit quantities, we must present them 32bit quantities in the right
0058  * order based on endianess.
0059  */
0060 
0061 struct GTeth_desc {
0062 #if defined(BYTE_ORDER) && BYTE_ORDER == BIG_ENDIAN /* for mvme5500 */
0063     unsigned ed_lencnt; /* Buffer size is hi 16 bits; Byte count (rx) is lo 16 */
0064     unsigned ed_cmdsts; /* command (hi16)/status (lo16) bits */
0065     unsigned ed_nxtptr; /* next descriptor (must be 4LW aligned) */
0066     unsigned ed_bufptr; /* pointer to packet buffer */
0067 #endif
0068 #if defined(BYTE_ORDER) && BYTE_ORDER == LITTLE_ENDIAN
0069     unsigned ed_cmdsts; /* command (hi16)/status (lo16) bits */
0070     unsigned ed_lencnt; /* length is hi 16 bits; count (rx) is lo 16 */
0071     unsigned ed_bufptr; /* pointer to packet buffer */
0072     unsigned ed_nxtptr; /* next descriptor (must be 4LW aligned) */
0073 #endif
0074 };
0075 
0076 /* Ethernet 0 address control (Low), Offset: 0xf200 */
0077 #define RxBSnoopEn      ETH__BIT(6)     /* Rx buffer snoop enable,1=enable*/
0078 #define TxBSnoopEn      ETH__BIT(14)    /* Tx buffer snoop enable */
0079 #define RxDSnoopEn      ETH__BIT(22)    /* Rx descriptor snoop enable */
0080 #define TxDSnoopEn      ETH__BIT(30)    /* Tx descriptor snoop enable */
0081 
0082 /* Ethernet 0 address control (High), Offset: 0xf204 */
0083 #define HashSnoopEn     ETH__BIT(6)     /* Hash Table snoop enable */
0084 
0085 /* <skf> */
0086 #define GT_CUU_Eth0_AddrCtrlLow  0xf200
0087 #define GT_CUU_Eth0_AddrCtrlHigh 0xf204
0088 
0089 /* Table 578: Ethernet TX Descriptor - Command/Status word
0090  * All bits except F, EI, AM, O are only valid if TX_CMD_L is also set,
0091  * otherwise should be 0 (tx).
0092  */
0093 
0094 #define TX_STS_LC   ETH__BIT(5) /* Late Collision */
0095 #define TX_STS_UR   ETH__BIT(6) /* Underrun error */
0096 #define TX_STS_RL   ETH__BIT(8) /* Retransmit Limit (excession coll) */
0097 #define TX_STS_COL  ETH__BIT(9) /* Collision Occurred */
0098 #define TX_STS_RC(v)    ETH__GETBITS(v, 10, 4)  /* Retransmit Count */
0099 #define TX_STS_ES   ETH__BIT(15)    /* Error Summary (LC|UR|RL) */
0100 #define TX_CMD_L    ETH__BIT(16)    /* Last - End Of Packet */
0101 #define TX_CMD_F    ETH__BIT(17)    /* First - Start Of Packet */
0102 #define TX_CMD_P    ETH__BIT(18)    /* Pad Packet */
0103 #define TX_CMD_GC   ETH__BIT(22)    /* Generate CRC */
0104 #define TX_CMD_EI   ETH__BIT(23)    /* Enable Interrupt */
0105 #define TX_CMD_AM   ETH__BIT(30)    /* Auto Mode */
0106 #define TX_CMD_O    ETH__BIT(31)    /* Ownership (1=GT 0=CPU) */
0107 
0108 #define TX_CMD_FIRST    (TX_CMD_F|TX_CMD_O)
0109 #define TX_CMD_LAST (TX_CMD_L|TX_CMD_GC|TX_CMD_P|TX_CMD_O)
0110 
0111 /* Table 608: Ethernet RX Descriptor - Command/Status Word
0112  * All bits except F, EI, AM, O are only valid if RX_CMD_L is also set,
0113  * otherwise should be ignored (rx).
0114  */
0115 #define RX_STS_CE   ETH__BIT(0) /* CRC Error */
0116 #define RX_STS_COL  ETH__BIT(1) /* Collision sensed during reception */
0117 #define RX_STS_LC   ETH__BIT(5) /* Late Collision (Reserved) */
0118 #define RX_STS_OR   ETH__BIT(6) /* Overrun Error */
0119 #define RX_STS_MFL  ETH__BIT(7) /* Max Frame Len Error */
0120 #define RX_STS_SF   ETH__BIT(8) /* Short Frame Error (< 64 bytes) */
0121 #define RX_STS_FT   ETH__BIT(11)    /* Frame Type (1 = 802.3) */
0122 #define RX_STS_M    ETH__BIT(12)    /* Missed Frame */
0123 #define RX_STS_HE   ETH__BIT(13)    /* Hash Expired (manual match) */
0124 #define RX_STS_IGMP ETH__BIT(14)    /* IGMP Packet */
0125 #define RX_STS_ES   ETH__BIT(15)    /* Error Summary (CE|COL|LC|OR|MFL|SF) */
0126 #define RX_CMD_L    ETH__BIT(16)    /* Last - End Of Packet */
0127 #define RX_CMD_F    ETH__BIT(17)    /* First - Start Of Packet */
0128 #define RX_CMD_EI   ETH__BIT(23)    /* Enable Interrupt */
0129 #define RX_CMD_AM   ETH__BIT(30)    /* Auto Mode */
0130 #define RX_CMD_O    ETH__BIT(31)    /* Ownership (1=GT 0=CPU) */
0131 
0132 /* Table 586: Hash Table Entry Fields
0133  */
0134 #define HSH_V       ETH__LLBIT(0)   /* Entry is valid */
0135 #define HSH_S       ETH__LLBIT(1)   /* Skip this entry */
0136 #define HSH_RD      ETH__LLBIT(2)   /* Receive(1) / Discard (0) */
0137 #define HSH_R       ETH__LLBIT(2)   /* Receive(1) */
0138 #define HSH_PRIO_GET(v) ETH__LLEXT(v, 51, 2)
0139 #define HSH_PRIO_INS(v) ETH__LLINS(v, 51)
0140 #define HSH_ADDR_MASK   0x7fffff8LLU
0141 #define HSH_LIMIT   12
0142 
0143 
0144 #define ETH_EPAR    0x2000      /* PHY Address Register */
0145 #define ETH_ESMIR   0x2010      /* SMI Register */
0146 
0147 #define ETH_BASE_ETH0   0x2400      /* Ethernet0 Register Base */
0148 #define ETH_BASE_ETH1   0x2800      /* Ethernet1 Register Base */
0149 #define ETH_BASE_ETH2   0x2c00      /* Ethernet2 Register Base */
0150 #define ETH_SIZE    0x0400      /* Register Space */
0151 
0152 #define ETH__EBASE  0x0000      /* Base of Registers */
0153 #define ETH__EPCR   0x0000      /* Port Config. Register */
0154 #define ETH__EPCXR  0x0008      /* Port Config. Extend Reg */
0155 #define ETH__EPCMR  0x0010      /* Port Command Register */
0156 #define ETH__EPSR   0x0018      /* Port Status Register */
0157 #define ETH__ESPR   0x0020      /* Port Serial Parameters Reg */
0158 #define ETH__EHTPR  0x0028      /* Port Hash Table Pointer Reg*/
0159 #define ETH__EFCSAL 0x0030      /* Flow Control Src Addr Low */
0160 #define ETH__EFCSAH 0x0038      /* Flow Control Src Addr High */
0161 #define ETH__ESDCR  0x0040      /* SDMA Configuration Reg */
0162 #define ETH__ESDCMR 0x0048      /* SDMA Command Register */
0163 #define ETH__EICR   0x0050      /* Interrupt Cause Register */
0164 #define ETH__EIMR   0x0058      /* Interrupt Mask Register */
0165 #define ETH__EFRDP0 0x0080      /* First Rx Desc Pointer 0 */
0166 #define ETH__EFRDP1 0x0084      /* First Rx Desc Pointer 1 */
0167 #define ETH__EFRDP2 0x0088      /* First Rx Desc Pointer 2 */
0168 #define ETH__EFRDP3 0x008c      /* First Rx Desc Pointer 3 */
0169 #define ETH__ECRDP0 0x00a0      /* Current Rx Desc Pointer 0 */
0170 #define ETH__ECRDP1 0x00a4      /* Current Rx Desc Pointer 1 */
0171 #define ETH__ECRDP2 0x00a8      /* Current Rx Desc Pointer 2 */
0172 #define ETH__ECRDP3 0x00ac      /* Current Rx Desc Pointer 3 */
0173 #define ETH__ECTDP0 0x00e0      /* Current Tx Desc Pointer 0 */
0174 #define ETH__ECTDP1 0x00e4      /* Current Tx Desc Pointer 1 */
0175 #define ETH__EDSCP2P0L  0x0060      /* IP Differentiated Services
0176                        CodePoint to Priority0 low */
0177 #define ETH__EDSCP2P0H  0x0064      /* IP Differentiated Services
0178                        CodePoint to Priority0 high*/
0179 #define ETH__EDSCP2P1L  0x0068      /* IP Differentiated Services
0180                        CodePoint to Priority1 low */
0181 #define ETH__EDSCP2P1H  0x006c      /* IP Differentiated Services
0182                        CodePoint to Priority1 high*/
0183 #define ETH__EVPT2P 0x0068      /* VLAN Prio. Tag to Priority */
0184 #define ETH__EMIBCTRS   0x0100      /* MIB Counters */
0185 
0186 /* SKF : we are only concerned with the Ethernet0 for the mvme5500 board */
0187 #define ETH0_EBASE  0x2400      /* Base of Registers */
0188 #define ETH0_EPCR   0x2400      /* Port Config. Register */
0189 #define ETH0_EPCXR  0x2408      /* Port Config. Extend Reg */
0190 #define ETH0_EPCMR  0x2410      /* Port Command Register */
0191 #define ETH0_EPSR   0x2418      /* Port Status Register */
0192 #define ETH0_ESPR   0x2420      /* Port Serial Parameters Reg */
0193 #define ETH0_EHTPR  0x2428      /* Port Hash Table Pointer Reg*/
0194 #define ETH0_EFCSAL 0x2430      /* Flow Control Src Addr Low */
0195 #define ETH0_EFCSAH 0x2438      /* Flow Control Src Addr High */
0196 #define ETH0_ESDCR  0x2440      /* SDMA Configuration Reg */
0197 #define ETH0_ESDCMR 0x2448      /* SDMA Command Register */
0198 #define ETH0_EICR   0x2450      /* Interrupt Cause Register */
0199 #define ETH0_EIMR   0x2458      /* Interrupt Mask Register */
0200 #define ETH0_EFRDP0 0x2480      /* First Rx Desc Pointer 0 */
0201 #define ETH0_EFRDP1 0x2484      /* First Rx Desc Pointer 1 */
0202 #define ETH0_EFRDP2 0x2488      /* First Rx Desc Pointer 2 */
0203 #define ETH0_EFRDP3 0x248c      /* First Rx Desc Pointer 3 */
0204 #define ETH0_ECRDP0 0x24a0      /* Current Rx Desc Pointer 0 */
0205 #define ETH0_ECRDP1 0x24a4      /* Current Rx Desc Pointer 1 */
0206 #define ETH0_ECRDP2 0x24a8      /* Current Rx Desc Pointer 2 */
0207 #define ETH0_ECRDP3 0x24ac      /* Current Rx Desc Pointer 3 */
0208 #define ETH0_ECTDP0 0x24e0      /* Current Tx Desc Pointer 0 */
0209 #define ETH0_ECTDP1 0x24e4      /* Current Tx Desc Pointer 1 */
0210 #define ETH0_EDSCP2P0L  0x2460      /* IP Differentiated Services
0211                        CodePoint to Priority0 low */
0212 #define ETH0_EDSCP2P0H  0x2464      /* IP Differentiated Services
0213                        CodePoint to Priority0 high*/
0214 #define ETH0_EDSCP2P1L  0x2468      /* IP Differentiated Services
0215                        CodePoint to Priority1 low */
0216 #define ETH0_EDSCP2P1H  0x246c      /* IP Differentiated Services
0217                        CodePoint to Priority1 high*/
0218 #define ETH0_EVPT2P 0x2468      /* VLAN Prio. Tag to Priority */
0219 #define ETH0_EMIBCTRS   0x2500      /* MIB Counters */
0220 
0221 #define ETH_BASE(n) ETH__GEN(n, EBASE)
0222 #define ETH_EPCR(n) ETH__GEN(n, EPCR)   /* Port Config. Register */
0223 #define ETH_EPCXR(n)    ETH__GEN(n, EPCXR)  /* Port Config. Extend Reg */
0224 #define ETH_EPCMR(n)    ETH__GEN(n, EPCMR)  /* Port Command Register */
0225 #define ETH_EPSR(n) ETH__GEN(n, EPSR)   /* Port Status Register */
0226 #define ETH_ESPR(n) ETH__GEN(n, ESPR)   /* Port Serial Parameters Reg */
0227 #define ETH_EHTPR(n)    ETH__GEN(n, EHPTR)  /* Port Hash Table Pointer Reg*/
0228 #define ETH_EFCSAL(n)   ETH__GEN(n, EFCSAL) /* Flow Control Src Addr Low */
0229 #define ETH_EFCSAH(n)   ETH__GEN(n, EFCSAH) /* Flow Control Src Addr High */
0230 #define ETH_ESDCR(n)    ETH__GEN(n, ESDCR)  /* SDMA Configuration Reg */
0231 #define ETH_ESDCMR(n)   ETH__GEN(n, ESDCMR) /* SDMA Command Register */
0232 #define ETH_EICR(n) ETH__GEN(n, EICR)   /* Interrupt Cause Register */
0233 #define ETH_EIMR(n) ETH__GEN(n, EIMR)   /* Interrupt Mask Register */
0234 #define ETH_EFRDP0(n)   ETH__GEN(n, EFRDP0) /* First Rx Desc Pointer 0 */
0235 #define ETH_EFRDP1(n)   ETH__GEN(n, EFRDP1) /* First Rx Desc Pointer 1 */
0236 #define ETH_EFRDP2(n)   ETH__GEN(n, EFRDP2) /* First Rx Desc Pointer 2 */
0237 #define ETH_EFRDP3(n)   ETH__GEN(n, EFRDP3) /* First Rx Desc Pointer 3 */
0238 #define ETH_ECRDP0(n)   ETH__GEN(n, ECRDP0) /* Current Rx Desc Pointer 0 */
0239 #define ETH_ECRDP1(n)   ETH__GEN(n, ECRDP1) /* Current Rx Desc Pointer 1 */
0240 #define ETH_ECRDP2(n)   ETH__GEN(n, ECRDP2) /* Current Rx Desc Pointer 2 */
0241 #define ETH_ECRDP3(n)   ETH__GEN(n, ECRDP3) /* Current Rx Desc Pointer 3 */
0242 #define ETH_ECTDP0(n)   ETH__GEN(n, ECTDP0) /* Current Tx Desc Pointer 0 */
0243 #define ETH_ECTDP1(n)   ETH__GEN(n, ECTDP1) /* Current Tx Desc Pointer 1 */
0244 #define ETH_EDSCP2P0L(n) ETH__GEN(n, EDSCP2P0L) /* IP Differentiated Services
0245                            CodePoint to Priority0 low */
0246 #define ETH_EDSCP2P0H(n) ETH__GEN(n, EDSCP2P0H) /* IP Differentiated Services
0247                            CodePoint to Priority0 high*/
0248 #define ETH_EDSCP2P1L(n) ETH__GEN(n, EDSCP2P1L) /* IP Differentiated Services
0249                            CodePoint to Priority1 low */
0250 #define ETH_EDSCP2P1H(n) ETH__GEN(n, EDSCP1P1H) /* IP Differentiated Services
0251                            CodePoint to Priority1 high*/
0252 #define ETH_EVPT2P(n)   ETH__GEN(n, EVPT2P) /* VLAN Prio. Tag to Priority */
0253 #define ETH_EMIBCTRS(n) ETH__GEN(n, EMIBCTRS)   /* MIB Counters */
0254 
0255 #define ETH_EPAR_PhyAD_GET(v, n)    (((v) >> ((n) * 5)) & 0x1f)
0256 
0257 #define ETH_ESMIR_READ(phy, reg)    (ETH__INS(phy, 16)|\
0258                      ETH__INS(reg, 21)|\
0259                      ETH_ESMIR_ReadOpcode)
0260 #define ETH_ESMIR_WRITE(phy, reg, val)  (ETH__INS(phy, 16)|\
0261                      ETH__INS(reg, 21)|\
0262                      ETH__INS(val,  0)|\
0263                      ETH_ESMIR_WriteOpcode)
0264 #define ETH_ESMIR_Value_GET(v)      ETH__EXT(v, 0, 16)
0265 #define ETH_ESMIR_WriteOpcode       0
0266 #define ETH_ESMIR_ReadOpcode        ETH__BIT(26)
0267 #define ETH_ESMIR_ReadValid     ETH__BIT(27)
0268 #define ETH_ESMIR_Busy          ETH__BIT(28)
0269 
0270 /*
0271  * Table 597: Port Configuration Register (PCR)
0272  * 00:00 PM         Promiscuous mode
0273  *              0: Normal mode (Frames are only received if the
0274  *                 destination address is found in the hash
0275  *                 table)
0276  *              1: Promiscuous mode (Frames are received
0277  *                 regardless of their destination address.
0278  *                 Errored frames are discarded unless the Port
0279  *                 Configuration register's PBF bit is set)
0280  * 01:01 RBM            Reject Broadcast Mode
0281  *              0: Receive broadcast address
0282  *              1: Reject frames with broadcast address
0283  *              Overridden by the promiscuous mode.
0284  * 02:02 PBF            Pass Bad Frames
0285  *              (0: Normal mode, 1: Pass bad Frames)
0286  *              The Ethernet receiver passes to the CPU errored
0287  *              frames (like fragments and collided packets)
0288  *              that are normally rejected.
0289  *              NOTE: Frames are only passed if they
0290  *                    successfully pass address filtering.
0291  * 06:03 Reserved
0292  * 07:07 EN         Enable (0: Disabled, 1: Enable)
0293  *              When enabled, the ethernet port is ready to
0294  *              transmit/receive.
0295  * 09:08 LPBK           Loop Back Mode
0296  *              00: Normal mode
0297  *              01: Internal loop back mode (TX data is looped
0298  *                  back to the RX lines. No transition is seen
0299  *                  on the interface pins)
0300  *              10: External loop back mode (TX data is looped
0301  *                  back to the RX lines and also transmitted
0302  *                  out to the MII interface pins)
0303  *              11: Reserved
0304  * 10:10 FC         Force Collision
0305  *              0: Normal mode.
0306  *              1: Force Collision on any TX frame.
0307  *                 For RXM test (in Loopback mode).
0308  * 11:11 Reserved.
0309  * 12:12 HS         Hash Size
0310  *              0: 8K address filtering
0311  *                 (256KB of memory space required).
0312  *              1: 512 address filtering
0313  *                 ( 16KB of memory space required).
0314  * 13:13 HM         Hash Mode (0: Hash Func. 0; 1: Hash Func. 1)
0315  * 14:14 HDM            Hash Default Mode
0316  *              0: Discard addresses not found in address table
0317  *              1: Pass addresses not found in address table
0318  * 15:15 HD         Duplex Mode (0: Half Duplex, 1: Full Duplex)
0319  *              NOTE: Valid only when auto-negotiation for
0320  *                    duplex mode is disabled.
0321  * 30:16 Reserved
0322  * 31:31 ACCS           Accelerate Slot Time
0323  *              (0: Normal mode, 1: Reserved)
0324  */
0325 #define ETH_EPCR_PM     ETH__BIT(0)
0326 #define ETH_EPCR_RBM        ETH__BIT(1)
0327 #define ETH_EPCR_PBF        ETH__BIT(2)
0328 #define ETH_EPCR_EN     ETH__BIT(7)
0329 #define ETH_EPCR_LPBK_GET(v)    ETH__BIT(v, 8, 2)
0330 #define ETH_EPCR_LPBK_Normal    0
0331 #define ETH_EPCR_LPBK_Internal  1
0332 #define ETH_EPCR_LPBK_External  2
0333 #define ETH_EPCR_FC     ETH__BIT(10)
0334 
0335 #define ETH_EPCR_HS     ETH__BIT(12)
0336 #define ETH_EPCR_HS_8K      0
0337 #define ETH_EPCR_HS_512     ETH_EPCR_HS
0338 
0339 #define ETH_EPCR_HM     ETH__BIT(13)
0340 #define ETH_EPCR_HM_0       0
0341 #define ETH_EPCR_HM_1       ETH_EPCR_HM
0342 
0343 #define ETH_EPCR_HDM        ETH__BIT(14)
0344 #define ETH_EPCR_HDM_Discard    0
0345 #define ETH_EPCR_HDM_Pass   ETH_EPCR_HDM
0346 
0347 #define ETH_EPCR_HD_Half    0
0348 #define ETH_EPCR_HD_Full    ETH_EPCR_HD_Full
0349 
0350 #define ETH_EPCR_ACCS       ETH__BIT(31)
0351 
0352 
0353 
0354 /*
0355  * Table 598: Port Configuration Extend Register (PCXR)
0356  * 00:00 IGMP           IGMP Packets Capture Enable
0357  *              0: IGMP packets are treated as normal Multicast
0358  *                 packets.
0359  *              1: IGMP packets on IPv4/Ipv6 over Ethernet/802.3
0360  *                 are trapped and sent to high priority RX
0361  *                 queue.
0362  * 01:01 SPAN           Spanning Tree Packets Capture Enable
0363  *              0: BPDU (Bridge Protocol Data Unit) packets are
0364  *                 treated as normal Multicast packets.
0365  *              1: BPDU packets are trapped and sent to high
0366  *                 priority RX queue.
0367  * 02:02 PAR            Partition Enable (0: Normal, 1: Partition)
0368  *              When more than 61 collisions occur while
0369  *              transmitting, the port enters Partition mode.
0370  *              It waits for the first good packet from the
0371  *              wire and then goes back to Normal mode.  Under
0372  *              Partition mode it continues transmitting, but
0373  *              it does not receive.
0374  * 05:03 PRIOtx         Priority weight in the round-robin between high
0375  *              and low priority TX queues.
0376  *              000: 1 pkt from HIGH, 1 pkt from LOW.
0377  *              001: 2 pkt from HIGH, 1 pkt from LOW.
0378  *              010: 4 pkt from HIGH, 1 pkt from LOW.
0379  *              011: 6 pkt from HIGH, 1 pkt from LOW.
0380  *              100: 8 pkt from HIGH, 1 pkt from LOW.
0381  *              101: 10 pkt from HIGH, 1 pkt from LOW.
0382  *              110: 12 pkt from HIGH, 1 pkt from LOW.
0383  *              111: All pkt from HIGH, 0 pkt from LOW. LOW is
0384  *                   served only if HIGH is empty.
0385  *              NOTE: If the HIGH queue is emptied before
0386  *                    finishing the count, the count is reset
0387  *                    until the next first HIGH comes in.
0388  * 07:06 PRIOrx         Default Priority for Packets Received on this
0389  *              Port (00: Lowest priority, 11: Highest priority)
0390  * 08:08 PRIOrx_Override    Override Priority for Packets Received on this
0391  *              Port (0: Do not override, 1: Override with
0392  *              <PRIOrx> field)
0393  * 09:09 DPLXen         Enable Auto-negotiation for Duplex Mode
0394  *              (0: Enable, 1: Disable)
0395  * 11:10 FCTLen         Enable Auto-negotiation for 802.3x Flow-control
0396  *              0: Enable; When enabled, 1 is written (through
0397  *                 SMI access) to the PHY's register 4 bit 10
0398  *                 to advertise flow-control capability.
0399  *              1: Disable; Only enables flow control after the
0400  *                 PHY address is set by the CPU. When changing
0401  *                 the PHY address the flow control
0402  *                 auto-negotiation must be disabled.
0403  * 11:11 FLP            Force Link Pass
0404  *              (0: Force Link Pass, 1: Do NOT Force Link pass)
0405  * 12:12 FCTL           802.3x Flow-Control Mode (0: Enable, 1: Disable)
0406  *              NOTE: Only valid when auto negotiation for flow
0407  *                    control is disabled.
0408  * 13:13 Reserved
0409  * 15:14 MFL            Max Frame Length
0410  *              Maximum packet allowed for reception (including
0411  *              CRC):   00: 1518 bytes,   01: 1536 bytes,
0412  *                  10: 2048 bytes,   11:  64K bytes
0413  * 16:16 MIBclrMode     MIB Counters Clear Mode (0: Clear, 1: No effect)
0414  * 17:17 MIBctrMode     Reserved. (MBZ)
0415  * 18:18 Speed          Port Speed (0: 10Mbit/Sec, 1: 100Mbit/Sec)
0416  *              NOTE: Only valid if SpeedEn bit is set.
0417  * 19:19 SpeedEn        Enable Auto-negotiation for Speed
0418  *              (0: Enable, 1: Disable)
0419  * 20:20 RMIIen         RMII enable
0420  *              0: Port functions as MII port
0421  *              1: Port functions as RMII port
0422  * 21:21 DSCPen         DSCP enable
0423  *              0: IP DSCP field decoding is disabled.
0424  *              1: IP DSCP field decoding is enabled.
0425  * 31:22 Reserved
0426  */
0427 #define ETH_EPCXR_IGMP          ETH__BIT(0)
0428 #define ETH_EPCXR_SPAN          ETH__BIT(1)
0429 #define ETH_EPCXR_PAR           ETH__BIT(2)
0430 #define ETH_EPCXR_PRIOtx_GET(v)     ETH__EXT(v, 3, 3)
0431 #define ETH_EPCXR_PRIOrx_GET(v)     ETH__EXT(v, 3, 3)
0432 #define ETH_EPCXR_PRIOrx_Override   ETH__BIT(8)
0433 #define ETH_EPCXR_DLPXen        ETH__BIT(9)
0434 #define ETH_EPCXR_FCTLen        ETH__BIT(10)
0435 #define ETH_EPCXR_FLP           ETH__BIT(11)
0436 #define ETH_EPCXR_FCTL          ETH__BIT(12)
0437 #define ETH_EPCXR_MFL_GET(v)        ETH__EXT(v, 14, 2)
0438 #define ETH_EPCXR_MFL_1518      0
0439 #define ETH_EPCXR_MFL_1536      1
0440 #define ETH_EPCXR_MFL_2048      2
0441 #define ETH_EPCXR_MFL_64K       3
0442 #define ETH_EPCXR_MIBclrMode        ETH__BIT(16)
0443 #define ETH_EPCXR_MIBctrMode        ETH__BIT(17)
0444 #define ETH_EPCXR_Speed         ETH__BIT(18)
0445 #define ETH_EPCXR_SpeedEn       ETH__BIT(19)
0446 #define ETH_EPCXR_RMIIEn        ETH__BIT(20)
0447 #define ETH_EPCXR_DSCPEn        ETH__BIT(21)
0448 
0449 
0450 
0451 /*
0452  * Table 599: Port Command Register (PCMR)
0453  * 14:00 Reserved
0454  * 15:15 FJ         Force Jam / Flow Control
0455  *              When in half-duplex mode, the CPU uses this bit
0456  *              to force collisions on the Ethernet segment.
0457  *              When the CPU recognizes that it is going to run
0458  *              out of receive buffers, it can force the
0459  *              transmitter to send jam frames, forcing
0460  *              collisions on the wire.  To allow transmission
0461  *              on the Ethernet segment, the CPU must clear the
0462  *              FJ bit when more resources are available.  When
0463  *              in full-duplex and flow-control is enabled, this
0464  *              bit causes the port's transmitter to send
0465  *              flow-control PAUSE packets. The CPU must reset
0466  *              this bit when more resources are available.
0467  * 31:16 Reserved
0468  */
0469 
0470 #define ETH_EPCMR_FJ        ETH__BIT(15)
0471 
0472 
0473 /*
0474  * Table 600: Port Status Register (PSR) -- Read Only
0475  * 00:00 Speed          Indicates Port Speed (0: 10Mbs, 1: 100Mbs)
0476  * 01:01 Duplex         Indicates Port Duplex Mode (0: Half, 1: Full)
0477  * 02:02 Fctl           Indicates Flow-control Mode
0478  *              (0: enabled, 1: disabled)
0479  * 03:03 Link           Indicates Link Status (0: down, 1: up)
0480  * 04:04 Pause          Indicates that the port is in flow-control
0481  *              disabled state.  This bit is set when an IEEE
0482  *              802.3x flow-control PAUSE (XOFF) packet is
0483  *              received (assuming that flow-control is
0484  *              enabled and the port is in full-duplex mode).
0485  *              Reset when XON is received, or when the XOFF
0486  *              timer has expired.
0487  * 05:05 TxLow          Tx Low Priority Status
0488  *              Indicates the status of the low priority
0489  *              transmit queue: (0: Stopped, 1: Running)
0490  * 06:06 TxHigh         Tx High Priority Status
0491  *              Indicates the status of the high priority
0492  *              transmit queue: (0: Stopped, 1: Running)
0493  * 07:07 TXinProg       TX in Progress
0494  *              Indicates that the port's transmitter is in an
0495  *              active transmission state.
0496  * 31:08 Reserved
0497  */
0498 #define ETH_EPSR_Speed      ETH__BIT(0)
0499 #define ETH_EPSR_Duplex     ETH__BIT(1)
0500 #define ETH_EPSR_Fctl       ETH__BIT(2)
0501 #define ETH_EPSR_Link       ETH__BIT(3)
0502 #define ETH_EPSR_Pause      ETH__BIT(4)
0503 #define ETH_EPSR_TxLow      ETH__BIT(5)
0504 #define ETH_EPSR_TxHigh     ETH__BIT(6)
0505 #define ETH_EPSR_TXinProg   ETH__BIT(7)
0506 
0507 
0508 /*
0509  * Table 601: Serial Parameters Register (SPR)
0510  * 01:00 JAM_LENGTH     Two bits to determine the JAM Length
0511  *              (in Backpressure) as follows:
0512  *                  00 = 12K bit-times
0513  *                  01 = 24K bit-times
0514  *                  10 = 32K bit-times
0515  *                  11 = 48K bit-times
0516  * 06:02 JAM_IPG        Five bits to determine the JAM IPG.
0517  *              The step is four bit-times. The value may vary
0518  *              between 4 bit time to 124.
0519  * 11:07 IPG_JAM_TO_DATA    Five bits to determine the IPG JAM to DATA.
0520  *              The step is four bit-times. The value may vary
0521  *              between 4 bit time to 124.
0522  * 16:12 IPG_DATA       Inter-Packet Gap (IPG)
0523  *              The step is four bit-times. The value may vary
0524  *              between 12 bit time to 124.
0525  *              NOTE: These bits may be changed only when the
0526  *                    Ethernet ports is disabled.
0527  * 21:17 Data_Blind     Data Blinder
0528  *              The number of nibbles from the beginning of the
0529  *              IPG, in which the IPG counter is restarted when
0530  *              detecting a carrier activity.  Following this
0531  *              value, the port enters the Data Blinder zone and
0532  *              does not reset the IPG counter. This ensures
0533  *              fair access to the medium.
0534  *              The default is 10 hex (64 bit times - 2/3 of the
0535  *              default IPG).  The step is 4 bit-times. Valid
0536  *              range is 3 to 1F hex nibbles.
0537  *              NOTE: These bits may be only changed when the
0538  *                    Ethernet port is disabled.
0539  * 22:22 Limit4         The number of consecutive packet collisions that
0540  *              occur before the collision counter is reset.
0541  *                0: The port resets its collision counter after
0542  *                   16 consecutive retransmit trials and
0543  *                   restarts the Backoff algorithm.
0544  *                1: The port resets its collision counter and
0545  *                   restarts the Backoff algorithm after 4
0546  *                   consecutive transmit trials.
0547  * 31:23 Reserved
0548  */
0549 #define ETH_ESPR_JAM_LENGTH_GET(v)  ETH__EXT(v, 0, 2)
0550 #define ETH_ESPR_JAM_IPG_GET(v)     ETH__EXT(v, 2, 5)
0551 #define ETH_ESPR_IPG_JAM_TO_DATA_GET(v) ETH__EXT(v, 7, 5)
0552 #define ETH_ESPR_IPG_DATA_GET(v)    ETH__EXT(v, 12, 5)
0553 #define ETH_ESPR_Data_Bilnd_GET(v)  ETH__EXT(v, 17, 5)
0554 #define ETH_ESPR_Limit4(v)      ETH__BIT(22)
0555 
0556 /*
0557  * Table 602: Hash Table Pointer Register (HTPR)
0558  * 31:00 HTP            32-bit pointer to the address table.
0559  *              Bits [2:0] must be set to zero.
0560  */
0561 
0562 /*
0563  * Table 603: Flow Control Source Address Low (FCSAL)
0564  * 15:0 SA[15:0]        Source Address
0565  *              The least significant bits of the source
0566  *              address for the port.  This address is used for
0567  *              Flow Control.
0568  * 31:16 Reserved
0569  */
0570 
0571 /*
0572  * Table 604: Flow Control Source Address High (FCSAH)
0573  * 31:0 SA[47:16]       Source Address
0574  *              The most significant bits of the source address
0575  *              for the port.  This address is used for Flow
0576  *              Control.
0577  */
0578 
0579 
0580 /*
0581  * Table 605: SDMA Configuration Register (SDCR)
0582  * 01:00 Reserved
0583  * 05:02 RC         Retransmit Count
0584  *              Sets the maximum number of retransmits per
0585  *              packet.  After executing retransmit for RC
0586  *              times, the TX SDMA closes the descriptor with a
0587  *              Retransmit Limit error indication and processes
0588  *              the next packet.  When RC is set to 0, the
0589  *              number of retransmits is unlimited. In this
0590  *              case, the retransmit process is only terminated
0591  *              if CPU issues an Abort command.
0592  * 06:06 BLMR           Big/Little Endian Receive Mode
0593  *              The DMA supports Big or Little Endian
0594  *              configurations on a per channel basis. The BLMR
0595  *              bit only affects data transfer to memory.
0596  *                  0: Big Endian
0597  *                  1: Little Endian
0598  * 07:07 BLMT           Big/Little Endian Transmit Mode
0599  *              The DMA supports Big or Little Endian
0600  *              configurations on a per channel basis. The BLMT
0601  *              bit only affects data transfer from memory.
0602  *                  0: Big Endian
0603  *                  1: Little Endian
0604  * 08:08 POVR           PCI Override
0605  *              When set, causes the SDMA to direct all its
0606  *              accesses in PCI_0 direction and overrides
0607  *              normal address decoding process.
0608  * 09:09 RIFB           Receive Interrupt on Frame Boundaries
0609  *              When set, the SDMA Rx generates interrupts only
0610  *              on frame boundaries (i.e. after writing the
0611  *              frame status to the descriptor).
0612  * 11:10 Reserved
0613  * 13:12 BSZ            Burst Size
0614  *              Sets the maximum burst size for SDMA
0615  *              transactions:
0616  *                  00: Burst is limited to 1 64bit words.
0617  *                  01: Burst is limited to 2 64bit words.
0618  *                  10: Burst is limited to 4 64bit words.
0619  *                  11: Burst is limited to 8 64bit words.
0620  * 31:14 Reserved
0621  */
0622 #define ETH_ESDCR_RC_GET(v)     ETH__EXT(v, 2, 4)
0623 #define ETH_ESDCR_BLMR          ETH__BIT(6)
0624 #define ETH_ESDCR_BLMT          ETH__BIT(7)
0625 #define ETH_ESDCR_POVR          ETH__BIT(8)
0626 #define ETH_ESDCR_RIFB          ETH__BIT(9)
0627 #define ETH_ESDCR_BSZ_GET(v)        ETH__EXT(v, 12, 2)
0628 #define ETH_ESDCR_BSZ_SET(v, n)     (ETH__CLR(v, 12, 2),\
0629                      (v) |= ETH__INS(n, 12))
0630 #define ETH_ESDCR_BSZ_1         0
0631 #define ETH_ESDCR_BSZ_2         1
0632 #define ETH_ESDCR_BSZ_4         2
0633 #define ETH_ESDCR_BSZ_8         3
0634 
0635 #define ETH_ESDCR_BSZ_Strings       { "1 64-bit word", "2 64-bit words", \
0636                       "4 64-bit words", "8 64-bit words" }
0637 
0638 /*
0639  * Table 606: SDMA Command Register (SDCMR)
0640  * 06:00 Reserved
0641  * 07:07 ERD            Enable RX DMA.
0642  *              Set to 1 by the CPU to cause the SDMA to start
0643  *              a receive process.  Cleared when the CPU issues
0644  *              an Abort Receive command.
0645  * 14:08 Reserved
0646  * 15:15 AR         Abort Receive
0647  *              Set to 1 by the CPU to abort a receive SDMA
0648  *              operation.  When the AR bit is set, the SDMA
0649  *              aborts its current operation and moves to IDLE.
0650  *              No descriptor is closed.  The AR bit is cleared
0651  *              upon entering IDLE.  After setting the AR bit,
0652  *              the CPU must poll the bit to verify that the
0653  *              abort sequence is completed.
0654  * 16:16 STDH           Stop TX High
0655  *              Set to 1 by the CPU to stop the transmission
0656  *              process from the high priority queue at the end
0657  *              of the current frame. An interrupt is generated
0658  *              when the stop command has been executed.
0659  *                Writing 1 to STDH resets TXDH bit.
0660  *                Writing 0 to this bit has no effect.
0661  * 17:17 STDL           Stop TX Low
0662  *              Set to 1 by the CPU to stop the transmission
0663  *              process from the low priority queue at the end
0664  *              of the current frame. An interrupt is generated
0665  *              when the stop command has been executed.
0666  *                Writing 1 to STDL resets TXDL bit.
0667  *                Writing 0 to this bit has no effect.
0668  * 22:18 Reserved
0669  * 23:23 TXDH           Start Tx High
0670  *              Set to 1 by the CPU to cause the SDMA to fetch
0671  *              the first descriptor and start a transmit
0672  *              process from the high priority Tx queue.
0673  *                Writing 1 to TXDH resets STDH bit.
0674  *                Writing 0 to this bit has no effect.
0675  * 24:24 TXDL           Start Tx Low
0676  *              Set to 1 by the CPU to cause the SDMA to fetch
0677  *              the first descriptor and start a transmit
0678  *              process from the low priority Tx queue.
0679  *                Writing 1 to TXDL resets STDL bit.
0680  *                Writing 0 to this bit has no effect.
0681  * 30:25 Reserved
0682  * 31:31 AT         Abort Transmit
0683  *              Set to 1 by the CPU to abort a transmit DMA
0684  *              operation.  When the AT bit is set, the SDMA
0685  *              aborts its current operation and moves to IDLE.
0686  *              No descriptor is closed.  Cleared upon entering
0687  *              IDLE.  After setting AT bit, the CPU must poll
0688  *              it in order to verify that the abort sequence
0689  *              is completed.
0690  */
0691 #define ETH_ESDCMR_ERD          ETH__BIT(7)
0692 #define ETH_ESDCMR_AR           ETH__BIT(15)
0693 #define ETH_ESDCMR_STDH         ETH__BIT(16)
0694 #define ETH_ESDCMR_STDL         ETH__BIT(17)
0695 #define ETH_ESDCMR_TXDH         ETH__BIT(23)
0696 #define ETH_ESDCMR_TXDL         ETH__BIT(24)
0697 #define ETH_ESDCMR_AT           ETH__BIT(31)
0698 
0699 /*
0700  * Table 607: Interrupt Cause Register (ICR)
0701  * 00:00 RxBuffer       Rx Buffer Return
0702  *              Indicates an Rx buffer returned to CPU ownership
0703  *              or that the port finished reception of a Rx
0704  *              frame in either priority queues.
0705  *              NOTE: In order to get a Rx Buffer return per
0706  *                    priority queue, use bit 19:16. This bit is
0707  *                    set upon closing any Rx descriptor which
0708  *                    has its EI bit set. To limit the
0709  *                    interrupts to frame (rather than buffer)
0710  *                    boundaries, the user must set SDMA
0711  *                    Configuration register's RIFB bit. When
0712  *                    the RIFB bit is set, an interrupt
0713  *                    generates only upon closing the first
0714  *                    descriptor of a received packet, if this
0715  *                    descriptor has it EI bit set.
0716  * 01:01 Reserved
0717  * 02:02 TxBufferHigh       Tx Buffer for High priority Queue
0718  *              Indicates a Tx buffer returned to CPU ownership
0719  *              or that the port finished transmission of a Tx
0720  *              frame.
0721  *              NOTE: This bit is set upon closing any Tx
0722  *                    descriptor which has its EI bit set. To
0723  *                    limit the interrupts to frame (rather than
0724  *                    buffer) boundaries, the user must set EI
0725  *                    only in the last descriptor.
0726  * 03:03 TxBufferLow        Tx Buffer for Low Priority Queue
0727  *              Indicates a Tx buffer returned to CPU ownership
0728  *              or that the port finished transmission of a Tx
0729  *              frame.
0730  *              NOTE: This bit is set upon closing any Tx
0731  *                    descriptor which has its EI bit set. To
0732  *                    limit the interrupts to frame (rather than
0733  *                    buffer) boundaries, the user must set EI
0734  *                    only in the last descriptor.
0735  * 05:04 Reserved
0736  * 06:06 TxEndHigh      Tx End for High Priority Queue
0737  *              Indicates that the Tx DMA stopped processing the
0738  *              high priority queue after stop command, or that
0739  *              it reached the end of the high priority
0740  *              descriptor chain.
0741  * 07:07 TxEndLow       Tx End for Low Priority Queue
0742  *              Indicates that the Tx DMA stopped processing the
0743  *              low priority queue after stop command, or that
0744  *              it reached the end of the low priority
0745  *              descriptor chain.
0746  * 08:08 RxError        Rx Resource Error
0747  *              Indicates a Rx resource error event in one of
0748  *              the priority queues.
0749  *              NOTE: To get a Rx Resource Error Indication per
0750  *                    priority queue, use bit 23:20.
0751  * 09:09 Reserved
0752  * 10:10 TxErrorHigh        Tx Resource Error for High Priority Queue
0753  *              Indicates a Tx resource error event during
0754  *              packet transmission from the high priority queue
0755  * 11:11 TxErrorLow     Tx Resource Error for Low Priority Queue
0756  *              Indicates a Tx resource error event during
0757  *              packet transmission from the low priority queue
0758  * 12:12 RxOVR          Rx Overrun
0759  *              Indicates an overrun event that occurred during
0760  *              reception of a packet.
0761  * 13:13 TxUdr          Tx Underrun
0762  *              Indicates an underrun event that occurred during
0763  *              transmission of packet from either queue.
0764  * 15:14 Reserved
0765  * 16:16 RxBuffer-Queue[0]  Rx Buffer Return in Priority Queue[0]
0766  *              Indicates a Rx buffer returned to CPU ownership
0767  *              or that the port completed reception of a Rx
0768  *              frame in a receive priority queue[0]
0769  * 17:17 RxBuffer-Queue[1]  Rx Buffer Return in Priority Queue[1]
0770  *              Indicates a Rx buffer returned to CPU ownership
0771  *              or that the port completed reception of a Rx
0772  *              frame in a receive priority queue[1].
0773  * 18:18 RxBuffer-Queue[2]  Rx Buffer Return in Priority Queue[2]
0774  *              Indicates a Rx buffer returned to CPU ownership
0775  *              or that the port completed reception of a Rx
0776  *              frame in a receive priority queue[2].
0777  * 19:19 RxBuffer-Queue[3]  Rx Buffer Return in Priority Queue[3]
0778  *              Indicates a Rx buffer returned to CPU ownership
0779  *              or that the port completed reception of a Rx
0780  *              frame in a receive priority queue[3].
0781  * 20:20 RxError-Queue[0]   Rx Resource Error in Priority Queue[0]
0782  *              Indicates a Rx resource error event in receive
0783  *              priority queue[0].
0784  * 21:21 RxError-Queue[1]   Rx Resource Error in Priority Queue[1]
0785  *              Indicates a Rx resource error event in receive
0786  *              priority queue[1].
0787  * 22:22 RxError-Queue[2]   Rx Resource Error in Priority Queue[2]
0788  *              Indicates a Rx resource error event in receive
0789  *              priority queue[2].
0790  * 23:23 RxError-Queue[3]   Rx Resource Error in Priority Queue[3]
0791  *              Indicates a Rx resource error event in receive
0792  *              priority queue[3].
0793  * 27:24 Reserved
0794  * 28:29 MIIPhySTC      MII PHY Status Change
0795  *              Indicates a status change reported by the PHY
0796  *              connected to this port.  Set when the MII
0797  *              management interface block identifies a change
0798  *              in PHY's register 1.
0799  * 29:29 SMIdone        SMI Command Done
0800  *              Indicates that the SMI completed a MII
0801  *              management command (either read or write) that
0802  *              was initiated by the CPU writing to the SMI
0803  *              register.
0804  * 30:30 Reserved
0805  * 31:31 EtherIntSum        Ethernet Interrupt Summary
0806  *              This bit is a logical OR of the (unmasked) bits
0807  *              [30:04] in the Interrupt Cause register.
0808  */
0809 
0810 #define ETH_IR_RxBuffer     ETH__BIT(0)
0811 #define ETH_IR_TxBufferHigh ETH__BIT(2)
0812 #define ETH_IR_TxBufferLow  ETH__BIT(3)
0813 #define ETH_IR_TxEndHigh    ETH__BIT(6)
0814 #define ETH_IR_TxEndLow     ETH__BIT(7)
0815 #define ETH_IR_RxError      ETH__BIT(8)
0816 #define ETH_IR_TxErrorHigh  ETH__BIT(10)
0817 #define ETH_IR_TxErrorLow   ETH__BIT(11)
0818 #define ETH_IR_RxOVR        ETH__BIT(12)
0819 #define ETH_IR_TxUdr        ETH__BIT(13)
0820 #define ETH_IR_RxBuffer_0   ETH__BIT(16)
0821 #define ETH_IR_RxBuffer_1   ETH__BIT(17)
0822 #define ETH_IR_RxBuffer_2   ETH__BIT(18)
0823 #define ETH_IR_RxBuffer_3   ETH__BIT(19)
0824 #define ETH_IR_RxBuffer_GET(v)  ETH__EXT(v, 16, 4)
0825 #define ETH_IR_RxError_0    ETH__BIT(20)
0826 #define ETH_IR_RxError_1    ETH__BIT(21)
0827 #define ETH_IR_RxError_2    ETH__BIT(22)
0828 #define ETH_IR_RxError_3    ETH__BIT(23)
0829 #define ETH_IR_RxError_GET(v)   ETH__EXT(v, 20, 4)
0830 #define ETH_IR_RxBits       (ETH_IR_RxBuffer_0|\
0831                  ETH_IR_RxBuffer_1|\
0832                  ETH_IR_RxBuffer_2|\
0833                  ETH_IR_RxBuffer_3|\
0834                  ETH_IR_RxError_0|\
0835                  ETH_IR_RxError_1|\
0836                  ETH_IR_RxError_2|\
0837                  ETH_IR_RxError_3)
0838 #define ETH_IR_MIIPhySTC     ETH__BIT(28)
0839 #define ETH_IR_SMIdone       ETH__BIT(29)
0840 #define ETH_IR_EtherIntSum   (1<<31)
0841 #define ETH_IR_Summary       (1<<31)
0842 #define ETH_IR_ErrorSum          0x803d00
0843 #define INTR_RX_ERROR            0x801100
0844 #define INTR_TX_ERROR            0x002c00
0845 
0846 /*
0847  * Table 608: Interrupt Mask Register (IMR)
0848  * 31:00 Various        Mask bits for the Interrupt Cause register.
0849  */
0850 
0851 /*
0852  * Table 609: IP Differentiated Services CodePoint to Priority0 low (DSCP2P0L),
0853  * 31:00 Priority0_low      The LSB priority bits for DSCP[31:0] entries.
0854  */
0855 
0856 /*
0857  * Table 610: IP Differentiated Services CodePoint to Priority0 high (DSCP2P0H)
0858  * 31:00 Priority0_high     The LSB priority bits for DSCP[63:32] entries.
0859  */
0860 
0861 /*
0862  * Table 611: IP Differentiated Services CodePoint to Priority1 low (DSCP2P1L)
0863  * 31:00 Priority1_low      The MSB priority bits for DSCP[31:0] entries.
0864  */
0865 
0866 /*
0867  * Table 612: IP Differentiated Services CodePoint to Priority1 high (DSCP2P1H)
0868  * 31:00 Priority1_high     The MSB priority bit for DSCP[63:32] entries.
0869  */
0870 
0871 /*
0872  * Table 613: VLAN Priority Tag to Priority (VPT2P)
0873  * 07:00 Priority0      The LSB priority bits for VLAN Priority[7:0]
0874  *              entries.
0875  * 15:08 Priority1      The MSB priority bits for VLAN Priority[7:0]
0876  *              entries.
0877  * 31:16 Reserved
0878  */
0879 #endif /* _DEV_GTETHREG_H_ */