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