Home | History | Annotate | Line # | Download | only in include
sb1250_mac.h revision 1.5.106.1
      1        1.1  simonb /*  *********************************************************************
      2        1.1  simonb     *  SB1250 Board Support Package
      3        1.2  simonb     *
      4        1.1  simonb     *  MAC constants and macros			File: sb1250_mac.h
      5        1.2  simonb     *
      6        1.1  simonb     *  This module contains constants and macros for the SB1250's
      7        1.1  simonb     *  ethernet controllers.
      8        1.2  simonb     *
      9        1.2  simonb     *  SB1250 specification level:  User's manual 1/02/02
     10        1.2  simonb     *
     11        1.2  simonb     *********************************************************************
     12        1.1  simonb     *
     13  1.5.106.1    yamt     *  Copyright 2000,2001,2002,2003,2004
     14        1.1  simonb     *  Broadcom Corporation. All rights reserved.
     15        1.2  simonb     *
     16        1.2  simonb     *  This software is furnished under license and may be used and
     17        1.2  simonb     *  copied only in accordance with the following terms and
     18        1.2  simonb     *  conditions.  Subject to these conditions, you may download,
     19        1.2  simonb     *  copy, install, use, modify and distribute modified or unmodified
     20        1.2  simonb     *  copies of this software in source and/or binary form.  No title
     21        1.1  simonb     *  or ownership is transferred hereby.
     22        1.2  simonb     *
     23        1.2  simonb     *  1) Any source code used, modified or distributed must reproduce
     24        1.4     cgd     *     and retain this copyright notice and list of conditions
     25        1.4     cgd     *     as they appear in the source file.
     26        1.2  simonb     *
     27        1.2  simonb     *  2) No right is granted to use any trade name, trademark, or
     28        1.4     cgd     *     logo of Broadcom Corporation.  The "Broadcom Corporation"
     29        1.4     cgd     *     name may not be used to endorse or promote products derived
     30        1.4     cgd     *     from this software without the prior written permission of
     31        1.4     cgd     *     Broadcom Corporation.
     32        1.2  simonb     *
     33        1.1  simonb     *  3) THIS SOFTWARE IS PROVIDED "AS-IS" AND ANY EXPRESS OR
     34        1.4     cgd     *     IMPLIED WARRANTIES, INCLUDING BUT NOT LIMITED TO, ANY IMPLIED
     35        1.2  simonb     *     WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR
     36        1.2  simonb     *     PURPOSE, OR NON-INFRINGEMENT ARE DISCLAIMED. IN NO EVENT
     37        1.2  simonb     *     SHALL BROADCOM BE LIABLE FOR ANY DAMAGES WHATSOEVER, AND IN
     38        1.4     cgd     *     PARTICULAR, BROADCOM SHALL NOT BE LIABLE FOR DIRECT, INDIRECT,
     39        1.2  simonb     *     INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
     40        1.4     cgd     *     (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE
     41        1.1  simonb     *     GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
     42        1.2  simonb     *     BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
     43        1.2  simonb     *     OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR
     44        1.2  simonb     *     TORT (INCLUDING NEGLIGENCE OR OTHERWISE), EVEN IF ADVISED OF
     45        1.1  simonb     *     THE POSSIBILITY OF SUCH DAMAGE.
     46        1.1  simonb     ********************************************************************* */
     47        1.1  simonb 
     48        1.1  simonb 
     49        1.1  simonb #ifndef _SB1250_MAC_H
     50        1.2  simonb #define _SB1250_MAC_H
     51        1.1  simonb 
     52        1.1  simonb #include "sb1250_defs.h"
     53        1.1  simonb 
     54        1.1  simonb /*  *********************************************************************
     55        1.1  simonb     *  Ethernet MAC Registers
     56        1.1  simonb     ********************************************************************* */
     57        1.1  simonb 
     58        1.1  simonb /*
     59        1.1  simonb  * MAC Configuration Register (Table 9-13)
     60        1.1  simonb  * Register: MAC_CFG_0
     61        1.1  simonb  * Register: MAC_CFG_1
     62        1.1  simonb  * Register: MAC_CFG_2
     63        1.1  simonb  */
     64        1.1  simonb 
     65        1.1  simonb 
     66        1.2  simonb #define M_MAC_RESERVED0             _SB_MAKEMASK1(0)
     67        1.2  simonb #define M_MAC_TX_HOLD_SOP_EN        _SB_MAKEMASK1(1)
     68        1.2  simonb #define M_MAC_RETRY_EN              _SB_MAKEMASK1(2)
     69        1.2  simonb #define M_MAC_RET_DRPREQ_EN         _SB_MAKEMASK1(3)
     70        1.2  simonb #define M_MAC_RET_UFL_EN            _SB_MAKEMASK1(4)
     71        1.2  simonb #define M_MAC_BURST_EN              _SB_MAKEMASK1(5)
     72        1.2  simonb 
     73        1.2  simonb #define S_MAC_TX_PAUSE              _SB_MAKE64(6)
     74        1.2  simonb #define M_MAC_TX_PAUSE_CNT          _SB_MAKEMASK(3,S_MAC_TX_PAUSE)
     75        1.2  simonb #define V_MAC_TX_PAUSE_CNT(x)       _SB_MAKEVALUE(x,S_MAC_TX_PAUSE)
     76        1.2  simonb 
     77        1.2  simonb #define K_MAC_TX_PAUSE_CNT_512      0
     78        1.2  simonb #define K_MAC_TX_PAUSE_CNT_1K       1
     79        1.2  simonb #define K_MAC_TX_PAUSE_CNT_2K       2
     80        1.2  simonb #define K_MAC_TX_PAUSE_CNT_4K       3
     81        1.2  simonb #define K_MAC_TX_PAUSE_CNT_8K       4
     82        1.2  simonb #define K_MAC_TX_PAUSE_CNT_16K      5
     83        1.2  simonb #define K_MAC_TX_PAUSE_CNT_32K      6
     84        1.2  simonb #define K_MAC_TX_PAUSE_CNT_64K      7
     85        1.2  simonb 
     86        1.2  simonb #define V_MAC_TX_PAUSE_CNT_512      V_MAC_TX_PAUSE_CNT(K_MAC_TX_PAUSE_CNT_512)
     87        1.2  simonb #define V_MAC_TX_PAUSE_CNT_1K       V_MAC_TX_PAUSE_CNT(K_MAC_TX_PAUSE_CNT_1K)
     88        1.2  simonb #define V_MAC_TX_PAUSE_CNT_2K       V_MAC_TX_PAUSE_CNT(K_MAC_TX_PAUSE_CNT_2K)
     89        1.2  simonb #define V_MAC_TX_PAUSE_CNT_4K       V_MAC_TX_PAUSE_CNT(K_MAC_TX_PAUSE_CNT_4K)
     90        1.2  simonb #define V_MAC_TX_PAUSE_CNT_8K       V_MAC_TX_PAUSE_CNT(K_MAC_TX_PAUSE_CNT_8K)
     91        1.2  simonb #define V_MAC_TX_PAUSE_CNT_16K      V_MAC_TX_PAUSE_CNT(K_MAC_TX_PAUSE_CNT_16K)
     92        1.2  simonb #define V_MAC_TX_PAUSE_CNT_32K      V_MAC_TX_PAUSE_CNT(K_MAC_TX_PAUSE_CNT_32K)
     93        1.2  simonb #define V_MAC_TX_PAUSE_CNT_64K      V_MAC_TX_PAUSE_CNT(K_MAC_TX_PAUSE_CNT_64K)
     94        1.2  simonb 
     95        1.2  simonb #define M_MAC_RESERVED1             _SB_MAKEMASK(8,9)
     96        1.2  simonb 
     97        1.2  simonb #define M_MAC_AP_STAT_EN            _SB_MAKEMASK1(17)
     98        1.5     cgd 
     99  1.5.106.1    yamt #if SIBYTE_HDR_FEATURE_CHIP(1480)
    100        1.5     cgd #define M_MAC_TIMESTAMP		    _SB_MAKEMASK1(18)
    101        1.5     cgd #endif
    102        1.2  simonb #define M_MAC_DRP_ERRPKT_EN         _SB_MAKEMASK1(19)
    103        1.2  simonb #define M_MAC_DRP_FCSERRPKT_EN      _SB_MAKEMASK1(20)
    104        1.2  simonb #define M_MAC_DRP_CODEERRPKT_EN     _SB_MAKEMASK1(21)
    105        1.2  simonb #define M_MAC_DRP_DRBLERRPKT_EN     _SB_MAKEMASK1(22)
    106        1.2  simonb #define M_MAC_DRP_RNTPKT_EN         _SB_MAKEMASK1(23)
    107        1.2  simonb #define M_MAC_DRP_OSZPKT_EN         _SB_MAKEMASK1(24)
    108        1.2  simonb #define M_MAC_DRP_LENERRPKT_EN      _SB_MAKEMASK1(25)
    109        1.2  simonb 
    110        1.2  simonb #define M_MAC_RESERVED3             _SB_MAKEMASK(6,26)
    111        1.2  simonb 
    112        1.2  simonb #define M_MAC_BYPASS_SEL            _SB_MAKEMASK1(32)
    113        1.2  simonb #define M_MAC_HDX_EN                _SB_MAKEMASK1(33)
    114        1.2  simonb 
    115        1.2  simonb #define S_MAC_SPEED_SEL             _SB_MAKE64(34)
    116        1.2  simonb #define M_MAC_SPEED_SEL             _SB_MAKEMASK(2,S_MAC_SPEED_SEL)
    117        1.2  simonb #define V_MAC_SPEED_SEL(x)	    _SB_MAKEVALUE(x,S_MAC_SPEED_SEL)
    118        1.2  simonb #define G_MAC_SPEED_SEL(x)	    _SB_GETVALUE(x,S_MAC_SPEED_SEL,M_MAC_SPEED_SEL)
    119        1.2  simonb 
    120        1.2  simonb #define K_MAC_SPEED_SEL_10MBPS      0
    121        1.2  simonb #define K_MAC_SPEED_SEL_100MBPS     1
    122        1.2  simonb #define K_MAC_SPEED_SEL_1000MBPS    2
    123        1.2  simonb #define K_MAC_SPEED_SEL_RESERVED    3
    124        1.2  simonb 
    125        1.2  simonb #define V_MAC_SPEED_SEL_10MBPS      V_MAC_SPEED_SEL(K_MAC_SPEED_SEL_10MBPS)
    126        1.2  simonb #define V_MAC_SPEED_SEL_100MBPS     V_MAC_SPEED_SEL(K_MAC_SPEED_SEL_100MBPS)
    127        1.2  simonb #define V_MAC_SPEED_SEL_1000MBPS    V_MAC_SPEED_SEL(K_MAC_SPEED_SEL_1000MBPS)
    128        1.2  simonb #define V_MAC_SPEED_SEL_RESERVED    V_MAC_SPEED_SEL(K_MAC_SPEED_SEL_RESERVED)
    129        1.2  simonb 
    130        1.2  simonb #define M_MAC_TX_CLK_EDGE_SEL       _SB_MAKEMASK1(36)
    131        1.2  simonb #define M_MAC_LOOPBACK_SEL          _SB_MAKEMASK1(37)
    132        1.2  simonb #define M_MAC_FAST_SYNC             _SB_MAKEMASK1(38)
    133        1.2  simonb #define M_MAC_SS_EN                 _SB_MAKEMASK1(39)
    134        1.2  simonb 
    135        1.2  simonb #define S_MAC_BYPASS_CFG	    _SB_MAKE64(40)
    136        1.2  simonb #define M_MAC_BYPASS_CFG            _SB_MAKEMASK(2,S_MAC_BYPASS_CFG)
    137        1.2  simonb #define V_MAC_BYPASS_CFG(x)         _SB_MAKEVALUE(x,S_MAC_BYPASS_CFG)
    138        1.2  simonb #define G_MAC_BYPASS_CFG(x)         _SB_GETVALUE(x,S_MAC_BYPASS_CFG,M_MAC_BYPASS_CFG)
    139        1.2  simonb 
    140        1.2  simonb #define K_MAC_BYPASS_GMII	    0
    141        1.2  simonb #define K_MAC_BYPASS_ENCODED        1
    142        1.2  simonb #define K_MAC_BYPASS_SOP            2
    143        1.2  simonb #define K_MAC_BYPASS_EOP            3
    144        1.2  simonb 
    145        1.2  simonb #define M_MAC_BYPASS_16             _SB_MAKEMASK1(42)
    146        1.2  simonb #define M_MAC_BYPASS_FCS_CHK	    _SB_MAKEMASK1(43)
    147        1.2  simonb 
    148  1.5.106.1    yamt #if SIBYTE_HDR_FEATURE(1250, PASS2) || SIBYTE_HDR_FEATURE(112x, PASS1) || SIBYTE_HDR_FEATURE_CHIP(1480)
    149        1.3     cgd #define M_MAC_RX_CH_SEL_MSB	    _SB_MAKEMASK1(44)
    150  1.5.106.1    yamt #endif /* 1250 PASS2 || 112x PASS1 || 1480*/
    151        1.3     cgd 
    152  1.5.106.1    yamt #if SIBYTE_HDR_FEATURE(1250, PASS3) || SIBYTE_HDR_FEATURE(112x, PASS1) || SIBYTE_HDR_FEATURE_CHIP(1480)
    153        1.3     cgd #define M_MAC_SPLIT_CH_SEL	    _SB_MAKEMASK1(45)
    154  1.5.106.1    yamt #endif /* 1250 PASS3 || 112x PASS1 || 1480 */
    155        1.2  simonb 
    156        1.2  simonb #define S_MAC_BYPASS_IFG            _SB_MAKE64(46)
    157        1.2  simonb #define M_MAC_BYPASS_IFG            _SB_MAKEMASK(8,S_MAC_BYPASS_IFG)
    158        1.2  simonb #define V_MAC_BYPASS_IFG(x)	    _SB_MAKEVALUE(x,S_MAC_BYPASS_IFG)
    159        1.2  simonb #define G_MAC_BYPASS_IFG(x)	    _SB_GETVALUE(x,S_MAC_BYPASS_IFG,M_MAC_BYPASS_IFG)
    160        1.2  simonb 
    161        1.2  simonb #define K_MAC_FC_CMD_DISABLED       0
    162        1.2  simonb #define K_MAC_FC_CMD_ENABLED        1
    163        1.2  simonb #define K_MAC_FC_CMD_ENAB_FALSECARR 2
    164        1.2  simonb 
    165        1.2  simonb #define V_MAC_FC_CMD_DISABLED       V_MAC_FC_CMD(K_MAC_FC_CMD_DISABLED)
    166        1.2  simonb #define V_MAC_FC_CMD_ENABLED        V_MAC_FC_CMD(K_MAC_FC_CMD_ENABLED)
    167        1.2  simonb #define V_MAC_FC_CMD_ENAB_FALSECARR V_MAC_FC_CMD(K_MAC_FC_CMD_ENAB_FALSECARR)
    168        1.2  simonb 
    169        1.2  simonb #define M_MAC_FC_SEL                _SB_MAKEMASK1(54)
    170        1.2  simonb 
    171        1.2  simonb #define S_MAC_FC_CMD                _SB_MAKE64(55)
    172        1.2  simonb #define M_MAC_FC_CMD                _SB_MAKEMASK(2,S_MAC_FC_CMD)
    173        1.2  simonb #define V_MAC_FC_CMD(x)	            _SB_MAKEVALUE(x,S_MAC_FC_CMD)
    174        1.2  simonb #define G_MAC_FC_CMD(x)	            _SB_GETVALUE(x,S_MAC_FC_CMD,M_MAC_FC_CMD)
    175        1.2  simonb 
    176        1.2  simonb #define S_MAC_RX_CH_SEL             _SB_MAKE64(57)
    177        1.2  simonb #define M_MAC_RX_CH_SEL             _SB_MAKEMASK(7,S_MAC_RX_CH_SEL)
    178        1.2  simonb #define V_MAC_RX_CH_SEL(x)          _SB_MAKEVALUE(x,S_MAC_RX_CH_SEL)
    179        1.2  simonb #define G_MAC_RX_CH_SEL(x)          _SB_GETVALUE(x,S_MAC_RX_CH_SEL,M_MAC_RX_CH_SEL)
    180        1.1  simonb 
    181        1.1  simonb 
    182        1.1  simonb /*
    183        1.1  simonb  * MAC Enable Registers
    184        1.1  simonb  * Register: MAC_ENABLE_0
    185        1.1  simonb  * Register: MAC_ENABLE_1
    186        1.1  simonb  * Register: MAC_ENABLE_2
    187        1.1  simonb  */
    188        1.1  simonb 
    189        1.2  simonb #define M_MAC_RXDMA_EN0	            _SB_MAKEMASK1(0)
    190        1.2  simonb #define M_MAC_RXDMA_EN1	            _SB_MAKEMASK1(1)
    191        1.2  simonb #define M_MAC_TXDMA_EN0	            _SB_MAKEMASK1(4)
    192        1.2  simonb #define M_MAC_TXDMA_EN1	            _SB_MAKEMASK1(5)
    193        1.2  simonb 
    194        1.2  simonb #define M_MAC_PORT_RESET            _SB_MAKEMASK1(8)
    195        1.2  simonb 
    196        1.5     cgd #if (SIBYTE_HDR_FEATURE_CHIP(1250) || SIBYTE_HDR_FEATURE_CHIP(112x))
    197        1.2  simonb #define M_MAC_RX_ENABLE             _SB_MAKEMASK1(10)
    198        1.2  simonb #define M_MAC_TX_ENABLE             _SB_MAKEMASK1(11)
    199        1.2  simonb #define M_MAC_BYP_RX_ENABLE         _SB_MAKEMASK1(12)
    200        1.2  simonb #define M_MAC_BYP_TX_ENABLE         _SB_MAKEMASK1(13)
    201        1.5     cgd #endif
    202        1.5     cgd 
    203        1.5     cgd /*
    204        1.5     cgd  * MAC reset information register (1280/1255)
    205        1.5     cgd  */
    206  1.5.106.1    yamt #if SIBYTE_HDR_FEATURE_CHIP(1480)
    207        1.5     cgd #define M_MAC_RX_CH0_PAUSE_ON	_SB_MAKEMASK1(8)
    208        1.5     cgd #define M_MAC_RX_CH1_PAUSE_ON	_SB_MAKEMASK1(16)
    209        1.5     cgd #define M_MAC_TX_CH0_PAUSE_ON	_SB_MAKEMASK1(24)
    210        1.5     cgd #define M_MAC_TX_CH1_PAUSE_ON	_SB_MAKEMASK1(32)
    211        1.5     cgd #endif
    212        1.1  simonb 
    213        1.1  simonb /*
    214        1.1  simonb  * MAC DMA Control Register
    215        1.1  simonb  * Register: MAC_TXD_CTL_0
    216        1.1  simonb  * Register: MAC_TXD_CTL_1
    217        1.1  simonb  * Register: MAC_TXD_CTL_2
    218        1.1  simonb  */
    219        1.1  simonb 
    220        1.2  simonb #define S_MAC_TXD_WEIGHT0	    _SB_MAKE64(0)
    221        1.2  simonb #define M_MAC_TXD_WEIGHT0	    _SB_MAKEMASK(4,S_MAC_TXD_WEIGHT0)
    222        1.2  simonb #define V_MAC_TXD_WEIGHT0(x)        _SB_MAKEVALUE(x,S_MAC_TXD_WEIGHT0)
    223        1.2  simonb #define G_MAC_TXD_WEIGHT0(x)        _SB_GETVALUE(x,S_MAC_TXD_WEIGHT0,M_MAC_TXD_WEIGHT0)
    224        1.2  simonb 
    225        1.2  simonb #define S_MAC_TXD_WEIGHT1	    _SB_MAKE64(4)
    226        1.2  simonb #define M_MAC_TXD_WEIGHT1	    _SB_MAKEMASK(4,S_MAC_TXD_WEIGHT1)
    227        1.2  simonb #define V_MAC_TXD_WEIGHT1(x)        _SB_MAKEVALUE(x,S_MAC_TXD_WEIGHT1)
    228        1.2  simonb #define G_MAC_TXD_WEIGHT1(x)        _SB_GETVALUE(x,S_MAC_TXD_WEIGHT1,M_MAC_TXD_WEIGHT1)
    229        1.1  simonb 
    230        1.1  simonb /*
    231        1.1  simonb  * MAC Fifo Threshhold registers (Table 9-14)
    232        1.1  simonb  * Register: MAC_THRSH_CFG_0
    233        1.1  simonb  * Register: MAC_THRSH_CFG_1
    234        1.1  simonb  * Register: MAC_THRSH_CFG_2
    235        1.1  simonb  */
    236        1.1  simonb 
    237        1.2  simonb #define S_MAC_TX_WR_THRSH           _SB_MAKE64(0)
    238        1.3     cgd #if SIBYTE_HDR_FEATURE_UP_TO(1250, PASS1)
    239        1.3     cgd /* XXX: Can't enable, as it has the same name as a pass2+ define below.  */
    240        1.3     cgd /* #define M_MAC_TX_WR_THRSH           _SB_MAKEMASK(6,S_MAC_TX_WR_THRSH) */
    241        1.3     cgd #endif /* up to 1250 PASS1 */
    242  1.5.106.1    yamt #if SIBYTE_HDR_FEATURE(1250, PASS2) || SIBYTE_HDR_FEATURE(112x, PASS1) || SIBYTE_HDR_FEATURE_CHIP(1480)
    243        1.3     cgd #define M_MAC_TX_WR_THRSH           _SB_MAKEMASK(7,S_MAC_TX_WR_THRSH)
    244  1.5.106.1    yamt #endif /* 1250 PASS2 || 112x PASS1 || 1480 */
    245        1.2  simonb #define V_MAC_TX_WR_THRSH(x)        _SB_MAKEVALUE(x,S_MAC_TX_WR_THRSH)
    246        1.2  simonb #define G_MAC_TX_WR_THRSH(x)        _SB_GETVALUE(x,S_MAC_TX_WR_THRSH,M_MAC_TX_WR_THRSH)
    247        1.2  simonb 
    248        1.2  simonb #define S_MAC_TX_RD_THRSH           _SB_MAKE64(8)
    249        1.3     cgd #if SIBYTE_HDR_FEATURE_UP_TO(1250, PASS1)
    250        1.3     cgd /* XXX: Can't enable, as it has the same name as a pass2+ define below.  */
    251        1.3     cgd /* #define M_MAC_TX_RD_THRSH           _SB_MAKEMASK(6,S_MAC_TX_RD_THRSH) */
    252        1.3     cgd #endif /* up to 1250 PASS1 */
    253  1.5.106.1    yamt #if SIBYTE_HDR_FEATURE(1250, PASS2) || SIBYTE_HDR_FEATURE(112x, PASS1) || SIBYTE_HDR_FEATURE_CHIP(1480)
    254        1.3     cgd #define M_MAC_TX_RD_THRSH           _SB_MAKEMASK(7,S_MAC_TX_RD_THRSH)
    255  1.5.106.1    yamt #endif /* 1250 PASS2 || 112x PASS1 || 1480 */
    256        1.2  simonb #define V_MAC_TX_RD_THRSH(x)        _SB_MAKEVALUE(x,S_MAC_TX_RD_THRSH)
    257        1.2  simonb #define G_MAC_TX_RD_THRSH(x)        _SB_GETVALUE(x,S_MAC_TX_RD_THRSH,M_MAC_TX_RD_THRSH)
    258        1.2  simonb 
    259        1.2  simonb #define S_MAC_TX_RL_THRSH           _SB_MAKE64(16)
    260        1.2  simonb #define M_MAC_TX_RL_THRSH           _SB_MAKEMASK(4,S_MAC_TX_RL_THRSH)
    261        1.2  simonb #define V_MAC_TX_RL_THRSH(x)        _SB_MAKEVALUE(x,S_MAC_TX_RL_THRSH)
    262        1.2  simonb #define G_MAC_TX_RL_THRSH(x)        _SB_GETVALUE(x,S_MAC_TX_RL_THRSH,M_MAC_TX_RL_THRSH)
    263        1.2  simonb 
    264        1.2  simonb #define S_MAC_RX_PL_THRSH           _SB_MAKE64(24)
    265        1.2  simonb #define M_MAC_RX_PL_THRSH           _SB_MAKEMASK(6,S_MAC_RX_PL_THRSH)
    266        1.2  simonb #define V_MAC_RX_PL_THRSH(x)        _SB_MAKEVALUE(x,S_MAC_RX_PL_THRSH)
    267        1.2  simonb #define G_MAC_RX_PL_THRSH(x)        _SB_GETVALUE(x,S_MAC_RX_PL_THRSH,M_MAC_RX_PL_THRSH)
    268        1.2  simonb 
    269        1.2  simonb #define S_MAC_RX_RD_THRSH           _SB_MAKE64(32)
    270        1.2  simonb #define M_MAC_RX_RD_THRSH           _SB_MAKEMASK(6,S_MAC_RX_RD_THRSH)
    271        1.2  simonb #define V_MAC_RX_RD_THRSH(x)        _SB_MAKEVALUE(x,S_MAC_RX_RD_THRSH)
    272        1.2  simonb #define G_MAC_RX_RD_THRSH(x)        _SB_GETVALUE(x,S_MAC_RX_RD_THRSH,M_MAC_RX_RD_THRSH)
    273        1.2  simonb 
    274        1.2  simonb #define S_MAC_RX_RL_THRSH           _SB_MAKE64(40)
    275        1.2  simonb #define M_MAC_RX_RL_THRSH           _SB_MAKEMASK(6,S_MAC_RX_RL_THRSH)
    276        1.2  simonb #define V_MAC_RX_RL_THRSH(x)        _SB_MAKEVALUE(x,S_MAC_RX_RL_THRSH)
    277        1.2  simonb #define G_MAC_RX_RL_THRSH(x)        _SB_GETVALUE(x,S_MAC_RX_RL_THRSH,M_MAC_RX_RL_THRSH)
    278        1.2  simonb 
    279  1.5.106.1    yamt #if SIBYTE_HDR_FEATURE(1250, PASS2) || SIBYTE_HDR_FEATURE(112x, PASS1) || SIBYTE_HDR_FEATURE_CHIP(1480)
    280        1.3     cgd #define S_MAC_ENC_FC_THRSH           _SB_MAKE64(56)
    281        1.3     cgd #define M_MAC_ENC_FC_THRSH           _SB_MAKEMASK(6,S_MAC_ENC_FC_THRSH)
    282        1.3     cgd #define V_MAC_ENC_FC_THRSH(x)        _SB_MAKEVALUE(x,S_MAC_ENC_FC_THRSH)
    283        1.3     cgd #define G_MAC_ENC_FC_THRSH(x)        _SB_GETVALUE(x,S_MAC_ENC_FC_THRSH,M_MAC_ENC_FC_THRSH)
    284  1.5.106.1    yamt #endif /* 1250 PASS2 || 112x PASS1 || 1480 */
    285        1.1  simonb 
    286        1.1  simonb /*
    287        1.1  simonb  * MAC Frame Configuration Registers (Table 9-15)
    288        1.1  simonb  * Register: MAC_FRAME_CFG_0
    289        1.1  simonb  * Register: MAC_FRAME_CFG_1
    290        1.1  simonb  * Register: MAC_FRAME_CFG_2
    291        1.1  simonb  */
    292        1.1  simonb 
    293        1.3     cgd /* XXXCGD: ??? Unused in pass2? */
    294        1.2  simonb #define S_MAC_IFG_RX                _SB_MAKE64(0)
    295        1.2  simonb #define M_MAC_IFG_RX                _SB_MAKEMASK(6,S_MAC_IFG_RX)
    296        1.2  simonb #define V_MAC_IFG_RX(x)             _SB_MAKEVALUE(x,S_MAC_IFG_RX)
    297        1.2  simonb #define G_MAC_IFG_RX(x)             _SB_GETVALUE(x,S_MAC_IFG_RX,M_MAC_IFG_RX)
    298        1.2  simonb 
    299  1.5.106.1    yamt #if SIBYTE_HDR_FEATURE(1250, PASS3) || SIBYTE_HDR_FEATURE(112x, PASS1) || SIBYTE_HDR_FEATURE_CHIP(1480)
    300        1.3     cgd #define S_MAC_PRE_LEN               _SB_MAKE64(0)
    301        1.3     cgd #define M_MAC_PRE_LEN               _SB_MAKEMASK(6,S_MAC_PRE_LEN)
    302        1.3     cgd #define V_MAC_PRE_LEN(x)            _SB_MAKEVALUE(x,S_MAC_PRE_LEN)
    303        1.3     cgd #define G_MAC_PRE_LEN(x)            _SB_GETVALUE(x,S_MAC_PRE_LEN,M_MAC_PRE_LEN)
    304  1.5.106.1    yamt #endif /* 1250 PASS3 || 112x PASS1 || 1480 */
    305        1.3     cgd 
    306        1.2  simonb #define S_MAC_IFG_TX                _SB_MAKE64(6)
    307        1.2  simonb #define M_MAC_IFG_TX                _SB_MAKEMASK(6,S_MAC_IFG_TX)
    308        1.2  simonb #define V_MAC_IFG_TX(x)             _SB_MAKEVALUE(x,S_MAC_IFG_TX)
    309        1.2  simonb #define G_MAC_IFG_TX(x)             _SB_GETVALUE(x,S_MAC_IFG_TX,M_MAC_IFG_TX)
    310        1.2  simonb 
    311        1.2  simonb #define S_MAC_IFG_THRSH             _SB_MAKE64(12)
    312        1.2  simonb #define M_MAC_IFG_THRSH             _SB_MAKEMASK(6,S_MAC_IFG_THRSH)
    313        1.2  simonb #define V_MAC_IFG_THRSH(x)          _SB_MAKEVALUE(x,S_MAC_IFG_THRSH)
    314        1.2  simonb #define G_MAC_IFG_THRSH(x)          _SB_GETVALUE(x,S_MAC_IFG_THRSH,M_MAC_IFG_THRSH)
    315        1.2  simonb 
    316        1.2  simonb #define S_MAC_BACKOFF_SEL           _SB_MAKE64(18)
    317        1.2  simonb #define M_MAC_BACKOFF_SEL           _SB_MAKEMASK(4,S_MAC_BACKOFF_SEL)
    318        1.2  simonb #define V_MAC_BACKOFF_SEL(x)        _SB_MAKEVALUE(x,S_MAC_BACKOFF_SEL)
    319        1.2  simonb #define G_MAC_BACKOFF_SEL(x)        _SB_GETVALUE(x,S_MAC_BACKOFF_SEL,M_MAC_BACKOFF_SEL)
    320        1.2  simonb 
    321        1.2  simonb #define S_MAC_LFSR_SEED             _SB_MAKE64(22)
    322        1.2  simonb #define M_MAC_LFSR_SEED             _SB_MAKEMASK(8,S_MAC_LFSR_SEED)
    323        1.2  simonb #define V_MAC_LFSR_SEED(x)          _SB_MAKEVALUE(x,S_MAC_LFSR_SEED)
    324        1.2  simonb #define G_MAC_LFSR_SEED(x)          _SB_GETVALUE(x,S_MAC_LFSR_SEED,M_MAC_LFSR_SEED)
    325        1.2  simonb 
    326        1.2  simonb #define S_MAC_SLOT_SIZE             _SB_MAKE64(30)
    327        1.2  simonb #define M_MAC_SLOT_SIZE             _SB_MAKEMASK(10,S_MAC_SLOT_SIZE)
    328        1.2  simonb #define V_MAC_SLOT_SIZE(x)          _SB_MAKEVALUE(x,S_MAC_SLOT_SIZE)
    329        1.2  simonb #define G_MAC_SLOT_SIZE(x)          _SB_GETVALUE(x,S_MAC_SLOT_SIZE,M_MAC_SLOT_SIZE)
    330        1.2  simonb 
    331        1.2  simonb #define S_MAC_MIN_FRAMESZ           _SB_MAKE64(40)
    332        1.2  simonb #define M_MAC_MIN_FRAMESZ           _SB_MAKEMASK(8,S_MAC_MIN_FRAMESZ)
    333        1.2  simonb #define V_MAC_MIN_FRAMESZ(x)        _SB_MAKEVALUE(x,S_MAC_MIN_FRAMESZ)
    334        1.2  simonb #define G_MAC_MIN_FRAMESZ(x)        _SB_GETVALUE(x,S_MAC_MIN_FRAMESZ,M_MAC_MIN_FRAMESZ)
    335        1.2  simonb 
    336        1.2  simonb #define S_MAC_MAX_FRAMESZ           _SB_MAKE64(48)
    337        1.2  simonb #define M_MAC_MAX_FRAMESZ           _SB_MAKEMASK(16,S_MAC_MAX_FRAMESZ)
    338        1.2  simonb #define V_MAC_MAX_FRAMESZ(x)        _SB_MAKEVALUE(x,S_MAC_MAX_FRAMESZ)
    339        1.2  simonb #define G_MAC_MAX_FRAMESZ(x)        _SB_GETVALUE(x,S_MAC_MAX_FRAMESZ,M_MAC_MAX_FRAMESZ)
    340        1.1  simonb 
    341        1.1  simonb /*
    342        1.1  simonb  * These constants are used to configure the fields within the Frame
    343        1.2  simonb  * Configuration Register.
    344        1.1  simonb  */
    345        1.1  simonb 
    346        1.2  simonb #define K_MAC_IFG_RX_10             _SB_MAKE64(0)	/* See table 176, not used */
    347        1.2  simonb #define K_MAC_IFG_RX_100            _SB_MAKE64(0)
    348        1.2  simonb #define K_MAC_IFG_RX_1000           _SB_MAKE64(0)
    349        1.1  simonb 
    350        1.2  simonb #define K_MAC_IFG_TX_10             _SB_MAKE64(20)
    351        1.2  simonb #define K_MAC_IFG_TX_100            _SB_MAKE64(20)
    352        1.2  simonb #define K_MAC_IFG_TX_1000           _SB_MAKE64(8)
    353        1.1  simonb 
    354        1.2  simonb #define K_MAC_IFG_THRSH_10          _SB_MAKE64(4)
    355        1.2  simonb #define K_MAC_IFG_THRSH_100         _SB_MAKE64(4)
    356        1.2  simonb #define K_MAC_IFG_THRSH_1000        _SB_MAKE64(0)
    357        1.1  simonb 
    358        1.2  simonb #define K_MAC_SLOT_SIZE_10          _SB_MAKE64(0)
    359        1.2  simonb #define K_MAC_SLOT_SIZE_100         _SB_MAKE64(0)
    360        1.2  simonb #define K_MAC_SLOT_SIZE_1000        _SB_MAKE64(0)
    361        1.1  simonb 
    362        1.2  simonb #define V_MAC_IFG_RX_10        V_MAC_IFG_RX(K_MAC_IFG_RX_10)
    363        1.2  simonb #define V_MAC_IFG_RX_100       V_MAC_IFG_RX(K_MAC_IFG_RX_100)
    364        1.2  simonb #define V_MAC_IFG_RX_1000      V_MAC_IFG_RX(K_MAC_IFG_RX_1000)
    365        1.1  simonb 
    366        1.2  simonb #define V_MAC_IFG_TX_10        V_MAC_IFG_TX(K_MAC_IFG_TX_10)
    367        1.2  simonb #define V_MAC_IFG_TX_100       V_MAC_IFG_TX(K_MAC_IFG_TX_100)
    368        1.2  simonb #define V_MAC_IFG_TX_1000      V_MAC_IFG_TX(K_MAC_IFG_TX_1000)
    369        1.1  simonb 
    370        1.2  simonb #define V_MAC_IFG_THRSH_10     V_MAC_IFG_THRSH(K_MAC_IFG_THRSH_10)
    371        1.2  simonb #define V_MAC_IFG_THRSH_100    V_MAC_IFG_THRSH(K_MAC_IFG_THRSH_100)
    372        1.2  simonb #define V_MAC_IFG_THRSH_1000   V_MAC_IFG_THRSH(K_MAC_IFG_THRSH_1000)
    373        1.1  simonb 
    374        1.2  simonb #define V_MAC_SLOT_SIZE_10     V_MAC_SLOT_SIZE(K_MAC_SLOT_SIZE_10)
    375        1.2  simonb #define V_MAC_SLOT_SIZE_100    V_MAC_SLOT_SIZE(K_MAC_SLOT_SIZE_100)
    376        1.2  simonb #define V_MAC_SLOT_SIZE_1000   V_MAC_SLOT_SIZE(K_MAC_SLOT_SIZE_1000)
    377        1.1  simonb 
    378        1.3     cgd #define K_MAC_MIN_FRAMESZ_FIFO      _SB_MAKE64(9)
    379        1.2  simonb #define K_MAC_MIN_FRAMESZ_DEFAULT   _SB_MAKE64(64)
    380        1.2  simonb #define K_MAC_MAX_FRAMESZ_DEFAULT   _SB_MAKE64(1518)
    381        1.2  simonb #define K_MAC_MAX_FRAMESZ_JUMBO     _SB_MAKE64(9216)
    382        1.1  simonb 
    383        1.3     cgd #define V_MAC_MIN_FRAMESZ_FIFO      V_MAC_MIN_FRAMESZ(K_MAC_MIN_FRAMESZ_FIFO)
    384        1.2  simonb #define V_MAC_MIN_FRAMESZ_DEFAULT   V_MAC_MIN_FRAMESZ(K_MAC_MIN_FRAMESZ_DEFAULT)
    385        1.2  simonb #define V_MAC_MAX_FRAMESZ_DEFAULT   V_MAC_MAX_FRAMESZ(K_MAC_MAX_FRAMESZ_DEFAULT)
    386        1.2  simonb #define V_MAC_MAX_FRAMESZ_JUMBO     V_MAC_MAX_FRAMESZ(K_MAC_MAX_FRAMESZ_JUMBO)
    387        1.1  simonb 
    388        1.1  simonb /*
    389        1.1  simonb  * MAC VLAN Tag Registers (Table 9-16)
    390        1.1  simonb  * Register: MAC_VLANTAG_0
    391        1.1  simonb  * Register: MAC_VLANTAG_1
    392        1.1  simonb  * Register: MAC_VLANTAG_2
    393        1.1  simonb  */
    394        1.1  simonb 
    395        1.3     cgd #define S_MAC_VLAN_TAG           _SB_MAKE64(0)
    396        1.3     cgd #define M_MAC_VLAN_TAG           _SB_MAKEMASK(32,S_MAC_VLAN_TAG)
    397        1.3     cgd #define V_MAC_VLAN_TAG(x)        _SB_MAKEVALUE(x,S_MAC_VLAN_TAG)
    398        1.3     cgd #define G_MAC_VLAN_TAG(x)        _SB_GETVALUE(x,S_MAC_VLAN_TAG,M_MAC_VLAN_TAG)
    399        1.3     cgd 
    400        1.5     cgd #if SIBYTE_HDR_FEATURE(1250, PASS3) || SIBYTE_HDR_FEATURE(112x, PASS1)
    401        1.3     cgd #define S_MAC_TX_PKT_OFFSET      _SB_MAKE64(32)
    402        1.3     cgd #define M_MAC_TX_PKT_OFFSET      _SB_MAKEMASK(8,S_MAC_TX_PKT_OFFSET)
    403        1.3     cgd #define V_MAC_TX_PKT_OFFSET(x)   _SB_MAKEVALUE(x,S_MAC_TX_PKT_OFFSET)
    404        1.3     cgd #define G_MAC_TX_PKT_OFFSET(x)   _SB_GETVALUE(x,S_MAC_TX_PKT_OFFSET,M_MAC_TX_PKT_OFFSET)
    405        1.3     cgd 
    406        1.3     cgd #define S_MAC_TX_CRC_OFFSET      _SB_MAKE64(40)
    407        1.3     cgd #define M_MAC_TX_CRC_OFFSET      _SB_MAKEMASK(8,S_MAC_TX_CRC_OFFSET)
    408        1.3     cgd #define V_MAC_TX_CRC_OFFSET(x)   _SB_MAKEVALUE(x,S_MAC_TX_CRC_OFFSET)
    409        1.3     cgd #define G_MAC_TX_CRC_OFFSET(x)   _SB_GETVALUE(x,S_MAC_TX_CRC_OFFSET,M_MAC_TX_CRC_OFFSET)
    410        1.3     cgd 
    411        1.3     cgd #define M_MAC_CH_BASE_FC_EN      _SB_MAKEMASK1(48)
    412        1.5     cgd #endif /* 1250 PASS3 || 112x PASS1 */
    413        1.1  simonb 
    414        1.1  simonb /*
    415        1.1  simonb  * MAC Status Registers (Table 9-17)
    416        1.1  simonb  * Also used for the MAC Interrupt Mask Register (Table 9-18)
    417        1.1  simonb  * Register: MAC_STATUS_0
    418        1.1  simonb  * Register: MAC_STATUS_1
    419        1.1  simonb  * Register: MAC_STATUS_2
    420        1.1  simonb  * Register: MAC_INT_MASK_0
    421        1.1  simonb  * Register: MAC_INT_MASK_1
    422        1.1  simonb  * Register: MAC_INT_MASK_2
    423        1.1  simonb  */
    424        1.1  simonb 
    425        1.2  simonb /*
    426        1.1  simonb  * Use these constants to shift the appropriate channel
    427        1.1  simonb  * into the CH0 position so the same tests can be used
    428        1.1  simonb  * on each channel.
    429        1.1  simonb  */
    430        1.1  simonb 
    431        1.2  simonb #define S_MAC_RX_CH0                _SB_MAKE64(0)
    432        1.2  simonb #define S_MAC_RX_CH1                _SB_MAKE64(8)
    433        1.2  simonb #define S_MAC_TX_CH0                _SB_MAKE64(16)
    434        1.2  simonb #define S_MAC_TX_CH1                _SB_MAKE64(24)
    435        1.1  simonb 
    436        1.2  simonb #define S_MAC_TXCHANNELS	    _SB_MAKE64(16)	/* this is 1st TX chan */
    437        1.2  simonb #define S_MAC_CHANWIDTH             _SB_MAKE64(8)	/* bits between channels */
    438        1.1  simonb 
    439        1.1  simonb /*
    440        1.1  simonb  *  These are the same as RX channel 0.  The idea here
    441        1.1  simonb  *  is that you'll use one of the "S_" things above
    442        1.1  simonb  *  and pass just the six bits to a DMA-channel-specific ISR
    443        1.1  simonb  */
    444        1.2  simonb #define M_MAC_INT_CHANNEL           _SB_MAKEMASK(8,0)
    445        1.2  simonb #define M_MAC_INT_EOP_COUNT         _SB_MAKEMASK1(0)
    446        1.2  simonb #define M_MAC_INT_EOP_TIMER         _SB_MAKEMASK1(1)
    447        1.2  simonb #define M_MAC_INT_EOP_SEEN          _SB_MAKEMASK1(2)
    448        1.2  simonb #define M_MAC_INT_HWM               _SB_MAKEMASK1(3)
    449        1.2  simonb #define M_MAC_INT_LWM               _SB_MAKEMASK1(4)
    450        1.2  simonb #define M_MAC_INT_DSCR              _SB_MAKEMASK1(5)
    451        1.2  simonb #define M_MAC_INT_ERR               _SB_MAKEMASK1(6)
    452        1.2  simonb #define M_MAC_INT_DZERO             _SB_MAKEMASK1(7)	/* only for TX channels */
    453        1.3     cgd #define M_MAC_INT_DROP              _SB_MAKEMASK1(7)	/* only for RX channels */
    454        1.3     cgd 
    455        1.3     cgd /*
    456        1.3     cgd  * In the following definitions we use ch (0/1) and txrx (TX=1, RX=0, see
    457        1.3     cgd  * also DMA_TX/DMA_RX in sb_regs.h).
    458        1.3     cgd  */
    459        1.3     cgd #define S_MAC_STATUS_CH_OFFSET(ch,txrx) _SB_MAKE64(((ch) + 2 * (txrx)) * S_MAC_CHANWIDTH)
    460        1.3     cgd 
    461        1.3     cgd #define M_MAC_STATUS_CHANNEL(ch,txrx)   _SB_MAKEVALUE(_SB_MAKEMASK(8,0),S_MAC_STATUS_CH_OFFSET(ch,txrx))
    462        1.3     cgd #define M_MAC_STATUS_EOP_COUNT(ch,txrx) _SB_MAKEVALUE(M_MAC_INT_EOP_COUNT,S_MAC_STATUS_CH_OFFSET(ch,txrx))
    463        1.3     cgd #define M_MAC_STATUS_EOP_TIMER(ch,txrx) _SB_MAKEVALUE(M_MAC_INT_EOP_TIMER,S_MAC_STATUS_CH_OFFSET(ch,txrx))
    464        1.3     cgd #define M_MAC_STATUS_EOP_SEEN(ch,txrx)  _SB_MAKEVALUE(M_MAC_INT_EOP_SEEN,S_MAC_STATUS_CH_OFFSET(ch,txrx))
    465        1.3     cgd #define M_MAC_STATUS_HWM(ch,txrx)       _SB_MAKEVALUE(M_MAC_INT_HWM,S_MAC_STATUS_CH_OFFSET(ch,txrx))
    466        1.3     cgd #define M_MAC_STATUS_LWM(ch,txrx)       _SB_MAKEVALUE(M_MAC_INT_LWM,S_MAC_STATUS_CH_OFFSET(ch,txrx))
    467        1.3     cgd #define M_MAC_STATUS_DSCR(ch,txrx)      _SB_MAKEVALUE(M_MAC_INT_DSCR,S_MAC_STATUS_CH_OFFSET(ch,txrx))
    468        1.3     cgd #define M_MAC_STATUS_ERR(ch,txrx)       _SB_MAKEVALUE(M_MAC_INT_ERR,S_MAC_STATUS_CH_OFFSET(ch,txrx))
    469        1.3     cgd #define M_MAC_STATUS_DZERO(ch,txrx)     _SB_MAKEVALUE(M_MAC_INT_DZERO,S_MAC_STATUS_CH_OFFSET(ch,txrx))
    470        1.3     cgd #define M_MAC_STATUS_DROP(ch,txrx)      _SB_MAKEVALUE(M_MAC_INT_DROP,S_MAC_STATUS_CH_OFFSET(ch,txrx))
    471        1.3     cgd #define M_MAC_STATUS_OTHER_ERR          _SB_MAKEVALUE(_SB_MAKEMASK(7,0),40)
    472        1.2  simonb 
    473        1.2  simonb 
    474        1.2  simonb #define M_MAC_RX_UNDRFL             _SB_MAKEMASK1(40)
    475        1.2  simonb #define M_MAC_RX_OVRFL              _SB_MAKEMASK1(41)
    476        1.2  simonb #define M_MAC_TX_UNDRFL             _SB_MAKEMASK1(42)
    477        1.2  simonb #define M_MAC_TX_OVRFL              _SB_MAKEMASK1(43)
    478        1.2  simonb #define M_MAC_LTCOL_ERR             _SB_MAKEMASK1(44)
    479        1.2  simonb #define M_MAC_EXCOL_ERR             _SB_MAKEMASK1(45)
    480        1.2  simonb #define M_MAC_CNTR_OVRFL_ERR        _SB_MAKEMASK1(46)
    481  1.5.106.1    yamt #if SIBYTE_HDR_FEATURE(1250, PASS2) || SIBYTE_HDR_FEATURE(112x, PASS1) || SIBYTE_HDR_FEATURE_CHIP(1480)
    482        1.3     cgd #define M_MAC_SPLIT_EN		    _SB_MAKEMASK1(47) 	/* interrupt mask only */
    483  1.5.106.1    yamt #endif /* 1250 PASS2 || 112x PASS1 || 1480 */
    484        1.2  simonb 
    485        1.2  simonb #define S_MAC_COUNTER_ADDR          _SB_MAKE64(47)
    486        1.2  simonb #define M_MAC_COUNTER_ADDR          _SB_MAKEMASK(5,S_MAC_COUNTER_ADDR)
    487        1.2  simonb #define V_MAC_COUNTER_ADDR(x)       _SB_MAKEVALUE(x,S_MAC_COUNTER_ADDR)
    488        1.2  simonb #define G_MAC_COUNTER_ADDR(x)       _SB_GETVALUE(x,S_MAC_COUNTER_ADDR,M_MAC_COUNTER_ADDR)
    489        1.1  simonb 
    490  1.5.106.1    yamt #if SIBYTE_HDR_FEATURE(1250, PASS3) || SIBYTE_HDR_FEATURE(112x, PASS1) || SIBYTE_HDR_FEATURE_CHIP(1480)
    491        1.3     cgd #define M_MAC_TX_PAUSE_ON	    _SB_MAKEMASK1(52)
    492  1.5.106.1    yamt #endif /* 1250 PASS3 || 112x PASS1 || 1480 */
    493        1.3     cgd 
    494        1.1  simonb /*
    495        1.1  simonb  * MAC Fifo Pointer Registers (Table 9-19)    [Debug register]
    496        1.1  simonb  * Register: MAC_FIFO_PTRS_0
    497        1.1  simonb  * Register: MAC_FIFO_PTRS_1
    498        1.1  simonb  * Register: MAC_FIFO_PTRS_2
    499        1.1  simonb  */
    500        1.1  simonb 
    501        1.2  simonb #define S_MAC_TX_WRPTR              _SB_MAKE64(0)
    502        1.2  simonb #define M_MAC_TX_WRPTR              _SB_MAKEMASK(6,S_MAC_TX_WRPTR)
    503        1.2  simonb #define V_MAC_TX_WRPTR(x)           _SB_MAKEVALUE(x,S_MAC_TX_WRPTR)
    504        1.2  simonb #define G_MAC_TX_WRPTR(x)           _SB_GETVALUE(x,S_MAC_TX_WRPTR,M_MAC_TX_WRPTR)
    505        1.2  simonb 
    506        1.2  simonb #define S_MAC_TX_RDPTR              _SB_MAKE64(8)
    507        1.2  simonb #define M_MAC_TX_RDPTR              _SB_MAKEMASK(6,S_MAC_TX_RDPTR)
    508        1.2  simonb #define V_MAC_TX_RDPTR(x)           _SB_MAKEVALUE(x,S_MAC_TX_RDPTR)
    509        1.2  simonb #define G_MAC_TX_RDPTR(x)           _SB_GETVALUE(x,S_MAC_TX_RDPTR,M_MAC_TX_RDPTR)
    510        1.2  simonb 
    511        1.2  simonb #define S_MAC_RX_WRPTR              _SB_MAKE64(16)
    512        1.2  simonb #define M_MAC_RX_WRPTR              _SB_MAKEMASK(6,S_MAC_RX_WRPTR)
    513        1.2  simonb #define V_MAC_RX_WRPTR(x)           _SB_MAKEVALUE(x,S_MAC_RX_WRPTR)
    514        1.2  simonb #define G_MAC_RX_WRPTR(x)           _SB_GETVALUE(x,S_MAC_RX_WRPTR,M_MAC_TX_WRPTR)
    515        1.2  simonb 
    516        1.2  simonb #define S_MAC_RX_RDPTR              _SB_MAKE64(24)
    517        1.2  simonb #define M_MAC_RX_RDPTR              _SB_MAKEMASK(6,S_MAC_RX_RDPTR)
    518        1.2  simonb #define V_MAC_RX_RDPTR(x)           _SB_MAKEVALUE(x,S_MAC_RX_RDPTR)
    519        1.2  simonb #define G_MAC_RX_RDPTR(x)           _SB_GETVALUE(x,S_MAC_RX_RDPTR,M_MAC_TX_RDPTR)
    520        1.1  simonb 
    521        1.1  simonb /*
    522        1.1  simonb  * MAC Fifo End Of Packet Count Registers (Table 9-20)  [Debug register]
    523        1.1  simonb  * Register: MAC_EOPCNT_0
    524        1.1  simonb  * Register: MAC_EOPCNT_1
    525        1.1  simonb  * Register: MAC_EOPCNT_2
    526        1.1  simonb  */
    527        1.1  simonb 
    528        1.2  simonb #define S_MAC_TX_EOP_COUNTER        _SB_MAKE64(0)
    529        1.2  simonb #define M_MAC_TX_EOP_COUNTER        _SB_MAKEMASK(6,S_MAC_TX_EOP_COUNTER)
    530        1.2  simonb #define V_MAC_TX_EOP_COUNTER(x)     _SB_MAKEVALUE(x,S_MAC_TX_EOP_COUNTER)
    531        1.2  simonb #define G_MAC_TX_EOP_COUNTER(x)     _SB_GETVALUE(x,S_MAC_TX_EOP_COUNTER,M_MAC_TX_EOP_COUNTER)
    532        1.2  simonb 
    533        1.2  simonb #define S_MAC_RX_EOP_COUNTER        _SB_MAKE64(8)
    534        1.2  simonb #define M_MAC_RX_EOP_COUNTER        _SB_MAKEMASK(6,S_MAC_RX_EOP_COUNTER)
    535        1.2  simonb #define V_MAC_RX_EOP_COUNTER(x)     _SB_MAKEVALUE(x,S_MAC_RX_EOP_COUNTER)
    536        1.2  simonb #define G_MAC_RX_EOP_COUNTER(x)     _SB_GETVALUE(x,S_MAC_RX_EOP_COUNTER,M_MAC_RX_EOP_COUNTER)
    537        1.1  simonb 
    538        1.1  simonb /*
    539        1.1  simonb  * MAC Recieve Address Filter Exact Match Registers (Table 9-21)
    540        1.1  simonb  * Registers: MAC_ADDR0_0 through MAC_ADDR7_0
    541        1.1  simonb  * Registers: MAC_ADDR0_1 through MAC_ADDR7_1
    542        1.1  simonb  * Registers: MAC_ADDR0_2 through MAC_ADDR7_2
    543        1.1  simonb  */
    544        1.1  simonb 
    545        1.1  simonb /* No bitfields */
    546        1.1  simonb 
    547        1.1  simonb /*
    548        1.3     cgd  * MAC Receive Address Filter Mask Registers
    549        1.3     cgd  * Registers: MAC_ADDRMASK0_0 and MAC_ADDRMASK0_1
    550        1.3     cgd  * Registers: MAC_ADDRMASK1_0 and MAC_ADDRMASK1_1
    551        1.3     cgd  * Registers: MAC_ADDRMASK2_0 and MAC_ADDRMASK2_1
    552        1.3     cgd  */
    553        1.3     cgd 
    554        1.3     cgd /* No bitfields */
    555        1.3     cgd 
    556        1.3     cgd /*
    557        1.1  simonb  * MAC Recieve Address Filter Hash Match Registers (Table 9-22)
    558        1.1  simonb  * Registers: MAC_HASH0_0 through MAC_HASH7_0
    559        1.1  simonb  * Registers: MAC_HASH0_1 through MAC_HASH7_1
    560        1.1  simonb  * Registers: MAC_HASH0_2 through MAC_HASH7_2
    561        1.1  simonb  */
    562        1.1  simonb 
    563        1.1  simonb /* No bitfields */
    564        1.1  simonb 
    565        1.1  simonb /*
    566        1.1  simonb  * MAC Transmit Source Address Registers (Table 9-23)
    567        1.1  simonb  * Register: MAC_ETHERNET_ADDR_0
    568        1.1  simonb  * Register: MAC_ETHERNET_ADDR_1
    569        1.1  simonb  * Register: MAC_ETHERNET_ADDR_2
    570        1.1  simonb  */
    571        1.1  simonb 
    572        1.1  simonb /* No bitfields */
    573        1.1  simonb 
    574        1.1  simonb /*
    575        1.1  simonb  * MAC Packet Type Configuration Register
    576        1.1  simonb  * Register: MAC_TYPE_CFG_0
    577        1.1  simonb  * Register: MAC_TYPE_CFG_1
    578        1.1  simonb  * Register: MAC_TYPE_CFG_2
    579        1.1  simonb  */
    580        1.1  simonb 
    581        1.2  simonb #define S_TYPECFG_TYPESIZE      _SB_MAKE64(16)
    582        1.1  simonb 
    583        1.2  simonb #define S_TYPECFG_TYPE0		_SB_MAKE64(0)
    584        1.2  simonb #define M_TYPECFG_TYPE0         _SB_MAKEMASK(16,S_TYPECFG_TYPE0)
    585        1.2  simonb #define V_TYPECFG_TYPE0(x)      _SB_MAKEVALUE(x,S_TYPECFG_TYPE0)
    586        1.2  simonb #define G_TYPECFG_TYPE0(x)      _SB_GETVALUE(x,S_TYPECFG_TYPE0,M_TYPECFG_TYPE0)
    587        1.2  simonb 
    588        1.2  simonb #define S_TYPECFG_TYPE1		_SB_MAKE64(0)
    589        1.2  simonb #define M_TYPECFG_TYPE1         _SB_MAKEMASK(16,S_TYPECFG_TYPE1)
    590        1.2  simonb #define V_TYPECFG_TYPE1(x)      _SB_MAKEVALUE(x,S_TYPECFG_TYPE1)
    591        1.2  simonb #define G_TYPECFG_TYPE1(x)      _SB_GETVALUE(x,S_TYPECFG_TYPE1,M_TYPECFG_TYPE1)
    592        1.2  simonb 
    593        1.2  simonb #define S_TYPECFG_TYPE2		_SB_MAKE64(0)
    594        1.2  simonb #define M_TYPECFG_TYPE2         _SB_MAKEMASK(16,S_TYPECFG_TYPE2)
    595        1.2  simonb #define V_TYPECFG_TYPE2(x)      _SB_MAKEVALUE(x,S_TYPECFG_TYPE2)
    596        1.2  simonb #define G_TYPECFG_TYPE2(x)      _SB_GETVALUE(x,S_TYPECFG_TYPE2,M_TYPECFG_TYPE2)
    597        1.2  simonb 
    598        1.2  simonb #define S_TYPECFG_TYPE3		_SB_MAKE64(0)
    599        1.2  simonb #define M_TYPECFG_TYPE3         _SB_MAKEMASK(16,S_TYPECFG_TYPE3)
    600        1.2  simonb #define V_TYPECFG_TYPE3(x)      _SB_MAKEVALUE(x,S_TYPECFG_TYPE3)
    601        1.2  simonb #define G_TYPECFG_TYPE3(x)      _SB_GETVALUE(x,S_TYPECFG_TYPE3,M_TYPECFG_TYPE3)
    602        1.1  simonb 
    603        1.1  simonb /*
    604        1.1  simonb  * MAC Receive Address Filter Control Registers (Table 9-24)
    605        1.1  simonb  * Register: MAC_ADFILTER_CFG_0
    606        1.1  simonb  * Register: MAC_ADFILTER_CFG_1
    607        1.1  simonb  * Register: MAC_ADFILTER_CFG_2
    608        1.1  simonb  */
    609        1.1  simonb 
    610        1.2  simonb #define M_MAC_ALLPKT_EN	        _SB_MAKEMASK1(0)
    611        1.2  simonb #define M_MAC_UCAST_EN          _SB_MAKEMASK1(1)
    612        1.2  simonb #define M_MAC_UCAST_INV         _SB_MAKEMASK1(2)
    613        1.2  simonb #define M_MAC_MCAST_EN          _SB_MAKEMASK1(3)
    614        1.2  simonb #define M_MAC_MCAST_INV         _SB_MAKEMASK1(4)
    615        1.2  simonb #define M_MAC_BCAST_EN          _SB_MAKEMASK1(5)
    616        1.2  simonb #define M_MAC_DIRECT_INV        _SB_MAKEMASK1(6)
    617  1.5.106.1    yamt #if SIBYTE_HDR_FEATURE(1250, PASS2) || SIBYTE_HDR_FEATURE(112x, PASS1) || SIBYTE_HDR_FEATURE_CHIP(1480)
    618        1.3     cgd #define M_MAC_ALLMCAST_EN	_SB_MAKEMASK1(7)
    619  1.5.106.1    yamt #endif /* 1250 PASS2 || 112x PASS1 || 1480 */
    620        1.2  simonb 
    621        1.2  simonb #define S_MAC_IPHDR_OFFSET      _SB_MAKE64(8)
    622        1.2  simonb #define M_MAC_IPHDR_OFFSET      _SB_MAKEMASK(8,S_MAC_IPHDR_OFFSET)
    623        1.2  simonb #define V_MAC_IPHDR_OFFSET(x)	_SB_MAKEVALUE(x,S_MAC_IPHDR_OFFSET)
    624        1.2  simonb #define G_MAC_IPHDR_OFFSET(x)	_SB_GETVALUE(x,S_MAC_IPHDR_OFFSET,M_MAC_IPHDR_OFFSET)
    625        1.3     cgd 
    626  1.5.106.1    yamt #if SIBYTE_HDR_FEATURE(1250, PASS3) || SIBYTE_HDR_FEATURE(112x, PASS1) || SIBYTE_HDR_FEATURE_CHIP(1480)
    627        1.3     cgd #define S_MAC_RX_CRC_OFFSET     _SB_MAKE64(16)
    628        1.3     cgd #define M_MAC_RX_CRC_OFFSET     _SB_MAKEMASK(8,S_MAC_RX_CRC_OFFSET)
    629        1.3     cgd #define V_MAC_RX_CRC_OFFSET(x)	_SB_MAKEVALUE(x,S_MAC_RX_CRC_OFFSET)
    630        1.3     cgd #define G_MAC_RX_CRC_OFFSET(x)	_SB_GETVALUE(x,S_MAC_RX_CRC_OFFSET,M_MAC_RX_CRC_OFFSET)
    631        1.3     cgd 
    632        1.3     cgd #define S_MAC_RX_PKT_OFFSET     _SB_MAKE64(24)
    633        1.3     cgd #define M_MAC_RX_PKT_OFFSET     _SB_MAKEMASK(8,S_MAC_RX_PKT_OFFSET)
    634        1.3     cgd #define V_MAC_RX_PKT_OFFSET(x)	_SB_MAKEVALUE(x,S_MAC_RX_PKT_OFFSET)
    635        1.3     cgd #define G_MAC_RX_PKT_OFFSET(x)	_SB_GETVALUE(x,S_MAC_RX_PKT_OFFSET,M_MAC_RX_PKT_OFFSET)
    636        1.3     cgd 
    637        1.3     cgd #define M_MAC_FWDPAUSE_EN	_SB_MAKEMASK1(32)
    638        1.3     cgd #define M_MAC_VLAN_DET_EN	_SB_MAKEMASK1(33)
    639        1.3     cgd 
    640        1.3     cgd #define S_MAC_RX_CH_MSN_SEL     _SB_MAKE64(34)
    641        1.3     cgd #define M_MAC_RX_CH_MSN_SEL     _SB_MAKEMASK(8,S_MAC_RX_CH_MSN_SEL)
    642        1.3     cgd #define V_MAC_RX_CH_MSN_SEL(x)	_SB_MAKEVALUE(x,S_MAC_RX_CH_MSN_SEL)
    643        1.3     cgd #define G_MAC_RX_CH_MSN_SEL(x)	_SB_GETVALUE(x,S_MAC_RX_CH_MSN_SEL,M_MAC_RX_CH_MSN_SEL)
    644  1.5.106.1    yamt #endif /* 1250 PASS3 || 112x PASS1 || 1480 */
    645        1.1  simonb 
    646        1.1  simonb /*
    647        1.1  simonb  * MAC Receive Channel Select Registers (Table 9-25)
    648        1.1  simonb  */
    649        1.1  simonb 
    650        1.1  simonb /* no bitfields */
    651        1.1  simonb 
    652        1.1  simonb /*
    653        1.1  simonb  * MAC MII Management Interface Registers (Table 9-26)
    654        1.1  simonb  * Register: MAC_MDIO_0
    655        1.1  simonb  * Register: MAC_MDIO_1
    656        1.1  simonb  * Register: MAC_MDIO_2
    657        1.1  simonb  */
    658        1.1  simonb 
    659        1.2  simonb #define S_MAC_MDC		0
    660        1.2  simonb #define S_MAC_MDIO_DIR		1
    661        1.2  simonb #define S_MAC_MDIO_OUT		2
    662        1.2  simonb #define S_MAC_GENC		3
    663        1.2  simonb #define S_MAC_MDIO_IN		4
    664        1.2  simonb 
    665        1.2  simonb #define M_MAC_MDC		_SB_MAKEMASK1(S_MAC_MDC)
    666        1.2  simonb #define M_MAC_MDIO_DIR		_SB_MAKEMASK1(S_MAC_MDIO_DIR)
    667        1.2  simonb #define M_MAC_MDIO_DIR_INPUT	_SB_MAKEMASK1(S_MAC_MDIO_DIR)
    668        1.2  simonb #define M_MAC_MDIO_OUT		_SB_MAKEMASK1(S_MAC_MDIO_OUT)
    669        1.2  simonb #define M_MAC_GENC		_SB_MAKEMASK1(S_MAC_GENC)
    670        1.2  simonb #define M_MAC_MDIO_IN		_SB_MAKEMASK1(S_MAC_MDIO_IN)
    671        1.1  simonb 
    672        1.1  simonb #endif
    673