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