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