Home | History | Annotate | Line # | Download | only in include
      1 /*  *********************************************************************
      2     *  BCM1280/BCM1480 Board Support Package
      3     *
      4     *  Packet manager constants and macros	File: bcm1480_pm.h
      5     *
      6     *  This module contains constants useful for manipulating the
      7     *  BCM1280/BCM1480 packet manager.
      8     *
      9     *  BCM1400 specification level:  1X55_1X80-UM100-D4 (11/24/03)
     10     *
     11     *********************************************************************
     12     *
     13     *  Copyright 2000,2001,2002,2003,2004
     14     *  Broadcom Corporation. All rights reserved.
     15     *
     16     *  This software is furnished under license and may be used and
     17     *  copied only in accordance with the following terms and
     18     *  conditions.  Subject to these conditions, you may download,
     19     *  copy, install, use, modify and distribute modified or unmodified
     20     *  copies of this software in source and/or binary form.  No title
     21     *  or ownership is transferred hereby.
     22     *
     23     *  1) Any source code used, modified or distributed must reproduce
     24     *     and retain this copyright notice and list of conditions
     25     *     as they appear in the source file.
     26     *
     27     *  2) No right is granted to use any trade name, trademark, or
     28     *     logo of Broadcom Corporation.  The "Broadcom Corporation"
     29     *     name may not be used to endorse or promote products derived
     30     *     from this software without the prior written permission of
     31     *     Broadcom Corporation.
     32     *
     33     *  3) THIS SOFTWARE IS PROVIDED "AS-IS" AND ANY EXPRESS OR
     34     *     IMPLIED WARRANTIES, INCLUDING BUT NOT LIMITED TO, ANY IMPLIED
     35     *     WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR
     36     *     PURPOSE, OR NON-INFRINGEMENT ARE DISCLAIMED. IN NO EVENT
     37     *     SHALL BROADCOM BE LIABLE FOR ANY DAMAGES WHATSOEVER, AND IN
     38     *     PARTICULAR, BROADCOM SHALL NOT BE LIABLE FOR DIRECT, INDIRECT,
     39     *     INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
     40     *     (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE
     41     *     GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
     42     *     BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
     43     *     OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR
     44     *     TORT (INCLUDING NEGLIGENCE OR OTHERWISE), EVEN IF ADVISED OF
     45     *     THE POSSIBILITY OF SUCH DAMAGE.
     46     ********************************************************************* */
     47 
     48 #ifndef _BCM1480_PM_H
     49 #define _BCM1480_PM_H
     50 
     51 #include "sb1250_defs.h"
     52 
     53 /*  *********************************************************************
     54     *  DMA Registers
     55     ********************************************************************* */
     56 
     57 /*
     58  * Base and Size Register (Table 294)
     59  */
     60 
     61 #define S_BCM1480_PM_BASE                    0
     62 #define M_BCM1480_PM_BASE                    _SB_MAKEMASK(40,S_BCM1480_PM_BASE)
     63 #define V_BCM1480_PM_BASE(x)                 _SB_MAKEVALUE(x,S_BCM1480_PM_BASE)
     64 #define G_BCM1480_PM_BASE(x)                 _SB_GETVALUE(x,S_BCM1480_PM_BASE,M_BCM1480_PM_BASE)
     65 
     66 #define S_BCM1480_PM_SIZE                    40
     67 #define M_BCM1480_PM_SIZE                    _SB_MAKEMASK(20,S_BCM1480_PM_SIZE)
     68 #define V_BCM1480_PM_SIZE(x)                 _SB_MAKEVALUE(x,S_BCM1480_PM_SIZE)
     69 #define G_BCM1480_PM_SIZE(x)                 _SB_GETVALUE(x,S_BCM1480_PM_SIZE,M_BCM1480_PM_SIZE)
     70 
     71 /*
     72  * Descriptor Merge Timer (Table 295)
     73  */
     74 
     75 #define S_BCM1480_PM_DS_MT_CNT              0
     76 #define M_BCM1480_PM_DS_MT_CNT              _SB_MAKEMASK(6,S_BCM1480_PM_DS_MT_CNT)
     77 #define V_BCM1480_PM_DS_MT_CNT(x)           _SB_MAKEVALUE(x,S_BCM1480_PM_DS_MT_CNT)
     78 #define G_BCM1480_PM_DS_MT_CNT(x)           _SB_GETVALUE(x,S_BCM1480_PM_DS_MT_CNT,M_BCM1480_PM_DS_MT_CNT)
     79 
     80 /*
     81  * L2 Cache Attribute (Table 296)
     82  */
     83 
     84 #define S_BCM1480_PM_HDR_SIZE                0
     85 #define M_BCM1480_PM_HDR_SIZE                _SB_MAKEMASK(9,S_BCM1480_PM_HDR_SIZE)
     86 #define V_BCM1480_PM_HDR_SIZE(x)             _SB_MAKEVALUE(x,S_BCM1480_PM_HDR_SIZE)
     87 #define G_BCM1480_PM_HDR_SIZE(x)             _SB_GETVALUE(x,S_BCM1480_PM_HDR_SIZE,M_BCM1480_PM_HDR_SIZE)
     88 
     89 /*
     90  * Descriptor Count Register (Table 297)
     91  */
     92 
     93 #define S_BCM1480_PM_COUNT                 0
     94 #define M_BCM1480_PM_COUNT                 _SB_MAKEMASK(20,S_BCM1480_PM_COUNT)
     95 #define V_BCM1480_PM_COUNT(x)              _SB_MAKEVALUE(x,S_BCM1480_PM_COUNT)
     96 #define G_BCM1480_PM_COUNT(x)              _SB_GETVALUE(x,S_BCM1480_PM_COUNT,M_BCM1480_PM_COUNT)
     97 
     98 /*
     99  * Current Descriptor Index Register (Table 298)
    100  */
    101 
    102 #define S_BCM1480_PM_LAST                    0
    103 #define M_BCM1480_PM_LAST                    _SB_MAKEMASK(20,S_BCM1480_PM_LAST)
    104 #define V_BCM1480_PM_LAST(x)                 _SB_MAKEVALUE(x,S_BCM1480_PM_LAST)
    105 #define G_BCM1480_PM_LAST(x)                 _SB_GETVALUE(x,S_BCM1480_PM_LAST,M_BCM1480_PM_LAST)
    106 
    107 /*
    108  * Packet Manager Queue Configuration (Table 299)
    109  */
    110 
    111 #define M_BCM1480_PM_QUEUE_ENABLE           _SB_MAKEMASK1(0)
    112 #define M_BCM1480_PM_DS_CACHE_EN            _SB_MAKEMASK1(1)
    113 #define M_BCM1480_PM_HW_ASSERT              _SB_MAKEMASK1(2)
    114 #define M_BCM1480_PM_HW_ERROR               _SB_MAKEMASK1(3)
    115 
    116 #define S_BCM1480_PM_SW_ERROR               4
    117 #define M_BCM1480_PM_SW_ERROR               _SB_MAKEMASK(3,S_BCM1480_PM_SW_ERROR)
    118 #define V_BCM1480_PM_SW_ERROR(x)            _SB_MAKEVALUE(x,S_BCM1480_PM_SW_ERROR)
    119 #define G_BCM1480_PM_SW_ERROR(x)            _SB_GETVALUE(x,S_BCM1480_PM_SW_ERROR,M_BCM1480_PM_SW_ERROR)
    120 #define K_BCM1480_PM_SW_ERROR_NONE          0x0
    121 #define K_BCM1480_PM_SW_ERROR_HWBIT         0x1
    122 
    123 #define M_BCM1480_PM_FLUSH                  _SB_MAKEMASK1(7)
    124 
    125 /*
    126  * Interrupt Configuration (Table 300)
    127  */
    128 
    129 #define S_BCM1480_PM_INT_CORE_ID            0
    130 #define M_BCM1480_PM_INT_CORE_ID            _SB_MAKEMASK(2,S_BCM1480_PM_INT_CORE_ID)
    131 #define V_BCM1480_PM_INT_CORE_ID(x)         _SB_MAKEVALUE(x,S_BCM1480_PM_INT_CORE_ID)
    132 #define G_BCM1480_PM_INT_CORE_ID(x)         _SB_GETVALUE(x,S_BCM1480_PM_INT_CORE_ID,M_BCM1480_PM_INT_CORE_ID)
    133 
    134 #define M_BCM1480_PM_INT_PRIORITY           _SB_MAKEMASK1(4)
    135 
    136 #define S_BCM1480_PM_INT_TIMEOUT            5
    137 #define M_BCM1480_PM_INT_TIMEOUT            _SB_MAKEMASK(5,S_BCM1480_PM_INT_TIMEOUT)
    138 #define V_BCM1480_PM_INT_TIMEOUT(x)         _SB_MAKEVALUE(x,S_BCM1480_PM_INT_TIMEOUT)
    139 #define G_BCM1480_PM_INT_TIMEOUT(x)         _SB_GETVALUE(x,S_BCM1480_PM_INT_TIMEOUT,M_BCM1480_PM_INT_TIMEOUT)
    140 
    141 #define S_BCM1480_PM_INT_PKT_CNT            11
    142 #define M_BCM1480_PM_INT_PKT_CNT            _SB_MAKEMASK(12,S_BCM1480_PM_INT_PKT_CNT)
    143 #define V_BCM1480_PM_INT_PKT_CNT(x)         _SB_MAKEVALUE(x,S_BCM1480_PM_INT_PKT_CNT)
    144 #define G_BCM1480_PM_INT_PKT_CNT(x)         _SB_GETVALUE(x,S_BCM1480_PM_INT_PKT_CNT,M_BCM1480_PM_INT_PKT_CNT)
    145 
    146 /*
    147  * Interrupt Watermark (Table 301)
    148  */
    149 
    150 #define S_BCM1480_PM_LOW_WATERMARK          0
    151 #define M_BCM1480_PM_LOW_WATERMARK          _SB_MAKEMASK(20,S_BCM1480_PM_LOW_WATERMARK)
    152 #define V_BCM1480_PM_LOW_WATERMARK(x)       _SB_MAKEVALUE(x,S_BCM1480_PM_LOW_WATERMARK)
    153 #define G_BCM1480_PM_LOW_WATERMARK(x)       _SB_GETVALUE(x,S_BCM1480_PM_LOW_WATERMARK,M_BCM1480_PM_LOW_WATERMARK)
    154 
    155 #define S_BCM1480_PM_HIGH_WATERMARK         20
    156 #define M_BCM1480_PM_HIGH_WATERMARK         _SB_MAKEMASK(20,S_BCM1480_PM_HIGH_WATERMARK)
    157 #define V_BCM1480_PM_HIGH_WATERMARK(x)      _SB_MAKEVALUE(x,S_BCM1480_PM_HIGH_WATERMARK)
    158 #define G_BCM1480_PM_HIGH_WATERMARK(x)      _SB_GETVALUE(x,S_BCM1480_PM_HIGH_WATERMARK,M_BCM1480_PM_HIGH_WATERMARK)
    159 
    160 
    161 /*
    162  * NOTE: Interrupt Bits (Tables 9-36 to 9-38) are packed 8 per word
    163  *       per Table 9-39.
    164  */
    165 
    166 
    167 #define S_BCM1480_PM_INT(q)                 ((q%8)<<8)
    168 #define M_BCM1480_PM_INT(q)                 _SB_MAKEMASK(8,S_BCM1480_PM_INT(q))
    169 #define V_BCM1480_PM_INT(x,q)               _SB_MAKEVALUE((x&((1<<8)-1)),S_BCM1480_PM_INT(q))
    170 #define G_BCM1480_PM_INT(x,q)               _SB_GETVALUE(x,S_BCM1480_PM_INT(q),M_BCM1480_PM_INT(q))
    171 
    172 
    173 /*
    174  * Input/Output Queue Interrupt Status Register (Table 302)
    175  */
    176 
    177 #define M_BCM1480_PM_EOP_COUNT              _SB_MAKEMASK1(0)
    178 #define M_BCM1480_PM_EOP_SEEN               _SB_MAKEMASK1(1)
    179 #define M_BCM1480_PM_RCV_TIMER              _SB_MAKEMASK1(2)
    180 #define M_BCM1480_PM_DE                     _SB_MAKEMASK1(3)
    181 #define M_BCM1480_PM_HWM                    _SB_MAKEMASK1(4)
    182 #define M_BCM1480_PM_LWM                    _SB_MAKEMASK1(5)
    183 #define M_BCM1480_PM_RX_ERR                 _SB_MAKEMASK1(6)
    184 #define M_BCM1480_PM_PE_ERR                 _SB_MAKEMASK1(7)
    185 
    186 /*
    187  * Input/Output Queue Interrupt Mask Register (Table 303)
    188  */
    189 
    190 #define M_BCM1480_PM_EOP_COUNT_MSK          _SB_MAKEMASK1(0)
    191 #define M_BCM1480_PM_EOP_SEEN_MSK           _SB_MAKEMASK1(1)
    192 #define M_BCM1480_PM_RCV_TIMER_MSK          _SB_MAKEMASK1(2)
    193 #define M_BCM1480_PM_DE_MSK                 _SB_MAKEMASK1(3)
    194 #define M_BCM1480_PM_HWM_MSK                _SB_MAKEMASK1(4)
    195 #define M_BCM1480_PM_LWM_MSK                _SB_MAKEMASK1(5)
    196 #define M_BCM1480_PM_RX_ERR_MSK             _SB_MAKEMASK1(6)
    197 #define M_BCM1480_PM_PE_ERR_MSK             _SB_MAKEMASK1(7)
    198 
    199 /*
    200  * Input/Output Queue Interrupt Clear Register (Table 304)
    201  */
    202 
    203 #define M_BCM1480_PM_EOP_COUNT_CLR          _SB_MAKEMASK1(0)
    204 #define M_BCM1480_PM_EOP_SEEN_CLR           _SB_MAKEMASK1(1)
    205 #define M_BCM1480_PM_RCV_TIMER_CLR          _SB_MAKEMASK1(2)
    206 #define M_BCM1480_PM_DE_CLR                 _SB_MAKEMASK1(3)
    207 #define M_BCM1480_PM_RX_ERR_CLR             _SB_MAKEMASK1(6)
    208 #define M_BCM1480_PM_PE_ERR_CLR             _SB_MAKEMASK1(7)
    209 
    210 /*
    211  * Merged Interrupt Status Register (Table 306)
    212  */
    213 
    214 #define M_INT_N(n)                   _SB_MAKEMASK1(n)
    215 
    216 
    217 /*
    218  * PMO Mapping Register (Table 279)
    219  */
    220 
    221 #define S_BCM1480_PM_MAP_DEST_ID0          0
    222 #define M_BCM1480_PM_MAP_DEST_ID0          _SB_MAKEMASK(2,S_BCM1480_PM_MAP_DEST_ID0)
    223 #define V_BCM1480_PM_MAP_DEST_ID0(x)       _SB_MAKEVALUE(x,S_BCM1480_PM_MAP_DEST_ID0)
    224 #define G_BCM1480_PM_MAP_DEST_ID0(x)       _SB_GETVALUE(x,S_BCM1480_PM_MAP_DEST_ID0,M_BCM1480_PM_MAP_DEST_ID0)
    225 
    226 #define S_BCM1480_PM_MAP_DEST_ID8          4
    227 #define M_BCM1480_PM_MAP_DEST_ID8          _SB_MAKEMASK(2,S_BCM1480_PM_MAP_DEST_ID8)
    228 #define V_BCM1480_PM_MAP_DEST_ID8(x)       _SB_MAKEVALUE(x,S_BCM1480_PM_MAP_DEST_ID8)
    229 #define G_BCM1480_PM_MAP_DEST_ID8(x)       _SB_GETVALUE(x,S_BCM1480_PM_MAP_DEST_ID8,M_BCM1480_PM_MAP_DEST_ID8)
    230 
    231 #define S_BCM1480_PM_MAP_DEST_ID16         8
    232 #define M_BCM1480_PM_MAP_DEST_ID16         _SB_MAKEMASK(2,S_BCM1480_PM_MAP_DEST_ID16)
    233 #define V_BCM1480_PM_MAP_DEST_ID16(x)      _SB_MAKEVALUE(x,S_BCM1480_PM_MAP_DEST_ID16)
    234 #define G_BCM1480_PM_MAP_DEST_ID16(x)      _SB_GETVALUE(x,S_BCM1480_PM_MAP_DEST_ID16,M_BCM1480_PM_MAP_DEST_ID16)
    235 
    236 #define S_BCM1480_PM_MAP_DEST_ID24         12
    237 #define M_BCM1480_PM_MAP_DEST_ID24         _SB_MAKEMASK(2,S_BCM1480_PM_MAP_DEST_ID24)
    238 #define V_BCM1480_PM_MAP_DEST_ID24(x)      _SB_MAKEVALUE(x,S_BCM1480_PM_MAP_DEST_ID24)
    239 #define G_BCM1480_PM_MAP_DEST_ID24(x)      _SB_GETVALUE(x,S_BCM1480_PM_MAP_DEST_ID24,M_BCM1480_PM_MAP_DEST_ID24)
    240 
    241 #define M_BCM1480_PM_MAP_DEST_HALF0        _SB_MAKEMASK1(2)
    242 #define M_BCM1480_PM_MAP_DEST_HALF8        _SB_MAKEMASK1(6)
    243 #define M_BCM1480_PM_MAP_DEST_HALF16       _SB_MAKEMASK1(10)
    244 #define M_BCM1480_PM_MAP_DEST_HALF24       _SB_MAKEMASK1(14)
    245 
    246 #define K_BCM1480_PM_MAP_DEST_ID_TX0       0
    247 #define K_BCM1480_PM_MAP_DEST_ID_TX1       1
    248 #define K_BCM1480_PM_MAP_DEST_ID_TX2       2
    249 
    250 
    251 
    252 /*
    253  * Global Debug Mode Register (Table 307)
    254  */
    255 
    256 #define M_BCM1480_PM_DEBUG_MODE              _SB_MAKEMASK1(0)
    257 #define M_BCM1480_PM_READ_PRIORITY           _SB_MAKEMASK1(1)
    258 #define M_BCM1480_PM_WRITE_PRIORITY          _SB_MAKEMASK1(2)
    259 
    260 /*
    261  * PxD Global Debug Register (Table 308)
    262  */
    263 
    264 /*
    265  * PIB Global Debug Register (Table 310)
    266  */
    267 
    268 /*
    269  * PxD Local Debug Register (Table 311)
    270  */
    271 
    272 /*
    273  * PIB Local Debug Register (Table 312)
    274  */
    275 
    276 /*
    277  * POB Local Debug Register (Table 313)
    278  */
    279 
    280 /*
    281  * Prefetch Count Register (Table 314)
    282  */
    283 
    284 #define S_BCM1480_PM_PREF_COUNT             0
    285 #define M_BCM1480_PM_PREF_COUNT             _SB_MAKEMASK(20,S_BCM1480_PM_PREF_COUNT)
    286 #define V_BCM1480_PM_PREF_COUNT(x)          _SB_MAKEVALUE(x,S_BCM1480_PM_PREF_COUNT)
    287 #define G_BCM1480_PM_PREF_COUNT(x)          _SB_GETVALUE(x,S_BCM1480_PM_PREF_COUNT,M_BCM1480_PM_PREF_COUNT)
    288 
    289 /*
    290  * Descriptor Prefetch Index Register (Table 315)
    291  */
    292 
    293 #define S_BCM1480_PM_PREFETCH               0
    294 #define M_BCM1480_PM_PREFETCH               _SB_MAKEMASK(20,S_BCM1480_PM_PREFETCH)
    295 #define V_BCM1480_PM_PREFETCH(x)            _SB_MAKEVALUE(x,S_BCM1480_PM_PREFETCH)
    296 #define G_BCM1480_PM_PREFETCH(x)            _SB_GETVALUE(x,S_BCM1480_PM_PREFETCH,M_BCM1480_PM_PREFETCH)
    297 
    298 
    299 /*  *********************************************************************
    300     *  DMA Descriptors
    301     ********************************************************************* */
    302 
    303 /*
    304  * Packet Manager descriptor, doubleword 0 (Figure 74)
    305  */
    306 
    307 #define S_BCM1480_PM_DSCR0_RSVD             _SB_MAKE64(0)
    308 #define M_BCM1480_PM_DSCR0_RSVD             _SB_MAKEMASK(32,S_BCM1480_PM_DSCR0_RSVD)
    309 
    310 #define S_BCM1480_PM_DSCR0_BUFFER_LENGTH    _SB_MAKE64(32)
    311 #define M_BCM1480_PM_DSCR0_BUFFER_LENGTH    _SB_MAKEMASK(16,S_BCM1480_PM_DSCR0_BUFFER_LENGTH)
    312 #define V_BCM1480_PM_DSCR0_BUFFER_LENGTH(x) _SB_MAKEVALUE(x,S_BCM1480_PM_DSCR0_BUFFER_LENGTH)
    313 #define G_BCM1480_PM_DSCR0_BUFFER_LENGTH(x) _SB_GETVALUE(x,S_BCM1480_PM_DSCR0_BUFFER_LENGTH,M_BCM1480_PM_DSCR0_BUFFER_LENGTH)
    314 
    315 /* status/control (Table 292) */
    316 #define M_BCM1480_PM_DSCR0_PE               _SB_MAKEMASK1(55)
    317 #define M_BCM1480_PM_DSCR0_SE               _SB_MAKEMASK1(56)
    318 #define M_BCM1480_PM_DSCR0_LE               _SB_MAKEMASK1(57)
    319 #define M_BCM1480_PM_DSCR0_INT              _SB_MAKEMASK1(60)
    320 #define M_BCM1480_PM_DSCR0_EOP              _SB_MAKEMASK1(61)
    321 #define M_BCM1480_PM_DSCR0_SOP              _SB_MAKEMASK1(62)
    322 #define M_BCM1480_PM_DSCR0_HW               _SB_MAKEMASK1(63)
    323 
    324 /* source port (rx only) */
    325 #define S_BCM1480_PM_DSCR0_SWID             _SB_MAKE64(58)
    326 #define M_BCM1480_PM_DSCR0_SWID             _SB_MAKEMASK(2,S_BCM1480_PM_DSCR0_SWID)
    327 #define V_BCM1480_PM_DSCR0_SWID(x)          _SB_MAKEVALUE(x,S_BCM1480_PM_DSRC0_SWID)
    328 #define G_BCM1480_PM_DSCR0_SWID(x)          _SB_GETVALUE(x,S_BCM1480_PM_DSCR0_SWID,M_BCM1480_PM_DSCR0_SWID)
    329 #define K_BCM1480_PM_DSCR0_SWID_RX0         0
    330 #define K_BCM1480_PM_DSCR0_SWID_RX1         1
    331 #define K_BCM1480_PM_DSCR0_SWID_RX2         2
    332 
    333 /*
    334  * Packet Manager descriptor, doubleword 1 (Figure 74)
    335  */
    336 
    337 #define S_BCM1480_PM_DSCR1_BUFFER_ADDR      _SB_MAKE64(0)
    338 #define M_BCM1480_PM_DSCR1_BUFFER_ADDR      _SB_MAKEMASK(40,S_BCM1480_PM_DSCR1_BUFFER_ADDR)
    339 #define V_BCM1480_PM_DSCR1_BUFFER_ADDR(x)   _SB_MAKEVALUE(x,S_BCM1480_PM_DSCR1_BUFFER_ADDR)
    340 #define G_BCM1480_PM_DSCR1_BUFFER_ADDR(x)   _SB_GETVALUE(x,S_BCM1480_PM_DSCR1_BUFFER_ADDR,M_BCM1480_PM_DSCR1_BUFFER_ADDR)
    341 
    342 #define S_BCM1480_PM_DSCR1_IVC              _SB_MAKE64(40)
    343 #define M_BCM1480_PM_DSCR1_IVC              _SB_MAKEMASK(8,S_BCM1480_PM_DSCR1_IVC)
    344 #define V_BCM1480_PM_DSCR1_IVC(x)           _SB_MAKEVALUE(x,S_BCM1480_PM_DSCR1_IVC)
    345 #define G_BCM1480_PM_DSCR1_IVC(x)           _SB_GETVALUE(x,S_BCM1480_PM_DSCR1_IVC,M_BCM1480_PM_DSCR1_IVC)
    346 
    347 #define S_BCM1480_PM_DSCR1_NEXT_DEST        _SB_MAKE64(48)
    348 #define M_BCM1480_PM_DSCR1_NEXT_DEST        _SB_MAKEMASK(4,S_BCM1480_PM_DSCR1_NEXT_DEST)
    349 #define V_BCM1480_PM_DSCR1_NEXT_DEST(x)     _SB_MAKEVALUE(x,S_BCM1480_PM_DSCR1_NEXT_DEST)
    350 #define G_BCM1480_PM_DSCR1_NEXT_DEST(x)     _SB_GETVALUE(x,S_BCM1480_PM_DSCR1_NEXT_DEST,M_BCM1480_PM_DSCR1_NEXT_DEST)
    351 
    352 #define S_BCM1480_PM_DSCR1_RSVD             _SB_MAKE64(52)
    353 #define M_BCM1480_PM_DSCR1_RSVD             _SB_MAKEMASK(12,S_BCM1480_PM_DSCR1_RSVD)
    354 
    355 /*  *********************************************************************
    356     *  Switch performance counters
    357     ********************************************************************* */
    358 
    359 #define M_BCM1480_SWPERF_CFG_CLEAR	_SB_MAKEMASK1(62)
    360 #define M_BCM1480_SWPERF_CFG_ENABLE	_SB_MAKEMASK1(63)
    361 
    362 #define S_BCM1480_SWPERF_CFG_C0SRC           0
    363 #define M_BCM1480_SWPERF_CFG_C0SRC           _SB_MAKEMASK(8,S_BCM1480_SWPERF_CFG_C0SRC)
    364 #define V_BCM1480_SWPERF_CFG_C0SRC(x)        _SB_MAKEVALUE(x,S_BCM1480_SWPERF_CFG_C0SRC)
    365 #define G_BCM1480_SWPERF_CFG_C0SRC(x)        _SB_GETVALUE(x,S_BCM1480_SWPERF_CFG_C0SRC,M_BCM1480_SWPERF_CFG_C0SRC)
    366 
    367 #define S_BCM1480_SWPERF_CFG_C0FILT           8
    368 #define M_BCM1480_SWPERF_CFG_C0FILT           _SB_MAKEMASK(3,S_BCM1480_SWPERF_CFG_C0FILT)
    369 #define V_BCM1480_SWPERF_CFG_C0FILT(x)        _SB_MAKEVALUE(x,S_BCM1480_SWPERF_CFG_C0FILT)
    370 #define G_BCM1480_SWPERF_CFG_C0FILT(x)        _SB_GETVALUE(x,S_BCM1480_SWPERF_CFG_C0FILT,M_BCM1480_SWPERF_CFG_C0FILT)
    371 
    372 #define M_BCM1480_SWPERF_CFG_C0FENA		_SB_MAKEMASK1(11)
    373 
    374 #define S_BCM1480_SWPERF_CFG_C1SRC           16
    375 #define M_BCM1480_SWPERF_CFG_C1SRC           _SB_MAKEMASK(8,S_BCM1480_SWPERF_CFG_C1SRC)
    376 #define V_BCM1480_SWPERF_CFG_C1SRC(x)        _SB_MAKEVALUE(x,S_BCM1480_SWPERF_CFG_C1SRC)
    377 #define G_BCM1480_SWPERF_CFG_C1SRC(x)        _SB_GETVALUE(x,S_BCM1480_SWPERF_CFG_C1SRC,M_BCM1480_SWPERF_CFG_C1SRC)
    378 
    379 #define S_BCM1480_SWPERF_CFG_C1FILT           24
    380 #define M_BCM1480_SWPERF_CFG_C1FILT           _SB_MAKEMASK(3,S_BCM1480_SWPERF_CFG_C1FILT)
    381 #define V_BCM1480_SWPERF_CFG_C1FILT(x)        _SB_MAKEVALUE(x,S_BCM1480_SWPERF_CFG_C1FILT)
    382 #define G_BCM1480_SWPERF_CFG_C1FILT(x)        _SB_GETVALUE(x,S_BCM1480_SWPERF_CFG_C1FILT,M_BCM1480_SWPERF_CFG_C1FILT)
    383 
    384 #define M_BCM1480_SWPERF_CFG_C1FENA		_SB_MAKEMASK1(27)
    385 
    386 #define S_BCM1480_SWPERF_CFG_C2SRC           32
    387 #define M_BCM1480_SWPERF_CFG_C2SRC           _SB_MAKEMASK(8,S_BCM1480_SWPERF_CFG_C2SRC)
    388 #define V_BCM1480_SWPERF_CFG_C2SRC(x)        _SB_MAKEVALUE(x,S_BCM1480_SWPERF_CFG_C2SRC)
    389 #define G_BCM1480_SWPERF_CFG_C2SRC(x)        _SB_GETVALUE(x,S_BCM1480_SWPERF_CFG_C2SRC,M_BCM1480_SWPERF_CFG_C2SRC)
    390 
    391 #define S_BCM1480_SWPERF_CFG_C2FILT           40
    392 #define M_BCM1480_SWPERF_CFG_C2FILT           _SB_MAKEMASK(3,S_BCM1480_SWPERF_CFG_C2FILT)
    393 #define V_BCM1480_SWPERF_CFG_C2FILT(x)        _SB_MAKEVALUE(x,S_BCM1480_SWPERF_CFG_C2FILT)
    394 #define G_BCM1480_SWPERF_CFG_C2FILT(x)        _SB_GETVALUE(x,S_BCM1480_SWPERF_CFG_C2FILT,M_BCM1480_SWPERF_CFG_C2FILT)
    395 
    396 #define M_BCM1480_SWPERF_CFG_C2FENA		_SB_MAKEMASK1(43)
    397 
    398 #define S_BCM1480_SWPERF_CFG_C3SRC           48
    399 #define M_BCM1480_SWPERF_CFG_C3SRC           _SB_MAKEMASK(8,S_BCM1480_SWPERF_CFG_C3SRC)
    400 #define V_BCM1480_SWPERF_CFG_C3SRC(x)        _SB_MAKEVALUE(x,S_BCM1480_SWPERF_CFG_C3SRC)
    401 #define G_BCM1480_SWPERF_CFG_C3SRC(x)        _SB_GETVALUE(x,S_BCM1480_SWPERF_CFG_C3SRC,M_BCM1480_SWPERF_CFG_C3SRC)
    402 
    403 #define S_BCM1480_SWPERF_CFG_C3FILT           56
    404 #define M_BCM1480_SWPERF_CFG_C3FILT           _SB_MAKEMASK(3,S_BCM1480_SWPERF_CFG_C3FILT)
    405 #define V_BCM1480_SWPERF_CFG_C3FILT(x)        _SB_MAKEVALUE(x,S_BCM1480_SWPERF_CFG_C3FILT)
    406 #define G_BCM1480_SWPERF_CFG_C3FILT(x)        _SB_GETVALUE(x,S_BCM1480_SWPERF_CFG_C3FILT,M_BCM1480_SWPERF_CFG_C3FILT)
    407 
    408 #define M_BCM1480_SWPERF_CFG_C3FENA		_SB_MAKEMASK1(59)
    409 
    410 /* This macro lets you specify counters by index */
    411 
    412 #define S_BCM1480_SWPERF_CFG_CXSRC(c)           (0+(c)*16)
    413 #define M_BCM1480_SWPERF_CFG_CXSRC(c)           _SB_MAKEMASK(8,S_BCM1480_SWPERF_CFG_CXSRC(c))
    414 #define V_BCM1480_SWPERF_CFG_CXSRC(c,x)        _SB_MAKEVALUE(x,S_BCM1480_SWPERF_CFG_CXSRC(c))
    415 #define G_BCM1480_SWPERF_CFG_CXSRC(c,x)        _SB_GETVALUE(x,S_BCM1480_SWPERF_CFG_CXSRC(c),M_BCM1480_SWPERF_CFG_CXSRC(c))
    416 
    417 #define S_BCM1480_SWPERF_CFG_CXFILT(c)           (8+(c)*16)
    418 #define M_BCM1480_SWPERF_CFG_CXFILT(c)           _SB_MAKEMASK(3,S_BCM1480_SWPERF_CFG_CXFILT(c))
    419 #define V_BCM1480_SWPERF_CFG_CXFILT(c,x)        _SB_MAKEVALUE(x,S_BCM1480_SWPERF_CFG_CXFILT(c))
    420 #define G_BCM1480_SWPERF_CFG_CXFILT(c,x)        _SB_GETVALUE(x,S_BCM1480_SWPERF_CFG_CXFILT(c),M_BCM1480_SWPERF_CFG_CXFILT(c))
    421 
    422 #define M_BCM1480_SWPERF_CFG_CXFENA(c)		_SB_MAKEMASK1(11+(c)*16)
    423 
    424 /*
    425  * List of available counters
    426  */
    427 
    428 #define K_BCM1480_SWPERF_CFG_CXSRC_NONE		0
    429 #define K_BCM1480_SWPERF_CFG_CXSRC_SWCYCLES	1
    430 #define K_BCM1480_SWPERF_CFG_CXSRC_FILTPORTS	2
    431 #define K_BCM1480_SWPERF_CFG_CXSRC_SGNT		3
    432 #define K_BCM1480_SWPERF_CFG_CXSRC_SREQ		4
    433 #define K_BCM1480_SWPERF_CFG_CXSRC_SRELOA	5
    434 #define K_BCM1480_SWPERF_CFG_CXSRC_DGNT		6
    435 #define K_BCM1480_SWPERF_CFG_CXSRC_DREQ		7
    436 #define K_BCM1480_SWPERF_CFG_CXSRC_DRELOAD	8
    437 
    438 /*
    439  * Switch agents
    440  */
    441 
    442 #define K_BCM1480_SWAGENT_HSP0		0
    443 #define K_BCM1480_SWAGENT_HSP1	        1
    444 #define K_BCM1480_SWAGENT_HSP2		2
    445 #define K_BCM1480_SWAGENT_NC		4
    446 #define K_BCM1480_SWAGENT_HT		5
    447 #define K_BCM1480_SWAGENT_PM		6
    448 
    449 
    450 /*  *********************************************************************
    451     *  Switch Trace Registers
    452     ********************************************************************* */
    453 
    454 /*
    455  * Switch trigger control match (Table 322)
    456  */
    457 
    458 #define S_BCM1480_SWTRC_MATCHCTL_VC           0
    459 #define M_BCM1480_SWTRC_MATCHCTL_VC           _SB_MAKEMASK(32,S_BCM1480_SWTRC_MATCHCTL_VC)
    460 #define V_BCM1480_SWTRC_MATCHCTL_VC(x)        _SB_MAKEVALUE(x,S_BCM1480_SWTRC_MATCHCTL_VC)
    461 #define G_BCM1480_SWTRC_MATCHCTL_VC(x)        _SB_GETVALUE(x,S_BCM1480_SWTRC_MATCHCTL_VC,M_BCM1480_SWTRC_MATCHCTL_VC)
    462 
    463 #define M_BCM1480_SWTRC_MATCHCTL_VC_X(x)       _SB_MAKEMASK1(S_BCM1480_SWTRC_MATCHCTL_VC+(x))
    464 
    465 
    466 #define S_BCM1480_SWTRC_MATCHCTL_SRC           32
    467 #define M_BCM1480_SWTRC_MATCHCTL_SRC           _SB_MAKEMASK(8,S_BCM1480_SWTRC_MATCHCTL_SRC)
    468 #define V_BCM1480_SWTRC_MATCHCTL_SRC(x)        _SB_MAKEVALUE(x,S_BCM1480_SWTRC_MATCHCTL_SRC)
    469 #define G_BCM1480_SWTRC_MATCHCTL_SRC(x)        _SB_GETVALUE(x,S_BCM1480_SWTRC_MATCHCTL_SRC,M_BCM1480_SWTRC_MATCHCTL_SRC)
    470 
    471 #define M_BCM1480_SWTRC_MATCHCTL_SRC_X(x)       _SB_MAKEMASK1(S_BCM1480_MATCHCTL_SRC+(x))
    472 
    473 
    474 #define S_BCM1480_SWTRC_MATCHCTL_DEST           40
    475 #define M_BCM1480_SWTRC_MATCHCTL_DEST           _SB_MAKEMASK(8,S_BCM1480_SWTRC_MATCHCTL_DEST)
    476 #define V_BCM1480_SWTRC_MATCHCTL_DEST(x)        _SB_MAKEVALUE(x,S_BCM1480_SWTRC_MATCHCTL_DEST)
    477 #define G_BCM1480_SWTRC_MATCHCTL_DEST(x)        _SB_GETVALUE(x,S_BCM1480_SWTRC_MATCHCTL_DEST,M_BCM1480_SWTRC_MATCHCTL_DEST)
    478 
    479 #define M_BCM1480_SWTRC_MATCHCTL_DEST_X(x)       _SB_MAKEMASK1(S_BCM1480_MATCHCTL_DEST+(x))
    480 
    481 #define S_BCM1480_SWTRC_MATCHCTL_TYPE           48
    482 #define M_BCM1480_SWTRC_MATCHCTL_TYPE           _SB_MAKEMASK(2,S_BCM1480_SWTRC_MATCHCTL_TYPE)
    483 #define V_BCM1480_SWTRC_MATCHCTL_TYPE(x)        _SB_MAKEVALUE(x,S_BCM1480_SWTRC_MATCHCTL_TYPE)
    484 #define G_BCM1480_SWTRC_MATCHCTL_TYPE(x)        _SB_GETVALUE(x,S_BCM1480_SWTRC_MATCHCTL_TYPE,M_BCM1480_SWTRC_MATCHCTL_TYPE)
    485 
    486 #define K_BCM1480_SWTRC_MATCHCTL_TYPE_NONE	0
    487 #define K_BCM1480_SWTRC_MATCHCTL_TYPE_PKTS	1
    488 #define K_BCM1480_SWTRC_MATCHCTL_TYPE_HT	2
    489 #define K_BCM1480_SWTRC_MATCHCTL_TYPE_PKTS_HT	3
    490 
    491 #define S_BCM1480_SWTRC_MATCHCTL_SOP           50
    492 #define M_BCM1480_SWTRC_MATCHCTL_SOP           _SB_MAKEMASK(2,S_BCM1480_SWTRC_MATCHCTL_SOP)
    493 #define V_BCM1480_SWTRC_MATCHCTL_SOP(x)        _SB_MAKEVALUE(x,S_BCM1480_SWTRC_MATCHCTL_SOP)
    494 #define G_BCM1480_SWTRC_MATCHCTL_SOP(x)        _SB_GETVALUE(x,S_BCM1480_SWTRC_MATCHCTL_SOP,M_BCM1480_SWTRC_MATCHCTL_SOP)
    495 
    496 #define K_BCM1480_SWTRC_MATCHCTL_SOP_NONE	0
    497 #define K_BCM1480_SWTRC_MATCHCTL_SOP_NOTSOP	1
    498 #define K_BCM1480_SWTRC_MATCHCTL_SOP_ISSOP	2
    499 #define K_BCM1480_SWTRC_MATCHCTL_SOP_IGNORE	3
    500 
    501 #define S_BCM1480_SWTRC_MATCHCTL_EOP           52
    502 #define M_BCM1480_SWTRC_MATCHCTL_EOP           _SB_MAKEMASK(2,S_BCM1480_SWTRC_MATCHCTL_EOP)
    503 #define V_BCM1480_SWTRC_MATCHCTL_EOP(x)        _SB_MAKEVALUE(x,S_BCM1480_SWTRC_MATCHCTL_EOP)
    504 #define G_BCM1480_SWTRC_MATCHCTL_EOP(x)        _SB_GETVALUE(x,S_BCM1480_SWTRC_MATCHCTL_EOP,M_BCM1480_SWTRC_MATCHCTL_EOP)
    505 
    506 #define K_BCM1480_SWTRC_MATCHCTL_EOP_NONE	0
    507 #define K_BCM1480_SWTRC_MATCHCTL_EOP_NOTEOP	1
    508 #define K_BCM1480_SWTRC_MATCHCTL_EOP_ISEOP	2
    509 #define K_BCM1480_SWTRC_MATCHCTL_EOP_IGNORE	3
    510 
    511 #define S_BCM1480_SWTRC_MATCHCTL_BCAST           54
    512 #define M_BCM1480_SWTRC_MATCHCTL_BCAST           _SB_MAKEMASK(2,S_BCM1480_SWTRC_MATCHCTL_BCAST)
    513 #define V_BCM1480_SWTRC_MATCHCTL_BCAST(x)        _SB_MAKEVALUE(x,S_BCM1480_SWTRC_MATCHCTL_BCAST)
    514 #define G_BCM1480_SWTRC_MATCHCTL_BCAST(x)        _SB_GETVALUE(x,S_BCM1480_SWTRC_MATCHCTL_BCAST,M_BCM1480_SWTRC_MATCHCTL_BCAST)
    515 
    516 #define K_BCM1480_SWTRC_MATCHCTL_BCAST_NONE	0
    517 #define K_BCM1480_SWTRC_MATCHCTL_BCAST_NOTBCAST	1
    518 #define K_BCM1480_SWTRC_MATCHCTL_BCAST_ISBCAST	2
    519 #define K_BCM1480_SWTRC_MATCHCTL_BCAST_IGNORE	3
    520 
    521 
    522 
    523 /*
    524  * Switch Trigger Event Register (Table 325)
    525  */
    526 
    527 #define S_BCM1480_SWTRC_EVT_MATCH_CTL           0
    528 #define M_BCM1480_SWTRC_EVT_MATCH_CTL           _SB_MAKEMASK(8,S_BCM1480_SWTRC_EVT_MATCH_CTL)
    529 #define V_BCM1480_SWTRC_EVT_MATCH_CTL(x)        _SB_MAKEVALUE(x,S_BCM1480_SWTRC_EVT_MATCH_CTL)
    530 #define G_BCM1480_SWTRC_EVT_MATCH_CTL(x)        _SB_GETVALUE(x,S_BCM1480_SWTRC_EVT_MATCH_CTL,M_BCM1480_SWTRC_EVT_MATCH_CTL)
    531 
    532 #define S_BCM1480_SWTRC_EVT_MATCH_DATA           8
    533 #define M_BCM1480_SWTRC_EVT_MATCH_DATA           _SB_MAKEMASK(4,S_BCM1480_SWTRC_EVT_MATCH_DATA)
    534 #define V_BCM1480_SWTRC_EVT_MATCH_DATA(x)        _SB_MAKEVALUE(x,S_BCM1480_SWTRC_EVT_MATCH_DATA)
    535 #define G_BCM1480_SWTRC_EVT_MATCH_DATA(x)        _SB_GETVALUE(x,S_BCM1480_SWTRC_EVT_MATCH_DATA,M_BCM1480_SWTRC_EVT_MATCH_DATA)
    536 
    537 #define S_BCM1480_SWTRC_EVT_MATCH_TAG           12
    538 #define M_BCM1480_SWTRC_EVT_MATCH_TAG           _SB_MAKEMASK(4,S_BCM1480_SWTRC_EVT_MATCH_TAG)
    539 #define V_BCM1480_SWTRC_EVT_MATCH_TAG(x)        _SB_MAKEVALUE(x,S_BCM1480_SWTRC_EVT_MATCH_TAG)
    540 #define G_BCM1480_SWTRC_EVT_MATCH_TAG(x)        _SB_GETVALUE(x,S_BCM1480_SWTRC_EVT_MATCH_TAG,M_BCM1480_SWTRC_EVT_MATCH_TAG)
    541 
    542 #define M_BCM1480_SWTRC_EVT_MATCH_EN		_SB_MAKEMASK1(16)
    543 #define M_BCM1480_SWTRC_EVT_DEBUG_PIN		_SB_MAKEMASK1(20)
    544 #define M_BCM1480_SWTRC_EVT_INTERRUPT		_SB_MAKEMASK1(21)
    545 
    546 #define S_BCM1480_SWTRC_EVT_COUNT           24
    547 #define M_BCM1480_SWTRC_EVT_COUNT           _SB_MAKEMASK(8,S_BCM1480_SWTRC_EVT_COUNT)
    548 #define V_BCM1480_SWTRC_EVT_COUNT(x)        _SB_MAKEVALUE(x,S_BCM1480_SWTRC_EVT_COUNT)
    549 #define G_BCM1480_SWTRC_EVT_COUNT(x)        _SB_GETVALUE(x,S_BCM1480_SWTRC_EVT_COUNT,M_BCM1480_SWTRC_EVT_COUNT)
    550 
    551 
    552 /*
    553  * Switch Trace Sequence Control (Table 326)
    554  * NOTE: Event select fields are numbered from zero, not one as they are
    555  * in the manual.
    556  */
    557 
    558 #define S_BCM1480_SWTRC_SEQ_EVSEL_3           0
    559 #define M_BCM1480_SWTRC_SEQ_EVSEL_3           _SB_MAKEMASK(4,S_BCM1480_SWTRC_SEQ_EVSEL_3)
    560 #define V_BCM1480_SWTRC_SEQ_EVSEL_3(x)        _SB_MAKEVALUE(x,S_BCM1480_SWTRC_SEQ_EVSEL_3)
    561 #define G_BCM1480_SWTRC_SEQ_EVSEL_3(x)        _SB_GETVALUE(x,S_BCM1480_SWTRC_SEQ_EVSEL_3,M_BCM1480_SWTRC_SEQ_EVSEL_3)
    562 
    563 #define S_BCM1480_SWTRC_SEQ_EVSEL_2           4
    564 #define M_BCM1480_SWTRC_SEQ_EVSEL_2           _SB_MAKEMASK(4,S_BCM1480_SWTRC_SEQ_EVSEL_2)
    565 #define V_BCM1480_SWTRC_SEQ_EVSEL_2(x)        _SB_MAKEVALUE(x,S_BCM1480_SWTRC_SEQ_EVSEL_2)
    566 #define G_BCM1480_SWTRC_SEQ_EVSEL_2(x)        _SB_GETVALUE(x,S_BCM1480_SWTRC_SEQ_EVSEL_2,M_BCM1480_SWTRC_SEQ_EVSEL_2)
    567 
    568 #define S_BCM1480_SWTRC_SEQ_EVSEL_1           8
    569 #define M_BCM1480_SWTRC_SEQ_EVSEL_1           _SB_MAKEMASK(4,S_BCM1480_SWTRC_SEQ_EVSEL_1)
    570 #define V_BCM1480_SWTRC_SEQ_EVSEL_1(x)        _SB_MAKEVALUE(x,S_BCM1480_SWTRC_SEQ_EVSEL_1)
    571 #define G_BCM1480_SWTRC_SEQ_EVSEL_1(x)        _SB_GETVALUE(x,S_BCM1480_SWTRC_SEQ_EVSEL_1,M_BCM1480_SWTRC_SEQ_EVSEL_1)
    572 
    573 #define S_BCM1480_SWTRC_SEQ_EVSEL_0           12
    574 #define M_BCM1480_SWTRC_SEQ_EVSEL_0           _SB_MAKEMASK(4,S_BCM1480_SWTRC_SEQ_EVSEL_0)
    575 #define V_BCM1480_SWTRC_SEQ_EVSEL_0(x)        _SB_MAKEVALUE(x,S_BCM1480_SWTRC_SEQ_EVSEL_0)
    576 #define G_BCM1480_SWTRC_SEQ_EVSEL_0(x)        _SB_GETVALUE(x,S_BCM1480_SWTRC_SEQ_EVSEL_0,M_BCM1480_SWTRC_SEQ_EVSEL_0)
    577 
    578 #define S_BCM1480_SWTRC_SEQ_EVSEL_X(e)        (12-((e)*4)
    579 #define M_BCM1480_SWTRC_SEQ_EVSEL_X(e)        _SB_MAKEMASK(4,S_BCM1480_SWTRC_SEQ_EVSEL_X(e))
    580 #define V_BCM1480_SWTRC_SEQ_EVSEL_X(e,x)      _SB_MAKEVALUE(x,S_BCM1480_SWTRC_SEQ_EVSEL_X(e))
    581 #define G_BCM1480_SWTRC_SEQ_EVSEL_X(e,x)      _SB_GETVALUE(x,S_BCM1480_SWTRC_SEQ_EVSEL_X(e),M_BCM1480_SWTRC_SEQ_EVSEL_X(e))
    582 
    583 #define S_BCM1480_SWTRC_SEQ_FUNCTION           16
    584 #define M_BCM1480_SWTRC_SEQ_FUNCTION           _SB_MAKEMASK(2,S_BCM1480_SWTRC_SEQ_FUNCTION)
    585 #define V_BCM1480_SWTRC_SEQ_FUNCTION(x)        _SB_MAKEVALUE(x,S_BCM1480_SWTRC_SEQ_FUNCTION)
    586 #define G_BCM1480_SWTRC_SEQ_FUNCTION(x)        _SB_GETVALUE(x,S_BCM1480_SWTRC_SEQ_FUNCTION,M_BCM1480_SWTRC_SEQ_FUNCTION)
    587 
    588 #define K_BCM1480_SWTRC_SEQ_FUNCTION_NOP	0
    589 #define K_BCM1480_SWTRC_SEQ_FUNCTION_START	1
    590 #define K_BCM1480_SWTRC_SEQ_FUNCTION_STOP	2
    591 #define K_BCM1480_SWTRC_SEQ_FUNCTION_FREEZE	3
    592 
    593 #define M_BCM1480_SWTRC_SEQ_DSAMPLE		_SB_MAKEMASK1(18)
    594 #define M_BCM1480_SWTRC_SEQ_CSAMPLE		_SB_MAKEMASK1(19)
    595 #define M_BCM1480_SWTRC_SEQ_DEBUGPIN		_SB_MAKEMASK1(20)
    596 #define M_BCM1480_SWTRC_SEQ_DEBUGCPU		_SB_MAKEMASK1(21)
    597 #define M_BCM1480_SWTRC_SEQ_CLEARUSE		_SB_MAKEMASK1(22)
    598 
    599 #define S_BCM1480_SWTRC_SEQ_ZBBUSFUNC           26
    600 #define M_BCM1480_SWTRC_SEQ_ZBBUSFUNC           _SB_MAKEMASK(2,S_BCM1480_SWTRC_SEQ_ZBBUSFUNC)
    601 #define V_BCM1480_SWTRC_SEQ_ZBBUSFUNC(x)        _SB_MAKEVALUE(x,S_BCM1480_SWTRC_SEQ_ZBBUSFUNC)
    602 #define G_BCM1480_SWTRC_SEQ_ZBBUSFUNC(x)        _SB_GETVALUE(x,S_BCM1480_SWTRC_SEQ_ZBBUSFUNC,M_BCM1480_SWTRC_SEQ_ZBBUSFUNC)
    603 
    604 #define K_BCM1480_SWTRC_SEQ_ZBBUSFUNC_NOP	0
    605 #define K_BCM1480_SWTRC_SEQ_ZBBUSFUNC_START	1
    606 #define K_BCM1480_SWTRC_SEQ_ZBBUSFUNC_STOP	2
    607 #define K_BCM1480_SWTRC_SEQ_ZBBUSFUNC_FREEZE	3
    608 
    609 #define S_BCM1480_SWTRC_SEQ_DSAMPFILT           28
    610 #define M_BCM1480_SWTRC_SEQ_DSAMPFILT           _SB_MAKEMASK(3,S_BCM1480_SWTRC_SEQ_DSAMPFILT)
    611 #define V_BCM1480_SWTRC_SEQ_DSAMPFILT(x)        _SB_MAKEVALUE(x,S_BCM1480_SWTRC_SEQ_DSAMPFILT)
    612 #define G_BCM1480_SWTRC_SEQ_DSAMPFILT(x)        _SB_GETVALUE(x,S_BCM1480_SWTRC_SEQ_DSAMPFILT,M_BCM1480_SWTRC_SEQ_DSAMPFILT)
    613 
    614 /*
    615  * Switch Trace Config Register (Table 327)
    616  */
    617 
    618 #define M_BCM1480_SWTRC_CFG_RESET	_SB_MAKEMASK1(0)
    619 #define M_BCM1480_SWTRC_CFG_STARTREAD	_SB_MAKEMASK1(1)
    620 #define M_BCM1480_SWTRC_CFG_START	_SB_MAKEMASK1(2)
    621 #define M_BCM1480_SWTRC_CFG_STOP	_SB_MAKEMASK1(3)
    622 #define M_BCM1480_SWTRC_CFG_FREEZE	_SB_MAKEMASK1(4)
    623 #define M_BCM1480_SWTRC_CFG_FREEZEFULL	_SB_MAKEMASK1(5)
    624 #define M_BCM1480_SWTRC_CFG_DEBUGFULL	_SB_MAKEMASK1(6)
    625 #define M_BCM1480_SWTRC_CFG_TRCFULL	_SB_MAKEMASK1(7)
    626 #define M_BCM1480_SWTRC_CFG_FORCECNT	_SB_MAKEMASK1(8)
    627 
    628 #define S_BCM1480_SWTRC_CFG_TRCADDR           10
    629 #define M_BCM1480_SWTRC_CFG_TRCADDR           _SB_MAKEMASK(10,S_BCM1480_SWTRC_CFG_TRCADDR)
    630 #define V_BCM1480_SWTRC_CFG_TRCADDR(x)        _SB_MAKEVALUE(x,S_BCM1480_SWTRC_CFG_TRCADDR)
    631 #define G_BCM1480_SWTRC_CFG_TRCADDR(x)        _SB_GETVALUE(x,S_BCM1480_SWTRC_CFG_TRCADDR,M_BCM1480_SWTRC_CFG_TRCADDR)
    632 
    633 
    634 /*
    635  * Switch trace buffer entry (3 64-bit words per entry)   (Table 328)
    636  */
    637 
    638 #define M_BCM1480_SWENT_VALID _SB_MAKEMASK1(63)
    639 #define M_BCM1480_SWENT_FMT _SB_MAKEMASK1(62)
    640 #define M_BCM1480_SWENT_MULTI _SB_MAKEMASK1(61)
    641 #define M_BCM1480_SWENT_BCAST _SB_MAKEMASK1(60)
    642 
    643 #define S_BCM1480_SWENT_CYCDIFF           48
    644 #define M_BCM1480_SWENT_CYCDIFF           _SB_MAKEMASK(12,S_BCM1480_SWENT_CYCDIFF)
    645 #define V_BCM1480_SWENT_CYCDIFF(x)        _SB_MAKEVALUE(x,S_BCM1480_SWENT_CYCDIFF)
    646 #define G_BCM1480_SWENT_CYCDIFF(x)        _SB_GETVALUE(x,S_BCM1480_SWENT_CYCDIFF,M_BCM1480_SWENT_CYCDIFF)
    647 
    648 #define M_BCM1480_SWENT_DRELOAD _SB_MAKEMASK1(47)
    649 #define M_BCM1480_SWENT_SRELOAD _SB_MAKEMASK1(46)
    650 #define M_BCM1480_SWENT_EOP _SB_MAKEMASK1(45)
    651 #define M_BCM1480_SWENT_SOP _SB_MAKEMASK1(44)
    652 
    653 #define S_BCM1480_SWENT_VC          39
    654 #define M_BCM1480_SWENT_VC           _SB_MAKEMASK(5,S_BCM1480_SWENT_VC)
    655 #define V_BCM1480_SWENT_VC(x)        _SB_MAKEVALUE(x,S_BCM1480_SWENT_VC)
    656 #define G_BCM1480_SWENT_VC(x)        _SB_GETVALUE(x,S_BCM1480_SWENT_VC,M_BCM1480_SWENT_VC)
    657 
    658 #define M_BCM1480_SWENT_TYPE _SB_MAKEMASK1(38)
    659 
    660 #define S_BCM1480_SWENT_DEST          35
    661 #define M_BCM1480_SWENT_DEST           _SB_MAKEMASK(3,S_BCM1480_SWENT_DEST)
    662 #define V_BCM1480_SWENT_DEST(x)        _SB_MAKEVALUE(x,S_BCM1480_SWENT_DEST)
    663 #define G_BCM1480_SWENT_DEST(x)        _SB_GETVALUE(x,S_BCM1480_SWENT_DEST,M_BCM1480_SWENT_DEST)
    664 
    665 #define S_BCM1480_SWENT_SRC          32
    666 #define M_BCM1480_SWENT_SRC           _SB_MAKEMASK(3,S_BCM1480_SWENT_SRC)
    667 #define V_BCM1480_SWENT_SRC(x)        _SB_MAKEVALUE(x,S_BCM1480_SWENT_SRC)
    668 #define G_BCM1480_SWENT_SRC(x)        _SB_GETVALUE(x,S_BCM1480_SWENT_SRC,M_BCM1480_SWENT_SRC)
    669 
    670 #define S_BCM1480_SWENT_CNT          28
    671 #define M_BCM1480_SWENT_CNT           _SB_MAKEMASK(4,S_BCM1480_SWENT_CNT)
    672 #define V_BCM1480_SWENT_CNT(x)        _SB_MAKEVALUE(x,S_BCM1480_SWENT_CNT)
    673 #define G_BCM1480_SWENT_CNT(x)        _SB_GETVALUE(x,S_BCM1480_SWENT_CNT,M_BCM1480_SWENT_CNT)
    674 
    675 #define S_BCM1480_SWENT_TAG          0
    676 #define M_BCM1480_SWENT_TAG           _SB_MAKEMASK(28,S_BCM1480_SWENT_TAG)
    677 #define V_BCM1480_SWENT_TAG(x)        _SB_MAKEVALUE(x,S_BCM1480_SWENT_TAG)
    678 #define G_BCM1480_SWENT_TAG(x)        _SB_GETVALUE(x,S_BCM1480_SWENT_TAG,M_BCM1480_SWENT_TAG)
    679 
    680 
    681 
    682 #endif /* _BCM1480_PM_H */
    683