bcm1480_pm.h revision 1.1 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