bfcmap84756_a0.h (465103B)
1 /******************************************************************************* 2 * 3 * 4 * This license is set out in https://raw.githubusercontent.com/Broadcom-Network-Switching-Software/OpenBCM/master/Legal/LICENSE file. 5 * 6 * Copyright 2007-2019 Broadcom Inc. All rights reserved. 7 * 8 * DO NOT EDIT THIS FILE! 9 * This file is auto-generated from the registers file. 10 * Edits to this file will be lost when it is regenerated. 11 * 12 * Definition file for the bcm84756_a0. 13 * This file provides all basic definitions required to program the bcm84756_a0. 14 * 15 * This file is autogenerated. Please do not edit. 16 */ 17 #ifndef __bcm84756_a0_DEFS_H__ 18 #define __bcm84756_a0_DEFS_H__ 19 20 #include <bbase_types.h> 21 #include <bfcmap.h> 22 23 /******************************************************************************* 24 * 25 * CHIP DEFINITIONS BEGIN HERE 26 */ 27 28 29 30 #define BCM84756_A0_BLK_SECPORT 0x00000001 31 #define BCM84756_A0_BLK_MFP 0x00000002 32 33 34 #define BCM84756_A0_NUM_REG 154 35 36 #define BCM84756_A0_NUM_MEM 0 37 38 /******************************************************************************* 39 * CHIP: bcm84756_a0 40 * REGISTER: FCM_BAD_TX_CHAR_COUNT 41 * BLOCKS: SECPORT 42 * DESCRIPTION : 43 * Bad TX Char Counter Register. 44 * 45 * SIZE: 32 46 */ 47 #define bcm84756_a0_FCM_BAD_TX_CHAR_COUNTr(c) \ 48 (0x13100060 + (BFCMAP_PORT((c)) << 12)) 49 50 #define bcm84756_a0_FCM_BAD_TX_CHAR_COUNTr_SIZE 1 51 52 /* 53 * This structure should be used to declare and program FCM_BAD_TX_CHAR_COUNT. 54 */ 55 typedef union bcm84756_a0_FCM_BAD_TX_CHAR_COUNTr_s { 56 buint32_t v[1]; 57 buint32_t fcm_bad_tx_char_count[1]; 58 buint32_t _fcm_bad_tx_char_count; 59 } bcm84756_a0_FCM_BAD_TX_CHAR_COUNTr_t; 60 61 #define bcm84756_a0_FCM_BAD_TX_CHAR_COUNTr_CLR(r) \ 62 (r).fcm_bad_tx_char_count[0] = 0 63 64 #define bcm84756_a0_FCM_BAD_TX_CHAR_COUNTr_SET(r,d) \ 65 (r).fcm_bad_tx_char_count[0] = d 66 67 #define bcm84756_a0_FCM_BAD_TX_CHAR_COUNTr_GET(r) \ 68 (r).fcm_bad_tx_char_count[0] 69 70 71 72 /* 73 * These macros can be used to access FCM_BAD_TX_CHAR_COUNT. 74 */ 75 #define bcm84756_a0_READ_FCM_BAD_TX_CHAR_COUNTr(c,r) \ 76 BFCMAP_REG32_READ((c),bcm84756_a0_FCM_BAD_TX_CHAR_COUNTr((c)),&((r)._fcm_bad_tx_char_count)) 77 78 #define bcm84756_a0_WRITE_FCM_BAD_TX_CHAR_COUNTr(c,r) \ 79 BFCMAP_REG32_WRITE((c),bcm84756_a0_FCM_BAD_TX_CHAR_COUNTr((c)),&((r)._fcm_bad_tx_char_count)) 80 81 /******************************************************************************* 82 * End of 'bcm84756_a0_FCM_BAD_TX_CHAR_COUNTr' 83 */ 84 85 86 87 88 /******************************************************************************* 89 * CHIP: bcm84756_a0 90 * REGISTER: FCM_DEFAULT_CNTAG_ET 91 * BLOCKS: SECPORT 92 * DESCRIPTION : 93 * Default CN-Tag Ethertype value. 94 * 95 * SIZE: 32 96 * 97 * FIELDS DESCRIPTION: 98 * VALUE : 99 * Default CN-Tag Ethertype value. 100 */ 101 #define bcm84756_a0_FCM_DEFAULT_CNTAG_ETr(c) \ 102 (0x13100010 + (BFCMAP_PORT((c)) << 12)) 103 104 #define bcm84756_a0_FCM_DEFAULT_CNTAG_ETr_SIZE 1 105 106 /* 107 * This structure should be used to declare and program FCM_DEFAULT_CNTAG_ET. 108 */ 109 typedef union bcm84756_a0_FCM_DEFAULT_CNTAG_ETr_s { 110 buint32_t v[1]; 111 buint32_t fcm_default_cntag_et[1]; 112 buint32_t _fcm_default_cntag_et; 113 } bcm84756_a0_FCM_DEFAULT_CNTAG_ETr_t; 114 115 #define bcm84756_a0_FCM_DEFAULT_CNTAG_ETr_CLR(r) \ 116 (r).fcm_default_cntag_et[0] = 0 117 118 #define bcm84756_a0_FCM_DEFAULT_CNTAG_ETr_SET(r,d) \ 119 (r).fcm_default_cntag_et[0] = d 120 121 #define bcm84756_a0_FCM_DEFAULT_CNTAG_ETr_GET(r) \ 122 (r).fcm_default_cntag_et[0] 123 124 125 /* 126 * These macros can be used to access individual fields. 127 */ 128 #define bcm84756_a0_FCM_DEFAULT_CNTAG_ETr_VALUEf_GET(c,r) \ 129 (((r).fcm_default_cntag_et[0]) & 0xffff) 130 131 #define bcm84756_a0_FCM_DEFAULT_CNTAG_ETr_VALUEf_SET(c,r,f) \ 132 (r).fcm_default_cntag_et[0]=(((r).fcm_default_cntag_et[0] & ~((buint32_t)0xffff)) | \ 133 (((buint32_t)f) & 0xffff)) 134 135 136 /* 137 * These macros can be used to access FCM_DEFAULT_CNTAG_ET. 138 */ 139 #define bcm84756_a0_READ_FCM_DEFAULT_CNTAG_ETr(c,r) \ 140 BFCMAP_REG32_READ((c),bcm84756_a0_FCM_DEFAULT_CNTAG_ETr((c)),&((r)._fcm_default_cntag_et)) 141 142 #define bcm84756_a0_WRITE_FCM_DEFAULT_CNTAG_ETr(c,r) \ 143 BFCMAP_REG32_WRITE((c),bcm84756_a0_FCM_DEFAULT_CNTAG_ETr((c)),&((r)._fcm_default_cntag_et)) 144 145 /******************************************************************************* 146 * End of 'bcm84756_a0_FCM_DEFAULT_CNTAG_ETr' 147 */ 148 149 150 151 152 /******************************************************************************* 153 * CHIP: bcm84756_a0 154 * REGISTER: FCM_DEFAULT_FCOE_DSTMAC_hi 155 * BLOCKS: SECPORT 156 * DESCRIPTION : 157 * ADDR DEFAULT DSTMAC // Mapper Encap Header FCoE Default Dest MAC field. rw 158 * 159 * SIZE: 32 160 * 161 * FIELDS DESCRIPTION: 162 * DSTMAC : 163 * Default DSTMAC field, bits [47:32]. 164 */ 165 #define bcm84756_a0_FCM_DEFAULT_FCOE_DSTMAC_HIr(c) \ 166 (0x13100016 + (BFCMAP_PORT((c)) << 12)) 167 168 #define bcm84756_a0_FCM_DEFAULT_FCOE_DSTMAC_HIr_SIZE 1 169 170 /* 171 * This structure should be used to declare and program FCM_DEFAULT_FCOE_DSTMAC_hi. 172 */ 173 typedef union bcm84756_a0_FCM_DEFAULT_FCOE_DSTMAC_HIr_s { 174 buint32_t v[1]; 175 buint32_t fcm_default_fcoe_dstmac_hi[1]; 176 buint32_t _fcm_default_fcoe_dstmac_hi; 177 } bcm84756_a0_FCM_DEFAULT_FCOE_DSTMAC_HIr_t; 178 179 #define bcm84756_a0_FCM_DEFAULT_FCOE_DSTMAC_HIr_CLR(r) \ 180 (r).fcm_default_fcoe_dstmac_hi[0] = 0 181 182 #define bcm84756_a0_FCM_DEFAULT_FCOE_DSTMAC_HIr_SET(r,d) \ 183 (r).fcm_default_fcoe_dstmac_hi[0] = d 184 185 #define bcm84756_a0_FCM_DEFAULT_FCOE_DSTMAC_HIr_GET(r) \ 186 (r).fcm_default_fcoe_dstmac_hi[0] 187 188 189 /* 190 * These macros can be used to access individual fields. 191 */ 192 #define bcm84756_a0_FCM_DEFAULT_FCOE_DSTMAC_HIr_DSTMACf_GET(c,r) \ 193 (((r).fcm_default_fcoe_dstmac_hi[0]) & 0xffff) 194 195 #define bcm84756_a0_FCM_DEFAULT_FCOE_DSTMAC_HIr_DSTMACf_SET(c,r,f) \ 196 (r).fcm_default_fcoe_dstmac_hi[0]=(((r).fcm_default_fcoe_dstmac_hi[0] & ~((buint32_t)0xffff)) | \ 197 (((buint32_t)f) & 0xffff)) 198 199 200 /* 201 * These macros can be used to access FCM_DEFAULT_FCOE_DSTMAC_hi. 202 */ 203 #define bcm84756_a0_READ_FCM_DEFAULT_FCOE_DSTMAC_HIr(c,r) \ 204 BFCMAP_REG32_READ((c),bcm84756_a0_FCM_DEFAULT_FCOE_DSTMAC_HIr((c)),&((r)._fcm_default_fcoe_dstmac_hi)) 205 206 #define bcm84756_a0_WRITE_FCM_DEFAULT_FCOE_DSTMAC_HIr(c,r) \ 207 BFCMAP_REG32_WRITE((c),bcm84756_a0_FCM_DEFAULT_FCOE_DSTMAC_HIr((c)),&((r)._fcm_default_fcoe_dstmac_hi)) 208 209 /******************************************************************************* 210 * End of 'bcm84756_a0_FCM_DEFAULT_FCOE_DSTMAC_HIr' 211 */ 212 213 214 215 216 /******************************************************************************* 217 * CHIP: bcm84756_a0 218 * REGISTER: FCM_DEFAULT_FCOE_DSTMAC_lo 219 * BLOCKS: SECPORT 220 * DESCRIPTION : 221 * ADDR DEFAULT DSTMAC // Mapper Encap Header FCoE Default Dest MAC field. rw 222 * 223 * SIZE: 32 224 * 225 * FIELDS DESCRIPTION: 226 * DSTMAC : 227 * Default DSTMAC field, bits [31:0]. 228 */ 229 #define bcm84756_a0_FCM_DEFAULT_FCOE_DSTMAC_LOr(c) \ 230 (0x13100017 + (BFCMAP_PORT((c)) << 12)) 231 232 #define bcm84756_a0_FCM_DEFAULT_FCOE_DSTMAC_LOr_SIZE 1 233 234 /* 235 * This structure should be used to declare and program FCM_DEFAULT_FCOE_DSTMAC_lo. 236 */ 237 typedef union bcm84756_a0_FCM_DEFAULT_FCOE_DSTMAC_LOr_s { 238 buint32_t v[1]; 239 buint32_t fcm_default_fcoe_dstmac_lo[1]; 240 buint32_t _fcm_default_fcoe_dstmac_lo; 241 } bcm84756_a0_FCM_DEFAULT_FCOE_DSTMAC_LOr_t; 242 243 #define bcm84756_a0_FCM_DEFAULT_FCOE_DSTMAC_LOr_CLR(r) \ 244 (r).fcm_default_fcoe_dstmac_lo[0] = 0 245 246 #define bcm84756_a0_FCM_DEFAULT_FCOE_DSTMAC_LOr_SET(r,d) \ 247 (r).fcm_default_fcoe_dstmac_lo[0] = d 248 249 #define bcm84756_a0_FCM_DEFAULT_FCOE_DSTMAC_LOr_GET(r) \ 250 (r).fcm_default_fcoe_dstmac_lo[0] 251 252 253 /* 254 * These macros can be used to access individual fields. 255 */ 256 #define bcm84756_a0_FCM_DEFAULT_FCOE_DSTMAC_LOr_DSTMACf_GET(c,r) \ 257 ((r).fcm_default_fcoe_dstmac_lo[0]) 258 259 #define bcm84756_a0_FCM_DEFAULT_FCOE_DSTMAC_LOr_DSTMACf_SET(c,r,f) \ 260 (r).fcm_default_fcoe_dstmac_lo[0]=((buint32_t)f) 261 262 263 /* 264 * These macros can be used to access FCM_DEFAULT_FCOE_DSTMAC_lo. 265 */ 266 #define bcm84756_a0_READ_FCM_DEFAULT_FCOE_DSTMAC_LOr(c,r) \ 267 BFCMAP_REG32_READ((c),bcm84756_a0_FCM_DEFAULT_FCOE_DSTMAC_LOr((c)),&((r)._fcm_default_fcoe_dstmac_lo)) 268 269 #define bcm84756_a0_WRITE_FCM_DEFAULT_FCOE_DSTMAC_LOr(c,r) \ 270 BFCMAP_REG32_WRITE((c),bcm84756_a0_FCM_DEFAULT_FCOE_DSTMAC_LOr((c)),&((r)._fcm_default_fcoe_dstmac_lo)) 271 272 /******************************************************************************* 273 * End of 'bcm84756_a0_FCM_DEFAULT_FCOE_DSTMAC_LOr' 274 */ 275 276 277 278 279 /******************************************************************************* 280 * CHIP: bcm84756_a0 281 * REGISTER: FCM_DEFAULT_FCOE_ET 282 * BLOCKS: SECPORT 283 * DESCRIPTION : 284 * Default FCoE Ethertype value. 285 * 286 * SIZE: 32 287 * 288 * FIELDS DESCRIPTION: 289 * VALUE : 290 * Default FCoE Ethertype value. 291 */ 292 #define bcm84756_a0_FCM_DEFAULT_FCOE_ETr(c) \ 293 (0x1310000f + (BFCMAP_PORT((c)) << 12)) 294 295 #define bcm84756_a0_FCM_DEFAULT_FCOE_ETr_SIZE 1 296 297 /* 298 * This structure should be used to declare and program FCM_DEFAULT_FCOE_ET. 299 */ 300 typedef union bcm84756_a0_FCM_DEFAULT_FCOE_ETr_s { 301 buint32_t v[1]; 302 buint32_t fcm_default_fcoe_et[1]; 303 buint32_t _fcm_default_fcoe_et; 304 } bcm84756_a0_FCM_DEFAULT_FCOE_ETr_t; 305 306 #define bcm84756_a0_FCM_DEFAULT_FCOE_ETr_CLR(r) \ 307 (r).fcm_default_fcoe_et[0] = 0 308 309 #define bcm84756_a0_FCM_DEFAULT_FCOE_ETr_SET(r,d) \ 310 (r).fcm_default_fcoe_et[0] = d 311 312 #define bcm84756_a0_FCM_DEFAULT_FCOE_ETr_GET(r) \ 313 (r).fcm_default_fcoe_et[0] 314 315 316 /* 317 * These macros can be used to access individual fields. 318 */ 319 #define bcm84756_a0_FCM_DEFAULT_FCOE_ETr_VALUEf_GET(c,r) \ 320 (((r).fcm_default_fcoe_et[0]) & 0xffff) 321 322 #define bcm84756_a0_FCM_DEFAULT_FCOE_ETr_VALUEf_SET(c,r,f) \ 323 (r).fcm_default_fcoe_et[0]=(((r).fcm_default_fcoe_et[0] & ~((buint32_t)0xffff)) | \ 324 (((buint32_t)f) & 0xffff)) 325 326 327 /* 328 * These macros can be used to access FCM_DEFAULT_FCOE_ET. 329 */ 330 #define bcm84756_a0_READ_FCM_DEFAULT_FCOE_ETr(c,r) \ 331 BFCMAP_REG32_READ((c),bcm84756_a0_FCM_DEFAULT_FCOE_ETr((c)),&((r)._fcm_default_fcoe_et)) 332 333 #define bcm84756_a0_WRITE_FCM_DEFAULT_FCOE_ETr(c,r) \ 334 BFCMAP_REG32_WRITE((c),bcm84756_a0_FCM_DEFAULT_FCOE_ETr((c)),&((r)._fcm_default_fcoe_et)) 335 336 /******************************************************************************* 337 * End of 'bcm84756_a0_FCM_DEFAULT_FCOE_ETr' 338 */ 339 340 341 342 343 /******************************************************************************* 344 * CHIP: bcm84756_a0 345 * REGISTER: FCM_DEFAULT_FCOE_SRCMAC_hi 346 * BLOCKS: SECPORT 347 * DESCRIPTION : 348 * ADDR DEFAULT SRCMAC // Mapper Encap Header FCoE Default Source MAC field. 349 * rw 350 * 351 * SIZE: 32 352 * 353 * FIELDS DESCRIPTION: 354 * SRCMAC : 355 * Default SRCMAC field, bits [47:32]. 356 */ 357 #define bcm84756_a0_FCM_DEFAULT_FCOE_SRCMAC_HIr(c) \ 358 (0x13100018 + (BFCMAP_PORT((c)) << 12)) 359 360 #define bcm84756_a0_FCM_DEFAULT_FCOE_SRCMAC_HIr_SIZE 1 361 362 /* 363 * This structure should be used to declare and program FCM_DEFAULT_FCOE_SRCMAC_hi. 364 */ 365 typedef union bcm84756_a0_FCM_DEFAULT_FCOE_SRCMAC_HIr_s { 366 buint32_t v[1]; 367 buint32_t fcm_default_fcoe_srcmac_hi[1]; 368 buint32_t _fcm_default_fcoe_srcmac_hi; 369 } bcm84756_a0_FCM_DEFAULT_FCOE_SRCMAC_HIr_t; 370 371 #define bcm84756_a0_FCM_DEFAULT_FCOE_SRCMAC_HIr_CLR(r) \ 372 (r).fcm_default_fcoe_srcmac_hi[0] = 0 373 374 #define bcm84756_a0_FCM_DEFAULT_FCOE_SRCMAC_HIr_SET(r,d) \ 375 (r).fcm_default_fcoe_srcmac_hi[0] = d 376 377 #define bcm84756_a0_FCM_DEFAULT_FCOE_SRCMAC_HIr_GET(r) \ 378 (r).fcm_default_fcoe_srcmac_hi[0] 379 380 381 /* 382 * These macros can be used to access individual fields. 383 */ 384 #define bcm84756_a0_FCM_DEFAULT_FCOE_SRCMAC_HIr_SRCMACf_GET(c,r) \ 385 (((r).fcm_default_fcoe_srcmac_hi[0]) & 0xffff) 386 387 #define bcm84756_a0_FCM_DEFAULT_FCOE_SRCMAC_HIr_SRCMACf_SET(c,r,f) \ 388 (r).fcm_default_fcoe_srcmac_hi[0]=(((r).fcm_default_fcoe_srcmac_hi[0] & ~((buint32_t)0xffff)) | \ 389 (((buint32_t)f) & 0xffff)) 390 391 392 /* 393 * These macros can be used to access FCM_DEFAULT_FCOE_SRCMAC_hi. 394 */ 395 #define bcm84756_a0_READ_FCM_DEFAULT_FCOE_SRCMAC_HIr(c,r) \ 396 BFCMAP_REG32_READ((c),bcm84756_a0_FCM_DEFAULT_FCOE_SRCMAC_HIr((c)),&((r)._fcm_default_fcoe_srcmac_hi)) 397 398 #define bcm84756_a0_WRITE_FCM_DEFAULT_FCOE_SRCMAC_HIr(c,r) \ 399 BFCMAP_REG32_WRITE((c),bcm84756_a0_FCM_DEFAULT_FCOE_SRCMAC_HIr((c)),&((r)._fcm_default_fcoe_srcmac_hi)) 400 401 /******************************************************************************* 402 * End of 'bcm84756_a0_FCM_DEFAULT_FCOE_SRCMAC_HIr' 403 */ 404 405 406 407 408 /******************************************************************************* 409 * CHIP: bcm84756_a0 410 * REGISTER: FCM_DEFAULT_FCOE_SRCMAC_lo 411 * BLOCKS: SECPORT 412 * DESCRIPTION : 413 * ADDR DEFAULT SRCMAC // Mapper Encap Header FCoE Default Source MAC field. 414 * rw 415 * 416 * SIZE: 32 417 * 418 * FIELDS DESCRIPTION: 419 * SRCMAC : 420 * Default SRCMAC field, bits [31:0]. 421 */ 422 #define bcm84756_a0_FCM_DEFAULT_FCOE_SRCMAC_LOr(c) \ 423 (0x13100019 + (BFCMAP_PORT((c)) << 12)) 424 425 #define bcm84756_a0_FCM_DEFAULT_FCOE_SRCMAC_LOr_SIZE 1 426 427 /* 428 * This structure should be used to declare and program FCM_DEFAULT_FCOE_SRCMAC_lo. 429 */ 430 typedef union bcm84756_a0_FCM_DEFAULT_FCOE_SRCMAC_LOr_s { 431 buint32_t v[1]; 432 buint32_t fcm_default_fcoe_srcmac_lo[1]; 433 buint32_t _fcm_default_fcoe_srcmac_lo; 434 } bcm84756_a0_FCM_DEFAULT_FCOE_SRCMAC_LOr_t; 435 436 #define bcm84756_a0_FCM_DEFAULT_FCOE_SRCMAC_LOr_CLR(r) \ 437 (r).fcm_default_fcoe_srcmac_lo[0] = 0 438 439 #define bcm84756_a0_FCM_DEFAULT_FCOE_SRCMAC_LOr_SET(r,d) \ 440 (r).fcm_default_fcoe_srcmac_lo[0] = d 441 442 #define bcm84756_a0_FCM_DEFAULT_FCOE_SRCMAC_LOr_GET(r) \ 443 (r).fcm_default_fcoe_srcmac_lo[0] 444 445 446 /* 447 * These macros can be used to access individual fields. 448 */ 449 #define bcm84756_a0_FCM_DEFAULT_FCOE_SRCMAC_LOr_SRCMACf_GET(c,r) \ 450 ((r).fcm_default_fcoe_srcmac_lo[0]) 451 452 #define bcm84756_a0_FCM_DEFAULT_FCOE_SRCMAC_LOr_SRCMACf_SET(c,r,f) \ 453 (r).fcm_default_fcoe_srcmac_lo[0]=((buint32_t)f) 454 455 456 /* 457 * These macros can be used to access FCM_DEFAULT_FCOE_SRCMAC_lo. 458 */ 459 #define bcm84756_a0_READ_FCM_DEFAULT_FCOE_SRCMAC_LOr(c,r) \ 460 BFCMAP_REG32_READ((c),bcm84756_a0_FCM_DEFAULT_FCOE_SRCMAC_LOr((c)),&((r)._fcm_default_fcoe_srcmac_lo)) 461 462 #define bcm84756_a0_WRITE_FCM_DEFAULT_FCOE_SRCMAC_LOr(c,r) \ 463 BFCMAP_REG32_WRITE((c),bcm84756_a0_FCM_DEFAULT_FCOE_SRCMAC_LOr((c)),&((r)._fcm_default_fcoe_srcmac_lo)) 464 465 /******************************************************************************* 466 * End of 'bcm84756_a0_FCM_DEFAULT_FCOE_SRCMAC_LOr' 467 */ 468 469 470 471 472 /******************************************************************************* 473 * CHIP: bcm84756_a0 474 * REGISTER: FCM_DEFAULT_OUI_ET 475 * BLOCKS: SECPORT 476 * DESCRIPTION : 477 * Default OUI extended Ethertype field. 478 * 479 * SIZE: 32 480 * 481 * FIELDS DESCRIPTION: 482 * VALUE : 483 * Default 2-byte OUI Ethertype value. 484 */ 485 #define bcm84756_a0_FCM_DEFAULT_OUI_ETr(c) \ 486 (0x13100011 + (BFCMAP_PORT((c)) << 12)) 487 488 #define bcm84756_a0_FCM_DEFAULT_OUI_ETr_SIZE 1 489 490 /* 491 * This structure should be used to declare and program FCM_DEFAULT_OUI_ET. 492 */ 493 typedef union bcm84756_a0_FCM_DEFAULT_OUI_ETr_s { 494 buint32_t v[1]; 495 buint32_t fcm_default_oui_et[1]; 496 buint32_t _fcm_default_oui_et; 497 } bcm84756_a0_FCM_DEFAULT_OUI_ETr_t; 498 499 #define bcm84756_a0_FCM_DEFAULT_OUI_ETr_CLR(r) \ 500 (r).fcm_default_oui_et[0] = 0 501 502 #define bcm84756_a0_FCM_DEFAULT_OUI_ETr_SET(r,d) \ 503 (r).fcm_default_oui_et[0] = d 504 505 #define bcm84756_a0_FCM_DEFAULT_OUI_ETr_GET(r) \ 506 (r).fcm_default_oui_et[0] 507 508 509 /* 510 * These macros can be used to access individual fields. 511 */ 512 #define bcm84756_a0_FCM_DEFAULT_OUI_ETr_VALUEf_GET(c,r) \ 513 (((r).fcm_default_oui_et[0]) & 0xffff) 514 515 #define bcm84756_a0_FCM_DEFAULT_OUI_ETr_VALUEf_SET(c,r,f) \ 516 (r).fcm_default_oui_et[0]=(((r).fcm_default_oui_et[0] & ~((buint32_t)0xffff)) | \ 517 (((buint32_t)f) & 0xffff)) 518 519 520 /* 521 * These macros can be used to access FCM_DEFAULT_OUI_ET. 522 */ 523 #define bcm84756_a0_READ_FCM_DEFAULT_OUI_ETr(c,r) \ 524 BFCMAP_REG32_READ((c),bcm84756_a0_FCM_DEFAULT_OUI_ETr((c)),&((r)._fcm_default_oui_et)) 525 526 #define bcm84756_a0_WRITE_FCM_DEFAULT_OUI_ETr(c,r) \ 527 BFCMAP_REG32_WRITE((c),bcm84756_a0_FCM_DEFAULT_OUI_ETr((c)),&((r)._fcm_default_oui_et)) 528 529 /******************************************************************************* 530 * End of 'bcm84756_a0_FCM_DEFAULT_OUI_ETr' 531 */ 532 533 534 535 536 /******************************************************************************* 537 * CHIP: bcm84756_a0 538 * REGISTER: FCM_DEFAULT_OUI_oui 539 * BLOCKS: SECPORT 540 * DESCRIPTION : 541 * Default OUI field. 542 * 543 * SIZE: 32 544 * 545 * FIELDS DESCRIPTION: 546 * VALUE : 547 * Default 3-byte OUI value. 548 */ 549 #define bcm84756_a0_FCM_DEFAULT_OUI_OUIr(c) \ 550 (0x13100012 + (BFCMAP_PORT((c)) << 12)) 551 552 #define bcm84756_a0_FCM_DEFAULT_OUI_OUIr_SIZE 1 553 554 /* 555 * This structure should be used to declare and program FCM_DEFAULT_OUI_oui. 556 */ 557 typedef union bcm84756_a0_FCM_DEFAULT_OUI_OUIr_s { 558 buint32_t v[1]; 559 buint32_t fcm_default_oui_oui[1]; 560 buint32_t _fcm_default_oui_oui; 561 } bcm84756_a0_FCM_DEFAULT_OUI_OUIr_t; 562 563 #define bcm84756_a0_FCM_DEFAULT_OUI_OUIr_CLR(r) \ 564 (r).fcm_default_oui_oui[0] = 0 565 566 #define bcm84756_a0_FCM_DEFAULT_OUI_OUIr_SET(r,d) \ 567 (r).fcm_default_oui_oui[0] = d 568 569 #define bcm84756_a0_FCM_DEFAULT_OUI_OUIr_GET(r) \ 570 (r).fcm_default_oui_oui[0] 571 572 573 /* 574 * These macros can be used to access individual fields. 575 */ 576 #define bcm84756_a0_FCM_DEFAULT_OUI_OUIr_VALUEf_GET(c,r) \ 577 (((r).fcm_default_oui_oui[0]) & 0xffffff) 578 579 #define bcm84756_a0_FCM_DEFAULT_OUI_OUIr_VALUEf_SET(c,r,f) \ 580 (r).fcm_default_oui_oui[0]=(((r).fcm_default_oui_oui[0] & ~((buint32_t)0xffffff)) | \ 581 (((buint32_t)f) & 0xffffff)) 582 583 584 /* 585 * These macros can be used to access FCM_DEFAULT_OUI_oui. 586 */ 587 #define bcm84756_a0_READ_FCM_DEFAULT_OUI_OUIr(c,r) \ 588 BFCMAP_REG32_READ((c),bcm84756_a0_FCM_DEFAULT_OUI_OUIr((c)),&((r)._fcm_default_oui_oui)) 589 590 #define bcm84756_a0_WRITE_FCM_DEFAULT_OUI_OUIr(c,r) \ 591 BFCMAP_REG32_WRITE((c),bcm84756_a0_FCM_DEFAULT_OUI_OUIr((c)),&((r)._fcm_default_oui_oui)) 592 593 /******************************************************************************* 594 * End of 'bcm84756_a0_FCM_DEFAULT_OUI_OUIr' 595 */ 596 597 598 599 600 /******************************************************************************* 601 * CHIP: bcm84756_a0 602 * REGISTER: FCM_DEFAULT_OUI_protocol 603 * BLOCKS: SECPORT 604 * DESCRIPTION : 605 * Default 2-byte OUI protocol field. 606 * 607 * SIZE: 32 608 * 609 * FIELDS DESCRIPTION: 610 * VALUE : 611 * Default 2-byte OUI protocol value. 612 */ 613 #define bcm84756_a0_FCM_DEFAULT_OUI_PROTOCOLr(c) \ 614 (0x13100013 + (BFCMAP_PORT((c)) << 12)) 615 616 #define bcm84756_a0_FCM_DEFAULT_OUI_PROTOCOLr_SIZE 1 617 618 /* 619 * This structure should be used to declare and program FCM_DEFAULT_OUI_protocol. 620 */ 621 typedef union bcm84756_a0_FCM_DEFAULT_OUI_PROTOCOLr_s { 622 buint32_t v[1]; 623 buint32_t fcm_default_oui_protocol[1]; 624 buint32_t _fcm_default_oui_protocol; 625 } bcm84756_a0_FCM_DEFAULT_OUI_PROTOCOLr_t; 626 627 #define bcm84756_a0_FCM_DEFAULT_OUI_PROTOCOLr_CLR(r) \ 628 (r).fcm_default_oui_protocol[0] = 0 629 630 #define bcm84756_a0_FCM_DEFAULT_OUI_PROTOCOLr_SET(r,d) \ 631 (r).fcm_default_oui_protocol[0] = d 632 633 #define bcm84756_a0_FCM_DEFAULT_OUI_PROTOCOLr_GET(r) \ 634 (r).fcm_default_oui_protocol[0] 635 636 637 /* 638 * These macros can be used to access individual fields. 639 */ 640 #define bcm84756_a0_FCM_DEFAULT_OUI_PROTOCOLr_VALUEf_GET(c,r) \ 641 (((r).fcm_default_oui_protocol[0]) & 0xffff) 642 643 #define bcm84756_a0_FCM_DEFAULT_OUI_PROTOCOLr_VALUEf_SET(c,r,f) \ 644 (r).fcm_default_oui_protocol[0]=(((r).fcm_default_oui_protocol[0] & ~((buint32_t)0xffff)) | \ 645 (((buint32_t)f) & 0xffff)) 646 647 648 /* 649 * These macros can be used to access FCM_DEFAULT_OUI_protocol. 650 */ 651 #define bcm84756_a0_READ_FCM_DEFAULT_OUI_PROTOCOLr(c,r) \ 652 BFCMAP_REG32_READ((c),bcm84756_a0_FCM_DEFAULT_OUI_PROTOCOLr((c)),&((r)._fcm_default_oui_protocol)) 653 654 #define bcm84756_a0_WRITE_FCM_DEFAULT_OUI_PROTOCOLr(c,r) \ 655 BFCMAP_REG32_WRITE((c),bcm84756_a0_FCM_DEFAULT_OUI_PROTOCOLr((c)),&((r)._fcm_default_oui_protocol)) 656 657 /******************************************************************************* 658 * End of 'bcm84756_a0_FCM_DEFAULT_OUI_PROTOCOLr' 659 */ 660 661 662 663 664 /******************************************************************************* 665 * CHIP: bcm84756_a0 666 * REGISTER: FCM_DEFAULT_VFTHDR 667 * BLOCKS: SECPORT 668 * DESCRIPTION : 669 * Default VFT Header Fields Register. 670 * 671 * SIZE: 32 672 * 673 * FIELDS DESCRIPTION: 674 * VFID : 675 * Default VFID. 676 * 677 * PRI : 678 * Default Priority field. 679 * 680 * HOPCNT : 681 * Default HOPCNT field value. 682 */ 683 #define bcm84756_a0_FCM_DEFAULT_VFTHDRr(c) \ 684 (0x13100015 + (BFCMAP_PORT((c)) << 12)) 685 686 #define bcm84756_a0_FCM_DEFAULT_VFTHDRr_SIZE 1 687 688 /* 689 * This structure should be used to declare and program FCM_DEFAULT_VFTHDR. 690 */ 691 typedef union bcm84756_a0_FCM_DEFAULT_VFTHDRr_s { 692 buint32_t v[1]; 693 buint32_t fcm_default_vfthdr[1]; 694 buint32_t _fcm_default_vfthdr; 695 } bcm84756_a0_FCM_DEFAULT_VFTHDRr_t; 696 697 #define bcm84756_a0_FCM_DEFAULT_VFTHDRr_CLR(r) \ 698 (r).fcm_default_vfthdr[0] = 0 699 700 #define bcm84756_a0_FCM_DEFAULT_VFTHDRr_SET(r,d) \ 701 (r).fcm_default_vfthdr[0] = d 702 703 #define bcm84756_a0_FCM_DEFAULT_VFTHDRr_GET(r) \ 704 (r).fcm_default_vfthdr[0] 705 706 707 /* 708 * These macros can be used to access individual fields. 709 */ 710 #define bcm84756_a0_FCM_DEFAULT_VFTHDRr_VFIDf_GET(c,r) \ 711 ((((r).fcm_default_vfthdr[0]) >> 1) & 0xfff) 712 713 #define bcm84756_a0_FCM_DEFAULT_VFTHDRr_VFIDf_SET(c,r,f) \ 714 (r).fcm_default_vfthdr[0]=(((r).fcm_default_vfthdr[0] & ~((buint32_t)0xfff << 1)) | \ 715 ((((buint32_t)f) & 0xfff) << 1)) 716 717 #define bcm84756_a0_FCM_DEFAULT_VFTHDRr_PRIf_GET(c,r) \ 718 ((((r).fcm_default_vfthdr[0]) >> 13) & 0x7) 719 720 #define bcm84756_a0_FCM_DEFAULT_VFTHDRr_PRIf_SET(c,r,f) \ 721 (r).fcm_default_vfthdr[0]=(((r).fcm_default_vfthdr[0] & ~((buint32_t)0x7 << 13)) | \ 722 ((((buint32_t)f) & 0x7) << 13)) 723 724 #define bcm84756_a0_FCM_DEFAULT_VFTHDRr_HOPCNTf_GET(c,r) \ 725 ((((r).fcm_default_vfthdr[0]) >> 24) & 0xff) 726 727 #define bcm84756_a0_FCM_DEFAULT_VFTHDRr_HOPCNTf_SET(c,r,f) \ 728 (r).fcm_default_vfthdr[0]=(((r).fcm_default_vfthdr[0] & ~((buint32_t)0xff << 24)) | \ 729 ((((buint32_t)f) & 0xff) << 24)) 730 731 732 /* 733 * These macros can be used to access FCM_DEFAULT_VFTHDR. 734 */ 735 #define bcm84756_a0_READ_FCM_DEFAULT_VFTHDRr(c,r) \ 736 BFCMAP_REG32_READ((c),bcm84756_a0_FCM_DEFAULT_VFTHDRr((c)),&((r)._fcm_default_vfthdr)) 737 738 #define bcm84756_a0_WRITE_FCM_DEFAULT_VFTHDRr(c,r) \ 739 BFCMAP_REG32_WRITE((c),bcm84756_a0_FCM_DEFAULT_VFTHDRr((c)),&((r)._fcm_default_vfthdr)) 740 741 /******************************************************************************* 742 * End of 'bcm84756_a0_FCM_DEFAULT_VFTHDRr' 743 */ 744 745 746 747 748 /******************************************************************************* 749 * CHIP: bcm84756_a0 750 * REGISTER: FCM_DEFAULT_VLAN_TAG 751 * BLOCKS: SECPORT 752 * DESCRIPTION : 753 * Default 802.1Q VLAN tag register. 754 * 755 * SIZE: 32 756 * 757 * FIELDS DESCRIPTION: 758 * VID : 759 * Default 12-bit VLAN VID field. 760 * 761 * CFI : 762 * CFI should be 0. 763 * 764 * PCP : 765 * Default Priority field for inserted VLAN tag. 766 * 767 * TPID : 768 * Mapped from the 3-bit VFT Header Priority field. Default is 0x8100. 769 * This value is also used by the parser to identify the VLAN tag field in 770 * the FCoE packet. 771 */ 772 #define bcm84756_a0_FCM_DEFAULT_VLAN_TAGr(c) \ 773 (0x13100014 + (BFCMAP_PORT((c)) << 12)) 774 775 #define bcm84756_a0_FCM_DEFAULT_VLAN_TAGr_SIZE 1 776 777 /* 778 * This structure should be used to declare and program FCM_DEFAULT_VLAN_TAG. 779 */ 780 typedef union bcm84756_a0_FCM_DEFAULT_VLAN_TAGr_s { 781 buint32_t v[1]; 782 buint32_t fcm_default_vlan_tag[1]; 783 buint32_t _fcm_default_vlan_tag; 784 } bcm84756_a0_FCM_DEFAULT_VLAN_TAGr_t; 785 786 #define bcm84756_a0_FCM_DEFAULT_VLAN_TAGr_CLR(r) \ 787 (r).fcm_default_vlan_tag[0] = 0 788 789 #define bcm84756_a0_FCM_DEFAULT_VLAN_TAGr_SET(r,d) \ 790 (r).fcm_default_vlan_tag[0] = d 791 792 #define bcm84756_a0_FCM_DEFAULT_VLAN_TAGr_GET(r) \ 793 (r).fcm_default_vlan_tag[0] 794 795 796 /* 797 * These macros can be used to access individual fields. 798 */ 799 #define bcm84756_a0_FCM_DEFAULT_VLAN_TAGr_VIDf_GET(c,r) \ 800 (((r).fcm_default_vlan_tag[0]) & 0xfff) 801 802 #define bcm84756_a0_FCM_DEFAULT_VLAN_TAGr_VIDf_SET(c,r,f) \ 803 (r).fcm_default_vlan_tag[0]=(((r).fcm_default_vlan_tag[0] & ~((buint32_t)0xfff)) | \ 804 (((buint32_t)f) & 0xfff)) 805 806 #define bcm84756_a0_FCM_DEFAULT_VLAN_TAGr_CFIf_GET(c,r) \ 807 ((((r).fcm_default_vlan_tag[0]) >> 12) & 0x1) 808 809 #define bcm84756_a0_FCM_DEFAULT_VLAN_TAGr_CFIf_SET(c,r,f) \ 810 (r).fcm_default_vlan_tag[0]=(((r).fcm_default_vlan_tag[0] & ~((buint32_t)0x1 << 12)) | \ 811 ((((buint32_t)f) & 0x1) << 12)) 812 813 #define bcm84756_a0_FCM_DEFAULT_VLAN_TAGr_PCPf_GET(c,r) \ 814 ((((r).fcm_default_vlan_tag[0]) >> 13) & 0x7) 815 816 #define bcm84756_a0_FCM_DEFAULT_VLAN_TAGr_PCPf_SET(c,r,f) \ 817 (r).fcm_default_vlan_tag[0]=(((r).fcm_default_vlan_tag[0] & ~((buint32_t)0x7 << 13)) | \ 818 ((((buint32_t)f) & 0x7) << 13)) 819 820 #define bcm84756_a0_FCM_DEFAULT_VLAN_TAGr_TPIDf_GET(c,r) \ 821 ((((r).fcm_default_vlan_tag[0]) >> 16) & 0xffff) 822 823 #define bcm84756_a0_FCM_DEFAULT_VLAN_TAGr_TPIDf_SET(c,r,f) \ 824 (r).fcm_default_vlan_tag[0]=(((r).fcm_default_vlan_tag[0] & ~((buint32_t)0xffff << 16)) | \ 825 ((((buint32_t)f) & 0xffff) << 16)) 826 827 828 /* 829 * These macros can be used to access FCM_DEFAULT_VLAN_TAG. 830 */ 831 #define bcm84756_a0_READ_FCM_DEFAULT_VLAN_TAGr(c,r) \ 832 BFCMAP_REG32_READ((c),bcm84756_a0_FCM_DEFAULT_VLAN_TAGr((c)),&((r)._fcm_default_vlan_tag)) 833 834 #define bcm84756_a0_WRITE_FCM_DEFAULT_VLAN_TAGr(c,r) \ 835 BFCMAP_REG32_WRITE((c),bcm84756_a0_FCM_DEFAULT_VLAN_TAGr((c)),&((r)._fcm_default_vlan_tag)) 836 837 /******************************************************************************* 838 * End of 'bcm84756_a0_FCM_DEFAULT_VLAN_TAGr' 839 */ 840 841 842 843 844 /******************************************************************************* 845 * CHIP: bcm84756_a0 846 * REGISTER: FCM_FCGEN_TX_control 847 * BLOCKS: SECPORT 848 * DESCRIPTION : 849 * FC GEN status register. 850 * 851 * SIZE: 32 852 * 853 * FIELDS DESCRIPTION: 854 * FC_PWR_DWN : 855 * 0 - The FC GEN TX block clocks are enabled. 1 - The FC GEN TX block is 856 * in the powered down state. 857 * 858 * FC_SW_RST : 859 * FC GEN software reset: 0 - The FC GEN Tx block is functional 1 - The FC 860 * GEN Tx block is held in the soft reset state. 861 * 862 * LOOPBACK : 863 * Loopback enable. 864 * 865 * FC_OPER_RATE : 866 * Configures the Fiber Channel Tx block speed. 3'b000 - Speed follows the 867 * receiver 3'b001 - reserved 3'b010 - 2.125 Gb/s 3'b011 - 4.25 Gb/s 868 * 3'b100 - 8.5 Gb/s others - reserved. 869 * 870 * NO_SYNC_DATA : 871 * Indicates the data type to transmit when the speed in not acquired by 872 * the receiver: 2'b00 : Squelched data 2'b01 : Idle ordered set 2'b1X : 873 * Data from the receiver 874 * 875 * TRANSMIT_LSB_FIRST : 876 * 1 = FCGEN transmits lsb first 0 = FCGEN transmits msb first 877 * 878 * FORCE_SPEED_NOT_ACQUIRED : 879 * 1 = Enable bit-stuffed TX data on 20-bit TX data output for 2G and 4G. 880 * 0 = Force non-stuffed data on 20-bit TX data output. 881 */ 882 #define bcm84756_a0_FCM_FCGEN_TX_CONTROLr(c) \ 883 (0x13100090 + (BFCMAP_PORT((c)) << 12)) 884 885 #define bcm84756_a0_FCM_FCGEN_TX_CONTROLr_SIZE 1 886 887 /* 888 * This structure should be used to declare and program FCM_FCGEN_TX_control. 889 */ 890 typedef union bcm84756_a0_FCM_FCGEN_TX_CONTROLr_s { 891 buint32_t v[1]; 892 buint32_t fcm_fcgen_tx_control[1]; 893 buint32_t _fcm_fcgen_tx_control; 894 } bcm84756_a0_FCM_FCGEN_TX_CONTROLr_t; 895 896 #define bcm84756_a0_FCM_FCGEN_TX_CONTROLr_CLR(r) \ 897 (r).fcm_fcgen_tx_control[0] = 0 898 899 #define bcm84756_a0_FCM_FCGEN_TX_CONTROLr_SET(r,d) \ 900 (r).fcm_fcgen_tx_control[0] = d 901 902 #define bcm84756_a0_FCM_FCGEN_TX_CONTROLr_GET(r) \ 903 (r).fcm_fcgen_tx_control[0] 904 905 906 /* 907 * These macros can be used to access individual fields. 908 */ 909 #define bcm84756_a0_FCM_FCGEN_TX_CONTROLr_FC_PWR_DWNf_GET(c,r) \ 910 (((r).fcm_fcgen_tx_control[0]) & 0x1) 911 912 #define bcm84756_a0_FCM_FCGEN_TX_CONTROLr_FC_PWR_DWNf_SET(c,r,f) \ 913 (r).fcm_fcgen_tx_control[0]=(((r).fcm_fcgen_tx_control[0] & ~((buint32_t)0x1)) | \ 914 (((buint32_t)f) & 0x1)) 915 916 #define bcm84756_a0_FCM_FCGEN_TX_CONTROLr_FC_SW_RSTf_GET(c,r) \ 917 ((((r).fcm_fcgen_tx_control[0]) >> 1) & 0x1) 918 919 #define bcm84756_a0_FCM_FCGEN_TX_CONTROLr_FC_SW_RSTf_SET(c,r,f) \ 920 (r).fcm_fcgen_tx_control[0]=(((r).fcm_fcgen_tx_control[0] & ~((buint32_t)0x1 << 1)) | \ 921 ((((buint32_t)f) & 0x1) << 1)) 922 923 #define bcm84756_a0_FCM_FCGEN_TX_CONTROLr_LOOPBACKf_GET(c,r) \ 924 ((((r).fcm_fcgen_tx_control[0]) >> 2) & 0x1) 925 926 #define bcm84756_a0_FCM_FCGEN_TX_CONTROLr_LOOPBACKf_SET(c,r,f) \ 927 (r).fcm_fcgen_tx_control[0]=(((r).fcm_fcgen_tx_control[0] & ~((buint32_t)0x1 << 2)) | \ 928 ((((buint32_t)f) & 0x1) << 2)) 929 930 #define bcm84756_a0_FCM_FCGEN_TX_CONTROLr_FC_OPER_RATEf_GET(c,r) \ 931 ((((r).fcm_fcgen_tx_control[0]) >> 3) & 0x7) 932 933 #define bcm84756_a0_FCM_FCGEN_TX_CONTROLr_FC_OPER_RATEf_SET(c,r,f) \ 934 (r).fcm_fcgen_tx_control[0]=(((r).fcm_fcgen_tx_control[0] & ~((buint32_t)0x7 << 3)) | \ 935 ((((buint32_t)f) & 0x7) << 3)) 936 937 #define bcm84756_a0_FCM_FCGEN_TX_CONTROLr_NO_SYNC_DATAf_GET(c,r) \ 938 ((((r).fcm_fcgen_tx_control[0]) >> 6) & 0x3) 939 940 #define bcm84756_a0_FCM_FCGEN_TX_CONTROLr_NO_SYNC_DATAf_SET(c,r,f) \ 941 (r).fcm_fcgen_tx_control[0]=(((r).fcm_fcgen_tx_control[0] & ~((buint32_t)0x3 << 6)) | \ 942 ((((buint32_t)f) & 0x3) << 6)) 943 944 #define bcm84756_a0_FCM_FCGEN_TX_CONTROLr_TRANSMIT_LSB_FIRSTf_GET(c,r) \ 945 ((((r).fcm_fcgen_tx_control[0]) >> 8) & 0x1) 946 947 #define bcm84756_a0_FCM_FCGEN_TX_CONTROLr_TRANSMIT_LSB_FIRSTf_SET(c,r,f) \ 948 (r).fcm_fcgen_tx_control[0]=(((r).fcm_fcgen_tx_control[0] & ~((buint32_t)0x1 << 8)) | \ 949 ((((buint32_t)f) & 0x1) << 8)) 950 951 #define bcm84756_a0_FCM_FCGEN_TX_CONTROLr_FORCE_SPEED_NOT_ACQUIREDf_GET(c,r) \ 952 ((((r).fcm_fcgen_tx_control[0]) >> 9) & 0x1) 953 954 #define bcm84756_a0_FCM_FCGEN_TX_CONTROLr_FORCE_SPEED_NOT_ACQUIREDf_SET(c,r,f) \ 955 (r).fcm_fcgen_tx_control[0]=(((r).fcm_fcgen_tx_control[0] & ~((buint32_t)0x1 << 9)) | \ 956 ((((buint32_t)f) & 0x1) << 9)) 957 958 959 /* 960 * These macros can be used to access FCM_FCGEN_TX_control. 961 */ 962 #define bcm84756_a0_READ_FCM_FCGEN_TX_CONTROLr(c,r) \ 963 BFCMAP_REG32_READ((c),bcm84756_a0_FCM_FCGEN_TX_CONTROLr((c)),&((r)._fcm_fcgen_tx_control)) 964 965 #define bcm84756_a0_WRITE_FCM_FCGEN_TX_CONTROLr(c,r) \ 966 BFCMAP_REG32_WRITE((c),bcm84756_a0_FCM_FCGEN_TX_CONTROLr((c)),&((r)._fcm_fcgen_tx_control)) 967 968 /******************************************************************************* 969 * End of 'bcm84756_a0_FCM_FCGEN_TX_CONTROLr' 970 */ 971 972 973 974 975 /******************************************************************************* 976 * CHIP: bcm84756_a0 977 * REGISTER: FCM_FCGEN_TX_no_sync_data_word0 978 * BLOCKS: SECPORT 979 * DESCRIPTION : 980 * TX 10b data register. 981 * 982 * SIZE: 32 983 * 984 * FIELDS DESCRIPTION: 985 * DATA10B : 986 * 10b tx data. 987 */ 988 #define bcm84756_a0_FCM_FCGEN_TX_NO_SYNC_DATA_WORD0r(c) \ 989 (0x13100094 + (BFCMAP_PORT((c)) << 12)) 990 991 #define bcm84756_a0_FCM_FCGEN_TX_NO_SYNC_DATA_WORD0r_SIZE 1 992 993 /* 994 * This structure should be used to declare and program FCM_FCGEN_TX_no_sync_data_word0. 995 */ 996 typedef union bcm84756_a0_FCM_FCGEN_TX_NO_SYNC_DATA_WORD0r_s { 997 buint32_t v[1]; 998 buint32_t fcm_fcgen_tx_no_sync_data_word0[1]; 999 buint32_t _fcm_fcgen_tx_no_sync_data_word0; 1000 } bcm84756_a0_FCM_FCGEN_TX_NO_SYNC_DATA_WORD0r_t; 1001 1002 #define bcm84756_a0_FCM_FCGEN_TX_NO_SYNC_DATA_WORD0r_CLR(r) \ 1003 (r).fcm_fcgen_tx_no_sync_data_word0[0] = 0 1004 1005 #define bcm84756_a0_FCM_FCGEN_TX_NO_SYNC_DATA_WORD0r_SET(r,d) \ 1006 (r).fcm_fcgen_tx_no_sync_data_word0[0] = d 1007 1008 #define bcm84756_a0_FCM_FCGEN_TX_NO_SYNC_DATA_WORD0r_GET(r) \ 1009 (r).fcm_fcgen_tx_no_sync_data_word0[0] 1010 1011 1012 /* 1013 * These macros can be used to access individual fields. 1014 */ 1015 #define bcm84756_a0_FCM_FCGEN_TX_NO_SYNC_DATA_WORD0r_DATA10Bf_GET(c,r) \ 1016 (((r).fcm_fcgen_tx_no_sync_data_word0[0]) & 0x3ff) 1017 1018 #define bcm84756_a0_FCM_FCGEN_TX_NO_SYNC_DATA_WORD0r_DATA10Bf_SET(c,r,f) \ 1019 (r).fcm_fcgen_tx_no_sync_data_word0[0]=(((r).fcm_fcgen_tx_no_sync_data_word0[0] & ~((buint32_t)0x3ff)) | \ 1020 (((buint32_t)f) & 0x3ff)) 1021 1022 1023 /* 1024 * These macros can be used to access FCM_FCGEN_TX_no_sync_data_word0. 1025 */ 1026 #define bcm84756_a0_READ_FCM_FCGEN_TX_NO_SYNC_DATA_WORD0r(c,r) \ 1027 BFCMAP_REG32_READ((c),bcm84756_a0_FCM_FCGEN_TX_NO_SYNC_DATA_WORD0r((c)),&((r)._fcm_fcgen_tx_no_sync_data_word0)) 1028 1029 #define bcm84756_a0_WRITE_FCM_FCGEN_TX_NO_SYNC_DATA_WORD0r(c,r) \ 1030 BFCMAP_REG32_WRITE((c),bcm84756_a0_FCM_FCGEN_TX_NO_SYNC_DATA_WORD0r((c)),&((r)._fcm_fcgen_tx_no_sync_data_word0)) 1031 1032 /******************************************************************************* 1033 * End of 'bcm84756_a0_FCM_FCGEN_TX_NO_SYNC_DATA_WORD0r' 1034 */ 1035 1036 1037 1038 1039 /******************************************************************************* 1040 * CHIP: bcm84756_a0 1041 * REGISTER: FCM_FCGEN_TX_no_sync_data_word1 1042 * BLOCKS: SECPORT 1043 * DESCRIPTION : 1044 * TX 10b data register. 1045 * 1046 * SIZE: 32 1047 * 1048 * FIELDS DESCRIPTION: 1049 * DATA10B : 1050 * 10b tx data. 1051 */ 1052 #define bcm84756_a0_FCM_FCGEN_TX_NO_SYNC_DATA_WORD1r(c) \ 1053 (0x13100095 + (BFCMAP_PORT((c)) << 12)) 1054 1055 #define bcm84756_a0_FCM_FCGEN_TX_NO_SYNC_DATA_WORD1r_SIZE 1 1056 1057 /* 1058 * This structure should be used to declare and program FCM_FCGEN_TX_no_sync_data_word1. 1059 */ 1060 typedef union bcm84756_a0_FCM_FCGEN_TX_NO_SYNC_DATA_WORD1r_s { 1061 buint32_t v[1]; 1062 buint32_t fcm_fcgen_tx_no_sync_data_word1[1]; 1063 buint32_t _fcm_fcgen_tx_no_sync_data_word1; 1064 } bcm84756_a0_FCM_FCGEN_TX_NO_SYNC_DATA_WORD1r_t; 1065 1066 #define bcm84756_a0_FCM_FCGEN_TX_NO_SYNC_DATA_WORD1r_CLR(r) \ 1067 (r).fcm_fcgen_tx_no_sync_data_word1[0] = 0 1068 1069 #define bcm84756_a0_FCM_FCGEN_TX_NO_SYNC_DATA_WORD1r_SET(r,d) \ 1070 (r).fcm_fcgen_tx_no_sync_data_word1[0] = d 1071 1072 #define bcm84756_a0_FCM_FCGEN_TX_NO_SYNC_DATA_WORD1r_GET(r) \ 1073 (r).fcm_fcgen_tx_no_sync_data_word1[0] 1074 1075 1076 /* 1077 * These macros can be used to access individual fields. 1078 */ 1079 #define bcm84756_a0_FCM_FCGEN_TX_NO_SYNC_DATA_WORD1r_DATA10Bf_GET(c,r) \ 1080 (((r).fcm_fcgen_tx_no_sync_data_word1[0]) & 0x3ff) 1081 1082 #define bcm84756_a0_FCM_FCGEN_TX_NO_SYNC_DATA_WORD1r_DATA10Bf_SET(c,r,f) \ 1083 (r).fcm_fcgen_tx_no_sync_data_word1[0]=(((r).fcm_fcgen_tx_no_sync_data_word1[0] & ~((buint32_t)0x3ff)) | \ 1084 (((buint32_t)f) & 0x3ff)) 1085 1086 1087 /* 1088 * These macros can be used to access FCM_FCGEN_TX_no_sync_data_word1. 1089 */ 1090 #define bcm84756_a0_READ_FCM_FCGEN_TX_NO_SYNC_DATA_WORD1r(c,r) \ 1091 BFCMAP_REG32_READ((c),bcm84756_a0_FCM_FCGEN_TX_NO_SYNC_DATA_WORD1r((c)),&((r)._fcm_fcgen_tx_no_sync_data_word1)) 1092 1093 #define bcm84756_a0_WRITE_FCM_FCGEN_TX_NO_SYNC_DATA_WORD1r(c,r) \ 1094 BFCMAP_REG32_WRITE((c),bcm84756_a0_FCM_FCGEN_TX_NO_SYNC_DATA_WORD1r((c)),&((r)._fcm_fcgen_tx_no_sync_data_word1)) 1095 1096 /******************************************************************************* 1097 * End of 'bcm84756_a0_FCM_FCGEN_TX_NO_SYNC_DATA_WORD1r' 1098 */ 1099 1100 1101 1102 1103 /******************************************************************************* 1104 * CHIP: bcm84756_a0 1105 * REGISTER: FCM_FCGEN_TX_no_sync_data_word2 1106 * BLOCKS: SECPORT 1107 * DESCRIPTION : 1108 * TX 10b data register. 1109 * 1110 * SIZE: 32 1111 * 1112 * FIELDS DESCRIPTION: 1113 * DATA10B : 1114 * 10b tx data. 1115 */ 1116 #define bcm84756_a0_FCM_FCGEN_TX_NO_SYNC_DATA_WORD2r(c) \ 1117 (0x13100096 + (BFCMAP_PORT((c)) << 12)) 1118 1119 #define bcm84756_a0_FCM_FCGEN_TX_NO_SYNC_DATA_WORD2r_SIZE 1 1120 1121 /* 1122 * This structure should be used to declare and program FCM_FCGEN_TX_no_sync_data_word2. 1123 */ 1124 typedef union bcm84756_a0_FCM_FCGEN_TX_NO_SYNC_DATA_WORD2r_s { 1125 buint32_t v[1]; 1126 buint32_t fcm_fcgen_tx_no_sync_data_word2[1]; 1127 buint32_t _fcm_fcgen_tx_no_sync_data_word2; 1128 } bcm84756_a0_FCM_FCGEN_TX_NO_SYNC_DATA_WORD2r_t; 1129 1130 #define bcm84756_a0_FCM_FCGEN_TX_NO_SYNC_DATA_WORD2r_CLR(r) \ 1131 (r).fcm_fcgen_tx_no_sync_data_word2[0] = 0 1132 1133 #define bcm84756_a0_FCM_FCGEN_TX_NO_SYNC_DATA_WORD2r_SET(r,d) \ 1134 (r).fcm_fcgen_tx_no_sync_data_word2[0] = d 1135 1136 #define bcm84756_a0_FCM_FCGEN_TX_NO_SYNC_DATA_WORD2r_GET(r) \ 1137 (r).fcm_fcgen_tx_no_sync_data_word2[0] 1138 1139 1140 /* 1141 * These macros can be used to access individual fields. 1142 */ 1143 #define bcm84756_a0_FCM_FCGEN_TX_NO_SYNC_DATA_WORD2r_DATA10Bf_GET(c,r) \ 1144 (((r).fcm_fcgen_tx_no_sync_data_word2[0]) & 0x3ff) 1145 1146 #define bcm84756_a0_FCM_FCGEN_TX_NO_SYNC_DATA_WORD2r_DATA10Bf_SET(c,r,f) \ 1147 (r).fcm_fcgen_tx_no_sync_data_word2[0]=(((r).fcm_fcgen_tx_no_sync_data_word2[0] & ~((buint32_t)0x3ff)) | \ 1148 (((buint32_t)f) & 0x3ff)) 1149 1150 1151 /* 1152 * These macros can be used to access FCM_FCGEN_TX_no_sync_data_word2. 1153 */ 1154 #define bcm84756_a0_READ_FCM_FCGEN_TX_NO_SYNC_DATA_WORD2r(c,r) \ 1155 BFCMAP_REG32_READ((c),bcm84756_a0_FCM_FCGEN_TX_NO_SYNC_DATA_WORD2r((c)),&((r)._fcm_fcgen_tx_no_sync_data_word2)) 1156 1157 #define bcm84756_a0_WRITE_FCM_FCGEN_TX_NO_SYNC_DATA_WORD2r(c,r) \ 1158 BFCMAP_REG32_WRITE((c),bcm84756_a0_FCM_FCGEN_TX_NO_SYNC_DATA_WORD2r((c)),&((r)._fcm_fcgen_tx_no_sync_data_word2)) 1159 1160 /******************************************************************************* 1161 * End of 'bcm84756_a0_FCM_FCGEN_TX_NO_SYNC_DATA_WORD2r' 1162 */ 1163 1164 1165 1166 1167 /******************************************************************************* 1168 * CHIP: bcm84756_a0 1169 * REGISTER: FCM_FCGEN_TX_no_sync_data_word3 1170 * BLOCKS: SECPORT 1171 * DESCRIPTION : 1172 * TX 10b data register. 1173 * 1174 * SIZE: 32 1175 * 1176 * FIELDS DESCRIPTION: 1177 * DATA10B : 1178 * 10b tx data. 1179 */ 1180 #define bcm84756_a0_FCM_FCGEN_TX_NO_SYNC_DATA_WORD3r(c) \ 1181 (0x13100097 + (BFCMAP_PORT((c)) << 12)) 1182 1183 #define bcm84756_a0_FCM_FCGEN_TX_NO_SYNC_DATA_WORD3r_SIZE 1 1184 1185 /* 1186 * This structure should be used to declare and program FCM_FCGEN_TX_no_sync_data_word3. 1187 */ 1188 typedef union bcm84756_a0_FCM_FCGEN_TX_NO_SYNC_DATA_WORD3r_s { 1189 buint32_t v[1]; 1190 buint32_t fcm_fcgen_tx_no_sync_data_word3[1]; 1191 buint32_t _fcm_fcgen_tx_no_sync_data_word3; 1192 } bcm84756_a0_FCM_FCGEN_TX_NO_SYNC_DATA_WORD3r_t; 1193 1194 #define bcm84756_a0_FCM_FCGEN_TX_NO_SYNC_DATA_WORD3r_CLR(r) \ 1195 (r).fcm_fcgen_tx_no_sync_data_word3[0] = 0 1196 1197 #define bcm84756_a0_FCM_FCGEN_TX_NO_SYNC_DATA_WORD3r_SET(r,d) \ 1198 (r).fcm_fcgen_tx_no_sync_data_word3[0] = d 1199 1200 #define bcm84756_a0_FCM_FCGEN_TX_NO_SYNC_DATA_WORD3r_GET(r) \ 1201 (r).fcm_fcgen_tx_no_sync_data_word3[0] 1202 1203 1204 /* 1205 * These macros can be used to access individual fields. 1206 */ 1207 #define bcm84756_a0_FCM_FCGEN_TX_NO_SYNC_DATA_WORD3r_DATA10Bf_GET(c,r) \ 1208 (((r).fcm_fcgen_tx_no_sync_data_word3[0]) & 0x3ff) 1209 1210 #define bcm84756_a0_FCM_FCGEN_TX_NO_SYNC_DATA_WORD3r_DATA10Bf_SET(c,r,f) \ 1211 (r).fcm_fcgen_tx_no_sync_data_word3[0]=(((r).fcm_fcgen_tx_no_sync_data_word3[0] & ~((buint32_t)0x3ff)) | \ 1212 (((buint32_t)f) & 0x3ff)) 1213 1214 1215 /* 1216 * These macros can be used to access FCM_FCGEN_TX_no_sync_data_word3. 1217 */ 1218 #define bcm84756_a0_READ_FCM_FCGEN_TX_NO_SYNC_DATA_WORD3r(c,r) \ 1219 BFCMAP_REG32_READ((c),bcm84756_a0_FCM_FCGEN_TX_NO_SYNC_DATA_WORD3r((c)),&((r)._fcm_fcgen_tx_no_sync_data_word3)) 1220 1221 #define bcm84756_a0_WRITE_FCM_FCGEN_TX_NO_SYNC_DATA_WORD3r(c,r) \ 1222 BFCMAP_REG32_WRITE((c),bcm84756_a0_FCM_FCGEN_TX_NO_SYNC_DATA_WORD3r((c)),&((r)._fcm_fcgen_tx_no_sync_data_word3)) 1223 1224 /******************************************************************************* 1225 * End of 'bcm84756_a0_FCM_FCGEN_TX_NO_SYNC_DATA_WORD3r' 1226 */ 1227 1228 1229 1230 1231 /******************************************************************************* 1232 * CHIP: bcm84756_a0 1233 * REGISTER: FCM_FCGEN_TX_status 1234 * BLOCKS: SECPORT 1235 * DESCRIPTION : 1236 * FC GEN status register. 1237 * 1238 * SIZE: 32 1239 * 1240 * FIELDS DESCRIPTION: 1241 * STATUS : 1242 * TX FC GEN status register. 1243 */ 1244 #define bcm84756_a0_FCM_FCGEN_TX_STATUSr(c) \ 1245 (0x13100091 + (BFCMAP_PORT((c)) << 12)) 1246 1247 #define bcm84756_a0_FCM_FCGEN_TX_STATUSr_SIZE 1 1248 1249 /* 1250 * This structure should be used to declare and program FCM_FCGEN_TX_status. 1251 */ 1252 typedef union bcm84756_a0_FCM_FCGEN_TX_STATUSr_s { 1253 buint32_t v[1]; 1254 buint32_t fcm_fcgen_tx_status[1]; 1255 buint32_t _fcm_fcgen_tx_status; 1256 } bcm84756_a0_FCM_FCGEN_TX_STATUSr_t; 1257 1258 #define bcm84756_a0_FCM_FCGEN_TX_STATUSr_CLR(r) \ 1259 (r).fcm_fcgen_tx_status[0] = 0 1260 1261 #define bcm84756_a0_FCM_FCGEN_TX_STATUSr_SET(r,d) \ 1262 (r).fcm_fcgen_tx_status[0] = d 1263 1264 #define bcm84756_a0_FCM_FCGEN_TX_STATUSr_GET(r) \ 1265 (r).fcm_fcgen_tx_status[0] 1266 1267 1268 /* 1269 * These macros can be used to access individual fields. 1270 */ 1271 #define bcm84756_a0_FCM_FCGEN_TX_STATUSr_STATUSf_GET(c,r) \ 1272 (((r).fcm_fcgen_tx_status[0]) & 0xffff) 1273 1274 #define bcm84756_a0_FCM_FCGEN_TX_STATUSr_STATUSf_SET(c,r,f) \ 1275 (r).fcm_fcgen_tx_status[0]=(((r).fcm_fcgen_tx_status[0] & ~((buint32_t)0xffff)) | \ 1276 (((buint32_t)f) & 0xffff)) 1277 1278 1279 /* 1280 * These macros can be used to access FCM_FCGEN_TX_status. 1281 */ 1282 #define bcm84756_a0_READ_FCM_FCGEN_TX_STATUSr(c,r) \ 1283 BFCMAP_REG32_READ((c),bcm84756_a0_FCM_FCGEN_TX_STATUSr((c)),&((r)._fcm_fcgen_tx_status)) 1284 1285 #define bcm84756_a0_WRITE_FCM_FCGEN_TX_STATUSr(c,r) \ 1286 BFCMAP_REG32_WRITE((c),bcm84756_a0_FCM_FCGEN_TX_STATUSr((c)),&((r)._fcm_fcgen_tx_status)) 1287 1288 /******************************************************************************* 1289 * End of 'bcm84756_a0_FCM_FCGEN_TX_STATUSr' 1290 */ 1291 1292 1293 1294 1295 /******************************************************************************* 1296 * CHIP: bcm84756_a0 1297 * REGISTER: FCM_FCGEN_TX_tpat_gen_control 1298 * BLOCKS: SECPORT 1299 * DESCRIPTION : 1300 * FC GEN status register. 1301 * 1302 * SIZE: 32 1303 * 1304 * FIELDS DESCRIPTION: 1305 * FC_TPAT_ENABLE : 1306 * Test pattern enable: 0 - The pattern generator outputs either idle 1307 * ordered sets or squelches data. 1 - The pattern generator outputs idle 1308 * ordered sets until tpat sof is written, then the selected test pattern 1309 * is generated. 1310 * 1311 * FC_TPAT_SOF : 1312 * Starts the pattern generation. This bit is self-clearing. 1313 * 1314 * FC_TPAT_MODE : 1315 * Fiber Channel Test Pattern Type: 2'b00 - JSPAT 2'b01 - JTSPAT 2'b10 - 1316 * CJTPAT 2'b11 - CRPAT 1317 * 1318 * FC_NB_IDLES : 1319 * Number of idle ordered set to insert between test patterns. 1320 */ 1321 #define bcm84756_a0_FCM_FCGEN_TX_TPAT_GEN_CONTROLr(c) \ 1322 (0x13100092 + (BFCMAP_PORT((c)) << 12)) 1323 1324 #define bcm84756_a0_FCM_FCGEN_TX_TPAT_GEN_CONTROLr_SIZE 1 1325 1326 /* 1327 * This structure should be used to declare and program FCM_FCGEN_TX_tpat_gen_control. 1328 */ 1329 typedef union bcm84756_a0_FCM_FCGEN_TX_TPAT_GEN_CONTROLr_s { 1330 buint32_t v[1]; 1331 buint32_t fcm_fcgen_tx_tpat_gen_control[1]; 1332 buint32_t _fcm_fcgen_tx_tpat_gen_control; 1333 } bcm84756_a0_FCM_FCGEN_TX_TPAT_GEN_CONTROLr_t; 1334 1335 #define bcm84756_a0_FCM_FCGEN_TX_TPAT_GEN_CONTROLr_CLR(r) \ 1336 (r).fcm_fcgen_tx_tpat_gen_control[0] = 0 1337 1338 #define bcm84756_a0_FCM_FCGEN_TX_TPAT_GEN_CONTROLr_SET(r,d) \ 1339 (r).fcm_fcgen_tx_tpat_gen_control[0] = d 1340 1341 #define bcm84756_a0_FCM_FCGEN_TX_TPAT_GEN_CONTROLr_GET(r) \ 1342 (r).fcm_fcgen_tx_tpat_gen_control[0] 1343 1344 1345 /* 1346 * These macros can be used to access individual fields. 1347 */ 1348 #define bcm84756_a0_FCM_FCGEN_TX_TPAT_GEN_CONTROLr_FC_TPAT_ENABLEf_GET(c,r) \ 1349 (((r).fcm_fcgen_tx_tpat_gen_control[0]) & 0x1) 1350 1351 #define bcm84756_a0_FCM_FCGEN_TX_TPAT_GEN_CONTROLr_FC_TPAT_ENABLEf_SET(c,r,f) \ 1352 (r).fcm_fcgen_tx_tpat_gen_control[0]=(((r).fcm_fcgen_tx_tpat_gen_control[0] & ~((buint32_t)0x1)) | \ 1353 (((buint32_t)f) & 0x1)) 1354 1355 #define bcm84756_a0_FCM_FCGEN_TX_TPAT_GEN_CONTROLr_FC_TPAT_SOFf_GET(c,r) \ 1356 ((((r).fcm_fcgen_tx_tpat_gen_control[0]) >> 1) & 0x1) 1357 1358 #define bcm84756_a0_FCM_FCGEN_TX_TPAT_GEN_CONTROLr_FC_TPAT_SOFf_SET(c,r,f) \ 1359 (r).fcm_fcgen_tx_tpat_gen_control[0]=(((r).fcm_fcgen_tx_tpat_gen_control[0] & ~((buint32_t)0x1 << 1)) | \ 1360 ((((buint32_t)f) & 0x1) << 1)) 1361 1362 #define bcm84756_a0_FCM_FCGEN_TX_TPAT_GEN_CONTROLr_FC_TPAT_MODEf_GET(c,r) \ 1363 ((((r).fcm_fcgen_tx_tpat_gen_control[0]) >> 2) & 0x3) 1364 1365 #define bcm84756_a0_FCM_FCGEN_TX_TPAT_GEN_CONTROLr_FC_TPAT_MODEf_SET(c,r,f) \ 1366 (r).fcm_fcgen_tx_tpat_gen_control[0]=(((r).fcm_fcgen_tx_tpat_gen_control[0] & ~((buint32_t)0x3 << 2)) | \ 1367 ((((buint32_t)f) & 0x3) << 2)) 1368 1369 #define bcm84756_a0_FCM_FCGEN_TX_TPAT_GEN_CONTROLr_FC_NB_IDLESf_GET(c,r) \ 1370 ((((r).fcm_fcgen_tx_tpat_gen_control[0]) >> 4) & 0xf) 1371 1372 #define bcm84756_a0_FCM_FCGEN_TX_TPAT_GEN_CONTROLr_FC_NB_IDLESf_SET(c,r,f) \ 1373 (r).fcm_fcgen_tx_tpat_gen_control[0]=(((r).fcm_fcgen_tx_tpat_gen_control[0] & ~((buint32_t)0xf << 4)) | \ 1374 ((((buint32_t)f) & 0xf) << 4)) 1375 1376 1377 /* 1378 * These macros can be used to access FCM_FCGEN_TX_tpat_gen_control. 1379 */ 1380 #define bcm84756_a0_READ_FCM_FCGEN_TX_TPAT_GEN_CONTROLr(c,r) \ 1381 BFCMAP_REG32_READ((c),bcm84756_a0_FCM_FCGEN_TX_TPAT_GEN_CONTROLr((c)),&((r)._fcm_fcgen_tx_tpat_gen_control)) 1382 1383 #define bcm84756_a0_WRITE_FCM_FCGEN_TX_TPAT_GEN_CONTROLr(c,r) \ 1384 BFCMAP_REG32_WRITE((c),bcm84756_a0_FCM_FCGEN_TX_TPAT_GEN_CONTROLr((c)),&((r)._fcm_fcgen_tx_tpat_gen_control)) 1385 1386 /******************************************************************************* 1387 * End of 'bcm84756_a0_FCM_FCGEN_TX_TPAT_GEN_CONTROLr' 1388 */ 1389 1390 1391 1392 1393 /******************************************************************************* 1394 * CHIP: bcm84756_a0 1395 * REGISTER: FCM_FCGEN_TX_tpat_nb_tpat_reg 1396 * BLOCKS: SECPORT 1397 * DESCRIPTION : 1398 * FC GEN TX pattern count register. 1399 * 1400 * SIZE: 32 1401 * 1402 * FIELDS DESCRIPTION: 1403 * FC_TX_NB_TPAT : 1404 * Number of Fiber Channel test patterns to transmit after fc tpat sof is 1405 * written. A value of 0 will generate continuous patterns. 1406 */ 1407 #define bcm84756_a0_FCM_FCGEN_TX_TPAT_NB_TPAT_REGr(c) \ 1408 (0x13100093 + (BFCMAP_PORT((c)) << 12)) 1409 1410 #define bcm84756_a0_FCM_FCGEN_TX_TPAT_NB_TPAT_REGr_SIZE 1 1411 1412 /* 1413 * This structure should be used to declare and program FCM_FCGEN_TX_tpat_nb_tpat_reg. 1414 */ 1415 typedef union bcm84756_a0_FCM_FCGEN_TX_TPAT_NB_TPAT_REGr_s { 1416 buint32_t v[1]; 1417 buint32_t fcm_fcgen_tx_tpat_nb_tpat_reg[1]; 1418 buint32_t _fcm_fcgen_tx_tpat_nb_tpat_reg; 1419 } bcm84756_a0_FCM_FCGEN_TX_TPAT_NB_TPAT_REGr_t; 1420 1421 #define bcm84756_a0_FCM_FCGEN_TX_TPAT_NB_TPAT_REGr_CLR(r) \ 1422 (r).fcm_fcgen_tx_tpat_nb_tpat_reg[0] = 0 1423 1424 #define bcm84756_a0_FCM_FCGEN_TX_TPAT_NB_TPAT_REGr_SET(r,d) \ 1425 (r).fcm_fcgen_tx_tpat_nb_tpat_reg[0] = d 1426 1427 #define bcm84756_a0_FCM_FCGEN_TX_TPAT_NB_TPAT_REGr_GET(r) \ 1428 (r).fcm_fcgen_tx_tpat_nb_tpat_reg[0] 1429 1430 1431 /* 1432 * These macros can be used to access individual fields. 1433 */ 1434 #define bcm84756_a0_FCM_FCGEN_TX_TPAT_NB_TPAT_REGr_FC_TX_NB_TPATf_GET(c,r) \ 1435 (((r).fcm_fcgen_tx_tpat_nb_tpat_reg[0]) & 0xffff) 1436 1437 #define bcm84756_a0_FCM_FCGEN_TX_TPAT_NB_TPAT_REGr_FC_TX_NB_TPATf_SET(c,r,f) \ 1438 (r).fcm_fcgen_tx_tpat_nb_tpat_reg[0]=(((r).fcm_fcgen_tx_tpat_nb_tpat_reg[0] & ~((buint32_t)0xffff)) | \ 1439 (((buint32_t)f) & 0xffff)) 1440 1441 1442 /* 1443 * These macros can be used to access FCM_FCGEN_TX_tpat_nb_tpat_reg. 1444 */ 1445 #define bcm84756_a0_READ_FCM_FCGEN_TX_TPAT_NB_TPAT_REGr(c,r) \ 1446 BFCMAP_REG32_READ((c),bcm84756_a0_FCM_FCGEN_TX_TPAT_NB_TPAT_REGr((c)),&((r)._fcm_fcgen_tx_tpat_nb_tpat_reg)) 1447 1448 #define bcm84756_a0_WRITE_FCM_FCGEN_TX_TPAT_NB_TPAT_REGr(c,r) \ 1449 BFCMAP_REG32_WRITE((c),bcm84756_a0_FCM_FCGEN_TX_TPAT_NB_TPAT_REGr((c)),&((r)._fcm_fcgen_tx_tpat_nb_tpat_reg)) 1450 1451 /******************************************************************************* 1452 * End of 'bcm84756_a0_FCM_FCGEN_TX_TPAT_NB_TPAT_REGr' 1453 */ 1454 1455 1456 1457 1458 /******************************************************************************* 1459 * CHIP: bcm84756_a0 1460 * REGISTER: FCM_FCMAC_ALTR 1461 * BLOCKS: SECPORT 1462 * DESCRIPTION : 1463 * ADDR ALTR 7'h12 // AL TOV reload register R/W. 1464 * 1465 * SIZE: 32 1466 * 1467 * FIELDS DESCRIPTION: 1468 * UNUSED_ALTR : 1469 * Unused in current FCMAC RTL, always read as 0. 1470 */ 1471 #define bcm84756_a0_FCM_FCMAC_ALTRr(c) \ 1472 (0x13100077 + (BFCMAP_PORT((c)) << 12)) 1473 1474 #define bcm84756_a0_FCM_FCMAC_ALTRr_SIZE 1 1475 1476 /* 1477 * This structure should be used to declare and program FCM_FCMAC_ALTR. 1478 */ 1479 typedef union bcm84756_a0_FCM_FCMAC_ALTRr_s { 1480 buint32_t v[1]; 1481 buint32_t fcm_fcmac_altr[1]; 1482 buint32_t _fcm_fcmac_altr; 1483 } bcm84756_a0_FCM_FCMAC_ALTRr_t; 1484 1485 #define bcm84756_a0_FCM_FCMAC_ALTRr_CLR(r) \ 1486 (r).fcm_fcmac_altr[0] = 0 1487 1488 #define bcm84756_a0_FCM_FCMAC_ALTRr_SET(r,d) \ 1489 (r).fcm_fcmac_altr[0] = d 1490 1491 #define bcm84756_a0_FCM_FCMAC_ALTRr_GET(r) \ 1492 (r).fcm_fcmac_altr[0] 1493 1494 1495 /* 1496 * These macros can be used to access individual fields. 1497 */ 1498 #define bcm84756_a0_FCM_FCMAC_ALTRr_UNUSED_ALTRf_GET(c,r) \ 1499 ((r).fcm_fcmac_altr[0]) 1500 1501 #define bcm84756_a0_FCM_FCMAC_ALTRr_UNUSED_ALTRf_SET(c,r,f) \ 1502 (r).fcm_fcmac_altr[0]=((buint32_t)f) 1503 1504 1505 /* 1506 * These macros can be used to access FCM_FCMAC_ALTR. 1507 */ 1508 #define bcm84756_a0_READ_FCM_FCMAC_ALTRr(c,r) \ 1509 BFCMAP_REG32_READ((c),bcm84756_a0_FCM_FCMAC_ALTRr((c)),&((r)._fcm_fcmac_altr)) 1510 1511 #define bcm84756_a0_WRITE_FCM_FCMAC_ALTRr(c,r) \ 1512 BFCMAP_REG32_WRITE((c),bcm84756_a0_FCM_FCMAC_ALTRr((c)),&((r)._fcm_fcmac_altr)) 1513 1514 /******************************************************************************* 1515 * End of 'bcm84756_a0_FCM_FCMAC_ALTRr' 1516 */ 1517 1518 1519 1520 1521 /******************************************************************************* 1522 * CHIP: bcm84756_a0 1523 * REGISTER: FCM_FCMAC_AWWNX 1524 * BLOCKS: SECPORT 1525 * DESCRIPTION : 1526 * ADDR AWWNX 7'h0A // Assigned WWN Register bits 63:32 R/W. 1527 * 1528 * SIZE: 32 1529 * 1530 * FIELDS DESCRIPTION: 1531 * AWWN_X : 1532 * Assigned WWN[63:32]. 1533 */ 1534 #define bcm84756_a0_FCM_FCMAC_AWWNXr(c) \ 1535 (0x1310006f + (BFCMAP_PORT((c)) << 12)) 1536 1537 #define bcm84756_a0_FCM_FCMAC_AWWNXr_SIZE 1 1538 1539 /* 1540 * This structure should be used to declare and program FCM_FCMAC_AWWNX. 1541 */ 1542 typedef union bcm84756_a0_FCM_FCMAC_AWWNXr_s { 1543 buint32_t v[1]; 1544 buint32_t fcm_fcmac_awwnx[1]; 1545 buint32_t _fcm_fcmac_awwnx; 1546 } bcm84756_a0_FCM_FCMAC_AWWNXr_t; 1547 1548 #define bcm84756_a0_FCM_FCMAC_AWWNXr_CLR(r) \ 1549 (r).fcm_fcmac_awwnx[0] = 0 1550 1551 #define bcm84756_a0_FCM_FCMAC_AWWNXr_SET(r,d) \ 1552 (r).fcm_fcmac_awwnx[0] = d 1553 1554 #define bcm84756_a0_FCM_FCMAC_AWWNXr_GET(r) \ 1555 (r).fcm_fcmac_awwnx[0] 1556 1557 1558 /* 1559 * These macros can be used to access individual fields. 1560 */ 1561 #define bcm84756_a0_FCM_FCMAC_AWWNXr_AWWN_Xf_GET(c,r) \ 1562 ((r).fcm_fcmac_awwnx[0]) 1563 1564 #define bcm84756_a0_FCM_FCMAC_AWWNXr_AWWN_Xf_SET(c,r,f) \ 1565 (r).fcm_fcmac_awwnx[0]=((buint32_t)f) 1566 1567 1568 /* 1569 * These macros can be used to access FCM_FCMAC_AWWNX. 1570 */ 1571 #define bcm84756_a0_READ_FCM_FCMAC_AWWNXr(c,r) \ 1572 BFCMAP_REG32_READ((c),bcm84756_a0_FCM_FCMAC_AWWNXr((c)),&((r)._fcm_fcmac_awwnx)) 1573 1574 #define bcm84756_a0_WRITE_FCM_FCMAC_AWWNXr(c,r) \ 1575 BFCMAP_REG32_WRITE((c),bcm84756_a0_FCM_FCMAC_AWWNXr((c)),&((r)._fcm_fcmac_awwnx)) 1576 1577 /******************************************************************************* 1578 * End of 'bcm84756_a0_FCM_FCMAC_AWWNXr' 1579 */ 1580 1581 1582 1583 1584 /******************************************************************************* 1585 * CHIP: bcm84756_a0 1586 * REGISTER: FCM_FCMAC_AWWNY 1587 * BLOCKS: SECPORT 1588 * DESCRIPTION : 1589 * ADDR AWWNY 7'h0B // Assigned WWN Register bits 31:0 R/W. 1590 * 1591 * SIZE: 32 1592 * 1593 * FIELDS DESCRIPTION: 1594 * AWWN_Y : 1595 * Assigned WWN[31:00]. 1596 */ 1597 #define bcm84756_a0_FCM_FCMAC_AWWNYr(c) \ 1598 (0x13100070 + (BFCMAP_PORT((c)) << 12)) 1599 1600 #define bcm84756_a0_FCM_FCMAC_AWWNYr_SIZE 1 1601 1602 /* 1603 * This structure should be used to declare and program FCM_FCMAC_AWWNY. 1604 */ 1605 typedef union bcm84756_a0_FCM_FCMAC_AWWNYr_s { 1606 buint32_t v[1]; 1607 buint32_t fcm_fcmac_awwny[1]; 1608 buint32_t _fcm_fcmac_awwny; 1609 } bcm84756_a0_FCM_FCMAC_AWWNYr_t; 1610 1611 #define bcm84756_a0_FCM_FCMAC_AWWNYr_CLR(r) \ 1612 (r).fcm_fcmac_awwny[0] = 0 1613 1614 #define bcm84756_a0_FCM_FCMAC_AWWNYr_SET(r,d) \ 1615 (r).fcm_fcmac_awwny[0] = d 1616 1617 #define bcm84756_a0_FCM_FCMAC_AWWNYr_GET(r) \ 1618 (r).fcm_fcmac_awwny[0] 1619 1620 1621 /* 1622 * These macros can be used to access individual fields. 1623 */ 1624 #define bcm84756_a0_FCM_FCMAC_AWWNYr_AWWN_Yf_GET(c,r) \ 1625 ((r).fcm_fcmac_awwny[0]) 1626 1627 #define bcm84756_a0_FCM_FCMAC_AWWNYr_AWWN_Yf_SET(c,r,f) \ 1628 (r).fcm_fcmac_awwny[0]=((buint32_t)f) 1629 1630 1631 /* 1632 * These macros can be used to access FCM_FCMAC_AWWNY. 1633 */ 1634 #define bcm84756_a0_READ_FCM_FCMAC_AWWNYr(c,r) \ 1635 BFCMAP_REG32_READ((c),bcm84756_a0_FCM_FCMAC_AWWNYr((c)),&((r)._fcm_fcmac_awwny)) 1636 1637 #define bcm84756_a0_WRITE_FCM_FCMAC_AWWNYr(c,r) \ 1638 BFCMAP_REG32_WRITE((c),bcm84756_a0_FCM_FCMAC_AWWNYr((c)),&((r)._fcm_fcmac_awwny)) 1639 1640 /******************************************************************************* 1641 * End of 'bcm84756_a0_FCM_FCMAC_AWWNYr' 1642 */ 1643 1644 1645 1646 1647 /******************************************************************************* 1648 * CHIP: bcm84756_a0 1649 * REGISTER: FCM_FCMAC_BADRXCHAR_SUBSTVAL 1650 * BLOCKS: SECPORT 1651 * DESCRIPTION : 1652 * ADDR RXBADCHAR SUBSTVAL 7'h23 // Decode Bad RX Transmission 8b Char 1653 * Substitution Register. rw 1654 * 1655 * SIZE: 32 1656 * 1657 * FIELDS DESCRIPTION: 1658 * CODE_8B_SUBST : 1659 * text. 1660 */ 1661 #define bcm84756_a0_FCM_FCMAC_BADRXCHAR_SUBSTVALr(c) \ 1662 (0x13100004 + (BFCMAP_PORT((c)) << 12)) 1663 1664 #define bcm84756_a0_FCM_FCMAC_BADRXCHAR_SUBSTVALr_SIZE 1 1665 1666 /* 1667 * This structure should be used to declare and program FCM_FCMAC_BADRXCHAR_SUBSTVAL. 1668 */ 1669 typedef union bcm84756_a0_FCM_FCMAC_BADRXCHAR_SUBSTVALr_s { 1670 buint32_t v[1]; 1671 buint32_t fcm_fcmac_badrxchar_substval[1]; 1672 buint32_t _fcm_fcmac_badrxchar_substval; 1673 } bcm84756_a0_FCM_FCMAC_BADRXCHAR_SUBSTVALr_t; 1674 1675 #define bcm84756_a0_FCM_FCMAC_BADRXCHAR_SUBSTVALr_CLR(r) \ 1676 (r).fcm_fcmac_badrxchar_substval[0] = 0 1677 1678 #define bcm84756_a0_FCM_FCMAC_BADRXCHAR_SUBSTVALr_SET(r,d) \ 1679 (r).fcm_fcmac_badrxchar_substval[0] = d 1680 1681 #define bcm84756_a0_FCM_FCMAC_BADRXCHAR_SUBSTVALr_GET(r) \ 1682 (r).fcm_fcmac_badrxchar_substval[0] 1683 1684 1685 /* 1686 * These macros can be used to access individual fields. 1687 */ 1688 #define bcm84756_a0_FCM_FCMAC_BADRXCHAR_SUBSTVALr_CODE_8B_SUBSTf_GET(c,r) \ 1689 ((r).fcm_fcmac_badrxchar_substval[0]) 1690 1691 #define bcm84756_a0_FCM_FCMAC_BADRXCHAR_SUBSTVALr_CODE_8B_SUBSTf_SET(c,r,f) \ 1692 (r).fcm_fcmac_badrxchar_substval[0]=((buint32_t)f) 1693 1694 1695 /* 1696 * These macros can be used to access FCM_FCMAC_BADRXCHAR_SUBSTVAL. 1697 */ 1698 #define bcm84756_a0_READ_FCM_FCMAC_BADRXCHAR_SUBSTVALr(c,r) \ 1699 BFCMAP_REG32_READ((c),bcm84756_a0_FCM_FCMAC_BADRXCHAR_SUBSTVALr((c)),&((r)._fcm_fcmac_badrxchar_substval)) 1700 1701 #define bcm84756_a0_WRITE_FCM_FCMAC_BADRXCHAR_SUBSTVALr(c,r) \ 1702 BFCMAP_REG32_WRITE((c),bcm84756_a0_FCM_FCMAC_BADRXCHAR_SUBSTVALr((c)),&((r)._fcm_fcmac_badrxchar_substval)) 1703 1704 /******************************************************************************* 1705 * End of 'bcm84756_a0_FCM_FCMAC_BADRXCHAR_SUBSTVALr' 1706 */ 1707 1708 1709 1710 1711 /******************************************************************************* 1712 * CHIP: bcm84756_a0 1713 * REGISTER: FCM_FCMAC_BBC 1714 * BLOCKS: SECPORT 1715 * DESCRIPTION : 1716 * ADDR BBC 7'h06 // BB Credit and avail BB Credit reg R/W. 1717 * 1718 * SIZE: 32 1719 * 1720 * FIELDS DESCRIPTION: 1721 * BBC_BB_CREDIT : 1722 * BB Credit count. This field should be written with the buffer-to-buffer 1723 * credit value BB Credit obtained from the Common Service Parameters 1724 * during Fabric Login. (TBD: this value should not be used to reload the 1725 * Residual BB Credit Counter upon entering ACTIVE state.) In the ACTIVE 1726 * state, a Write to this register to load the login BB Credit value also 1727 * loads the login BB Credit value int the Residual BB Credit Counter 1728 * field. This field is initialized to 0x00 by a hardware reset and is 1729 * automatically loaded with 0x01 when the NPORT PSPE enters the ACTIVE 1730 * state. 1731 * 1732 * BBC_RESIDUAL_BB_CREDIT_CNT : 1733 * Residual BB Credit count. This field reflects the current contents of 1734 * the Residual BB Credit Counter. The Residual BB Credit Counter will 1735 * decrement for each BB Credit-Controlled frame (not starting with an 1736 * SOFil or SOFnl) that is transmitted. This counter will not decrement 1737 * below zero. This counter will increment for each R RDY received. The 1738 * Residual BB Credit Counter will not be increment higher than the 1739 * maximum value (255). The Residual BB Credit CNT represents the total 1740 * number of unoccupied Rx buffers at the other end of the Fibre Channel 1741 * Link, while the difference between the BB Credit value and the Residual 1742 * BB Credit CNT represents the number of outstanding (no corresponding R 1743 * RDY) transmission frames. Transmission of BB Credit-Controlled frames 1744 * will be suspended if the Residual BB Credit CNT is zero. The counter is 1745 * initialized to 0x00 by a hardware reset and is automatically loaded 1746 * with 0x01 when the NPORT PSPE enters the ACTIVE state. 1747 * 1748 * BBC_AVAIL_BB_CREDIT_CNT : 1749 * Avail. BB Credit count. Used in Loop mode only -- always 0 in 1750 * point-to-point topology. 1751 * 1752 * BBC_POLARITY : 1753 * This bit is SET when the bbcredit count becomes negative and CLEARED 1754 * when positive. 1755 */ 1756 #define bcm84756_a0_FCM_FCMAC_BBCr(c) \ 1757 (0x1310006b + (BFCMAP_PORT((c)) << 12)) 1758 1759 #define bcm84756_a0_FCM_FCMAC_BBCr_SIZE 1 1760 1761 /* 1762 * This structure should be used to declare and program FCM_FCMAC_BBC. 1763 */ 1764 typedef union bcm84756_a0_FCM_FCMAC_BBCr_s { 1765 buint32_t v[1]; 1766 buint32_t fcm_fcmac_bbc[1]; 1767 buint32_t _fcm_fcmac_bbc; 1768 } bcm84756_a0_FCM_FCMAC_BBCr_t; 1769 1770 #define bcm84756_a0_FCM_FCMAC_BBCr_CLR(r) \ 1771 (r).fcm_fcmac_bbc[0] = 0 1772 1773 #define bcm84756_a0_FCM_FCMAC_BBCr_SET(r,d) \ 1774 (r).fcm_fcmac_bbc[0] = d 1775 1776 #define bcm84756_a0_FCM_FCMAC_BBCr_GET(r) \ 1777 (r).fcm_fcmac_bbc[0] 1778 1779 1780 /* 1781 * These macros can be used to access individual fields. 1782 */ 1783 #define bcm84756_a0_FCM_FCMAC_BBCr_BBC_BB_CREDITf_GET(c,r) \ 1784 (((r).fcm_fcmac_bbc[0]) & 0xff) 1785 1786 #define bcm84756_a0_FCM_FCMAC_BBCr_BBC_BB_CREDITf_SET(c,r,f) \ 1787 (r).fcm_fcmac_bbc[0]=(((r).fcm_fcmac_bbc[0] & ~((buint32_t)0xff)) | \ 1788 (((buint32_t)f) & 0xff)) 1789 1790 #define bcm84756_a0_FCM_FCMAC_BBCr_BBC_RESIDUAL_BB_CREDIT_CNTf_GET(c,r) \ 1791 ((((r).fcm_fcmac_bbc[0]) >> 8) & 0xff) 1792 1793 #define bcm84756_a0_FCM_FCMAC_BBCr_BBC_RESIDUAL_BB_CREDIT_CNTf_SET(c,r,f) \ 1794 (r).fcm_fcmac_bbc[0]=(((r).fcm_fcmac_bbc[0] & ~((buint32_t)0xff << 8)) | \ 1795 ((((buint32_t)f) & 0xff) << 8)) 1796 1797 #define bcm84756_a0_FCM_FCMAC_BBCr_BBC_AVAIL_BB_CREDIT_CNTf_GET(c,r) \ 1798 ((((r).fcm_fcmac_bbc[0]) >> 16) & 0xff) 1799 1800 #define bcm84756_a0_FCM_FCMAC_BBCr_BBC_AVAIL_BB_CREDIT_CNTf_SET(c,r,f) \ 1801 (r).fcm_fcmac_bbc[0]=(((r).fcm_fcmac_bbc[0] & ~((buint32_t)0xff << 16)) | \ 1802 ((((buint32_t)f) & 0xff) << 16)) 1803 1804 #define bcm84756_a0_FCM_FCMAC_BBCr_BBC_POLARITYf_GET(c,r) \ 1805 ((((r).fcm_fcmac_bbc[0]) >> 31) & 0x1) 1806 1807 #define bcm84756_a0_FCM_FCMAC_BBCr_BBC_POLARITYf_SET(c,r,f) \ 1808 (r).fcm_fcmac_bbc[0]=(((r).fcm_fcmac_bbc[0] & ~((buint32_t)0x1 << 31)) | \ 1809 ((((buint32_t)f) & 0x1) << 31)) 1810 1811 1812 /* 1813 * These macros can be used to access FCM_FCMAC_BBC. 1814 */ 1815 #define bcm84756_a0_READ_FCM_FCMAC_BBCr(c,r) \ 1816 BFCMAP_REG32_READ((c),bcm84756_a0_FCM_FCMAC_BBCr((c)),&((r)._fcm_fcmac_bbc)) 1817 1818 #define bcm84756_a0_WRITE_FCM_FCMAC_BBCr(c,r) \ 1819 BFCMAP_REG32_WRITE((c),bcm84756_a0_FCM_FCMAC_BBCr((c)),&((r)._fcm_fcmac_bbc)) 1820 1821 /******************************************************************************* 1822 * End of 'bcm84756_a0_FCM_FCMAC_BBCr' 1823 */ 1824 1825 1826 1827 1828 /******************************************************************************* 1829 * CHIP: bcm84756_a0 1830 * REGISTER: FCM_FCMAC_BBC1 1831 * BLOCKS: SECPORT 1832 * DESCRIPTION : 1833 * ADDR BBC 7'h17 // VC1 BB Credit and avail BB Credit reg R/W. 1834 * 1835 * SIZE: 32 1836 * 1837 * FIELDS DESCRIPTION: 1838 * BBC_BB_CREDIT : 1839 * BB Credit count. 1840 * 1841 * BBC_RESIDUAL_BB_CREDIT_CNT : 1842 * Residual BB Credit count. 1843 * 1844 * BBC_AVAIL_BB_CREDIT_CNT : 1845 * Avail. BB Credit count. 1846 * 1847 * BBC_POLARITY : 1848 * Polarity(+/-). 1849 */ 1850 #define bcm84756_a0_FCM_FCMAC_BBC1r(c) \ 1851 (0x1310007c + (BFCMAP_PORT((c)) << 12)) 1852 1853 #define bcm84756_a0_FCM_FCMAC_BBC1r_SIZE 1 1854 1855 /* 1856 * This structure should be used to declare and program FCM_FCMAC_BBC1. 1857 */ 1858 typedef union bcm84756_a0_FCM_FCMAC_BBC1r_s { 1859 buint32_t v[1]; 1860 buint32_t fcm_fcmac_bbc1[1]; 1861 buint32_t _fcm_fcmac_bbc1; 1862 } bcm84756_a0_FCM_FCMAC_BBC1r_t; 1863 1864 #define bcm84756_a0_FCM_FCMAC_BBC1r_CLR(r) \ 1865 (r).fcm_fcmac_bbc1[0] = 0 1866 1867 #define bcm84756_a0_FCM_FCMAC_BBC1r_SET(r,d) \ 1868 (r).fcm_fcmac_bbc1[0] = d 1869 1870 #define bcm84756_a0_FCM_FCMAC_BBC1r_GET(r) \ 1871 (r).fcm_fcmac_bbc1[0] 1872 1873 1874 /* 1875 * These macros can be used to access individual fields. 1876 */ 1877 #define bcm84756_a0_FCM_FCMAC_BBC1r_BBC_BB_CREDITf_GET(c,r) \ 1878 (((r).fcm_fcmac_bbc1[0]) & 0xff) 1879 1880 #define bcm84756_a0_FCM_FCMAC_BBC1r_BBC_BB_CREDITf_SET(c,r,f) \ 1881 (r).fcm_fcmac_bbc1[0]=(((r).fcm_fcmac_bbc1[0] & ~((buint32_t)0xff)) | \ 1882 (((buint32_t)f) & 0xff)) 1883 1884 #define bcm84756_a0_FCM_FCMAC_BBC1r_BBC_RESIDUAL_BB_CREDIT_CNTf_GET(c,r) \ 1885 ((((r).fcm_fcmac_bbc1[0]) >> 8) & 0xff) 1886 1887 #define bcm84756_a0_FCM_FCMAC_BBC1r_BBC_RESIDUAL_BB_CREDIT_CNTf_SET(c,r,f) \ 1888 (r).fcm_fcmac_bbc1[0]=(((r).fcm_fcmac_bbc1[0] & ~((buint32_t)0xff << 8)) | \ 1889 ((((buint32_t)f) & 0xff) << 8)) 1890 1891 #define bcm84756_a0_FCM_FCMAC_BBC1r_BBC_AVAIL_BB_CREDIT_CNTf_GET(c,r) \ 1892 ((((r).fcm_fcmac_bbc1[0]) >> 16) & 0xff) 1893 1894 #define bcm84756_a0_FCM_FCMAC_BBC1r_BBC_AVAIL_BB_CREDIT_CNTf_SET(c,r,f) \ 1895 (r).fcm_fcmac_bbc1[0]=(((r).fcm_fcmac_bbc1[0] & ~((buint32_t)0xff << 16)) | \ 1896 ((((buint32_t)f) & 0xff) << 16)) 1897 1898 #define bcm84756_a0_FCM_FCMAC_BBC1r_BBC_POLARITYf_GET(c,r) \ 1899 ((((r).fcm_fcmac_bbc1[0]) >> 31) & 0x1) 1900 1901 #define bcm84756_a0_FCM_FCMAC_BBC1r_BBC_POLARITYf_SET(c,r,f) \ 1902 (r).fcm_fcmac_bbc1[0]=(((r).fcm_fcmac_bbc1[0] & ~((buint32_t)0x1 << 31)) | \ 1903 ((((buint32_t)f) & 0x1) << 31)) 1904 1905 1906 /* 1907 * These macros can be used to access FCM_FCMAC_BBC1. 1908 */ 1909 #define bcm84756_a0_READ_FCM_FCMAC_BBC1r(c,r) \ 1910 BFCMAP_REG32_READ((c),bcm84756_a0_FCM_FCMAC_BBC1r((c)),&((r)._fcm_fcmac_bbc1)) 1911 1912 #define bcm84756_a0_WRITE_FCM_FCMAC_BBC1r(c,r) \ 1913 BFCMAP_REG32_WRITE((c),bcm84756_a0_FCM_FCMAC_BBC1r((c)),&((r)._fcm_fcmac_bbc1)) 1914 1915 /******************************************************************************* 1916 * End of 'bcm84756_a0_FCM_FCMAC_BBC1r' 1917 */ 1918 1919 1920 1921 1922 /******************************************************************************* 1923 * CHIP: bcm84756_a0 1924 * REGISTER: FCM_FCMAC_BBcr_Recovery 1925 * BLOCKS: SECPORT 1926 * DESCRIPTION : 1927 * BBcredit recovery BB CNT N register. 1928 * 1929 * SIZE: 32 1930 * 1931 * FIELDS DESCRIPTION: 1932 * BB_SC_N : 1933 * This contains the BBcredit recovery BB SC N register value. The 1934 * programmed value sets the BBcredit recovery interval at 2^BB SC N. When 1935 * this value = 0, the BBcredit recovery function is disabled. Note : To 1936 * change this register from a non-zero value to another non-zero value, 1937 * is it necessary to write 0 to the field as an intermediate step during 1938 * the value change operation (i.e. N[old] -> 0 -> N[new]). This is 1939 * required to initialize the hardware-based BB RDY N and TX FRM N 1940 * counters. 1941 */ 1942 #define bcm84756_a0_FCM_FCMAC_BBCR_RECOVERYr(c) \ 1943 (0x13100005 + (BFCMAP_PORT((c)) << 12)) 1944 1945 #define bcm84756_a0_FCM_FCMAC_BBCR_RECOVERYr_SIZE 1 1946 1947 /* 1948 * This structure should be used to declare and program FCM_FCMAC_BBcr_Recovery. 1949 */ 1950 typedef union bcm84756_a0_FCM_FCMAC_BBCR_RECOVERYr_s { 1951 buint32_t v[1]; 1952 buint32_t fcm_fcmac_bbcr_recovery[1]; 1953 buint32_t _fcm_fcmac_bbcr_recovery; 1954 } bcm84756_a0_FCM_FCMAC_BBCR_RECOVERYr_t; 1955 1956 #define bcm84756_a0_FCM_FCMAC_BBCR_RECOVERYr_CLR(r) \ 1957 (r).fcm_fcmac_bbcr_recovery[0] = 0 1958 1959 #define bcm84756_a0_FCM_FCMAC_BBCR_RECOVERYr_SET(r,d) \ 1960 (r).fcm_fcmac_bbcr_recovery[0] = d 1961 1962 #define bcm84756_a0_FCM_FCMAC_BBCR_RECOVERYr_GET(r) \ 1963 (r).fcm_fcmac_bbcr_recovery[0] 1964 1965 1966 /* 1967 * These macros can be used to access individual fields. 1968 */ 1969 #define bcm84756_a0_FCM_FCMAC_BBCR_RECOVERYr_BB_SC_Nf_GET(c,r) \ 1970 (((r).fcm_fcmac_bbcr_recovery[0]) & 0xf) 1971 1972 #define bcm84756_a0_FCM_FCMAC_BBCR_RECOVERYr_BB_SC_Nf_SET(c,r,f) \ 1973 (r).fcm_fcmac_bbcr_recovery[0]=(((r).fcm_fcmac_bbcr_recovery[0] & ~((buint32_t)0xf)) | \ 1974 (((buint32_t)f) & 0xf)) 1975 1976 1977 /* 1978 * These macros can be used to access FCM_FCMAC_BBcr_Recovery. 1979 */ 1980 #define bcm84756_a0_READ_FCM_FCMAC_BBCR_RECOVERYr(c,r) \ 1981 BFCMAP_REG32_READ((c),bcm84756_a0_FCM_FCMAC_BBCR_RECOVERYr((c)),&((r)._fcm_fcmac_bbcr_recovery)) 1982 1983 #define bcm84756_a0_WRITE_FCM_FCMAC_BBCR_RECOVERYr(c,r) \ 1984 BFCMAP_REG32_WRITE((c),bcm84756_a0_FCM_FCMAC_BBCR_RECOVERYr((c)),&((r)._fcm_fcmac_bbcr_recovery)) 1985 1986 /******************************************************************************* 1987 * End of 'bcm84756_a0_FCM_FCMAC_BBCR_RECOVERYr' 1988 */ 1989 1990 1991 1992 1993 /******************************************************************************* 1994 * CHIP: bcm84756_a0 1995 * REGISTER: FCM_FCMAC_BWWNX 1996 * BLOCKS: SECPORT 1997 * DESCRIPTION : 1998 * ADDR BWWNX 7'h0C // Broadcast WWN Register bits 63:32 R/W. 1999 * 2000 * SIZE: 32 2001 * 2002 * FIELDS DESCRIPTION: 2003 * BWWN_X : 2004 * Broadcast WWN[63:32]. 2005 */ 2006 #define bcm84756_a0_FCM_FCMAC_BWWNXr(c) \ 2007 (0x13100071 + (BFCMAP_PORT((c)) << 12)) 2008 2009 #define bcm84756_a0_FCM_FCMAC_BWWNXr_SIZE 1 2010 2011 /* 2012 * This structure should be used to declare and program FCM_FCMAC_BWWNX. 2013 */ 2014 typedef union bcm84756_a0_FCM_FCMAC_BWWNXr_s { 2015 buint32_t v[1]; 2016 buint32_t fcm_fcmac_bwwnx[1]; 2017 buint32_t _fcm_fcmac_bwwnx; 2018 } bcm84756_a0_FCM_FCMAC_BWWNXr_t; 2019 2020 #define bcm84756_a0_FCM_FCMAC_BWWNXr_CLR(r) \ 2021 (r).fcm_fcmac_bwwnx[0] = 0 2022 2023 #define bcm84756_a0_FCM_FCMAC_BWWNXr_SET(r,d) \ 2024 (r).fcm_fcmac_bwwnx[0] = d 2025 2026 #define bcm84756_a0_FCM_FCMAC_BWWNXr_GET(r) \ 2027 (r).fcm_fcmac_bwwnx[0] 2028 2029 2030 /* 2031 * These macros can be used to access individual fields. 2032 */ 2033 #define bcm84756_a0_FCM_FCMAC_BWWNXr_BWWN_Xf_GET(c,r) \ 2034 ((r).fcm_fcmac_bwwnx[0]) 2035 2036 #define bcm84756_a0_FCM_FCMAC_BWWNXr_BWWN_Xf_SET(c,r,f) \ 2037 (r).fcm_fcmac_bwwnx[0]=((buint32_t)f) 2038 2039 2040 /* 2041 * These macros can be used to access FCM_FCMAC_BWWNX. 2042 */ 2043 #define bcm84756_a0_READ_FCM_FCMAC_BWWNXr(c,r) \ 2044 BFCMAP_REG32_READ((c),bcm84756_a0_FCM_FCMAC_BWWNXr((c)),&((r)._fcm_fcmac_bwwnx)) 2045 2046 #define bcm84756_a0_WRITE_FCM_FCMAC_BWWNXr(c,r) \ 2047 BFCMAP_REG32_WRITE((c),bcm84756_a0_FCM_FCMAC_BWWNXr((c)),&((r)._fcm_fcmac_bwwnx)) 2048 2049 /******************************************************************************* 2050 * End of 'bcm84756_a0_FCM_FCMAC_BWWNXr' 2051 */ 2052 2053 2054 2055 2056 /******************************************************************************* 2057 * CHIP: bcm84756_a0 2058 * REGISTER: FCM_FCMAC_BWWNY 2059 * BLOCKS: SECPORT 2060 * DESCRIPTION : 2061 * ADDR BWWNY 7'h0D // Broadcast WWN Register bits 31:0 R/W. 2062 * 2063 * SIZE: 32 2064 * 2065 * FIELDS DESCRIPTION: 2066 * BWWN_Y : 2067 * Broadcast WWN[31:00]. 2068 */ 2069 #define bcm84756_a0_FCM_FCMAC_BWWNYr(c) \ 2070 (0x13100072 + (BFCMAP_PORT((c)) << 12)) 2071 2072 #define bcm84756_a0_FCM_FCMAC_BWWNYr_SIZE 1 2073 2074 /* 2075 * This structure should be used to declare and program FCM_FCMAC_BWWNY. 2076 */ 2077 typedef union bcm84756_a0_FCM_FCMAC_BWWNYr_s { 2078 buint32_t v[1]; 2079 buint32_t fcm_fcmac_bwwny[1]; 2080 buint32_t _fcm_fcmac_bwwny; 2081 } bcm84756_a0_FCM_FCMAC_BWWNYr_t; 2082 2083 #define bcm84756_a0_FCM_FCMAC_BWWNYr_CLR(r) \ 2084 (r).fcm_fcmac_bwwny[0] = 0 2085 2086 #define bcm84756_a0_FCM_FCMAC_BWWNYr_SET(r,d) \ 2087 (r).fcm_fcmac_bwwny[0] = d 2088 2089 #define bcm84756_a0_FCM_FCMAC_BWWNYr_GET(r) \ 2090 (r).fcm_fcmac_bwwny[0] 2091 2092 2093 /* 2094 * These macros can be used to access individual fields. 2095 */ 2096 #define bcm84756_a0_FCM_FCMAC_BWWNYr_BWWN_Yf_GET(c,r) \ 2097 ((r).fcm_fcmac_bwwny[0]) 2098 2099 #define bcm84756_a0_FCM_FCMAC_BWWNYr_BWWN_Yf_SET(c,r,f) \ 2100 (r).fcm_fcmac_bwwny[0]=((buint32_t)f) 2101 2102 2103 /* 2104 * These macros can be used to access FCM_FCMAC_BWWNY. 2105 */ 2106 #define bcm84756_a0_READ_FCM_FCMAC_BWWNYr(c,r) \ 2107 BFCMAP_REG32_READ((c),bcm84756_a0_FCM_FCMAC_BWWNYr((c)),&((r)._fcm_fcmac_bwwny)) 2108 2109 #define bcm84756_a0_WRITE_FCM_FCMAC_BWWNYr(c,r) \ 2110 BFCMAP_REG32_WRITE((c),bcm84756_a0_FCM_FCMAC_BWWNYr((c)),&((r)._fcm_fcmac_bwwny)) 2111 2112 /******************************************************************************* 2113 * End of 'bcm84756_a0_FCM_FCMAC_BWWNYr' 2114 */ 2115 2116 2117 2118 2119 /******************************************************************************* 2120 * CHIP: bcm84756_a0 2121 * REGISTER: FCM_FCMAC_DAID 2122 * BLOCKS: SECPORT 2123 * DESCRIPTION : 2124 * ADDR DAID 7'h09 // Destination Port Address ID Register R/W. 2125 * 2126 * SIZE: 32 2127 * 2128 * FIELDS DESCRIPTION: 2129 * DAID_ID : 2130 * Destination ID. 2131 */ 2132 #define bcm84756_a0_FCM_FCMAC_DAIDr(c) \ 2133 (0x1310006e + (BFCMAP_PORT((c)) << 12)) 2134 2135 #define bcm84756_a0_FCM_FCMAC_DAIDr_SIZE 1 2136 2137 /* 2138 * This structure should be used to declare and program FCM_FCMAC_DAID. 2139 */ 2140 typedef union bcm84756_a0_FCM_FCMAC_DAIDr_s { 2141 buint32_t v[1]; 2142 buint32_t fcm_fcmac_daid[1]; 2143 buint32_t _fcm_fcmac_daid; 2144 } bcm84756_a0_FCM_FCMAC_DAIDr_t; 2145 2146 #define bcm84756_a0_FCM_FCMAC_DAIDr_CLR(r) \ 2147 (r).fcm_fcmac_daid[0] = 0 2148 2149 #define bcm84756_a0_FCM_FCMAC_DAIDr_SET(r,d) \ 2150 (r).fcm_fcmac_daid[0] = d 2151 2152 #define bcm84756_a0_FCM_FCMAC_DAIDr_GET(r) \ 2153 (r).fcm_fcmac_daid[0] 2154 2155 2156 /* 2157 * These macros can be used to access individual fields. 2158 */ 2159 #define bcm84756_a0_FCM_FCMAC_DAIDr_DAID_IDf_GET(c,r) \ 2160 (((r).fcm_fcmac_daid[0]) & 0xffffff) 2161 2162 #define bcm84756_a0_FCM_FCMAC_DAIDr_DAID_IDf_SET(c,r,f) \ 2163 (r).fcm_fcmac_daid[0]=(((r).fcm_fcmac_daid[0] & ~((buint32_t)0xffffff)) | \ 2164 (((buint32_t)f) & 0xffffff)) 2165 2166 2167 /* 2168 * These macros can be used to access FCM_FCMAC_DAID. 2169 */ 2170 #define bcm84756_a0_READ_FCM_FCMAC_DAIDr(c,r) \ 2171 BFCMAP_REG32_READ((c),bcm84756_a0_FCM_FCMAC_DAIDr((c)),&((r)._fcm_fcmac_daid)) 2172 2173 #define bcm84756_a0_WRITE_FCM_FCMAC_DAIDr(c,r) \ 2174 BFCMAP_REG32_WRITE((c),bcm84756_a0_FCM_FCMAC_DAIDr((c)),&((r)._fcm_fcmac_daid)) 2175 2176 /******************************************************************************* 2177 * End of 'bcm84756_a0_FCM_FCMAC_DAIDr' 2178 */ 2179 2180 2181 2182 2183 /******************************************************************************* 2184 * CHIP: bcm84756_a0 2185 * REGISTER: FCM_FCMAC_ELOSTC 2186 * BLOCKS: SECPORT 2187 * DESCRIPTION : 2188 * ADDR ELOSTC 7'h18 // Event TO & Loss Of Sync TO counters (ro). 2189 * 2190 * SIZE: 32 2191 * 2192 * FIELDS DESCRIPTION: 2193 * UNUSED : 2194 * This register is Unused. Any write clears reg elostc sync<=9'd0 and reg 2195 * elostc event<=10'd0. Not readable. This is a word sync loss timeout 2196 * function, but this is now handled by the fc mon block. 2197 */ 2198 #define bcm84756_a0_FCM_FCMAC_ELOSTCr(c) \ 2199 (0x1310007d + (BFCMAP_PORT((c)) << 12)) 2200 2201 #define bcm84756_a0_FCM_FCMAC_ELOSTCr_SIZE 1 2202 2203 /* 2204 * This structure should be used to declare and program FCM_FCMAC_ELOSTC. 2205 */ 2206 typedef union bcm84756_a0_FCM_FCMAC_ELOSTCr_s { 2207 buint32_t v[1]; 2208 buint32_t fcm_fcmac_elostc[1]; 2209 buint32_t _fcm_fcmac_elostc; 2210 } bcm84756_a0_FCM_FCMAC_ELOSTCr_t; 2211 2212 #define bcm84756_a0_FCM_FCMAC_ELOSTCr_CLR(r) \ 2213 (r).fcm_fcmac_elostc[0] = 0 2214 2215 #define bcm84756_a0_FCM_FCMAC_ELOSTCr_SET(r,d) \ 2216 (r).fcm_fcmac_elostc[0] = d 2217 2218 #define bcm84756_a0_FCM_FCMAC_ELOSTCr_GET(r) \ 2219 (r).fcm_fcmac_elostc[0] 2220 2221 2222 /* 2223 * These macros can be used to access individual fields. 2224 */ 2225 #define bcm84756_a0_FCM_FCMAC_ELOSTCr_UNUSEDf_GET(c,r) \ 2226 ((r).fcm_fcmac_elostc[0]) 2227 2228 #define bcm84756_a0_FCM_FCMAC_ELOSTCr_UNUSEDf_SET(c,r,f) \ 2229 (r).fcm_fcmac_elostc[0]=((buint32_t)f) 2230 2231 2232 /* 2233 * These macros can be used to access FCM_FCMAC_ELOSTC. 2234 */ 2235 #define bcm84756_a0_READ_FCM_FCMAC_ELOSTCr(c,r) \ 2236 BFCMAP_REG32_READ((c),bcm84756_a0_FCM_FCMAC_ELOSTCr((c)),&((r)._fcm_fcmac_elostc)) 2237 2238 #define bcm84756_a0_WRITE_FCM_FCMAC_ELOSTCr(c,r) \ 2239 BFCMAP_REG32_WRITE((c),bcm84756_a0_FCM_FCMAC_ELOSTCr((c)),&((r)._fcm_fcmac_elostc)) 2240 2241 /******************************************************************************* 2242 * End of 'bcm84756_a0_FCM_FCMAC_ELOSTCr' 2243 */ 2244 2245 2246 2247 2248 /******************************************************************************* 2249 * CHIP: bcm84756_a0 2250 * REGISTER: FCM_FCMAC_EXP 2251 * BLOCKS: SECPORT 2252 * DESCRIPTION : 2253 * Exception Pending Register, write-1-to-clear. Except for bit 31 (EXP LD), 2254 * the FCMAC interrupt signal will be asserted when any Exception Pending Bit 2255 * [30:0] is set and is not masked by the corresponding bits in the Exception 2256 * Pending Mask Register. The signal will remain asserted until all of the 2257 * unmasked bits have been cleared via a write to the Exception pending 2258 * register with the corresponding bit set. 2259 * 2260 * SIZE: 32 2261 * 2262 * FIELDS DESCRIPTION: 2263 * EXP_OL : 2264 * Open link. This bit is set whenever the rx los loss-of-signal input 2265 * signal is asserted by the analog front-end. 2266 * 2267 * EXP_TF : 2268 * Transceiver fault. This bit is set whenever the i tx fault input signal 2269 * is asserted by the analog front-end. 2270 * 2271 * EXP_LLF : 2272 * Local link failure. This bit is set whenever the PSPE N-port state 2273 * machine is in the LF2 state. EXP LLF is set when any link fail 2274 * condition is detected, i.e. : (1) a Loss of Synchronization for more 2275 * than a time out period (R T TOV) while not in the Offline state or (2) 2276 * a Loss of Signal occurs while not in the Offline state when the No Fail 2277 * On Loss of Signal configuration bit is clear in the Port Configuration 2278 * Register or (3) Timeout (R T TOV) during the Link Reset Protocol. If 2279 * Loss of Signal occurs then one or both of the TF and OL bits will also 2280 * be set. This bit is CLEARED by a hardware reset or by a write to the 2281 * Exception Pending Register with EXP LLF set. 2282 * 2283 * EXP_RLF : 2284 * Remote link failure. This bit is set whenever the PSPE N-port state 2285 * machine is in the LF1 state. 2286 * 2287 * EXP_LLR : 2288 * Local link reset. This bit is set whenever the PSPE N-port state 2289 * machine is in the LR1 state. 2290 * 2291 * EXP_RLR : 2292 * Remote link reset. This bit is set whenever the PSPE N-port state 2293 * machine is in the LR2 state. 2294 * 2295 * EXP_NPE : 2296 * N Port protocol error. This bit is SET whenever the Primitive Sequence 2297 * Protocol Engine detects a protocol error; i.e., whenever the LRR 2298 * primitive sequence is received and recognized and the Primitive 2299 * Sequence Protocol Engine is currently in the ACTIVE state. This bit is 2300 * CLEARED by a hardware reset or by a write to the Exception Pending 2301 * Register with EXP NPE set. 2302 * 2303 * EXP_WCD : 2304 * WWN Compare Done. 2305 * 2306 * EXP_CLSR : 2307 * CLS received. 2308 * 2309 * EXP_TXFRM_EDTOV : 2310 * This bit is set when a TX Frame EDTOV timeout is detected (frame TX 2311 * ready with no TX BBCredit for 2 secs). For simulation and test, when 2312 * PCFG1 TTM is set timeout is shortened to approx 4uSecs. 2313 * 2314 * EXP_MRK : 2315 * MRKtx received. 2316 * 2317 * EXP_LT : 2318 * Loop timeout. 2319 * 2320 * EXP_LOF : 2321 * L port open failure. 2322 * 2323 * EXP_ACTIVE : 2324 * This bit is set whenever the N-port state machine (PSPE) is in the 2325 * ACTIVE state. 2326 * 2327 * EXP_AF0R : 2328 * ARB(f0) primitive signal received. 2329 * 2330 * EXP_LIPR : 2331 * Loop initialization primitive received. 2332 * 2333 * EXP_RBBC0 : 2334 * Residual BB Credit VC 0 overflow. This bit is set if the residual TX 2335 * BBCredit counter exceeds the non-zero login BBCredit established at 2336 * port login. 2337 * 2338 * EXP_RBBC_ORUN : 2339 * This bit is set when a frame is received when the RX BBCredit is 0. 2340 * This indicates an RX BBCredit Overflow condition. This will cause the 2341 * N-Port PSPE to enter the LR1 state. 2342 * 2343 * EXP_TLOS : 2344 * This bit is set when the Loss-of-word-sync timer expires. This is timer 2345 * is based on (N * R T TOV). 2346 * 2347 * EXP_SAI : 2348 * Signal Acquired interrupt. This bit is set when the RX LOS input from 2349 * the analog front-end is deasserted. 2350 * 2351 * EXP_LPB3X : 2352 * Series of three LPB's received. 2353 * 2354 * EXP_LPE3X : 2355 * Series of three LPE's received. 2356 * 2357 * EXP_EOVF : 2358 * EFIFO Overflow. 2359 * 2360 * EXP_WUP : 2361 * WWN Updated. 2362 * 2363 * EXP_LR : 2364 * This bit is set when a LR primitive sequence ordered set is received. 2365 * 2366 * EXP_LRR : 2367 * This bit is set when a LRR primitive sequence ordered set is received. 2368 * 2369 * EXP_OLS : 2370 * This bit is set when an OLS primitive sequence ordered set is received. 2371 * 2372 * EXP_NOS : 2373 * This bit is set when a NOS primitive sequence ordered set is received. 2374 * 2375 * EXP_IDLE : 2376 * This bit is set when an IDLE primitive signal ordered set is received. 2377 * 2378 * EXP_LPBR : 2379 * LPB received. 2380 * 2381 * EXP_LPER : 2382 * LPE received. 2383 * 2384 * EXP_LD : 2385 * Link down exception. This bit is set if the port is in an INIT state 2386 * (POI) or if it is in OLDPORT but not ACTIVE 2387 */ 2388 #define bcm84756_a0_FCM_FCMAC_EXPr(c) \ 2389 (0x13100068 + (BFCMAP_PORT((c)) << 12)) 2390 2391 #define bcm84756_a0_FCM_FCMAC_EXPr_SIZE 1 2392 2393 /* 2394 * This structure should be used to declare and program FCM_FCMAC_EXP. 2395 */ 2396 typedef union bcm84756_a0_FCM_FCMAC_EXPr_s { 2397 buint32_t v[1]; 2398 buint32_t fcm_fcmac_exp[1]; 2399 buint32_t _fcm_fcmac_exp; 2400 } bcm84756_a0_FCM_FCMAC_EXPr_t; 2401 2402 #define bcm84756_a0_FCM_FCMAC_EXPr_CLR(r) \ 2403 (r).fcm_fcmac_exp[0] = 0 2404 2405 #define bcm84756_a0_FCM_FCMAC_EXPr_SET(r,d) \ 2406 (r).fcm_fcmac_exp[0] = d 2407 2408 #define bcm84756_a0_FCM_FCMAC_EXPr_GET(r) \ 2409 (r).fcm_fcmac_exp[0] 2410 2411 2412 /* 2413 * These macros can be used to access individual fields. 2414 */ 2415 #define bcm84756_a0_FCM_FCMAC_EXPr_EXP_OLf_GET(c,r) \ 2416 (((r).fcm_fcmac_exp[0]) & 0x1) 2417 2418 #define bcm84756_a0_FCM_FCMAC_EXPr_EXP_OLf_SET(c,r,f) \ 2419 (r).fcm_fcmac_exp[0]=(((r).fcm_fcmac_exp[0] & ~((buint32_t)0x1)) | \ 2420 (((buint32_t)f) & 0x1)) 2421 2422 #define bcm84756_a0_FCM_FCMAC_EXPr_EXP_TFf_GET(c,r) \ 2423 ((((r).fcm_fcmac_exp[0]) >> 1) & 0x1) 2424 2425 #define bcm84756_a0_FCM_FCMAC_EXPr_EXP_TFf_SET(c,r,f) \ 2426 (r).fcm_fcmac_exp[0]=(((r).fcm_fcmac_exp[0] & ~((buint32_t)0x1 << 1)) | \ 2427 ((((buint32_t)f) & 0x1) << 1)) 2428 2429 #define bcm84756_a0_FCM_FCMAC_EXPr_EXP_LLFf_GET(c,r) \ 2430 ((((r).fcm_fcmac_exp[0]) >> 2) & 0x1) 2431 2432 #define bcm84756_a0_FCM_FCMAC_EXPr_EXP_LLFf_SET(c,r,f) \ 2433 (r).fcm_fcmac_exp[0]=(((r).fcm_fcmac_exp[0] & ~((buint32_t)0x1 << 2)) | \ 2434 ((((buint32_t)f) & 0x1) << 2)) 2435 2436 #define bcm84756_a0_FCM_FCMAC_EXPr_EXP_RLFf_GET(c,r) \ 2437 ((((r).fcm_fcmac_exp[0]) >> 3) & 0x1) 2438 2439 #define bcm84756_a0_FCM_FCMAC_EXPr_EXP_RLFf_SET(c,r,f) \ 2440 (r).fcm_fcmac_exp[0]=(((r).fcm_fcmac_exp[0] & ~((buint32_t)0x1 << 3)) | \ 2441 ((((buint32_t)f) & 0x1) << 3)) 2442 2443 #define bcm84756_a0_FCM_FCMAC_EXPr_EXP_LLRf_GET(c,r) \ 2444 ((((r).fcm_fcmac_exp[0]) >> 4) & 0x1) 2445 2446 #define bcm84756_a0_FCM_FCMAC_EXPr_EXP_LLRf_SET(c,r,f) \ 2447 (r).fcm_fcmac_exp[0]=(((r).fcm_fcmac_exp[0] & ~((buint32_t)0x1 << 4)) | \ 2448 ((((buint32_t)f) & 0x1) << 4)) 2449 2450 #define bcm84756_a0_FCM_FCMAC_EXPr_EXP_RLRf_GET(c,r) \ 2451 ((((r).fcm_fcmac_exp[0]) >> 5) & 0x1) 2452 2453 #define bcm84756_a0_FCM_FCMAC_EXPr_EXP_RLRf_SET(c,r,f) \ 2454 (r).fcm_fcmac_exp[0]=(((r).fcm_fcmac_exp[0] & ~((buint32_t)0x1 << 5)) | \ 2455 ((((buint32_t)f) & 0x1) << 5)) 2456 2457 #define bcm84756_a0_FCM_FCMAC_EXPr_EXP_NPEf_GET(c,r) \ 2458 ((((r).fcm_fcmac_exp[0]) >> 6) & 0x1) 2459 2460 #define bcm84756_a0_FCM_FCMAC_EXPr_EXP_NPEf_SET(c,r,f) \ 2461 (r).fcm_fcmac_exp[0]=(((r).fcm_fcmac_exp[0] & ~((buint32_t)0x1 << 6)) | \ 2462 ((((buint32_t)f) & 0x1) << 6)) 2463 2464 #define bcm84756_a0_FCM_FCMAC_EXPr_EXP_WCDf_GET(c,r) \ 2465 ((((r).fcm_fcmac_exp[0]) >> 7) & 0x1) 2466 2467 #define bcm84756_a0_FCM_FCMAC_EXPr_EXP_WCDf_SET(c,r,f) \ 2468 (r).fcm_fcmac_exp[0]=(((r).fcm_fcmac_exp[0] & ~((buint32_t)0x1 << 7)) | \ 2469 ((((buint32_t)f) & 0x1) << 7)) 2470 2471 #define bcm84756_a0_FCM_FCMAC_EXPr_EXP_CLSRf_GET(c,r) \ 2472 ((((r).fcm_fcmac_exp[0]) >> 8) & 0x1) 2473 2474 #define bcm84756_a0_FCM_FCMAC_EXPr_EXP_CLSRf_SET(c,r,f) \ 2475 (r).fcm_fcmac_exp[0]=(((r).fcm_fcmac_exp[0] & ~((buint32_t)0x1 << 8)) | \ 2476 ((((buint32_t)f) & 0x1) << 8)) 2477 2478 #define bcm84756_a0_FCM_FCMAC_EXPr_EXP_TXFRM_EDTOVf_GET(c,r) \ 2479 ((((r).fcm_fcmac_exp[0]) >> 9) & 0x1) 2480 2481 #define bcm84756_a0_FCM_FCMAC_EXPr_EXP_TXFRM_EDTOVf_SET(c,r,f) \ 2482 (r).fcm_fcmac_exp[0]=(((r).fcm_fcmac_exp[0] & ~((buint32_t)0x1 << 9)) | \ 2483 ((((buint32_t)f) & 0x1) << 9)) 2484 2485 #define bcm84756_a0_FCM_FCMAC_EXPr_EXP_MRKf_GET(c,r) \ 2486 ((((r).fcm_fcmac_exp[0]) >> 10) & 0x1) 2487 2488 #define bcm84756_a0_FCM_FCMAC_EXPr_EXP_MRKf_SET(c,r,f) \ 2489 (r).fcm_fcmac_exp[0]=(((r).fcm_fcmac_exp[0] & ~((buint32_t)0x1 << 10)) | \ 2490 ((((buint32_t)f) & 0x1) << 10)) 2491 2492 #define bcm84756_a0_FCM_FCMAC_EXPr_EXP_LTf_GET(c,r) \ 2493 ((((r).fcm_fcmac_exp[0]) >> 11) & 0x1) 2494 2495 #define bcm84756_a0_FCM_FCMAC_EXPr_EXP_LTf_SET(c,r,f) \ 2496 (r).fcm_fcmac_exp[0]=(((r).fcm_fcmac_exp[0] & ~((buint32_t)0x1 << 11)) | \ 2497 ((((buint32_t)f) & 0x1) << 11)) 2498 2499 #define bcm84756_a0_FCM_FCMAC_EXPr_EXP_LOFf_GET(c,r) \ 2500 ((((r).fcm_fcmac_exp[0]) >> 12) & 0x1) 2501 2502 #define bcm84756_a0_FCM_FCMAC_EXPr_EXP_LOFf_SET(c,r,f) \ 2503 (r).fcm_fcmac_exp[0]=(((r).fcm_fcmac_exp[0] & ~((buint32_t)0x1 << 12)) | \ 2504 ((((buint32_t)f) & 0x1) << 12)) 2505 2506 #define bcm84756_a0_FCM_FCMAC_EXPr_EXP_ACTIVEf_GET(c,r) \ 2507 ((((r).fcm_fcmac_exp[0]) >> 13) & 0x1) 2508 2509 #define bcm84756_a0_FCM_FCMAC_EXPr_EXP_ACTIVEf_SET(c,r,f) \ 2510 (r).fcm_fcmac_exp[0]=(((r).fcm_fcmac_exp[0] & ~((buint32_t)0x1 << 13)) | \ 2511 ((((buint32_t)f) & 0x1) << 13)) 2512 2513 #define bcm84756_a0_FCM_FCMAC_EXPr_EXP_AF0Rf_GET(c,r) \ 2514 ((((r).fcm_fcmac_exp[0]) >> 14) & 0x1) 2515 2516 #define bcm84756_a0_FCM_FCMAC_EXPr_EXP_AF0Rf_SET(c,r,f) \ 2517 (r).fcm_fcmac_exp[0]=(((r).fcm_fcmac_exp[0] & ~((buint32_t)0x1 << 14)) | \ 2518 ((((buint32_t)f) & 0x1) << 14)) 2519 2520 #define bcm84756_a0_FCM_FCMAC_EXPr_EXP_LIPRf_GET(c,r) \ 2521 ((((r).fcm_fcmac_exp[0]) >> 15) & 0x1) 2522 2523 #define bcm84756_a0_FCM_FCMAC_EXPr_EXP_LIPRf_SET(c,r,f) \ 2524 (r).fcm_fcmac_exp[0]=(((r).fcm_fcmac_exp[0] & ~((buint32_t)0x1 << 15)) | \ 2525 ((((buint32_t)f) & 0x1) << 15)) 2526 2527 #define bcm84756_a0_FCM_FCMAC_EXPr_EXP_RBBC0f_GET(c,r) \ 2528 ((((r).fcm_fcmac_exp[0]) >> 16) & 0x1) 2529 2530 #define bcm84756_a0_FCM_FCMAC_EXPr_EXP_RBBC0f_SET(c,r,f) \ 2531 (r).fcm_fcmac_exp[0]=(((r).fcm_fcmac_exp[0] & ~((buint32_t)0x1 << 16)) | \ 2532 ((((buint32_t)f) & 0x1) << 16)) 2533 2534 #define bcm84756_a0_FCM_FCMAC_EXPr_EXP_RBBC_ORUNf_GET(c,r) \ 2535 ((((r).fcm_fcmac_exp[0]) >> 17) & 0x1) 2536 2537 #define bcm84756_a0_FCM_FCMAC_EXPr_EXP_RBBC_ORUNf_SET(c,r,f) \ 2538 (r).fcm_fcmac_exp[0]=(((r).fcm_fcmac_exp[0] & ~((buint32_t)0x1 << 17)) | \ 2539 ((((buint32_t)f) & 0x1) << 17)) 2540 2541 #define bcm84756_a0_FCM_FCMAC_EXPr_EXP_TLOSf_GET(c,r) \ 2542 ((((r).fcm_fcmac_exp[0]) >> 18) & 0x1) 2543 2544 #define bcm84756_a0_FCM_FCMAC_EXPr_EXP_TLOSf_SET(c,r,f) \ 2545 (r).fcm_fcmac_exp[0]=(((r).fcm_fcmac_exp[0] & ~((buint32_t)0x1 << 18)) | \ 2546 ((((buint32_t)f) & 0x1) << 18)) 2547 2548 #define bcm84756_a0_FCM_FCMAC_EXPr_EXP_SAIf_GET(c,r) \ 2549 ((((r).fcm_fcmac_exp[0]) >> 19) & 0x1) 2550 2551 #define bcm84756_a0_FCM_FCMAC_EXPr_EXP_SAIf_SET(c,r,f) \ 2552 (r).fcm_fcmac_exp[0]=(((r).fcm_fcmac_exp[0] & ~((buint32_t)0x1 << 19)) | \ 2553 ((((buint32_t)f) & 0x1) << 19)) 2554 2555 #define bcm84756_a0_FCM_FCMAC_EXPr_EXP_LPB3Xf_GET(c,r) \ 2556 ((((r).fcm_fcmac_exp[0]) >> 20) & 0x1) 2557 2558 #define bcm84756_a0_FCM_FCMAC_EXPr_EXP_LPB3Xf_SET(c,r,f) \ 2559 (r).fcm_fcmac_exp[0]=(((r).fcm_fcmac_exp[0] & ~((buint32_t)0x1 << 20)) | \ 2560 ((((buint32_t)f) & 0x1) << 20)) 2561 2562 #define bcm84756_a0_FCM_FCMAC_EXPr_EXP_LPE3Xf_GET(c,r) \ 2563 ((((r).fcm_fcmac_exp[0]) >> 21) & 0x1) 2564 2565 #define bcm84756_a0_FCM_FCMAC_EXPr_EXP_LPE3Xf_SET(c,r,f) \ 2566 (r).fcm_fcmac_exp[0]=(((r).fcm_fcmac_exp[0] & ~((buint32_t)0x1 << 21)) | \ 2567 ((((buint32_t)f) & 0x1) << 21)) 2568 2569 #define bcm84756_a0_FCM_FCMAC_EXPr_EXP_EOVFf_GET(c,r) \ 2570 ((((r).fcm_fcmac_exp[0]) >> 22) & 0x1) 2571 2572 #define bcm84756_a0_FCM_FCMAC_EXPr_EXP_EOVFf_SET(c,r,f) \ 2573 (r).fcm_fcmac_exp[0]=(((r).fcm_fcmac_exp[0] & ~((buint32_t)0x1 << 22)) | \ 2574 ((((buint32_t)f) & 0x1) << 22)) 2575 2576 #define bcm84756_a0_FCM_FCMAC_EXPr_EXP_WUPf_GET(c,r) \ 2577 ((((r).fcm_fcmac_exp[0]) >> 23) & 0x1) 2578 2579 #define bcm84756_a0_FCM_FCMAC_EXPr_EXP_WUPf_SET(c,r,f) \ 2580 (r).fcm_fcmac_exp[0]=(((r).fcm_fcmac_exp[0] & ~((buint32_t)0x1 << 23)) | \ 2581 ((((buint32_t)f) & 0x1) << 23)) 2582 2583 #define bcm84756_a0_FCM_FCMAC_EXPr_EXP_LRf_GET(c,r) \ 2584 ((((r).fcm_fcmac_exp[0]) >> 24) & 0x1) 2585 2586 #define bcm84756_a0_FCM_FCMAC_EXPr_EXP_LRf_SET(c,r,f) \ 2587 (r).fcm_fcmac_exp[0]=(((r).fcm_fcmac_exp[0] & ~((buint32_t)0x1 << 24)) | \ 2588 ((((buint32_t)f) & 0x1) << 24)) 2589 2590 #define bcm84756_a0_FCM_FCMAC_EXPr_EXP_LRRf_GET(c,r) \ 2591 ((((r).fcm_fcmac_exp[0]) >> 25) & 0x1) 2592 2593 #define bcm84756_a0_FCM_FCMAC_EXPr_EXP_LRRf_SET(c,r,f) \ 2594 (r).fcm_fcmac_exp[0]=(((r).fcm_fcmac_exp[0] & ~((buint32_t)0x1 << 25)) | \ 2595 ((((buint32_t)f) & 0x1) << 25)) 2596 2597 #define bcm84756_a0_FCM_FCMAC_EXPr_EXP_OLSf_GET(c,r) \ 2598 ((((r).fcm_fcmac_exp[0]) >> 26) & 0x1) 2599 2600 #define bcm84756_a0_FCM_FCMAC_EXPr_EXP_OLSf_SET(c,r,f) \ 2601 (r).fcm_fcmac_exp[0]=(((r).fcm_fcmac_exp[0] & ~((buint32_t)0x1 << 26)) | \ 2602 ((((buint32_t)f) & 0x1) << 26)) 2603 2604 #define bcm84756_a0_FCM_FCMAC_EXPr_EXP_NOSf_GET(c,r) \ 2605 ((((r).fcm_fcmac_exp[0]) >> 27) & 0x1) 2606 2607 #define bcm84756_a0_FCM_FCMAC_EXPr_EXP_NOSf_SET(c,r,f) \ 2608 (r).fcm_fcmac_exp[0]=(((r).fcm_fcmac_exp[0] & ~((buint32_t)0x1 << 27)) | \ 2609 ((((buint32_t)f) & 0x1) << 27)) 2610 2611 #define bcm84756_a0_FCM_FCMAC_EXPr_EXP_IDLEf_GET(c,r) \ 2612 ((((r).fcm_fcmac_exp[0]) >> 28) & 0x1) 2613 2614 #define bcm84756_a0_FCM_FCMAC_EXPr_EXP_IDLEf_SET(c,r,f) \ 2615 (r).fcm_fcmac_exp[0]=(((r).fcm_fcmac_exp[0] & ~((buint32_t)0x1 << 28)) | \ 2616 ((((buint32_t)f) & 0x1) << 28)) 2617 2618 #define bcm84756_a0_FCM_FCMAC_EXPr_EXP_LPBRf_GET(c,r) \ 2619 ((((r).fcm_fcmac_exp[0]) >> 29) & 0x1) 2620 2621 #define bcm84756_a0_FCM_FCMAC_EXPr_EXP_LPBRf_SET(c,r,f) \ 2622 (r).fcm_fcmac_exp[0]=(((r).fcm_fcmac_exp[0] & ~((buint32_t)0x1 << 29)) | \ 2623 ((((buint32_t)f) & 0x1) << 29)) 2624 2625 #define bcm84756_a0_FCM_FCMAC_EXPr_EXP_LPERf_GET(c,r) \ 2626 ((((r).fcm_fcmac_exp[0]) >> 30) & 0x1) 2627 2628 #define bcm84756_a0_FCM_FCMAC_EXPr_EXP_LPERf_SET(c,r,f) \ 2629 (r).fcm_fcmac_exp[0]=(((r).fcm_fcmac_exp[0] & ~((buint32_t)0x1 << 30)) | \ 2630 ((((buint32_t)f) & 0x1) << 30)) 2631 2632 #define bcm84756_a0_FCM_FCMAC_EXPr_EXP_LDf_GET(c,r) \ 2633 ((((r).fcm_fcmac_exp[0]) >> 31) & 0x1) 2634 2635 #define bcm84756_a0_FCM_FCMAC_EXPr_EXP_LDf_SET(c,r,f) \ 2636 (r).fcm_fcmac_exp[0]=(((r).fcm_fcmac_exp[0] & ~((buint32_t)0x1 << 31)) | \ 2637 ((((buint32_t)f) & 0x1) << 31)) 2638 2639 2640 /* 2641 * These macros can be used to access FCM_FCMAC_EXP. 2642 */ 2643 #define bcm84756_a0_READ_FCM_FCMAC_EXPr(c,r) \ 2644 BFCMAP_REG32_READ((c),bcm84756_a0_FCM_FCMAC_EXPr((c)),&((r)._fcm_fcmac_exp)) 2645 2646 #define bcm84756_a0_WRITE_FCM_FCMAC_EXPr(c,r) \ 2647 BFCMAP_REG32_WRITE((c),bcm84756_a0_FCM_FCMAC_EXPr((c)),&((r)._fcm_fcmac_exp)) 2648 2649 /******************************************************************************* 2650 * End of 'bcm84756_a0_FCM_FCMAC_EXPr' 2651 */ 2652 2653 2654 2655 2656 /******************************************************************************* 2657 * CHIP: bcm84756_a0 2658 * REGISTER: FCM_FCMAC_EXPM_HOST 2659 * BLOCKS: SECPORT 2660 * DESCRIPTION : 2661 * Exception pending mask register for HOST interrupts. 2662 * 2663 * SIZE: 32 2664 * 2665 * FIELDS DESCRIPTION: 2666 * EXPM_OL : 2667 * Open link mask bit. 2668 * 2669 * EXPM_TF : 2670 * Transceiver fault mask bit. 2671 * 2672 * EXPM_LLF : 2673 * Local link failure mask bit. 2674 * 2675 * EXPM_RLF : 2676 * Remote link failure mask bit. 2677 * 2678 * EXPM_LLR : 2679 * Local link reset mask bit. 2680 * 2681 * EXPM_RLR : 2682 * Remote link reset mask bit. 2683 * 2684 * EXPM_NPE : 2685 * N Port protocol error mask bit. 2686 * 2687 * EXPM_WCD : 2688 * WWN Compare Done mask bit. 2689 * 2690 * EXPM_CLSR : 2691 * CLS received mask bit. 2692 * 2693 * EXPM_TXFRM_EDTOV : 2694 * Mask bit for EXP TXFRM EDTOV. 2695 * 2696 * EXPM_MRK : 2697 * MRKtx received mask bit. 2698 * 2699 * EXPM_LT : 2700 * Link timeout mask bit. 2701 * 2702 * EXPM_LOF : 2703 * L port open failure mask bit. 2704 * 2705 * EXPM_ACTIVE : 2706 * Mask bit for EXP ACTIVE interrupt bit. 2707 * 2708 * EXPM_AF0R : 2709 * ARB(f0) primitive signal received mask bit. 2710 * 2711 * EXPM_LIPR : 2712 * Loop initialization primitive received mask bit. 2713 * 2714 * EXPM_RBBC0 : 2715 * Residual BB Credit VC 0 overflow mask bit. 2716 * 2717 * EXPM_RBBC_ORUN : 2718 * RX BBCredit Overflow mask bit. 2719 * 2720 * EXPM_TLOS : 2721 * Timer based Loss of Sync interrupt, R T TOV timer mask bit. 2722 * 2723 * EXPM_SAI : 2724 * Signal Acquired interrupt mask bit. 2725 * 2726 * EXPM_LPB3X : 2727 * Series of three LPB's received mask bit. 2728 * 2729 * EXPM_LPE3X : 2730 * Series of three LPE's received mask bit. 2731 * 2732 * EXPM_EOVF : 2733 * EFIFO Overflow mask bit. 2734 * 2735 * EXPM_WUP : 2736 * WWN Updated mask bit. 2737 * 2738 * EXPM_LR : 2739 * LR link reset received mask bit. 2740 * 2741 * EXPM_LRR : 2742 * LRR link reset response mask bit. 2743 * 2744 * EXPM_OLS : 2745 * OLS Offline sequence received mask bit. 2746 * 2747 * EXPM_NOS : 2748 * NOS Not Operational Sequence received mask bit. 2749 * 2750 * EXPM_IDLE : 2751 * IDLE received mask bit. 2752 * 2753 * EXPM_LPBR : 2754 * LPB received mask bit. 2755 * 2756 * EXPM_LPER : 2757 * LPE received mask bit. 2758 * 2759 * EXPM_LD : 2760 * Link down exception mask bit. 2761 */ 2762 #define bcm84756_a0_FCM_FCMAC_EXPM_HOSTr(c) \ 2763 (0x13100069 + (BFCMAP_PORT((c)) << 12)) 2764 2765 #define bcm84756_a0_FCM_FCMAC_EXPM_HOSTr_SIZE 1 2766 2767 /* 2768 * This structure should be used to declare and program FCM_FCMAC_EXPM_HOST. 2769 */ 2770 typedef union bcm84756_a0_FCM_FCMAC_EXPM_HOSTr_s { 2771 buint32_t v[1]; 2772 buint32_t fcm_fcmac_expm_host[1]; 2773 buint32_t _fcm_fcmac_expm_host; 2774 } bcm84756_a0_FCM_FCMAC_EXPM_HOSTr_t; 2775 2776 #define bcm84756_a0_FCM_FCMAC_EXPM_HOSTr_CLR(r) \ 2777 (r).fcm_fcmac_expm_host[0] = 0 2778 2779 #define bcm84756_a0_FCM_FCMAC_EXPM_HOSTr_SET(r,d) \ 2780 (r).fcm_fcmac_expm_host[0] = d 2781 2782 #define bcm84756_a0_FCM_FCMAC_EXPM_HOSTr_GET(r) \ 2783 (r).fcm_fcmac_expm_host[0] 2784 2785 2786 /* 2787 * These macros can be used to access individual fields. 2788 */ 2789 #define bcm84756_a0_FCM_FCMAC_EXPM_HOSTr_EXPM_OLf_GET(c,r) \ 2790 (((r).fcm_fcmac_expm_host[0]) & 0x1) 2791 2792 #define bcm84756_a0_FCM_FCMAC_EXPM_HOSTr_EXPM_OLf_SET(c,r,f) \ 2793 (r).fcm_fcmac_expm_host[0]=(((r).fcm_fcmac_expm_host[0] & ~((buint32_t)0x1)) | \ 2794 (((buint32_t)f) & 0x1)) 2795 2796 #define bcm84756_a0_FCM_FCMAC_EXPM_HOSTr_EXPM_TFf_GET(c,r) \ 2797 ((((r).fcm_fcmac_expm_host[0]) >> 1) & 0x1) 2798 2799 #define bcm84756_a0_FCM_FCMAC_EXPM_HOSTr_EXPM_TFf_SET(c,r,f) \ 2800 (r).fcm_fcmac_expm_host[0]=(((r).fcm_fcmac_expm_host[0] & ~((buint32_t)0x1 << 1)) | \ 2801 ((((buint32_t)f) & 0x1) << 1)) 2802 2803 #define bcm84756_a0_FCM_FCMAC_EXPM_HOSTr_EXPM_LLFf_GET(c,r) \ 2804 ((((r).fcm_fcmac_expm_host[0]) >> 2) & 0x1) 2805 2806 #define bcm84756_a0_FCM_FCMAC_EXPM_HOSTr_EXPM_LLFf_SET(c,r,f) \ 2807 (r).fcm_fcmac_expm_host[0]=(((r).fcm_fcmac_expm_host[0] & ~((buint32_t)0x1 << 2)) | \ 2808 ((((buint32_t)f) & 0x1) << 2)) 2809 2810 #define bcm84756_a0_FCM_FCMAC_EXPM_HOSTr_EXPM_RLFf_GET(c,r) \ 2811 ((((r).fcm_fcmac_expm_host[0]) >> 3) & 0x1) 2812 2813 #define bcm84756_a0_FCM_FCMAC_EXPM_HOSTr_EXPM_RLFf_SET(c,r,f) \ 2814 (r).fcm_fcmac_expm_host[0]=(((r).fcm_fcmac_expm_host[0] & ~((buint32_t)0x1 << 3)) | \ 2815 ((((buint32_t)f) & 0x1) << 3)) 2816 2817 #define bcm84756_a0_FCM_FCMAC_EXPM_HOSTr_EXPM_LLRf_GET(c,r) \ 2818 ((((r).fcm_fcmac_expm_host[0]) >> 4) & 0x1) 2819 2820 #define bcm84756_a0_FCM_FCMAC_EXPM_HOSTr_EXPM_LLRf_SET(c,r,f) \ 2821 (r).fcm_fcmac_expm_host[0]=(((r).fcm_fcmac_expm_host[0] & ~((buint32_t)0x1 << 4)) | \ 2822 ((((buint32_t)f) & 0x1) << 4)) 2823 2824 #define bcm84756_a0_FCM_FCMAC_EXPM_HOSTr_EXPM_RLRf_GET(c,r) \ 2825 ((((r).fcm_fcmac_expm_host[0]) >> 5) & 0x1) 2826 2827 #define bcm84756_a0_FCM_FCMAC_EXPM_HOSTr_EXPM_RLRf_SET(c,r,f) \ 2828 (r).fcm_fcmac_expm_host[0]=(((r).fcm_fcmac_expm_host[0] & ~((buint32_t)0x1 << 5)) | \ 2829 ((((buint32_t)f) & 0x1) << 5)) 2830 2831 #define bcm84756_a0_FCM_FCMAC_EXPM_HOSTr_EXPM_NPEf_GET(c,r) \ 2832 ((((r).fcm_fcmac_expm_host[0]) >> 6) & 0x1) 2833 2834 #define bcm84756_a0_FCM_FCMAC_EXPM_HOSTr_EXPM_NPEf_SET(c,r,f) \ 2835 (r).fcm_fcmac_expm_host[0]=(((r).fcm_fcmac_expm_host[0] & ~((buint32_t)0x1 << 6)) | \ 2836 ((((buint32_t)f) & 0x1) << 6)) 2837 2838 #define bcm84756_a0_FCM_FCMAC_EXPM_HOSTr_EXPM_WCDf_GET(c,r) \ 2839 ((((r).fcm_fcmac_expm_host[0]) >> 7) & 0x1) 2840 2841 #define bcm84756_a0_FCM_FCMAC_EXPM_HOSTr_EXPM_WCDf_SET(c,r,f) \ 2842 (r).fcm_fcmac_expm_host[0]=(((r).fcm_fcmac_expm_host[0] & ~((buint32_t)0x1 << 7)) | \ 2843 ((((buint32_t)f) & 0x1) << 7)) 2844 2845 #define bcm84756_a0_FCM_FCMAC_EXPM_HOSTr_EXPM_CLSRf_GET(c,r) \ 2846 ((((r).fcm_fcmac_expm_host[0]) >> 8) & 0x1) 2847 2848 #define bcm84756_a0_FCM_FCMAC_EXPM_HOSTr_EXPM_CLSRf_SET(c,r,f) \ 2849 (r).fcm_fcmac_expm_host[0]=(((r).fcm_fcmac_expm_host[0] & ~((buint32_t)0x1 << 8)) | \ 2850 ((((buint32_t)f) & 0x1) << 8)) 2851 2852 #define bcm84756_a0_FCM_FCMAC_EXPM_HOSTr_EXPM_TXFRM_EDTOVf_GET(c,r) \ 2853 ((((r).fcm_fcmac_expm_host[0]) >> 9) & 0x1) 2854 2855 #define bcm84756_a0_FCM_FCMAC_EXPM_HOSTr_EXPM_TXFRM_EDTOVf_SET(c,r,f) \ 2856 (r).fcm_fcmac_expm_host[0]=(((r).fcm_fcmac_expm_host[0] & ~((buint32_t)0x1 << 9)) | \ 2857 ((((buint32_t)f) & 0x1) << 9)) 2858 2859 #define bcm84756_a0_FCM_FCMAC_EXPM_HOSTr_EXPM_MRKf_GET(c,r) \ 2860 ((((r).fcm_fcmac_expm_host[0]) >> 10) & 0x1) 2861 2862 #define bcm84756_a0_FCM_FCMAC_EXPM_HOSTr_EXPM_MRKf_SET(c,r,f) \ 2863 (r).fcm_fcmac_expm_host[0]=(((r).fcm_fcmac_expm_host[0] & ~((buint32_t)0x1 << 10)) | \ 2864 ((((buint32_t)f) & 0x1) << 10)) 2865 2866 #define bcm84756_a0_FCM_FCMAC_EXPM_HOSTr_EXPM_LTf_GET(c,r) \ 2867 ((((r).fcm_fcmac_expm_host[0]) >> 11) & 0x1) 2868 2869 #define bcm84756_a0_FCM_FCMAC_EXPM_HOSTr_EXPM_LTf_SET(c,r,f) \ 2870 (r).fcm_fcmac_expm_host[0]=(((r).fcm_fcmac_expm_host[0] & ~((buint32_t)0x1 << 11)) | \ 2871 ((((buint32_t)f) & 0x1) << 11)) 2872 2873 #define bcm84756_a0_FCM_FCMAC_EXPM_HOSTr_EXPM_LOFf_GET(c,r) \ 2874 ((((r).fcm_fcmac_expm_host[0]) >> 12) & 0x1) 2875 2876 #define bcm84756_a0_FCM_FCMAC_EXPM_HOSTr_EXPM_LOFf_SET(c,r,f) \ 2877 (r).fcm_fcmac_expm_host[0]=(((r).fcm_fcmac_expm_host[0] & ~((buint32_t)0x1 << 12)) | \ 2878 ((((buint32_t)f) & 0x1) << 12)) 2879 2880 #define bcm84756_a0_FCM_FCMAC_EXPM_HOSTr_EXPM_ACTIVEf_GET(c,r) \ 2881 ((((r).fcm_fcmac_expm_host[0]) >> 13) & 0x1) 2882 2883 #define bcm84756_a0_FCM_FCMAC_EXPM_HOSTr_EXPM_ACTIVEf_SET(c,r,f) \ 2884 (r).fcm_fcmac_expm_host[0]=(((r).fcm_fcmac_expm_host[0] & ~((buint32_t)0x1 << 13)) | \ 2885 ((((buint32_t)f) & 0x1) << 13)) 2886 2887 #define bcm84756_a0_FCM_FCMAC_EXPM_HOSTr_EXPM_AF0Rf_GET(c,r) \ 2888 ((((r).fcm_fcmac_expm_host[0]) >> 14) & 0x1) 2889 2890 #define bcm84756_a0_FCM_FCMAC_EXPM_HOSTr_EXPM_AF0Rf_SET(c,r,f) \ 2891 (r).fcm_fcmac_expm_host[0]=(((r).fcm_fcmac_expm_host[0] & ~((buint32_t)0x1 << 14)) | \ 2892 ((((buint32_t)f) & 0x1) << 14)) 2893 2894 #define bcm84756_a0_FCM_FCMAC_EXPM_HOSTr_EXPM_LIPRf_GET(c,r) \ 2895 ((((r).fcm_fcmac_expm_host[0]) >> 15) & 0x1) 2896 2897 #define bcm84756_a0_FCM_FCMAC_EXPM_HOSTr_EXPM_LIPRf_SET(c,r,f) \ 2898 (r).fcm_fcmac_expm_host[0]=(((r).fcm_fcmac_expm_host[0] & ~((buint32_t)0x1 << 15)) | \ 2899 ((((buint32_t)f) & 0x1) << 15)) 2900 2901 #define bcm84756_a0_FCM_FCMAC_EXPM_HOSTr_EXPM_RBBC0f_GET(c,r) \ 2902 ((((r).fcm_fcmac_expm_host[0]) >> 16) & 0x1) 2903 2904 #define bcm84756_a0_FCM_FCMAC_EXPM_HOSTr_EXPM_RBBC0f_SET(c,r,f) \ 2905 (r).fcm_fcmac_expm_host[0]=(((r).fcm_fcmac_expm_host[0] & ~((buint32_t)0x1 << 16)) | \ 2906 ((((buint32_t)f) & 0x1) << 16)) 2907 2908 #define bcm84756_a0_FCM_FCMAC_EXPM_HOSTr_EXPM_RBBC_ORUNf_GET(c,r) \ 2909 ((((r).fcm_fcmac_expm_host[0]) >> 17) & 0x1) 2910 2911 #define bcm84756_a0_FCM_FCMAC_EXPM_HOSTr_EXPM_RBBC_ORUNf_SET(c,r,f) \ 2912 (r).fcm_fcmac_expm_host[0]=(((r).fcm_fcmac_expm_host[0] & ~((buint32_t)0x1 << 17)) | \ 2913 ((((buint32_t)f) & 0x1) << 17)) 2914 2915 #define bcm84756_a0_FCM_FCMAC_EXPM_HOSTr_EXPM_TLOSf_GET(c,r) \ 2916 ((((r).fcm_fcmac_expm_host[0]) >> 18) & 0x1) 2917 2918 #define bcm84756_a0_FCM_FCMAC_EXPM_HOSTr_EXPM_TLOSf_SET(c,r,f) \ 2919 (r).fcm_fcmac_expm_host[0]=(((r).fcm_fcmac_expm_host[0] & ~((buint32_t)0x1 << 18)) | \ 2920 ((((buint32_t)f) & 0x1) << 18)) 2921 2922 #define bcm84756_a0_FCM_FCMAC_EXPM_HOSTr_EXPM_SAIf_GET(c,r) \ 2923 ((((r).fcm_fcmac_expm_host[0]) >> 19) & 0x1) 2924 2925 #define bcm84756_a0_FCM_FCMAC_EXPM_HOSTr_EXPM_SAIf_SET(c,r,f) \ 2926 (r).fcm_fcmac_expm_host[0]=(((r).fcm_fcmac_expm_host[0] & ~((buint32_t)0x1 << 19)) | \ 2927 ((((buint32_t)f) & 0x1) << 19)) 2928 2929 #define bcm84756_a0_FCM_FCMAC_EXPM_HOSTr_EXPM_LPB3Xf_GET(c,r) \ 2930 ((((r).fcm_fcmac_expm_host[0]) >> 20) & 0x1) 2931 2932 #define bcm84756_a0_FCM_FCMAC_EXPM_HOSTr_EXPM_LPB3Xf_SET(c,r,f) \ 2933 (r).fcm_fcmac_expm_host[0]=(((r).fcm_fcmac_expm_host[0] & ~((buint32_t)0x1 << 20)) | \ 2934 ((((buint32_t)f) & 0x1) << 20)) 2935 2936 #define bcm84756_a0_FCM_FCMAC_EXPM_HOSTr_EXPM_LPE3Xf_GET(c,r) \ 2937 ((((r).fcm_fcmac_expm_host[0]) >> 21) & 0x1) 2938 2939 #define bcm84756_a0_FCM_FCMAC_EXPM_HOSTr_EXPM_LPE3Xf_SET(c,r,f) \ 2940 (r).fcm_fcmac_expm_host[0]=(((r).fcm_fcmac_expm_host[0] & ~((buint32_t)0x1 << 21)) | \ 2941 ((((buint32_t)f) & 0x1) << 21)) 2942 2943 #define bcm84756_a0_FCM_FCMAC_EXPM_HOSTr_EXPM_EOVFf_GET(c,r) \ 2944 ((((r).fcm_fcmac_expm_host[0]) >> 22) & 0x1) 2945 2946 #define bcm84756_a0_FCM_FCMAC_EXPM_HOSTr_EXPM_EOVFf_SET(c,r,f) \ 2947 (r).fcm_fcmac_expm_host[0]=(((r).fcm_fcmac_expm_host[0] & ~((buint32_t)0x1 << 22)) | \ 2948 ((((buint32_t)f) & 0x1) << 22)) 2949 2950 #define bcm84756_a0_FCM_FCMAC_EXPM_HOSTr_EXPM_WUPf_GET(c,r) \ 2951 ((((r).fcm_fcmac_expm_host[0]) >> 23) & 0x1) 2952 2953 #define bcm84756_a0_FCM_FCMAC_EXPM_HOSTr_EXPM_WUPf_SET(c,r,f) \ 2954 (r).fcm_fcmac_expm_host[0]=(((r).fcm_fcmac_expm_host[0] & ~((buint32_t)0x1 << 23)) | \ 2955 ((((buint32_t)f) & 0x1) << 23)) 2956 2957 #define bcm84756_a0_FCM_FCMAC_EXPM_HOSTr_EXPM_LRf_GET(c,r) \ 2958 ((((r).fcm_fcmac_expm_host[0]) >> 24) & 0x1) 2959 2960 #define bcm84756_a0_FCM_FCMAC_EXPM_HOSTr_EXPM_LRf_SET(c,r,f) \ 2961 (r).fcm_fcmac_expm_host[0]=(((r).fcm_fcmac_expm_host[0] & ~((buint32_t)0x1 << 24)) | \ 2962 ((((buint32_t)f) & 0x1) << 24)) 2963 2964 #define bcm84756_a0_FCM_FCMAC_EXPM_HOSTr_EXPM_LRRf_GET(c,r) \ 2965 ((((r).fcm_fcmac_expm_host[0]) >> 25) & 0x1) 2966 2967 #define bcm84756_a0_FCM_FCMAC_EXPM_HOSTr_EXPM_LRRf_SET(c,r,f) \ 2968 (r).fcm_fcmac_expm_host[0]=(((r).fcm_fcmac_expm_host[0] & ~((buint32_t)0x1 << 25)) | \ 2969 ((((buint32_t)f) & 0x1) << 25)) 2970 2971 #define bcm84756_a0_FCM_FCMAC_EXPM_HOSTr_EXPM_OLSf_GET(c,r) \ 2972 ((((r).fcm_fcmac_expm_host[0]) >> 26) & 0x1) 2973 2974 #define bcm84756_a0_FCM_FCMAC_EXPM_HOSTr_EXPM_OLSf_SET(c,r,f) \ 2975 (r).fcm_fcmac_expm_host[0]=(((r).fcm_fcmac_expm_host[0] & ~((buint32_t)0x1 << 26)) | \ 2976 ((((buint32_t)f) & 0x1) << 26)) 2977 2978 #define bcm84756_a0_FCM_FCMAC_EXPM_HOSTr_EXPM_NOSf_GET(c,r) \ 2979 ((((r).fcm_fcmac_expm_host[0]) >> 27) & 0x1) 2980 2981 #define bcm84756_a0_FCM_FCMAC_EXPM_HOSTr_EXPM_NOSf_SET(c,r,f) \ 2982 (r).fcm_fcmac_expm_host[0]=(((r).fcm_fcmac_expm_host[0] & ~((buint32_t)0x1 << 27)) | \ 2983 ((((buint32_t)f) & 0x1) << 27)) 2984 2985 #define bcm84756_a0_FCM_FCMAC_EXPM_HOSTr_EXPM_IDLEf_GET(c,r) \ 2986 ((((r).fcm_fcmac_expm_host[0]) >> 28) & 0x1) 2987 2988 #define bcm84756_a0_FCM_FCMAC_EXPM_HOSTr_EXPM_IDLEf_SET(c,r,f) \ 2989 (r).fcm_fcmac_expm_host[0]=(((r).fcm_fcmac_expm_host[0] & ~((buint32_t)0x1 << 28)) | \ 2990 ((((buint32_t)f) & 0x1) << 28)) 2991 2992 #define bcm84756_a0_FCM_FCMAC_EXPM_HOSTr_EXPM_LPBRf_GET(c,r) \ 2993 ((((r).fcm_fcmac_expm_host[0]) >> 29) & 0x1) 2994 2995 #define bcm84756_a0_FCM_FCMAC_EXPM_HOSTr_EXPM_LPBRf_SET(c,r,f) \ 2996 (r).fcm_fcmac_expm_host[0]=(((r).fcm_fcmac_expm_host[0] & ~((buint32_t)0x1 << 29)) | \ 2997 ((((buint32_t)f) & 0x1) << 29)) 2998 2999 #define bcm84756_a0_FCM_FCMAC_EXPM_HOSTr_EXPM_LPERf_GET(c,r) \ 3000 ((((r).fcm_fcmac_expm_host[0]) >> 30) & 0x1) 3001 3002 #define bcm84756_a0_FCM_FCMAC_EXPM_HOSTr_EXPM_LPERf_SET(c,r,f) \ 3003 (r).fcm_fcmac_expm_host[0]=(((r).fcm_fcmac_expm_host[0] & ~((buint32_t)0x1 << 30)) | \ 3004 ((((buint32_t)f) & 0x1) << 30)) 3005 3006 #define bcm84756_a0_FCM_FCMAC_EXPM_HOSTr_EXPM_LDf_GET(c,r) \ 3007 ((((r).fcm_fcmac_expm_host[0]) >> 31) & 0x1) 3008 3009 #define bcm84756_a0_FCM_FCMAC_EXPM_HOSTr_EXPM_LDf_SET(c,r,f) \ 3010 (r).fcm_fcmac_expm_host[0]=(((r).fcm_fcmac_expm_host[0] & ~((buint32_t)0x1 << 31)) | \ 3011 ((((buint32_t)f) & 0x1) << 31)) 3012 3013 3014 /* 3015 * These macros can be used to access FCM_FCMAC_EXPM_HOST. 3016 */ 3017 #define bcm84756_a0_READ_FCM_FCMAC_EXPM_HOSTr(c,r) \ 3018 BFCMAP_REG32_READ((c),bcm84756_a0_FCM_FCMAC_EXPM_HOSTr((c)),&((r)._fcm_fcmac_expm_host)) 3019 3020 #define bcm84756_a0_WRITE_FCM_FCMAC_EXPM_HOSTr(c,r) \ 3021 BFCMAP_REG32_WRITE((c),bcm84756_a0_FCM_FCMAC_EXPM_HOSTr((c)),&((r)._fcm_fcmac_expm_host)) 3022 3023 /******************************************************************************* 3024 * End of 'bcm84756_a0_FCM_FCMAC_EXPM_HOSTr' 3025 */ 3026 3027 3028 3029 3030 /******************************************************************************* 3031 * CHIP: bcm84756_a0 3032 * REGISTER: FCM_FCMAC_EXPM_LOCAL 3033 * BLOCKS: SECPORT 3034 * DESCRIPTION : 3035 * Exception pending mask register for LOCAL (8051) interrupts. 3036 * 3037 * SIZE: 32 3038 * 3039 * FIELDS DESCRIPTION: 3040 * EXPM_OL : 3041 * Open link mask bit. 3042 * 3043 * EXPM_TF : 3044 * Transceiver fault mask bit. 3045 * 3046 * EXPM_LLF : 3047 * Local link failure mask bit. 3048 * 3049 * EXPM_RLF : 3050 * Remote link failure mask bit. 3051 * 3052 * EXPM_LLR : 3053 * Local link reset mask bit. 3054 * 3055 * EXPM_RLR : 3056 * Remote link reset mask bit. 3057 * 3058 * EXPM_NPE : 3059 * N Port protocol error mask bit. 3060 * 3061 * EXPM_WCD : 3062 * WWN Compare Done mask bit. 3063 * 3064 * EXPM_CLSR : 3065 * CLS received mask bit. 3066 * 3067 * EXPM_TXFRM_EDTOV : 3068 * Mask bit for EXP TXFRM EDTOV. 3069 * 3070 * EXPM_MRK : 3071 * MRKtx received mask bit. 3072 * 3073 * EXPM_LT : 3074 * Link timeout mask bit. 3075 * 3076 * EXPM_LOF : 3077 * L port open failure mask bit. 3078 * 3079 * EXPM_ACTIVE : 3080 * Mask bit for EXP ACTIVE interrupt bit. 3081 * 3082 * EXPM_AF0R : 3083 * ARB(f0) primitive signal received mask bit. 3084 * 3085 * EXPM_LIPR : 3086 * Loop initialization primitive received mask bit. 3087 * 3088 * EXPM_RBBC0 : 3089 * Residual BB Credit VC 0 overflow mask bit. 3090 * 3091 * EXPM_RBBC_ORUN : 3092 * RX BBCredit Overflow mask bit. 3093 * 3094 * EXPM_TLOS : 3095 * Timer based Loss of Sync interrupt, R T TOV timer mask bit. 3096 * 3097 * EXPM_SAI : 3098 * Signal Acquired interrupt mask bit. 3099 * 3100 * EXPM_LPB3X : 3101 * Series of three LPB's received mask bit. 3102 * 3103 * EXPM_LPE3X : 3104 * Series of three LPE's received mask bit. 3105 * 3106 * EXPM_EOVF : 3107 * EFIFO Overflow mask bit. 3108 * 3109 * EXPM_WUP : 3110 * WWN Updated mask bit. 3111 * 3112 * EXPM_LR : 3113 * LR link reset received mask bit. 3114 * 3115 * EXPM_LRR : 3116 * LRR link reset response mask bit. 3117 * 3118 * EXPM_OLS : 3119 * OLS Offline sequence received mask bit. 3120 * 3121 * EXPM_NOS : 3122 * NOS Not Operational Sequence received mask bit. 3123 * 3124 * EXPM_IDLE : 3125 * IDLE received mask bit. 3126 * 3127 * EXPM_LPBR : 3128 * LPB received mask bit. 3129 * 3130 * EXPM_LPER : 3131 * LPE received mask bit. 3132 * 3133 * EXPM_LD : 3134 * Link down exception mask bit. 3135 */ 3136 #define bcm84756_a0_FCM_FCMAC_EXPM_LOCALr(c) \ 3137 (0x1310006a + (BFCMAP_PORT((c)) << 12)) 3138 3139 #define bcm84756_a0_FCM_FCMAC_EXPM_LOCALr_SIZE 1 3140 3141 /* 3142 * This structure should be used to declare and program FCM_FCMAC_EXPM_LOCAL. 3143 */ 3144 typedef union bcm84756_a0_FCM_FCMAC_EXPM_LOCALr_s { 3145 buint32_t v[1]; 3146 buint32_t fcm_fcmac_expm_local[1]; 3147 buint32_t _fcm_fcmac_expm_local; 3148 } bcm84756_a0_FCM_FCMAC_EXPM_LOCALr_t; 3149 3150 #define bcm84756_a0_FCM_FCMAC_EXPM_LOCALr_CLR(r) \ 3151 (r).fcm_fcmac_expm_local[0] = 0 3152 3153 #define bcm84756_a0_FCM_FCMAC_EXPM_LOCALr_SET(r,d) \ 3154 (r).fcm_fcmac_expm_local[0] = d 3155 3156 #define bcm84756_a0_FCM_FCMAC_EXPM_LOCALr_GET(r) \ 3157 (r).fcm_fcmac_expm_local[0] 3158 3159 3160 /* 3161 * These macros can be used to access individual fields. 3162 */ 3163 #define bcm84756_a0_FCM_FCMAC_EXPM_LOCALr_EXPM_OLf_GET(c,r) \ 3164 (((r).fcm_fcmac_expm_local[0]) & 0x1) 3165 3166 #define bcm84756_a0_FCM_FCMAC_EXPM_LOCALr_EXPM_OLf_SET(c,r,f) \ 3167 (r).fcm_fcmac_expm_local[0]=(((r).fcm_fcmac_expm_local[0] & ~((buint32_t)0x1)) | \ 3168 (((buint32_t)f) & 0x1)) 3169 3170 #define bcm84756_a0_FCM_FCMAC_EXPM_LOCALr_EXPM_TFf_GET(c,r) \ 3171 ((((r).fcm_fcmac_expm_local[0]) >> 1) & 0x1) 3172 3173 #define bcm84756_a0_FCM_FCMAC_EXPM_LOCALr_EXPM_TFf_SET(c,r,f) \ 3174 (r).fcm_fcmac_expm_local[0]=(((r).fcm_fcmac_expm_local[0] & ~((buint32_t)0x1 << 1)) | \ 3175 ((((buint32_t)f) & 0x1) << 1)) 3176 3177 #define bcm84756_a0_FCM_FCMAC_EXPM_LOCALr_EXPM_LLFf_GET(c,r) \ 3178 ((((r).fcm_fcmac_expm_local[0]) >> 2) & 0x1) 3179 3180 #define bcm84756_a0_FCM_FCMAC_EXPM_LOCALr_EXPM_LLFf_SET(c,r,f) \ 3181 (r).fcm_fcmac_expm_local[0]=(((r).fcm_fcmac_expm_local[0] & ~((buint32_t)0x1 << 2)) | \ 3182 ((((buint32_t)f) & 0x1) << 2)) 3183 3184 #define bcm84756_a0_FCM_FCMAC_EXPM_LOCALr_EXPM_RLFf_GET(c,r) \ 3185 ((((r).fcm_fcmac_expm_local[0]) >> 3) & 0x1) 3186 3187 #define bcm84756_a0_FCM_FCMAC_EXPM_LOCALr_EXPM_RLFf_SET(c,r,f) \ 3188 (r).fcm_fcmac_expm_local[0]=(((r).fcm_fcmac_expm_local[0] & ~((buint32_t)0x1 << 3)) | \ 3189 ((((buint32_t)f) & 0x1) << 3)) 3190 3191 #define bcm84756_a0_FCM_FCMAC_EXPM_LOCALr_EXPM_LLRf_GET(c,r) \ 3192 ((((r).fcm_fcmac_expm_local[0]) >> 4) & 0x1) 3193 3194 #define bcm84756_a0_FCM_FCMAC_EXPM_LOCALr_EXPM_LLRf_SET(c,r,f) \ 3195 (r).fcm_fcmac_expm_local[0]=(((r).fcm_fcmac_expm_local[0] & ~((buint32_t)0x1 << 4)) | \ 3196 ((((buint32_t)f) & 0x1) << 4)) 3197 3198 #define bcm84756_a0_FCM_FCMAC_EXPM_LOCALr_EXPM_RLRf_GET(c,r) \ 3199 ((((r).fcm_fcmac_expm_local[0]) >> 5) & 0x1) 3200 3201 #define bcm84756_a0_FCM_FCMAC_EXPM_LOCALr_EXPM_RLRf_SET(c,r,f) \ 3202 (r).fcm_fcmac_expm_local[0]=(((r).fcm_fcmac_expm_local[0] & ~((buint32_t)0x1 << 5)) | \ 3203 ((((buint32_t)f) & 0x1) << 5)) 3204 3205 #define bcm84756_a0_FCM_FCMAC_EXPM_LOCALr_EXPM_NPEf_GET(c,r) \ 3206 ((((r).fcm_fcmac_expm_local[0]) >> 6) & 0x1) 3207 3208 #define bcm84756_a0_FCM_FCMAC_EXPM_LOCALr_EXPM_NPEf_SET(c,r,f) \ 3209 (r).fcm_fcmac_expm_local[0]=(((r).fcm_fcmac_expm_local[0] & ~((buint32_t)0x1 << 6)) | \ 3210 ((((buint32_t)f) & 0x1) << 6)) 3211 3212 #define bcm84756_a0_FCM_FCMAC_EXPM_LOCALr_EXPM_WCDf_GET(c,r) \ 3213 ((((r).fcm_fcmac_expm_local[0]) >> 7) & 0x1) 3214 3215 #define bcm84756_a0_FCM_FCMAC_EXPM_LOCALr_EXPM_WCDf_SET(c,r,f) \ 3216 (r).fcm_fcmac_expm_local[0]=(((r).fcm_fcmac_expm_local[0] & ~((buint32_t)0x1 << 7)) | \ 3217 ((((buint32_t)f) & 0x1) << 7)) 3218 3219 #define bcm84756_a0_FCM_FCMAC_EXPM_LOCALr_EXPM_CLSRf_GET(c,r) \ 3220 ((((r).fcm_fcmac_expm_local[0]) >> 8) & 0x1) 3221 3222 #define bcm84756_a0_FCM_FCMAC_EXPM_LOCALr_EXPM_CLSRf_SET(c,r,f) \ 3223 (r).fcm_fcmac_expm_local[0]=(((r).fcm_fcmac_expm_local[0] & ~((buint32_t)0x1 << 8)) | \ 3224 ((((buint32_t)f) & 0x1) << 8)) 3225 3226 #define bcm84756_a0_FCM_FCMAC_EXPM_LOCALr_EXPM_TXFRM_EDTOVf_GET(c,r) \ 3227 ((((r).fcm_fcmac_expm_local[0]) >> 9) & 0x1) 3228 3229 #define bcm84756_a0_FCM_FCMAC_EXPM_LOCALr_EXPM_TXFRM_EDTOVf_SET(c,r,f) \ 3230 (r).fcm_fcmac_expm_local[0]=(((r).fcm_fcmac_expm_local[0] & ~((buint32_t)0x1 << 9)) | \ 3231 ((((buint32_t)f) & 0x1) << 9)) 3232 3233 #define bcm84756_a0_FCM_FCMAC_EXPM_LOCALr_EXPM_MRKf_GET(c,r) \ 3234 ((((r).fcm_fcmac_expm_local[0]) >> 10) & 0x1) 3235 3236 #define bcm84756_a0_FCM_FCMAC_EXPM_LOCALr_EXPM_MRKf_SET(c,r,f) \ 3237 (r).fcm_fcmac_expm_local[0]=(((r).fcm_fcmac_expm_local[0] & ~((buint32_t)0x1 << 10)) | \ 3238 ((((buint32_t)f) & 0x1) << 10)) 3239 3240 #define bcm84756_a0_FCM_FCMAC_EXPM_LOCALr_EXPM_LTf_GET(c,r) \ 3241 ((((r).fcm_fcmac_expm_local[0]) >> 11) & 0x1) 3242 3243 #define bcm84756_a0_FCM_FCMAC_EXPM_LOCALr_EXPM_LTf_SET(c,r,f) \ 3244 (r).fcm_fcmac_expm_local[0]=(((r).fcm_fcmac_expm_local[0] & ~((buint32_t)0x1 << 11)) | \ 3245 ((((buint32_t)f) & 0x1) << 11)) 3246 3247 #define bcm84756_a0_FCM_FCMAC_EXPM_LOCALr_EXPM_LOFf_GET(c,r) \ 3248 ((((r).fcm_fcmac_expm_local[0]) >> 12) & 0x1) 3249 3250 #define bcm84756_a0_FCM_FCMAC_EXPM_LOCALr_EXPM_LOFf_SET(c,r,f) \ 3251 (r).fcm_fcmac_expm_local[0]=(((r).fcm_fcmac_expm_local[0] & ~((buint32_t)0x1 << 12)) | \ 3252 ((((buint32_t)f) & 0x1) << 12)) 3253 3254 #define bcm84756_a0_FCM_FCMAC_EXPM_LOCALr_EXPM_ACTIVEf_GET(c,r) \ 3255 ((((r).fcm_fcmac_expm_local[0]) >> 13) & 0x1) 3256 3257 #define bcm84756_a0_FCM_FCMAC_EXPM_LOCALr_EXPM_ACTIVEf_SET(c,r,f) \ 3258 (r).fcm_fcmac_expm_local[0]=(((r).fcm_fcmac_expm_local[0] & ~((buint32_t)0x1 << 13)) | \ 3259 ((((buint32_t)f) & 0x1) << 13)) 3260 3261 #define bcm84756_a0_FCM_FCMAC_EXPM_LOCALr_EXPM_AF0Rf_GET(c,r) \ 3262 ((((r).fcm_fcmac_expm_local[0]) >> 14) & 0x1) 3263 3264 #define bcm84756_a0_FCM_FCMAC_EXPM_LOCALr_EXPM_AF0Rf_SET(c,r,f) \ 3265 (r).fcm_fcmac_expm_local[0]=(((r).fcm_fcmac_expm_local[0] & ~((buint32_t)0x1 << 14)) | \ 3266 ((((buint32_t)f) & 0x1) << 14)) 3267 3268 #define bcm84756_a0_FCM_FCMAC_EXPM_LOCALr_EXPM_LIPRf_GET(c,r) \ 3269 ((((r).fcm_fcmac_expm_local[0]) >> 15) & 0x1) 3270 3271 #define bcm84756_a0_FCM_FCMAC_EXPM_LOCALr_EXPM_LIPRf_SET(c,r,f) \ 3272 (r).fcm_fcmac_expm_local[0]=(((r).fcm_fcmac_expm_local[0] & ~((buint32_t)0x1 << 15)) | \ 3273 ((((buint32_t)f) & 0x1) << 15)) 3274 3275 #define bcm84756_a0_FCM_FCMAC_EXPM_LOCALr_EXPM_RBBC0f_GET(c,r) \ 3276 ((((r).fcm_fcmac_expm_local[0]) >> 16) & 0x1) 3277 3278 #define bcm84756_a0_FCM_FCMAC_EXPM_LOCALr_EXPM_RBBC0f_SET(c,r,f) \ 3279 (r).fcm_fcmac_expm_local[0]=(((r).fcm_fcmac_expm_local[0] & ~((buint32_t)0x1 << 16)) | \ 3280 ((((buint32_t)f) & 0x1) << 16)) 3281 3282 #define bcm84756_a0_FCM_FCMAC_EXPM_LOCALr_EXPM_RBBC_ORUNf_GET(c,r) \ 3283 ((((r).fcm_fcmac_expm_local[0]) >> 17) & 0x1) 3284 3285 #define bcm84756_a0_FCM_FCMAC_EXPM_LOCALr_EXPM_RBBC_ORUNf_SET(c,r,f) \ 3286 (r).fcm_fcmac_expm_local[0]=(((r).fcm_fcmac_expm_local[0] & ~((buint32_t)0x1 << 17)) | \ 3287 ((((buint32_t)f) & 0x1) << 17)) 3288 3289 #define bcm84756_a0_FCM_FCMAC_EXPM_LOCALr_EXPM_TLOSf_GET(c,r) \ 3290 ((((r).fcm_fcmac_expm_local[0]) >> 18) & 0x1) 3291 3292 #define bcm84756_a0_FCM_FCMAC_EXPM_LOCALr_EXPM_TLOSf_SET(c,r,f) \ 3293 (r).fcm_fcmac_expm_local[0]=(((r).fcm_fcmac_expm_local[0] & ~((buint32_t)0x1 << 18)) | \ 3294 ((((buint32_t)f) & 0x1) << 18)) 3295 3296 #define bcm84756_a0_FCM_FCMAC_EXPM_LOCALr_EXPM_SAIf_GET(c,r) \ 3297 ((((r).fcm_fcmac_expm_local[0]) >> 19) & 0x1) 3298 3299 #define bcm84756_a0_FCM_FCMAC_EXPM_LOCALr_EXPM_SAIf_SET(c,r,f) \ 3300 (r).fcm_fcmac_expm_local[0]=(((r).fcm_fcmac_expm_local[0] & ~((buint32_t)0x1 << 19)) | \ 3301 ((((buint32_t)f) & 0x1) << 19)) 3302 3303 #define bcm84756_a0_FCM_FCMAC_EXPM_LOCALr_EXPM_LPB3Xf_GET(c,r) \ 3304 ((((r).fcm_fcmac_expm_local[0]) >> 20) & 0x1) 3305 3306 #define bcm84756_a0_FCM_FCMAC_EXPM_LOCALr_EXPM_LPB3Xf_SET(c,r,f) \ 3307 (r).fcm_fcmac_expm_local[0]=(((r).fcm_fcmac_expm_local[0] & ~((buint32_t)0x1 << 20)) | \ 3308 ((((buint32_t)f) & 0x1) << 20)) 3309 3310 #define bcm84756_a0_FCM_FCMAC_EXPM_LOCALr_EXPM_LPE3Xf_GET(c,r) \ 3311 ((((r).fcm_fcmac_expm_local[0]) >> 21) & 0x1) 3312 3313 #define bcm84756_a0_FCM_FCMAC_EXPM_LOCALr_EXPM_LPE3Xf_SET(c,r,f) \ 3314 (r).fcm_fcmac_expm_local[0]=(((r).fcm_fcmac_expm_local[0] & ~((buint32_t)0x1 << 21)) | \ 3315 ((((buint32_t)f) & 0x1) << 21)) 3316 3317 #define bcm84756_a0_FCM_FCMAC_EXPM_LOCALr_EXPM_EOVFf_GET(c,r) \ 3318 ((((r).fcm_fcmac_expm_local[0]) >> 22) & 0x1) 3319 3320 #define bcm84756_a0_FCM_FCMAC_EXPM_LOCALr_EXPM_EOVFf_SET(c,r,f) \ 3321 (r).fcm_fcmac_expm_local[0]=(((r).fcm_fcmac_expm_local[0] & ~((buint32_t)0x1 << 22)) | \ 3322 ((((buint32_t)f) & 0x1) << 22)) 3323 3324 #define bcm84756_a0_FCM_FCMAC_EXPM_LOCALr_EXPM_WUPf_GET(c,r) \ 3325 ((((r).fcm_fcmac_expm_local[0]) >> 23) & 0x1) 3326 3327 #define bcm84756_a0_FCM_FCMAC_EXPM_LOCALr_EXPM_WUPf_SET(c,r,f) \ 3328 (r).fcm_fcmac_expm_local[0]=(((r).fcm_fcmac_expm_local[0] & ~((buint32_t)0x1 << 23)) | \ 3329 ((((buint32_t)f) & 0x1) << 23)) 3330 3331 #define bcm84756_a0_FCM_FCMAC_EXPM_LOCALr_EXPM_LRf_GET(c,r) \ 3332 ((((r).fcm_fcmac_expm_local[0]) >> 24) & 0x1) 3333 3334 #define bcm84756_a0_FCM_FCMAC_EXPM_LOCALr_EXPM_LRf_SET(c,r,f) \ 3335 (r).fcm_fcmac_expm_local[0]=(((r).fcm_fcmac_expm_local[0] & ~((buint32_t)0x1 << 24)) | \ 3336 ((((buint32_t)f) & 0x1) << 24)) 3337 3338 #define bcm84756_a0_FCM_FCMAC_EXPM_LOCALr_EXPM_LRRf_GET(c,r) \ 3339 ((((r).fcm_fcmac_expm_local[0]) >> 25) & 0x1) 3340 3341 #define bcm84756_a0_FCM_FCMAC_EXPM_LOCALr_EXPM_LRRf_SET(c,r,f) \ 3342 (r).fcm_fcmac_expm_local[0]=(((r).fcm_fcmac_expm_local[0] & ~((buint32_t)0x1 << 25)) | \ 3343 ((((buint32_t)f) & 0x1) << 25)) 3344 3345 #define bcm84756_a0_FCM_FCMAC_EXPM_LOCALr_EXPM_OLSf_GET(c,r) \ 3346 ((((r).fcm_fcmac_expm_local[0]) >> 26) & 0x1) 3347 3348 #define bcm84756_a0_FCM_FCMAC_EXPM_LOCALr_EXPM_OLSf_SET(c,r,f) \ 3349 (r).fcm_fcmac_expm_local[0]=(((r).fcm_fcmac_expm_local[0] & ~((buint32_t)0x1 << 26)) | \ 3350 ((((buint32_t)f) & 0x1) << 26)) 3351 3352 #define bcm84756_a0_FCM_FCMAC_EXPM_LOCALr_EXPM_NOSf_GET(c,r) \ 3353 ((((r).fcm_fcmac_expm_local[0]) >> 27) & 0x1) 3354 3355 #define bcm84756_a0_FCM_FCMAC_EXPM_LOCALr_EXPM_NOSf_SET(c,r,f) \ 3356 (r).fcm_fcmac_expm_local[0]=(((r).fcm_fcmac_expm_local[0] & ~((buint32_t)0x1 << 27)) | \ 3357 ((((buint32_t)f) & 0x1) << 27)) 3358 3359 #define bcm84756_a0_FCM_FCMAC_EXPM_LOCALr_EXPM_IDLEf_GET(c,r) \ 3360 ((((r).fcm_fcmac_expm_local[0]) >> 28) & 0x1) 3361 3362 #define bcm84756_a0_FCM_FCMAC_EXPM_LOCALr_EXPM_IDLEf_SET(c,r,f) \ 3363 (r).fcm_fcmac_expm_local[0]=(((r).fcm_fcmac_expm_local[0] & ~((buint32_t)0x1 << 28)) | \ 3364 ((((buint32_t)f) & 0x1) << 28)) 3365 3366 #define bcm84756_a0_FCM_FCMAC_EXPM_LOCALr_EXPM_LPBRf_GET(c,r) \ 3367 ((((r).fcm_fcmac_expm_local[0]) >> 29) & 0x1) 3368 3369 #define bcm84756_a0_FCM_FCMAC_EXPM_LOCALr_EXPM_LPBRf_SET(c,r,f) \ 3370 (r).fcm_fcmac_expm_local[0]=(((r).fcm_fcmac_expm_local[0] & ~((buint32_t)0x1 << 29)) | \ 3371 ((((buint32_t)f) & 0x1) << 29)) 3372 3373 #define bcm84756_a0_FCM_FCMAC_EXPM_LOCALr_EXPM_LPERf_GET(c,r) \ 3374 ((((r).fcm_fcmac_expm_local[0]) >> 30) & 0x1) 3375 3376 #define bcm84756_a0_FCM_FCMAC_EXPM_LOCALr_EXPM_LPERf_SET(c,r,f) \ 3377 (r).fcm_fcmac_expm_local[0]=(((r).fcm_fcmac_expm_local[0] & ~((buint32_t)0x1 << 30)) | \ 3378 ((((buint32_t)f) & 0x1) << 30)) 3379 3380 #define bcm84756_a0_FCM_FCMAC_EXPM_LOCALr_EXPM_LDf_GET(c,r) \ 3381 ((((r).fcm_fcmac_expm_local[0]) >> 31) & 0x1) 3382 3383 #define bcm84756_a0_FCM_FCMAC_EXPM_LOCALr_EXPM_LDf_SET(c,r,f) \ 3384 (r).fcm_fcmac_expm_local[0]=(((r).fcm_fcmac_expm_local[0] & ~((buint32_t)0x1 << 31)) | \ 3385 ((((buint32_t)f) & 0x1) << 31)) 3386 3387 3388 /* 3389 * These macros can be used to access FCM_FCMAC_EXPM_LOCAL. 3390 */ 3391 #define bcm84756_a0_READ_FCM_FCMAC_EXPM_LOCALr(c,r) \ 3392 BFCMAP_REG32_READ((c),bcm84756_a0_FCM_FCMAC_EXPM_LOCALr((c)),&((r)._fcm_fcmac_expm_local)) 3393 3394 #define bcm84756_a0_WRITE_FCM_FCMAC_EXPM_LOCALr(c,r) \ 3395 BFCMAP_REG32_WRITE((c),bcm84756_a0_FCM_FCMAC_EXPM_LOCALr((c)),&((r)._fcm_fcmac_expm_local)) 3396 3397 /******************************************************************************* 3398 * End of 'bcm84756_a0_FCM_FCMAC_EXPM_LOCALr' 3399 */ 3400 3401 3402 3403 3404 /******************************************************************************* 3405 * CHIP: bcm84756_a0 3406 * REGISTER: FCM_FCMAC_FCFG 3407 * BLOCKS: SECPORT 3408 * DESCRIPTION : 3409 * ADDR FCFG 7'h1B // Force configuration reg R/W. 3410 * 3411 * SIZE: 32 3412 * 3413 * FIELDS DESCRIPTION: 3414 * CFG_FORCE_AC : 3415 * text. 3416 * 3417 * CFG_FORCE_LR1 : 3418 * text. 3419 * 3420 * CFG_FORCE_LR2 : 3421 * text. 3422 * 3423 * CFG_FORCE_LR3 : 3424 * text. 3425 * 3426 * CFG_FORCE_LF1 : 3427 * text. 3428 * 3429 * CFG_FORCE_LF2 : 3430 * text. 3431 * 3432 * CFG_FORCE_OL3 : 3433 * text. 3434 * 3435 * CFG_FORCE_OL2 : 3436 * text. 3437 * 3438 * CFG_FORCE_OL1D : 3439 * text. 3440 * 3441 * CFG_FORCE_OL1C : 3442 * text. 3443 * 3444 * CFG_FORCE_MON : 3445 * text. 3446 * 3447 * CFG_FORCE_ARB : 3448 * text. 3449 * 3450 * CFG_FORCE_ARBW : 3451 * text. 3452 * 3453 * CFG_FORCE_OPEN : 3454 * text. 3455 * 3456 * CFG_FORCE_OPND : 3457 * text. 3458 * 3459 * CFG_FORCE_XCLS : 3460 * text. 3461 * 3462 * CFG_FORCE_RCLS : 3463 * text. 3464 * 3465 * CFG_FORCE_XFER : 3466 * text. 3467 * 3468 * CFG_FORCE_INIT : 3469 * text. 3470 * 3471 * CFG_FORCE_OINI : 3472 * text. 3473 * 3474 * CFG_FORCE_OLDP : 3475 * text. 3476 * 3477 * CFG_FORCE_POI : 3478 * text. 3479 * 3480 * CFG_FORCE_OINI_CLS : 3481 * text. 3482 * 3483 * CFG_FORCE_RELS : 3484 * Force Configuration Release control bit. SET this bit will make all FRC 3485 * CFG ST [22:0] bits to 0 and CLEAR all the force requests. It will clear 3486 * the force after the state is entered and the State Machine continues 3487 * with the normal processing. 3488 */ 3489 #define bcm84756_a0_FCM_FCMAC_FCFGr(c) \ 3490 (0x13100080 + (BFCMAP_PORT((c)) << 12)) 3491 3492 #define bcm84756_a0_FCM_FCMAC_FCFGr_SIZE 1 3493 3494 /* 3495 * This structure should be used to declare and program FCM_FCMAC_FCFG. 3496 */ 3497 typedef union bcm84756_a0_FCM_FCMAC_FCFGr_s { 3498 buint32_t v[1]; 3499 buint32_t fcm_fcmac_fcfg[1]; 3500 buint32_t _fcm_fcmac_fcfg; 3501 } bcm84756_a0_FCM_FCMAC_FCFGr_t; 3502 3503 #define bcm84756_a0_FCM_FCMAC_FCFGr_CLR(r) \ 3504 (r).fcm_fcmac_fcfg[0] = 0 3505 3506 #define bcm84756_a0_FCM_FCMAC_FCFGr_SET(r,d) \ 3507 (r).fcm_fcmac_fcfg[0] = d 3508 3509 #define bcm84756_a0_FCM_FCMAC_FCFGr_GET(r) \ 3510 (r).fcm_fcmac_fcfg[0] 3511 3512 3513 /* 3514 * These macros can be used to access individual fields. 3515 */ 3516 #define bcm84756_a0_FCM_FCMAC_FCFGr_CFG_FORCE_ACf_GET(c,r) \ 3517 (((r).fcm_fcmac_fcfg[0]) & 0x1) 3518 3519 #define bcm84756_a0_FCM_FCMAC_FCFGr_CFG_FORCE_ACf_SET(c,r,f) \ 3520 (r).fcm_fcmac_fcfg[0]=(((r).fcm_fcmac_fcfg[0] & ~((buint32_t)0x1)) | \ 3521 (((buint32_t)f) & 0x1)) 3522 3523 #define bcm84756_a0_FCM_FCMAC_FCFGr_CFG_FORCE_LR1f_GET(c,r) \ 3524 ((((r).fcm_fcmac_fcfg[0]) >> 1) & 0x1) 3525 3526 #define bcm84756_a0_FCM_FCMAC_FCFGr_CFG_FORCE_LR1f_SET(c,r,f) \ 3527 (r).fcm_fcmac_fcfg[0]=(((r).fcm_fcmac_fcfg[0] & ~((buint32_t)0x1 << 1)) | \ 3528 ((((buint32_t)f) & 0x1) << 1)) 3529 3530 #define bcm84756_a0_FCM_FCMAC_FCFGr_CFG_FORCE_LR2f_GET(c,r) \ 3531 ((((r).fcm_fcmac_fcfg[0]) >> 2) & 0x1) 3532 3533 #define bcm84756_a0_FCM_FCMAC_FCFGr_CFG_FORCE_LR2f_SET(c,r,f) \ 3534 (r).fcm_fcmac_fcfg[0]=(((r).fcm_fcmac_fcfg[0] & ~((buint32_t)0x1 << 2)) | \ 3535 ((((buint32_t)f) & 0x1) << 2)) 3536 3537 #define bcm84756_a0_FCM_FCMAC_FCFGr_CFG_FORCE_LR3f_GET(c,r) \ 3538 ((((r).fcm_fcmac_fcfg[0]) >> 3) & 0x1) 3539 3540 #define bcm84756_a0_FCM_FCMAC_FCFGr_CFG_FORCE_LR3f_SET(c,r,f) \ 3541 (r).fcm_fcmac_fcfg[0]=(((r).fcm_fcmac_fcfg[0] & ~((buint32_t)0x1 << 3)) | \ 3542 ((((buint32_t)f) & 0x1) << 3)) 3543 3544 #define bcm84756_a0_FCM_FCMAC_FCFGr_CFG_FORCE_LF1f_GET(c,r) \ 3545 ((((r).fcm_fcmac_fcfg[0]) >> 4) & 0x1) 3546 3547 #define bcm84756_a0_FCM_FCMAC_FCFGr_CFG_FORCE_LF1f_SET(c,r,f) \ 3548 (r).fcm_fcmac_fcfg[0]=(((r).fcm_fcmac_fcfg[0] & ~((buint32_t)0x1 << 4)) | \ 3549 ((((buint32_t)f) & 0x1) << 4)) 3550 3551 #define bcm84756_a0_FCM_FCMAC_FCFGr_CFG_FORCE_LF2f_GET(c,r) \ 3552 ((((r).fcm_fcmac_fcfg[0]) >> 5) & 0x1) 3553 3554 #define bcm84756_a0_FCM_FCMAC_FCFGr_CFG_FORCE_LF2f_SET(c,r,f) \ 3555 (r).fcm_fcmac_fcfg[0]=(((r).fcm_fcmac_fcfg[0] & ~((buint32_t)0x1 << 5)) | \ 3556 ((((buint32_t)f) & 0x1) << 5)) 3557 3558 #define bcm84756_a0_FCM_FCMAC_FCFGr_CFG_FORCE_OL3f_GET(c,r) \ 3559 ((((r).fcm_fcmac_fcfg[0]) >> 6) & 0x1) 3560 3561 #define bcm84756_a0_FCM_FCMAC_FCFGr_CFG_FORCE_OL3f_SET(c,r,f) \ 3562 (r).fcm_fcmac_fcfg[0]=(((r).fcm_fcmac_fcfg[0] & ~((buint32_t)0x1 << 6)) | \ 3563 ((((buint32_t)f) & 0x1) << 6)) 3564 3565 #define bcm84756_a0_FCM_FCMAC_FCFGr_CFG_FORCE_OL2f_GET(c,r) \ 3566 ((((r).fcm_fcmac_fcfg[0]) >> 7) & 0x1) 3567 3568 #define bcm84756_a0_FCM_FCMAC_FCFGr_CFG_FORCE_OL2f_SET(c,r,f) \ 3569 (r).fcm_fcmac_fcfg[0]=(((r).fcm_fcmac_fcfg[0] & ~((buint32_t)0x1 << 7)) | \ 3570 ((((buint32_t)f) & 0x1) << 7)) 3571 3572 #define bcm84756_a0_FCM_FCMAC_FCFGr_CFG_FORCE_OL1Df_GET(c,r) \ 3573 ((((r).fcm_fcmac_fcfg[0]) >> 8) & 0x1) 3574 3575 #define bcm84756_a0_FCM_FCMAC_FCFGr_CFG_FORCE_OL1Df_SET(c,r,f) \ 3576 (r).fcm_fcmac_fcfg[0]=(((r).fcm_fcmac_fcfg[0] & ~((buint32_t)0x1 << 8)) | \ 3577 ((((buint32_t)f) & 0x1) << 8)) 3578 3579 #define bcm84756_a0_FCM_FCMAC_FCFGr_CFG_FORCE_OL1Cf_GET(c,r) \ 3580 ((((r).fcm_fcmac_fcfg[0]) >> 9) & 0x1) 3581 3582 #define bcm84756_a0_FCM_FCMAC_FCFGr_CFG_FORCE_OL1Cf_SET(c,r,f) \ 3583 (r).fcm_fcmac_fcfg[0]=(((r).fcm_fcmac_fcfg[0] & ~((buint32_t)0x1 << 9)) | \ 3584 ((((buint32_t)f) & 0x1) << 9)) 3585 3586 #define bcm84756_a0_FCM_FCMAC_FCFGr_CFG_FORCE_MONf_GET(c,r) \ 3587 ((((r).fcm_fcmac_fcfg[0]) >> 10) & 0x1) 3588 3589 #define bcm84756_a0_FCM_FCMAC_FCFGr_CFG_FORCE_MONf_SET(c,r,f) \ 3590 (r).fcm_fcmac_fcfg[0]=(((r).fcm_fcmac_fcfg[0] & ~((buint32_t)0x1 << 10)) | \ 3591 ((((buint32_t)f) & 0x1) << 10)) 3592 3593 #define bcm84756_a0_FCM_FCMAC_FCFGr_CFG_FORCE_ARBf_GET(c,r) \ 3594 ((((r).fcm_fcmac_fcfg[0]) >> 11) & 0x1) 3595 3596 #define bcm84756_a0_FCM_FCMAC_FCFGr_CFG_FORCE_ARBf_SET(c,r,f) \ 3597 (r).fcm_fcmac_fcfg[0]=(((r).fcm_fcmac_fcfg[0] & ~((buint32_t)0x1 << 11)) | \ 3598 ((((buint32_t)f) & 0x1) << 11)) 3599 3600 #define bcm84756_a0_FCM_FCMAC_FCFGr_CFG_FORCE_ARBWf_GET(c,r) \ 3601 ((((r).fcm_fcmac_fcfg[0]) >> 12) & 0x1) 3602 3603 #define bcm84756_a0_FCM_FCMAC_FCFGr_CFG_FORCE_ARBWf_SET(c,r,f) \ 3604 (r).fcm_fcmac_fcfg[0]=(((r).fcm_fcmac_fcfg[0] & ~((buint32_t)0x1 << 12)) | \ 3605 ((((buint32_t)f) & 0x1) << 12)) 3606 3607 #define bcm84756_a0_FCM_FCMAC_FCFGr_CFG_FORCE_OPENf_GET(c,r) \ 3608 ((((r).fcm_fcmac_fcfg[0]) >> 13) & 0x1) 3609 3610 #define bcm84756_a0_FCM_FCMAC_FCFGr_CFG_FORCE_OPENf_SET(c,r,f) \ 3611 (r).fcm_fcmac_fcfg[0]=(((r).fcm_fcmac_fcfg[0] & ~((buint32_t)0x1 << 13)) | \ 3612 ((((buint32_t)f) & 0x1) << 13)) 3613 3614 #define bcm84756_a0_FCM_FCMAC_FCFGr_CFG_FORCE_OPNDf_GET(c,r) \ 3615 ((((r).fcm_fcmac_fcfg[0]) >> 14) & 0x1) 3616 3617 #define bcm84756_a0_FCM_FCMAC_FCFGr_CFG_FORCE_OPNDf_SET(c,r,f) \ 3618 (r).fcm_fcmac_fcfg[0]=(((r).fcm_fcmac_fcfg[0] & ~((buint32_t)0x1 << 14)) | \ 3619 ((((buint32_t)f) & 0x1) << 14)) 3620 3621 #define bcm84756_a0_FCM_FCMAC_FCFGr_CFG_FORCE_XCLSf_GET(c,r) \ 3622 ((((r).fcm_fcmac_fcfg[0]) >> 15) & 0x1) 3623 3624 #define bcm84756_a0_FCM_FCMAC_FCFGr_CFG_FORCE_XCLSf_SET(c,r,f) \ 3625 (r).fcm_fcmac_fcfg[0]=(((r).fcm_fcmac_fcfg[0] & ~((buint32_t)0x1 << 15)) | \ 3626 ((((buint32_t)f) & 0x1) << 15)) 3627 3628 #define bcm84756_a0_FCM_FCMAC_FCFGr_CFG_FORCE_RCLSf_GET(c,r) \ 3629 ((((r).fcm_fcmac_fcfg[0]) >> 16) & 0x1) 3630 3631 #define bcm84756_a0_FCM_FCMAC_FCFGr_CFG_FORCE_RCLSf_SET(c,r,f) \ 3632 (r).fcm_fcmac_fcfg[0]=(((r).fcm_fcmac_fcfg[0] & ~((buint32_t)0x1 << 16)) | \ 3633 ((((buint32_t)f) & 0x1) << 16)) 3634 3635 #define bcm84756_a0_FCM_FCMAC_FCFGr_CFG_FORCE_XFERf_GET(c,r) \ 3636 ((((r).fcm_fcmac_fcfg[0]) >> 17) & 0x1) 3637 3638 #define bcm84756_a0_FCM_FCMAC_FCFGr_CFG_FORCE_XFERf_SET(c,r,f) \ 3639 (r).fcm_fcmac_fcfg[0]=(((r).fcm_fcmac_fcfg[0] & ~((buint32_t)0x1 << 17)) | \ 3640 ((((buint32_t)f) & 0x1) << 17)) 3641 3642 #define bcm84756_a0_FCM_FCMAC_FCFGr_CFG_FORCE_INITf_GET(c,r) \ 3643 ((((r).fcm_fcmac_fcfg[0]) >> 18) & 0x1) 3644 3645 #define bcm84756_a0_FCM_FCMAC_FCFGr_CFG_FORCE_INITf_SET(c,r,f) \ 3646 (r).fcm_fcmac_fcfg[0]=(((r).fcm_fcmac_fcfg[0] & ~((buint32_t)0x1 << 18)) | \ 3647 ((((buint32_t)f) & 0x1) << 18)) 3648 3649 #define bcm84756_a0_FCM_FCMAC_FCFGr_CFG_FORCE_OINIf_GET(c,r) \ 3650 ((((r).fcm_fcmac_fcfg[0]) >> 19) & 0x1) 3651 3652 #define bcm84756_a0_FCM_FCMAC_FCFGr_CFG_FORCE_OINIf_SET(c,r,f) \ 3653 (r).fcm_fcmac_fcfg[0]=(((r).fcm_fcmac_fcfg[0] & ~((buint32_t)0x1 << 19)) | \ 3654 ((((buint32_t)f) & 0x1) << 19)) 3655 3656 #define bcm84756_a0_FCM_FCMAC_FCFGr_CFG_FORCE_OLDPf_GET(c,r) \ 3657 ((((r).fcm_fcmac_fcfg[0]) >> 20) & 0x1) 3658 3659 #define bcm84756_a0_FCM_FCMAC_FCFGr_CFG_FORCE_OLDPf_SET(c,r,f) \ 3660 (r).fcm_fcmac_fcfg[0]=(((r).fcm_fcmac_fcfg[0] & ~((buint32_t)0x1 << 20)) | \ 3661 ((((buint32_t)f) & 0x1) << 20)) 3662 3663 #define bcm84756_a0_FCM_FCMAC_FCFGr_CFG_FORCE_POIf_GET(c,r) \ 3664 ((((r).fcm_fcmac_fcfg[0]) >> 21) & 0x1) 3665 3666 #define bcm84756_a0_FCM_FCMAC_FCFGr_CFG_FORCE_POIf_SET(c,r,f) \ 3667 (r).fcm_fcmac_fcfg[0]=(((r).fcm_fcmac_fcfg[0] & ~((buint32_t)0x1 << 21)) | \ 3668 ((((buint32_t)f) & 0x1) << 21)) 3669 3670 #define bcm84756_a0_FCM_FCMAC_FCFGr_CFG_FORCE_OINI_CLSf_GET(c,r) \ 3671 ((((r).fcm_fcmac_fcfg[0]) >> 22) & 0x1) 3672 3673 #define bcm84756_a0_FCM_FCMAC_FCFGr_CFG_FORCE_OINI_CLSf_SET(c,r,f) \ 3674 (r).fcm_fcmac_fcfg[0]=(((r).fcm_fcmac_fcfg[0] & ~((buint32_t)0x1 << 22)) | \ 3675 ((((buint32_t)f) & 0x1) << 22)) 3676 3677 #define bcm84756_a0_FCM_FCMAC_FCFGr_CFG_FORCE_RELSf_GET(c,r) \ 3678 ((((r).fcm_fcmac_fcfg[0]) >> 23) & 0x1) 3679 3680 #define bcm84756_a0_FCM_FCMAC_FCFGr_CFG_FORCE_RELSf_SET(c,r,f) \ 3681 (r).fcm_fcmac_fcfg[0]=(((r).fcm_fcmac_fcfg[0] & ~((buint32_t)0x1 << 23)) | \ 3682 ((((buint32_t)f) & 0x1) << 23)) 3683 3684 3685 /* 3686 * These macros can be used to access FCM_FCMAC_FCFG. 3687 */ 3688 #define bcm84756_a0_READ_FCM_FCMAC_FCFGr(c,r) \ 3689 BFCMAP_REG32_READ((c),bcm84756_a0_FCM_FCMAC_FCFGr((c)),&((r)._fcm_fcmac_fcfg)) 3690 3691 #define bcm84756_a0_WRITE_FCM_FCMAC_FCFGr(c,r) \ 3692 BFCMAP_REG32_WRITE((c),bcm84756_a0_FCM_FCMAC_FCFGr((c)),&((r)._fcm_fcmac_fcfg)) 3693 3694 /******************************************************************************* 3695 * End of 'bcm84756_a0_FCM_FCMAC_FCFGr' 3696 */ 3697 3698 3699 3700 3701 /******************************************************************************* 3702 * CHIP: bcm84756_a0 3703 * REGISTER: FCM_FCMAC_FRXB0 3704 * BLOCKS: SECPORT 3705 * DESCRIPTION : 3706 * ADDR FRXB0 7'h07 // Free RX Buffer Counter reg R/W. 3707 * 3708 * SIZE: 32 3709 * 3710 * FIELDS DESCRIPTION: 3711 * FRXB_FREE_RXB_CNT : 3712 * Free receiver buffer count. NOTE : The programmed values of FRXB FREE 3713 * RXB CNT and FCM FCMAC MAXFRMLEN CONFIG must be consistent with each 3714 * other, and must also be consistent with the hard-coded size of the RX 3715 * Frame Buffer (0x2000 32-bit words). As a guideline : Program the FRXB 3716 * FREE RXB CNT = 0x2000 / FCM FCMAC MAXFRMLEN CONFIG; i.e. with FCM FCMAC 3717 * MAXFRMLEN CONFIG programmed to (default) 0x217, FRXB FREE RXB CNT 3718 * should be programmed to (default) 0xf. This field should be loaded with 3719 * the maximum number of available receive buffers This value is 3720 * incremented and decremented as frames arrive at the ingress pipeline, 3721 * and as buffers are made available as calculated by the BB Credit shim. 3722 * 3723 * FRXB_R_RDY_TX_PEND_CNT : 3724 * RRDY transmit pending count. Displays the contents of the R RDY 3725 * Transmit Pending Counter. If the value of R RDY Tx CNT is greater than 3726 * zero then an R RDY Primitive Signal should be transmitted. The counter 3727 * is incremented once for each occurrence of the CREDIT# input signal 3728 * being detected asserted. It is decremented whenever an R RDY is 3729 * transmitted. 3730 */ 3731 #define bcm84756_a0_FCM_FCMAC_FRXB0r(c) \ 3732 (0x1310006c + (BFCMAP_PORT((c)) << 12)) 3733 3734 #define bcm84756_a0_FCM_FCMAC_FRXB0r_SIZE 1 3735 3736 /* 3737 * This structure should be used to declare and program FCM_FCMAC_FRXB0. 3738 */ 3739 typedef union bcm84756_a0_FCM_FCMAC_FRXB0r_s { 3740 buint32_t v[1]; 3741 buint32_t fcm_fcmac_frxb0[1]; 3742 buint32_t _fcm_fcmac_frxb0; 3743 } bcm84756_a0_FCM_FCMAC_FRXB0r_t; 3744 3745 #define bcm84756_a0_FCM_FCMAC_FRXB0r_CLR(r) \ 3746 (r).fcm_fcmac_frxb0[0] = 0 3747 3748 #define bcm84756_a0_FCM_FCMAC_FRXB0r_SET(r,d) \ 3749 (r).fcm_fcmac_frxb0[0] = d 3750 3751 #define bcm84756_a0_FCM_FCMAC_FRXB0r_GET(r) \ 3752 (r).fcm_fcmac_frxb0[0] 3753 3754 3755 /* 3756 * These macros can be used to access individual fields. 3757 */ 3758 #define bcm84756_a0_FCM_FCMAC_FRXB0r_FRXB_FREE_RXB_CNTf_GET(c,r) \ 3759 (((r).fcm_fcmac_frxb0[0]) & 0x1f) 3760 3761 #define bcm84756_a0_FCM_FCMAC_FRXB0r_FRXB_FREE_RXB_CNTf_SET(c,r,f) \ 3762 (r).fcm_fcmac_frxb0[0]=(((r).fcm_fcmac_frxb0[0] & ~((buint32_t)0x1f)) | \ 3763 (((buint32_t)f) & 0x1f)) 3764 3765 #define bcm84756_a0_FCM_FCMAC_FRXB0r_FRXB_R_RDY_TX_PEND_CNTf_GET(c,r) \ 3766 ((((r).fcm_fcmac_frxb0[0]) >> 5) & 0x1f) 3767 3768 #define bcm84756_a0_FCM_FCMAC_FRXB0r_FRXB_R_RDY_TX_PEND_CNTf_SET(c,r,f) \ 3769 (r).fcm_fcmac_frxb0[0]=(((r).fcm_fcmac_frxb0[0] & ~((buint32_t)0x1f << 5)) | \ 3770 ((((buint32_t)f) & 0x1f) << 5)) 3771 3772 3773 /* 3774 * These macros can be used to access FCM_FCMAC_FRXB0. 3775 */ 3776 #define bcm84756_a0_READ_FCM_FCMAC_FRXB0r(c,r) \ 3777 BFCMAP_REG32_READ((c),bcm84756_a0_FCM_FCMAC_FRXB0r((c)),&((r)._fcm_fcmac_frxb0)) 3778 3779 #define bcm84756_a0_WRITE_FCM_FCMAC_FRXB0r(c,r) \ 3780 BFCMAP_REG32_WRITE((c),bcm84756_a0_FCM_FCMAC_FRXB0r((c)),&((r)._fcm_fcmac_frxb0)) 3781 3782 /******************************************************************************* 3783 * End of 'bcm84756_a0_FCM_FCMAC_FRXB0r' 3784 */ 3785 3786 3787 3788 3789 /******************************************************************************* 3790 * CHIP: bcm84756_a0 3791 * REGISTER: FCM_FCMAC_FRXB1 3792 * BLOCKS: SECPORT 3793 * DESCRIPTION : 3794 * Unused. 3795 * 3796 * SIZE: 32 3797 * 3798 * FIELDS DESCRIPTION: 3799 * FRXB_FREE_RXB_CNT : 3800 * Free receiver buffer count. 3801 * 3802 * FRXB_R_RDY_TX_PEND_CNT : 3803 * RRDY transmit pending count. 3804 */ 3805 #define bcm84756_a0_FCM_FCMAC_FRXB1r(c) \ 3806 (0x1310007f + (BFCMAP_PORT((c)) << 12)) 3807 3808 #define bcm84756_a0_FCM_FCMAC_FRXB1r_SIZE 1 3809 3810 /* 3811 * This structure should be used to declare and program FCM_FCMAC_FRXB1. 3812 */ 3813 typedef union bcm84756_a0_FCM_FCMAC_FRXB1r_s { 3814 buint32_t v[1]; 3815 buint32_t fcm_fcmac_frxb1[1]; 3816 buint32_t _fcm_fcmac_frxb1; 3817 } bcm84756_a0_FCM_FCMAC_FRXB1r_t; 3818 3819 #define bcm84756_a0_FCM_FCMAC_FRXB1r_CLR(r) \ 3820 (r).fcm_fcmac_frxb1[0] = 0 3821 3822 #define bcm84756_a0_FCM_FCMAC_FRXB1r_SET(r,d) \ 3823 (r).fcm_fcmac_frxb1[0] = d 3824 3825 #define bcm84756_a0_FCM_FCMAC_FRXB1r_GET(r) \ 3826 (r).fcm_fcmac_frxb1[0] 3827 3828 3829 /* 3830 * These macros can be used to access individual fields. 3831 */ 3832 #define bcm84756_a0_FCM_FCMAC_FRXB1r_FRXB_FREE_RXB_CNTf_GET(c,r) \ 3833 (((r).fcm_fcmac_frxb1[0]) & 0x1f) 3834 3835 #define bcm84756_a0_FCM_FCMAC_FRXB1r_FRXB_FREE_RXB_CNTf_SET(c,r,f) \ 3836 (r).fcm_fcmac_frxb1[0]=(((r).fcm_fcmac_frxb1[0] & ~((buint32_t)0x1f)) | \ 3837 (((buint32_t)f) & 0x1f)) 3838 3839 #define bcm84756_a0_FCM_FCMAC_FRXB1r_FRXB_R_RDY_TX_PEND_CNTf_GET(c,r) \ 3840 ((((r).fcm_fcmac_frxb1[0]) >> 5) & 0x1f) 3841 3842 #define bcm84756_a0_FCM_FCMAC_FRXB1r_FRXB_R_RDY_TX_PEND_CNTf_SET(c,r,f) \ 3843 (r).fcm_fcmac_frxb1[0]=(((r).fcm_fcmac_frxb1[0] & ~((buint32_t)0x1f << 5)) | \ 3844 ((((buint32_t)f) & 0x1f) << 5)) 3845 3846 3847 /* 3848 * These macros can be used to access FCM_FCMAC_FRXB1. 3849 */ 3850 #define bcm84756_a0_READ_FCM_FCMAC_FRXB1r(c,r) \ 3851 BFCMAP_REG32_READ((c),bcm84756_a0_FCM_FCMAC_FRXB1r((c)),&((r)._fcm_fcmac_frxb1)) 3852 3853 #define bcm84756_a0_WRITE_FCM_FCMAC_FRXB1r(c,r) \ 3854 BFCMAP_REG32_WRITE((c),bcm84756_a0_FCM_FCMAC_FRXB1r((c)),&((r)._fcm_fcmac_frxb1)) 3855 3856 /******************************************************************************* 3857 * End of 'bcm84756_a0_FCM_FCMAC_FRXB1r' 3858 */ 3859 3860 3861 3862 3863 /******************************************************************************* 3864 * CHIP: bcm84756_a0 3865 * REGISTER: FCM_FCMAC_LPCM 3866 * BLOCKS: SECPORT 3867 * DESCRIPTION : 3868 * Loop Port State Register. Reserved for diagnostics only. 3869 * 3870 * SIZE: 32 3871 * 3872 * FIELDS DESCRIPTION: 3873 * LPCM_LPRQ : 3874 * L port request. 3875 * 3876 * LPCM_CBLF : 3877 * Clear Blocking LISM frame. 3878 * 3879 * LPCM_LPST : 3880 * Loop port LPSM state. 3881 */ 3882 #define bcm84756_a0_FCM_FCMAC_LPCMr(c) \ 3883 (0x13100066 + (BFCMAP_PORT((c)) << 12)) 3884 3885 #define bcm84756_a0_FCM_FCMAC_LPCMr_SIZE 1 3886 3887 /* 3888 * This structure should be used to declare and program FCM_FCMAC_LPCM. 3889 */ 3890 typedef union bcm84756_a0_FCM_FCMAC_LPCMr_s { 3891 buint32_t v[1]; 3892 buint32_t fcm_fcmac_lpcm[1]; 3893 buint32_t _fcm_fcmac_lpcm; 3894 } bcm84756_a0_FCM_FCMAC_LPCMr_t; 3895 3896 #define bcm84756_a0_FCM_FCMAC_LPCMr_CLR(r) \ 3897 (r).fcm_fcmac_lpcm[0] = 0 3898 3899 #define bcm84756_a0_FCM_FCMAC_LPCMr_SET(r,d) \ 3900 (r).fcm_fcmac_lpcm[0] = d 3901 3902 #define bcm84756_a0_FCM_FCMAC_LPCMr_GET(r) \ 3903 (r).fcm_fcmac_lpcm[0] 3904 3905 3906 /* 3907 * These macros can be used to access individual fields. 3908 */ 3909 #define bcm84756_a0_FCM_FCMAC_LPCMr_LPCM_LPRQf_GET(c,r) \ 3910 (((r).fcm_fcmac_lpcm[0]) & 0x1f) 3911 3912 #define bcm84756_a0_FCM_FCMAC_LPCMr_LPCM_LPRQf_SET(c,r,f) \ 3913 (r).fcm_fcmac_lpcm[0]=(((r).fcm_fcmac_lpcm[0] & ~((buint32_t)0x1f)) | \ 3914 (((buint32_t)f) & 0x1f)) 3915 3916 #define bcm84756_a0_FCM_FCMAC_LPCMr_LPCM_CBLFf_GET(c,r) \ 3917 ((((r).fcm_fcmac_lpcm[0]) >> 5) & 0x1) 3918 3919 #define bcm84756_a0_FCM_FCMAC_LPCMr_LPCM_CBLFf_SET(c,r,f) \ 3920 (r).fcm_fcmac_lpcm[0]=(((r).fcm_fcmac_lpcm[0] & ~((buint32_t)0x1 << 5)) | \ 3921 ((((buint32_t)f) & 0x1) << 5)) 3922 3923 #define bcm84756_a0_FCM_FCMAC_LPCMr_LPCM_LPSTf_GET(c,r) \ 3924 ((((r).fcm_fcmac_lpcm[0]) >> 8) & 0x1f) 3925 3926 #define bcm84756_a0_FCM_FCMAC_LPCMr_LPCM_LPSTf_SET(c,r,f) \ 3927 (r).fcm_fcmac_lpcm[0]=(((r).fcm_fcmac_lpcm[0] & ~((buint32_t)0x1f << 8)) | \ 3928 ((((buint32_t)f) & 0x1f) << 8)) 3929 3930 3931 /* 3932 * These macros can be used to access FCM_FCMAC_LPCM. 3933 */ 3934 #define bcm84756_a0_READ_FCM_FCMAC_LPCMr(c,r) \ 3935 BFCMAP_REG32_READ((c),bcm84756_a0_FCM_FCMAC_LPCMr((c)),&((r)._fcm_fcmac_lpcm)) 3936 3937 #define bcm84756_a0_WRITE_FCM_FCMAC_LPCMr(c,r) \ 3938 BFCMAP_REG32_WRITE((c),bcm84756_a0_FCM_FCMAC_LPCMr((c)),&((r)._fcm_fcmac_lpcm)) 3939 3940 /******************************************************************************* 3941 * End of 'bcm84756_a0_FCM_FCMAC_LPCMr' 3942 */ 3943 3944 3945 3946 3947 /******************************************************************************* 3948 * CHIP: bcm84756_a0 3949 * REGISTER: FCM_FCMAC_LPSM_CFW 3950 * BLOCKS: SECPORT 3951 * DESCRIPTION : 3952 * ADDR LPSM CFW 7'h1E // FC-AL CFW Debug Register. 3953 * 3954 * SIZE: 32 3955 * 3956 * FIELDS DESCRIPTION: 3957 * CFW : 3958 * On write, loads the cfw data register to modify the CFW. Read returns 3959 * current cfw data register content. 3960 */ 3961 #define bcm84756_a0_FCM_FCMAC_LPSM_CFWr(c) \ 3962 (0x13100083 + (BFCMAP_PORT((c)) << 12)) 3963 3964 #define bcm84756_a0_FCM_FCMAC_LPSM_CFWr_SIZE 1 3965 3966 /* 3967 * This structure should be used to declare and program FCM_FCMAC_LPSM_CFW. 3968 */ 3969 typedef union bcm84756_a0_FCM_FCMAC_LPSM_CFWr_s { 3970 buint32_t v[1]; 3971 buint32_t fcm_fcmac_lpsm_cfw[1]; 3972 buint32_t _fcm_fcmac_lpsm_cfw; 3973 } bcm84756_a0_FCM_FCMAC_LPSM_CFWr_t; 3974 3975 #define bcm84756_a0_FCM_FCMAC_LPSM_CFWr_CLR(r) \ 3976 (r).fcm_fcmac_lpsm_cfw[0] = 0 3977 3978 #define bcm84756_a0_FCM_FCMAC_LPSM_CFWr_SET(r,d) \ 3979 (r).fcm_fcmac_lpsm_cfw[0] = d 3980 3981 #define bcm84756_a0_FCM_FCMAC_LPSM_CFWr_GET(r) \ 3982 (r).fcm_fcmac_lpsm_cfw[0] 3983 3984 3985 /* 3986 * These macros can be used to access individual fields. 3987 */ 3988 #define bcm84756_a0_FCM_FCMAC_LPSM_CFWr_CFWf_GET(c,r) \ 3989 ((r).fcm_fcmac_lpsm_cfw[0]) 3990 3991 #define bcm84756_a0_FCM_FCMAC_LPSM_CFWr_CFWf_SET(c,r,f) \ 3992 (r).fcm_fcmac_lpsm_cfw[0]=((buint32_t)f) 3993 3994 3995 /* 3996 * These macros can be used to access FCM_FCMAC_LPSM_CFW. 3997 */ 3998 #define bcm84756_a0_READ_FCM_FCMAC_LPSM_CFWr(c,r) \ 3999 BFCMAP_REG32_READ((c),bcm84756_a0_FCM_FCMAC_LPSM_CFWr((c)),&((r)._fcm_fcmac_lpsm_cfw)) 4000 4001 #define bcm84756_a0_WRITE_FCM_FCMAC_LPSM_CFWr(c,r) \ 4002 BFCMAP_REG32_WRITE((c),bcm84756_a0_FCM_FCMAC_LPSM_CFWr((c)),&((r)._fcm_fcmac_lpsm_cfw)) 4003 4004 /******************************************************************************* 4005 * End of 'bcm84756_a0_FCM_FCMAC_LPSM_CFWr' 4006 */ 4007 4008 4009 4010 4011 /******************************************************************************* 4012 * CHIP: bcm84756_a0 4013 * REGISTER: FCM_FCMAC_LPSR 4014 * BLOCKS: SECPORT 4015 * DESCRIPTION : 4016 * L Port status reg. Reserved for diagnostics only. 4017 * 4018 * SIZE: 32 4019 * 4020 * FIELDS DESCRIPTION: 4021 * LPSR_XMIT2IDLES : 4022 * Transmit 2 idles flag. 4023 * 4024 * LPSR_PARTICIPATE : 4025 * Participate flag. 4026 * 4027 * LPSR_ARBF_SENT : 4028 * ARB(ff) sent. 4029 * 4030 * LPSR_ERR_INIT : 4031 * Error Init. 4032 * 4033 * LPSR_DHD_RCV : 4034 * DHD Primitive Received. 4035 * 4036 * LPSR_LP_BYPASS : 4037 * Loop Port Bypass. 4038 * 4039 * LPSR_ARB_PEND : 4040 * Arbitration Pending. 4041 * 4042 * LPSR_ARB_WON : 4043 * Arbitration Won. 4044 * 4045 * LPSR_PBE : 4046 * Port bypass enabled. 4047 * 4048 * LPSR_OS : 4049 * Open sent OS. 4050 * 4051 * LPSR_D : 4052 * Duplex D. 4053 * 4054 * LPSR_A : 4055 * Access A. 4056 * 4057 * LPSR_RFLF : 4058 * Received FL Port LISM Frame. 4059 * 4060 * LPSR_REP : 4061 * Replicate mode. 4062 * 4063 * LPSR_RXLT : 4064 * Received LIP type. 4065 * 4066 * LPSR_RX_AL_PS : 4067 * Received physical source addr. 4068 * 4069 * LPSR_RX_OPN_PS : 4070 * Received open physical source addr. 4071 */ 4072 #define bcm84756_a0_FCM_FCMAC_LPSRr(c) \ 4073 (0x13100067 + (BFCMAP_PORT((c)) << 12)) 4074 4075 #define bcm84756_a0_FCM_FCMAC_LPSRr_SIZE 1 4076 4077 /* 4078 * This structure should be used to declare and program FCM_FCMAC_LPSR. 4079 */ 4080 typedef union bcm84756_a0_FCM_FCMAC_LPSRr_s { 4081 buint32_t v[1]; 4082 buint32_t fcm_fcmac_lpsr[1]; 4083 buint32_t _fcm_fcmac_lpsr; 4084 } bcm84756_a0_FCM_FCMAC_LPSRr_t; 4085 4086 #define bcm84756_a0_FCM_FCMAC_LPSRr_CLR(r) \ 4087 (r).fcm_fcmac_lpsr[0] = 0 4088 4089 #define bcm84756_a0_FCM_FCMAC_LPSRr_SET(r,d) \ 4090 (r).fcm_fcmac_lpsr[0] = d 4091 4092 #define bcm84756_a0_FCM_FCMAC_LPSRr_GET(r) \ 4093 (r).fcm_fcmac_lpsr[0] 4094 4095 4096 /* 4097 * These macros can be used to access individual fields. 4098 */ 4099 #define bcm84756_a0_FCM_FCMAC_LPSRr_LPSR_XMIT2IDLESf_GET(c,r) \ 4100 (((r).fcm_fcmac_lpsr[0]) & 0x1) 4101 4102 #define bcm84756_a0_FCM_FCMAC_LPSRr_LPSR_XMIT2IDLESf_SET(c,r,f) \ 4103 (r).fcm_fcmac_lpsr[0]=(((r).fcm_fcmac_lpsr[0] & ~((buint32_t)0x1)) | \ 4104 (((buint32_t)f) & 0x1)) 4105 4106 #define bcm84756_a0_FCM_FCMAC_LPSRr_LPSR_PARTICIPATEf_GET(c,r) \ 4107 ((((r).fcm_fcmac_lpsr[0]) >> 1) & 0x1) 4108 4109 #define bcm84756_a0_FCM_FCMAC_LPSRr_LPSR_PARTICIPATEf_SET(c,r,f) \ 4110 (r).fcm_fcmac_lpsr[0]=(((r).fcm_fcmac_lpsr[0] & ~((buint32_t)0x1 << 1)) | \ 4111 ((((buint32_t)f) & 0x1) << 1)) 4112 4113 #define bcm84756_a0_FCM_FCMAC_LPSRr_LPSR_ARBF_SENTf_GET(c,r) \ 4114 ((((r).fcm_fcmac_lpsr[0]) >> 2) & 0x1) 4115 4116 #define bcm84756_a0_FCM_FCMAC_LPSRr_LPSR_ARBF_SENTf_SET(c,r,f) \ 4117 (r).fcm_fcmac_lpsr[0]=(((r).fcm_fcmac_lpsr[0] & ~((buint32_t)0x1 << 2)) | \ 4118 ((((buint32_t)f) & 0x1) << 2)) 4119 4120 #define bcm84756_a0_FCM_FCMAC_LPSRr_LPSR_ERR_INITf_GET(c,r) \ 4121 ((((r).fcm_fcmac_lpsr[0]) >> 3) & 0x1) 4122 4123 #define bcm84756_a0_FCM_FCMAC_LPSRr_LPSR_ERR_INITf_SET(c,r,f) \ 4124 (r).fcm_fcmac_lpsr[0]=(((r).fcm_fcmac_lpsr[0] & ~((buint32_t)0x1 << 3)) | \ 4125 ((((buint32_t)f) & 0x1) << 3)) 4126 4127 #define bcm84756_a0_FCM_FCMAC_LPSRr_LPSR_DHD_RCVf_GET(c,r) \ 4128 ((((r).fcm_fcmac_lpsr[0]) >> 4) & 0x1) 4129 4130 #define bcm84756_a0_FCM_FCMAC_LPSRr_LPSR_DHD_RCVf_SET(c,r,f) \ 4131 (r).fcm_fcmac_lpsr[0]=(((r).fcm_fcmac_lpsr[0] & ~((buint32_t)0x1 << 4)) | \ 4132 ((((buint32_t)f) & 0x1) << 4)) 4133 4134 #define bcm84756_a0_FCM_FCMAC_LPSRr_LPSR_LP_BYPASSf_GET(c,r) \ 4135 ((((r).fcm_fcmac_lpsr[0]) >> 5) & 0x1) 4136 4137 #define bcm84756_a0_FCM_FCMAC_LPSRr_LPSR_LP_BYPASSf_SET(c,r,f) \ 4138 (r).fcm_fcmac_lpsr[0]=(((r).fcm_fcmac_lpsr[0] & ~((buint32_t)0x1 << 5)) | \ 4139 ((((buint32_t)f) & 0x1) << 5)) 4140 4141 #define bcm84756_a0_FCM_FCMAC_LPSRr_LPSR_ARB_PENDf_GET(c,r) \ 4142 ((((r).fcm_fcmac_lpsr[0]) >> 6) & 0x1) 4143 4144 #define bcm84756_a0_FCM_FCMAC_LPSRr_LPSR_ARB_PENDf_SET(c,r,f) \ 4145 (r).fcm_fcmac_lpsr[0]=(((r).fcm_fcmac_lpsr[0] & ~((buint32_t)0x1 << 6)) | \ 4146 ((((buint32_t)f) & 0x1) << 6)) 4147 4148 #define bcm84756_a0_FCM_FCMAC_LPSRr_LPSR_ARB_WONf_GET(c,r) \ 4149 ((((r).fcm_fcmac_lpsr[0]) >> 7) & 0x1) 4150 4151 #define bcm84756_a0_FCM_FCMAC_LPSRr_LPSR_ARB_WONf_SET(c,r,f) \ 4152 (r).fcm_fcmac_lpsr[0]=(((r).fcm_fcmac_lpsr[0] & ~((buint32_t)0x1 << 7)) | \ 4153 ((((buint32_t)f) & 0x1) << 7)) 4154 4155 #define bcm84756_a0_FCM_FCMAC_LPSRr_LPSR_PBEf_GET(c,r) \ 4156 ((((r).fcm_fcmac_lpsr[0]) >> 8) & 0x1) 4157 4158 #define bcm84756_a0_FCM_FCMAC_LPSRr_LPSR_PBEf_SET(c,r,f) \ 4159 (r).fcm_fcmac_lpsr[0]=(((r).fcm_fcmac_lpsr[0] & ~((buint32_t)0x1 << 8)) | \ 4160 ((((buint32_t)f) & 0x1) << 8)) 4161 4162 #define bcm84756_a0_FCM_FCMAC_LPSRr_LPSR_OSf_GET(c,r) \ 4163 ((((r).fcm_fcmac_lpsr[0]) >> 9) & 0x1) 4164 4165 #define bcm84756_a0_FCM_FCMAC_LPSRr_LPSR_OSf_SET(c,r,f) \ 4166 (r).fcm_fcmac_lpsr[0]=(((r).fcm_fcmac_lpsr[0] & ~((buint32_t)0x1 << 9)) | \ 4167 ((((buint32_t)f) & 0x1) << 9)) 4168 4169 #define bcm84756_a0_FCM_FCMAC_LPSRr_LPSR_Df_GET(c,r) \ 4170 ((((r).fcm_fcmac_lpsr[0]) >> 10) & 0x1) 4171 4172 #define bcm84756_a0_FCM_FCMAC_LPSRr_LPSR_Df_SET(c,r,f) \ 4173 (r).fcm_fcmac_lpsr[0]=(((r).fcm_fcmac_lpsr[0] & ~((buint32_t)0x1 << 10)) | \ 4174 ((((buint32_t)f) & 0x1) << 10)) 4175 4176 #define bcm84756_a0_FCM_FCMAC_LPSRr_LPSR_Af_GET(c,r) \ 4177 ((((r).fcm_fcmac_lpsr[0]) >> 11) & 0x1) 4178 4179 #define bcm84756_a0_FCM_FCMAC_LPSRr_LPSR_Af_SET(c,r,f) \ 4180 (r).fcm_fcmac_lpsr[0]=(((r).fcm_fcmac_lpsr[0] & ~((buint32_t)0x1 << 11)) | \ 4181 ((((buint32_t)f) & 0x1) << 11)) 4182 4183 #define bcm84756_a0_FCM_FCMAC_LPSRr_LPSR_RFLFf_GET(c,r) \ 4184 ((((r).fcm_fcmac_lpsr[0]) >> 12) & 0x1) 4185 4186 #define bcm84756_a0_FCM_FCMAC_LPSRr_LPSR_RFLFf_SET(c,r,f) \ 4187 (r).fcm_fcmac_lpsr[0]=(((r).fcm_fcmac_lpsr[0] & ~((buint32_t)0x1 << 12)) | \ 4188 ((((buint32_t)f) & 0x1) << 12)) 4189 4190 #define bcm84756_a0_FCM_FCMAC_LPSRr_LPSR_REPf_GET(c,r) \ 4191 ((((r).fcm_fcmac_lpsr[0]) >> 13) & 0x1) 4192 4193 #define bcm84756_a0_FCM_FCMAC_LPSRr_LPSR_REPf_SET(c,r,f) \ 4194 (r).fcm_fcmac_lpsr[0]=(((r).fcm_fcmac_lpsr[0] & ~((buint32_t)0x1 << 13)) | \ 4195 ((((buint32_t)f) & 0x1) << 13)) 4196 4197 #define bcm84756_a0_FCM_FCMAC_LPSRr_LPSR_RXLTf_GET(c,r) \ 4198 ((((r).fcm_fcmac_lpsr[0]) >> 14) & 0x3) 4199 4200 #define bcm84756_a0_FCM_FCMAC_LPSRr_LPSR_RXLTf_SET(c,r,f) \ 4201 (r).fcm_fcmac_lpsr[0]=(((r).fcm_fcmac_lpsr[0] & ~((buint32_t)0x3 << 14)) | \ 4202 ((((buint32_t)f) & 0x3) << 14)) 4203 4204 #define bcm84756_a0_FCM_FCMAC_LPSRr_LPSR_RX_AL_PSf_GET(c,r) \ 4205 ((((r).fcm_fcmac_lpsr[0]) >> 16) & 0xff) 4206 4207 #define bcm84756_a0_FCM_FCMAC_LPSRr_LPSR_RX_AL_PSf_SET(c,r,f) \ 4208 (r).fcm_fcmac_lpsr[0]=(((r).fcm_fcmac_lpsr[0] & ~((buint32_t)0xff << 16)) | \ 4209 ((((buint32_t)f) & 0xff) << 16)) 4210 4211 #define bcm84756_a0_FCM_FCMAC_LPSRr_LPSR_RX_OPN_PSf_GET(c,r) \ 4212 ((((r).fcm_fcmac_lpsr[0]) >> 24) & 0xff) 4213 4214 #define bcm84756_a0_FCM_FCMAC_LPSRr_LPSR_RX_OPN_PSf_SET(c,r,f) \ 4215 (r).fcm_fcmac_lpsr[0]=(((r).fcm_fcmac_lpsr[0] & ~((buint32_t)0xff << 24)) | \ 4216 ((((buint32_t)f) & 0xff) << 24)) 4217 4218 4219 /* 4220 * These macros can be used to access FCM_FCMAC_LPSR. 4221 */ 4222 #define bcm84756_a0_READ_FCM_FCMAC_LPSRr(c,r) \ 4223 BFCMAP_REG32_READ((c),bcm84756_a0_FCM_FCMAC_LPSRr((c)),&((r)._fcm_fcmac_lpsr)) 4224 4225 #define bcm84756_a0_WRITE_FCM_FCMAC_LPSRr(c,r) \ 4226 BFCMAP_REG32_WRITE((c),bcm84756_a0_FCM_FCMAC_LPSRr((c)),&((r)._fcm_fcmac_lpsr)) 4227 4228 /******************************************************************************* 4229 * End of 'bcm84756_a0_FCM_FCMAC_LPSRr' 4230 */ 4231 4232 4233 4234 4235 /******************************************************************************* 4236 * CHIP: bcm84756_a0 4237 * REGISTER: FCM_FCMAC_LPTR 4238 * BLOCKS: SECPORT 4239 * DESCRIPTION : 4240 * ADDR LPTR 7'h13 // L P TOV reload reigster R/W. 4241 * 4242 * SIZE: 32 4243 * 4244 * FIELDS DESCRIPTION: 4245 * LPTR_L_P_TOV : 4246 * The LPTR value can be written, and also a write of any value to this 4247 * reg clears the internal LPTC timer in reg set cntr. 4248 */ 4249 #define bcm84756_a0_FCM_FCMAC_LPTRr(c) \ 4250 (0x13100078 + (BFCMAP_PORT((c)) << 12)) 4251 4252 #define bcm84756_a0_FCM_FCMAC_LPTRr_SIZE 1 4253 4254 /* 4255 * This structure should be used to declare and program FCM_FCMAC_LPTR. 4256 */ 4257 typedef union bcm84756_a0_FCM_FCMAC_LPTRr_s { 4258 buint32_t v[1]; 4259 buint32_t fcm_fcmac_lptr[1]; 4260 buint32_t _fcm_fcmac_lptr; 4261 } bcm84756_a0_FCM_FCMAC_LPTRr_t; 4262 4263 #define bcm84756_a0_FCM_FCMAC_LPTRr_CLR(r) \ 4264 (r).fcm_fcmac_lptr[0] = 0 4265 4266 #define bcm84756_a0_FCM_FCMAC_LPTRr_SET(r,d) \ 4267 (r).fcm_fcmac_lptr[0] = d 4268 4269 #define bcm84756_a0_FCM_FCMAC_LPTRr_GET(r) \ 4270 (r).fcm_fcmac_lptr[0] 4271 4272 4273 /* 4274 * These macros can be used to access individual fields. 4275 */ 4276 #define bcm84756_a0_FCM_FCMAC_LPTRr_LPTR_L_P_TOVf_GET(c,r) \ 4277 (((r).fcm_fcmac_lptr[0]) & 0xfff) 4278 4279 #define bcm84756_a0_FCM_FCMAC_LPTRr_LPTR_L_P_TOVf_SET(c,r,f) \ 4280 (r).fcm_fcmac_lptr[0]=(((r).fcm_fcmac_lptr[0] & ~((buint32_t)0xfff)) | \ 4281 (((buint32_t)f) & 0xfff)) 4282 4283 4284 /* 4285 * These macros can be used to access FCM_FCMAC_LPTR. 4286 */ 4287 #define bcm84756_a0_READ_FCM_FCMAC_LPTRr(c,r) \ 4288 BFCMAP_REG32_READ((c),bcm84756_a0_FCM_FCMAC_LPTRr((c)),&((r)._fcm_fcmac_lptr)) 4289 4290 #define bcm84756_a0_WRITE_FCM_FCMAC_LPTRr(c,r) \ 4291 BFCMAP_REG32_WRITE((c),bcm84756_a0_FCM_FCMAC_LPTRr((c)),&((r)._fcm_fcmac_lptr)) 4292 4293 /******************************************************************************* 4294 * End of 'bcm84756_a0_FCM_FCMAC_LPTRr' 4295 */ 4296 4297 4298 4299 4300 /******************************************************************************* 4301 * CHIP: bcm84756_a0 4302 * REGISTER: FCM_FCMAC_MAXFRMLEN_CONFIG 4303 * BLOCKS: SECPORT 4304 * DESCRIPTION : 4305 * ADDR MAXFRMLEN 7'h22 // RX Maximum frame length, default = 535 (0x217). rw 4306 * 4307 * SIZE: 32 4308 * 4309 * FIELDS DESCRIPTION: 4310 * MAXLEN : 4311 * Maximum FC frame length including SOF and EOF, in units of 32-bit 4312 * words. NOTE : The programmed values of FRXB FREE RXB CNT and FCM FCMAC 4313 * MAXFRMLEN CONFIG must be consistent with each other, and must also be 4314 * consistent with the hard-coded size of the RX Frame Buffer (0x2000 4315 * 32-bit words). As a guideline : Program the FRXB FREE RXB CNT = 0x2000 4316 * / buf reserve; i.e. with FCM FCMAC MAXFRMLEN CONFIG programmed to 4317 * (default) 0x217 (buf reserve = 0x218), FRXB FREE RXB CNT should be 4318 * programmed to (default) 0xf. To calculate using a different FCM FCMAC 4319 * MAXFRMLEN CONFIG value, the buf reserve value used as the divisor must 4320 * be an exact 16-byte multiple, or else it must be rounded up to the next 4321 * 16 byte boundary, i.e. : if ((FCM FCMAC MAXFRMLEN CONFIG MOD 4) != 0) 4322 * buf reserve = FCM FCMAC MAXFRMLEN CONFIG + 4 - (FCM FCMAC MAXFRMLEN 4323 * CONFIG MOD 4)} else buf reserve = FCM FCMAC MAXFRMLEN CONFIG 4324 */ 4325 #define bcm84756_a0_FCM_FCMAC_MAXFRMLEN_CONFIGr(c) \ 4326 (0x13100002 + (BFCMAP_PORT((c)) << 12)) 4327 4328 #define bcm84756_a0_FCM_FCMAC_MAXFRMLEN_CONFIGr_SIZE 1 4329 4330 /* 4331 * This structure should be used to declare and program FCM_FCMAC_MAXFRMLEN_CONFIG. 4332 */ 4333 typedef union bcm84756_a0_FCM_FCMAC_MAXFRMLEN_CONFIGr_s { 4334 buint32_t v[1]; 4335 buint32_t fcm_fcmac_maxfrmlen_config[1]; 4336 buint32_t _fcm_fcmac_maxfrmlen_config; 4337 } bcm84756_a0_FCM_FCMAC_MAXFRMLEN_CONFIGr_t; 4338 4339 #define bcm84756_a0_FCM_FCMAC_MAXFRMLEN_CONFIGr_CLR(r) \ 4340 (r).fcm_fcmac_maxfrmlen_config[0] = 0 4341 4342 #define bcm84756_a0_FCM_FCMAC_MAXFRMLEN_CONFIGr_SET(r,d) \ 4343 (r).fcm_fcmac_maxfrmlen_config[0] = d 4344 4345 #define bcm84756_a0_FCM_FCMAC_MAXFRMLEN_CONFIGr_GET(r) \ 4346 (r).fcm_fcmac_maxfrmlen_config[0] 4347 4348 4349 /* 4350 * These macros can be used to access individual fields. 4351 */ 4352 #define bcm84756_a0_FCM_FCMAC_MAXFRMLEN_CONFIGr_MAXLENf_GET(c,r) \ 4353 (((r).fcm_fcmac_maxfrmlen_config[0]) & 0x3ff) 4354 4355 #define bcm84756_a0_FCM_FCMAC_MAXFRMLEN_CONFIGr_MAXLENf_SET(c,r,f) \ 4356 (r).fcm_fcmac_maxfrmlen_config[0]=(((r).fcm_fcmac_maxfrmlen_config[0] & ~((buint32_t)0x3ff)) | \ 4357 (((buint32_t)f) & 0x3ff)) 4358 4359 4360 /* 4361 * These macros can be used to access FCM_FCMAC_MAXFRMLEN_CONFIG. 4362 */ 4363 #define bcm84756_a0_READ_FCM_FCMAC_MAXFRMLEN_CONFIGr(c,r) \ 4364 BFCMAP_REG32_READ((c),bcm84756_a0_FCM_FCMAC_MAXFRMLEN_CONFIGr((c)),&((r)._fcm_fcmac_maxfrmlen_config)) 4365 4366 #define bcm84756_a0_WRITE_FCM_FCMAC_MAXFRMLEN_CONFIGr(c,r) \ 4367 BFCMAP_REG32_WRITE((c),bcm84756_a0_FCM_FCMAC_MAXFRMLEN_CONFIGr((c)),&((r)._fcm_fcmac_maxfrmlen_config)) 4368 4369 /******************************************************************************* 4370 * End of 'bcm84756_a0_FCM_FCMAC_MAXFRMLEN_CONFIGr' 4371 */ 4372 4373 4374 4375 4376 /******************************************************************************* 4377 * CHIP: bcm84756_a0 4378 * REGISTER: FCM_FCMAC_MINFRMLEN_CONFIG 4379 * BLOCKS: SECPORT 4380 * DESCRIPTION : 4381 * ADDR MINFRMLEN 7'h21 // runt+1 word count, default = 9 words. rw 4382 * 4383 * SIZE: 32 4384 * 4385 * FIELDS DESCRIPTION: 4386 * MINLEN : 4387 * Minimum FC frame length including SOF and EOF, in units of 32-bit 4388 * words. 4389 */ 4390 #define bcm84756_a0_FCM_FCMAC_MINFRMLEN_CONFIGr(c) \ 4391 (0x13100001 + (BFCMAP_PORT((c)) << 12)) 4392 4393 #define bcm84756_a0_FCM_FCMAC_MINFRMLEN_CONFIGr_SIZE 1 4394 4395 /* 4396 * This structure should be used to declare and program FCM_FCMAC_MINFRMLEN_CONFIG. 4397 */ 4398 typedef union bcm84756_a0_FCM_FCMAC_MINFRMLEN_CONFIGr_s { 4399 buint32_t v[1]; 4400 buint32_t fcm_fcmac_minfrmlen_config[1]; 4401 buint32_t _fcm_fcmac_minfrmlen_config; 4402 } bcm84756_a0_FCM_FCMAC_MINFRMLEN_CONFIGr_t; 4403 4404 #define bcm84756_a0_FCM_FCMAC_MINFRMLEN_CONFIGr_CLR(r) \ 4405 (r).fcm_fcmac_minfrmlen_config[0] = 0 4406 4407 #define bcm84756_a0_FCM_FCMAC_MINFRMLEN_CONFIGr_SET(r,d) \ 4408 (r).fcm_fcmac_minfrmlen_config[0] = d 4409 4410 #define bcm84756_a0_FCM_FCMAC_MINFRMLEN_CONFIGr_GET(r) \ 4411 (r).fcm_fcmac_minfrmlen_config[0] 4412 4413 4414 /* 4415 * These macros can be used to access individual fields. 4416 */ 4417 #define bcm84756_a0_FCM_FCMAC_MINFRMLEN_CONFIGr_MINLENf_GET(c,r) \ 4418 (((r).fcm_fcmac_minfrmlen_config[0]) & 0x3ff) 4419 4420 #define bcm84756_a0_FCM_FCMAC_MINFRMLEN_CONFIGr_MINLENf_SET(c,r,f) \ 4421 (r).fcm_fcmac_minfrmlen_config[0]=(((r).fcm_fcmac_minfrmlen_config[0] & ~((buint32_t)0x3ff)) | \ 4422 (((buint32_t)f) & 0x3ff)) 4423 4424 4425 /* 4426 * These macros can be used to access FCM_FCMAC_MINFRMLEN_CONFIG. 4427 */ 4428 #define bcm84756_a0_READ_FCM_FCMAC_MINFRMLEN_CONFIGr(c,r) \ 4429 BFCMAP_REG32_READ((c),bcm84756_a0_FCM_FCMAC_MINFRMLEN_CONFIGr((c)),&((r)._fcm_fcmac_minfrmlen_config)) 4430 4431 #define bcm84756_a0_WRITE_FCM_FCMAC_MINFRMLEN_CONFIGr(c,r) \ 4432 BFCMAP_REG32_WRITE((c),bcm84756_a0_FCM_FCMAC_MINFRMLEN_CONFIGr((c)),&((r)._fcm_fcmac_minfrmlen_config)) 4433 4434 /******************************************************************************* 4435 * End of 'bcm84756_a0_FCM_FCMAC_MINFRMLEN_CONFIGr' 4436 */ 4437 4438 4439 4440 4441 /******************************************************************************* 4442 * CHIP: bcm84756_a0 4443 * REGISTER: FCM_FCMAC_NPCS 4444 * BLOCKS: SECPORT 4445 * DESCRIPTION : 4446 * ADDR NPCS 7'h01 // N Port command/status reg R/W. 4447 * 4448 * SIZE: 32 4449 * 4450 * FIELDS DESCRIPTION: 4451 * NPCS_PSPRQ : 4452 * Write the corresponding command defined in the table below to initiate 4453 * a Primitive Sequence Protocol or to continuously transmit a Primitive 4454 * Sequence. When instructed to initiate a Primitive Sequence Protocol 4455 * these bits remain set while the Primitive Sequence Protocol Engine 4456 * (PSPE) is running the protocol. When the Protocol completes and the 4457 * Primitive Sequence Protocol Engine enters the either the ACTIVE or 4458 * INACTIVE states, all commands except the Req (Link Failure) and Req 4459 * (Online-to- Offline) will be CLEARED automatically to indicate that the 4460 * request has been serviced and that no protocol is running. The Req 4461 * (Link Failure) request will not be cleared automatically as the PSPE 4462 * will remain in the LF2 state for as long as the Req (Link Failure) 4463 * request is pending. The Req (Online-to-Offline) is not cleared 4464 * automatically as the PSPE will remain in the OL1 state and continue to 4465 * transmit OLS as long as the Req (Online-to-Offline) request is pending. 4466 * Additionally, the Link Failure and Link Reset Primitive Sequence 4467 * Protocols may be initiated internally by the FCMAC when certain 4468 * internal conditions arise and the protocol that is running is indicated 4469 * by the N Port State bits in the previous field. 4'b00xx Req (No 4470 * Protocol) / No Protocol Running 4'b0100 Req (Link Initialization) 4471 * Protocol 4'b0101 Req (Online-to-Offline) Protocol (not auto cleared) 4472 * 4'b0110 Req (Link Failure) Protocol (not auto cleared) 4'b0111 Req 4473 * (Link Reset) Protocol 4'b1100 Req (Active) 4'b11xx Reserved THE 4474 * FOLLOWING COMMANDS ARE FOR DIAGNOSTIC PURPOSES ONLY AND SHOULD NOT BE 4475 * USED BY FIRMWARE : In the ACTIVE state, the FCMAC can be instructed to 4476 * continuously transmit a Primitive Sequence using the Req (TxLR), Req 4477 * (Tx LRR), Req (Tx OLS), or Req (Tx NOS) requests. 4'b1000 Req (Tx LR) 4478 * 4'b1001 Req (TxLRR) 4'b1010 Req (Tx OLS) 4'b1011 Req (Tx NOS) 4479 * 4480 * NPCS_NPST : 4481 * N Port state: 4'b0000 - Active AC 4'b0001 - Link Recovery LRl : LR 4482 * Transmit State 4'b0010 - Link Recovery LR2 : LR Receive State 4'b0011 - 4483 * Link Recovery LR3 : LRR Receive State 4'b0100 - Link Failure LF 1: NOS 4484 * Receive State 4'b0101 - Link Failure LF2 : NOS Transmit State 4'b0110 - 4485 * Reserved 4'b0111 - Reserved 4'b1000 - Reserved 4'b1001 - Reserved 4486 * 4'b1010 - Offline 0L3 : Wait for OLS State 4'b1011 - Offline 0L2 : OLS 4487 * Receive State 4'b1100 - Offline OL1D : 5ms delay state 4'b1101 - 4488 * Offline OLlC : OLS Transmit State C 4'b1110 - Reserved 4'b1111 - 4489 * Reserved 4490 * 4491 * NPCS_LS : 4492 * FC-0 link status. 4493 * 4494 * NPCS_ARXLOSP : 4495 * Alternate RXLOS Polarity ID. 4496 * 4497 * NPCS_RXS : 4498 * RX state: 2'b00 - Reset 2'b01 - Loss of Word Sync 2'b10 - Word Sync 4499 * Acquired 2'b11 - Reserved 4500 * 4501 * NPCS_TXOPCST : 4502 * Transmit output controller state: 0001 - CFW 0010 - TX DATA 0011 - TX 4503 * PRIM all others undefined 4504 */ 4505 #define bcm84756_a0_FCM_FCMAC_NPCSr(c) \ 4506 (0x13100065 + (BFCMAP_PORT((c)) << 12)) 4507 4508 #define bcm84756_a0_FCM_FCMAC_NPCSr_SIZE 1 4509 4510 /* 4511 * This structure should be used to declare and program FCM_FCMAC_NPCS. 4512 */ 4513 typedef union bcm84756_a0_FCM_FCMAC_NPCSr_s { 4514 buint32_t v[1]; 4515 buint32_t fcm_fcmac_npcs[1]; 4516 buint32_t _fcm_fcmac_npcs; 4517 } bcm84756_a0_FCM_FCMAC_NPCSr_t; 4518 4519 #define bcm84756_a0_FCM_FCMAC_NPCSr_CLR(r) \ 4520 (r).fcm_fcmac_npcs[0] = 0 4521 4522 #define bcm84756_a0_FCM_FCMAC_NPCSr_SET(r,d) \ 4523 (r).fcm_fcmac_npcs[0] = d 4524 4525 #define bcm84756_a0_FCM_FCMAC_NPCSr_GET(r) \ 4526 (r).fcm_fcmac_npcs[0] 4527 4528 4529 /* 4530 * These macros can be used to access individual fields. 4531 */ 4532 #define bcm84756_a0_FCM_FCMAC_NPCSr_NPCS_PSPRQf_GET(c,r) \ 4533 (((r).fcm_fcmac_npcs[0]) & 0xf) 4534 4535 #define bcm84756_a0_FCM_FCMAC_NPCSr_NPCS_PSPRQf_SET(c,r,f) \ 4536 (r).fcm_fcmac_npcs[0]=(((r).fcm_fcmac_npcs[0] & ~((buint32_t)0xf)) | \ 4537 (((buint32_t)f) & 0xf)) 4538 4539 #define bcm84756_a0_FCM_FCMAC_NPCSr_NPCS_NPSTf_GET(c,r) \ 4540 ((((r).fcm_fcmac_npcs[0]) >> 4) & 0xf) 4541 4542 #define bcm84756_a0_FCM_FCMAC_NPCSr_NPCS_NPSTf_SET(c,r,f) \ 4543 (r).fcm_fcmac_npcs[0]=(((r).fcm_fcmac_npcs[0] & ~((buint32_t)0xf << 4)) | \ 4544 ((((buint32_t)f) & 0xf) << 4)) 4545 4546 #define bcm84756_a0_FCM_FCMAC_NPCSr_NPCS_LSf_GET(c,r) \ 4547 ((((r).fcm_fcmac_npcs[0]) >> 8) & 0x1) 4548 4549 #define bcm84756_a0_FCM_FCMAC_NPCSr_NPCS_LSf_SET(c,r,f) \ 4550 (r).fcm_fcmac_npcs[0]=(((r).fcm_fcmac_npcs[0] & ~((buint32_t)0x1 << 8)) | \ 4551 ((((buint32_t)f) & 0x1) << 8)) 4552 4553 #define bcm84756_a0_FCM_FCMAC_NPCSr_NPCS_ARXLOSPf_GET(c,r) \ 4554 ((((r).fcm_fcmac_npcs[0]) >> 10) & 0x1) 4555 4556 #define bcm84756_a0_FCM_FCMAC_NPCSr_NPCS_ARXLOSPf_SET(c,r,f) \ 4557 (r).fcm_fcmac_npcs[0]=(((r).fcm_fcmac_npcs[0] & ~((buint32_t)0x1 << 10)) | \ 4558 ((((buint32_t)f) & 0x1) << 10)) 4559 4560 #define bcm84756_a0_FCM_FCMAC_NPCSr_NPCS_RXSf_GET(c,r) \ 4561 ((((r).fcm_fcmac_npcs[0]) >> 12) & 0x3) 4562 4563 #define bcm84756_a0_FCM_FCMAC_NPCSr_NPCS_RXSf_SET(c,r,f) \ 4564 (r).fcm_fcmac_npcs[0]=(((r).fcm_fcmac_npcs[0] & ~((buint32_t)0x3 << 12)) | \ 4565 ((((buint32_t)f) & 0x3) << 12)) 4566 4567 #define bcm84756_a0_FCM_FCMAC_NPCSr_NPCS_TXOPCSTf_GET(c,r) \ 4568 ((((r).fcm_fcmac_npcs[0]) >> 16) & 0xf) 4569 4570 #define bcm84756_a0_FCM_FCMAC_NPCSr_NPCS_TXOPCSTf_SET(c,r,f) \ 4571 (r).fcm_fcmac_npcs[0]=(((r).fcm_fcmac_npcs[0] & ~((buint32_t)0xf << 16)) | \ 4572 ((((buint32_t)f) & 0xf) << 16)) 4573 4574 4575 /* 4576 * These macros can be used to access FCM_FCMAC_NPCS. 4577 */ 4578 #define bcm84756_a0_READ_FCM_FCMAC_NPCSr(c,r) \ 4579 BFCMAP_REG32_READ((c),bcm84756_a0_FCM_FCMAC_NPCSr((c)),&((r)._fcm_fcmac_npcs)) 4580 4581 #define bcm84756_a0_WRITE_FCM_FCMAC_NPCSr(c,r) \ 4582 BFCMAP_REG32_WRITE((c),bcm84756_a0_FCM_FCMAC_NPCSr((c)),&((r)._fcm_fcmac_npcs)) 4583 4584 /******************************************************************************* 4585 * End of 'bcm84756_a0_FCM_FCMAC_NPCSr' 4586 */ 4587 4588 4589 4590 4591 /******************************************************************************* 4592 * CHIP: bcm84756_a0 4593 * REGISTER: FCM_FCMAC_PAID 4594 * BLOCKS: SECPORT 4595 * DESCRIPTION : 4596 * ADDR PAID 7'h08 // My Port Address ID Register R/W. 4597 * 4598 * SIZE: 32 4599 * 4600 * FIELDS DESCRIPTION: 4601 * PAID_ID : 4602 * Source ID. 4603 */ 4604 #define bcm84756_a0_FCM_FCMAC_PAIDr(c) \ 4605 (0x1310006d + (BFCMAP_PORT((c)) << 12)) 4606 4607 #define bcm84756_a0_FCM_FCMAC_PAIDr_SIZE 1 4608 4609 /* 4610 * This structure should be used to declare and program FCM_FCMAC_PAID. 4611 */ 4612 typedef union bcm84756_a0_FCM_FCMAC_PAIDr_s { 4613 buint32_t v[1]; 4614 buint32_t fcm_fcmac_paid[1]; 4615 buint32_t _fcm_fcmac_paid; 4616 } bcm84756_a0_FCM_FCMAC_PAIDr_t; 4617 4618 #define bcm84756_a0_FCM_FCMAC_PAIDr_CLR(r) \ 4619 (r).fcm_fcmac_paid[0] = 0 4620 4621 #define bcm84756_a0_FCM_FCMAC_PAIDr_SET(r,d) \ 4622 (r).fcm_fcmac_paid[0] = d 4623 4624 #define bcm84756_a0_FCM_FCMAC_PAIDr_GET(r) \ 4625 (r).fcm_fcmac_paid[0] 4626 4627 4628 /* 4629 * These macros can be used to access individual fields. 4630 */ 4631 #define bcm84756_a0_FCM_FCMAC_PAIDr_PAID_IDf_GET(c,r) \ 4632 (((r).fcm_fcmac_paid[0]) & 0xffffff) 4633 4634 #define bcm84756_a0_FCM_FCMAC_PAIDr_PAID_IDf_SET(c,r,f) \ 4635 (r).fcm_fcmac_paid[0]=(((r).fcm_fcmac_paid[0] & ~((buint32_t)0xffffff)) | \ 4636 (((buint32_t)f) & 0xffffff)) 4637 4638 4639 /* 4640 * These macros can be used to access FCM_FCMAC_PAID. 4641 */ 4642 #define bcm84756_a0_READ_FCM_FCMAC_PAIDr(c,r) \ 4643 BFCMAP_REG32_READ((c),bcm84756_a0_FCM_FCMAC_PAIDr((c)),&((r)._fcm_fcmac_paid)) 4644 4645 #define bcm84756_a0_WRITE_FCM_FCMAC_PAIDr(c,r) \ 4646 BFCMAP_REG32_WRITE((c),bcm84756_a0_FCM_FCMAC_PAIDr((c)),&((r)._fcm_fcmac_paid)) 4647 4648 /******************************************************************************* 4649 * End of 'bcm84756_a0_FCM_FCMAC_PAIDr' 4650 */ 4651 4652 4653 4654 4655 /******************************************************************************* 4656 * CHIP: bcm84756_a0 4657 * REGISTER: FCM_FCMAC_PCFG 4658 * BLOCKS: SECPORT 4659 * DESCRIPTION : 4660 * ADDR PCFG 7'h00 // Port configuration reg R/W 4661 * 4662 * SIZE: 32 4663 * 4664 * FIELDS DESCRIPTION: 4665 * PCFG_RXE : 4666 * RX enable/RX reset. 4667 * 4668 * PCFG_RXFF : 4669 * RX frame buffer flush. Goes to Frame Buffer flush logic. 4670 * 4671 * PCFG_FFCA : 4672 * Use internal FCMAC free rxbuf cnt counter instead of RXB. Read returns 4673 * 0. 4674 * 4675 * PCFG_PC : 4676 * Pass CRC. Read returns 0. 4677 * 4678 * PCFG_ECLSD : 4679 * Enable CLS Delay. 4680 * 4681 * PCFG_DLP : 4682 * Disable LISM Frame filtering. 4683 * 4684 * PCFG_ABFF : 4685 * Send ARBff enable. 4686 * 4687 * PCFG_LBE : 4688 * Loopback enable. Read returns 0. 4689 * 4690 * PCFG_PSD : 4691 * Primitive sequence disable. 4692 * 4693 * PCFG_FFCB : 4694 * Default to original free rxbuf cnt logic. Read returns 0. 4695 * 4696 * PCFG_LDHD : 4697 * Login dynamic half-duplex feature enable. Read returns 0. 4698 * 4699 * PCFG_SNTO : 4700 * Skip N Port 5ms timeout. 4701 * 4702 * PCFG_TME : 4703 * Arbitrated loop Transfer Mode Enable. 4704 * 4705 * PCFG_ALF : 4706 * Arbitrated loop fairness mode select. 4707 * 4708 * PCFG_LPD : 4709 * L Port disable. 4710 * 4711 * PCFG_FOPND : 4712 * Full-Duplex Open Disabled. 4713 * 4714 * PCFG_TXE : 4715 * Transmit enable. 4716 * 4717 * PCFG_TXFE : 4718 * TXFIFO enable. 4719 * 4720 * PCFG_TXFF : 4721 * TX Frame buffer flush. Goes to Frame Buffer flush logic. 4722 * 4723 * PCFG_LAC : 4724 * Loop auto close mode enable. 4725 * 4726 * PCFG_LAO : 4727 * Loop auto open mode enable. 4728 * 4729 * PCFG_ABM : 4730 * Alternate BB credit management mode. 4731 * 4732 * PCFG_LPRV : 4733 * NL Priv mode only. If bit is 0, allow NL OPN(00) if DDAA mismatch. Read 4734 * returns 0. 4735 * 4736 * PCFG_DOSC : 4737 * Disable Unsupported OS Check. 4738 * 4739 * PCFG_DBB0LR : 4740 * When set, disable RX BBCredit Underflow link-reset response 4741 * (diagnositic mode). Read returns 0. 4742 * 4743 * PCFG_NLP : 4744 * Configure as NL Port, disable FL Port behavior. 4745 * 4746 * PCFG_ICRC : 4747 * Ignore Rx CRC Check Result. 4748 * 4749 * PCFG_FSID : 4750 * Force SID. 4751 * 4752 * PCFG_CLIP : 4753 * Transfer continuous LIP in INIT and OINI states. 4754 * 4755 * PCFG_RCLSMONI : 4756 * Config bit to activate REQUEST CLS in MONI state. Read returns 0. 4757 * 4758 * PCFG_LIP60 : 4759 * Send 60 LIPs in INIT and OPEN INIT instead of 12. Read returns 0. 4760 * 4761 * PCFG_LACOPND_DIS : 4762 * LAC disabled during OPENED state 4763 */ 4764 #define bcm84756_a0_FCM_FCMAC_PCFGr(c) \ 4765 (0x13100064 + (BFCMAP_PORT((c)) << 12)) 4766 4767 #define bcm84756_a0_FCM_FCMAC_PCFGr_SIZE 1 4768 4769 /* 4770 * This structure should be used to declare and program FCM_FCMAC_PCFG. 4771 */ 4772 typedef union bcm84756_a0_FCM_FCMAC_PCFGr_s { 4773 buint32_t v[1]; 4774 buint32_t fcm_fcmac_pcfg[1]; 4775 buint32_t _fcm_fcmac_pcfg; 4776 } bcm84756_a0_FCM_FCMAC_PCFGr_t; 4777 4778 #define bcm84756_a0_FCM_FCMAC_PCFGr_CLR(r) \ 4779 (r).fcm_fcmac_pcfg[0] = 0 4780 4781 #define bcm84756_a0_FCM_FCMAC_PCFGr_SET(r,d) \ 4782 (r).fcm_fcmac_pcfg[0] = d 4783 4784 #define bcm84756_a0_FCM_FCMAC_PCFGr_GET(r) \ 4785 (r).fcm_fcmac_pcfg[0] 4786 4787 4788 /* 4789 * These macros can be used to access individual fields. 4790 */ 4791 #define bcm84756_a0_FCM_FCMAC_PCFGr_PCFG_RXEf_GET(c,r) \ 4792 (((r).fcm_fcmac_pcfg[0]) & 0x1) 4793 4794 #define bcm84756_a0_FCM_FCMAC_PCFGr_PCFG_RXEf_SET(c,r,f) \ 4795 (r).fcm_fcmac_pcfg[0]=(((r).fcm_fcmac_pcfg[0] & ~((buint32_t)0x1)) | \ 4796 (((buint32_t)f) & 0x1)) 4797 4798 #define bcm84756_a0_FCM_FCMAC_PCFGr_PCFG_RXFFf_GET(c,r) \ 4799 ((((r).fcm_fcmac_pcfg[0]) >> 1) & 0x1) 4800 4801 #define bcm84756_a0_FCM_FCMAC_PCFGr_PCFG_RXFFf_SET(c,r,f) \ 4802 (r).fcm_fcmac_pcfg[0]=(((r).fcm_fcmac_pcfg[0] & ~((buint32_t)0x1 << 1)) | \ 4803 ((((buint32_t)f) & 0x1) << 1)) 4804 4805 #define bcm84756_a0_FCM_FCMAC_PCFGr_PCFG_FFCAf_GET(c,r) \ 4806 ((((r).fcm_fcmac_pcfg[0]) >> 2) & 0x1) 4807 4808 #define bcm84756_a0_FCM_FCMAC_PCFGr_PCFG_FFCAf_SET(c,r,f) \ 4809 (r).fcm_fcmac_pcfg[0]=(((r).fcm_fcmac_pcfg[0] & ~((buint32_t)0x1 << 2)) | \ 4810 ((((buint32_t)f) & 0x1) << 2)) 4811 4812 #define bcm84756_a0_FCM_FCMAC_PCFGr_PCFG_PCf_GET(c,r) \ 4813 ((((r).fcm_fcmac_pcfg[0]) >> 3) & 0x1) 4814 4815 #define bcm84756_a0_FCM_FCMAC_PCFGr_PCFG_PCf_SET(c,r,f) \ 4816 (r).fcm_fcmac_pcfg[0]=(((r).fcm_fcmac_pcfg[0] & ~((buint32_t)0x1 << 3)) | \ 4817 ((((buint32_t)f) & 0x1) << 3)) 4818 4819 #define bcm84756_a0_FCM_FCMAC_PCFGr_PCFG_ECLSDf_GET(c,r) \ 4820 ((((r).fcm_fcmac_pcfg[0]) >> 4) & 0x1) 4821 4822 #define bcm84756_a0_FCM_FCMAC_PCFGr_PCFG_ECLSDf_SET(c,r,f) \ 4823 (r).fcm_fcmac_pcfg[0]=(((r).fcm_fcmac_pcfg[0] & ~((buint32_t)0x1 << 4)) | \ 4824 ((((buint32_t)f) & 0x1) << 4)) 4825 4826 #define bcm84756_a0_FCM_FCMAC_PCFGr_PCFG_DLPf_GET(c,r) \ 4827 ((((r).fcm_fcmac_pcfg[0]) >> 5) & 0x1) 4828 4829 #define bcm84756_a0_FCM_FCMAC_PCFGr_PCFG_DLPf_SET(c,r,f) \ 4830 (r).fcm_fcmac_pcfg[0]=(((r).fcm_fcmac_pcfg[0] & ~((buint32_t)0x1 << 5)) | \ 4831 ((((buint32_t)f) & 0x1) << 5)) 4832 4833 #define bcm84756_a0_FCM_FCMAC_PCFGr_PCFG_ABFFf_GET(c,r) \ 4834 ((((r).fcm_fcmac_pcfg[0]) >> 6) & 0x1) 4835 4836 #define bcm84756_a0_FCM_FCMAC_PCFGr_PCFG_ABFFf_SET(c,r,f) \ 4837 (r).fcm_fcmac_pcfg[0]=(((r).fcm_fcmac_pcfg[0] & ~((buint32_t)0x1 << 6)) | \ 4838 ((((buint32_t)f) & 0x1) << 6)) 4839 4840 #define bcm84756_a0_FCM_FCMAC_PCFGr_PCFG_LBEf_GET(c,r) \ 4841 ((((r).fcm_fcmac_pcfg[0]) >> 7) & 0x1) 4842 4843 #define bcm84756_a0_FCM_FCMAC_PCFGr_PCFG_LBEf_SET(c,r,f) \ 4844 (r).fcm_fcmac_pcfg[0]=(((r).fcm_fcmac_pcfg[0] & ~((buint32_t)0x1 << 7)) | \ 4845 ((((buint32_t)f) & 0x1) << 7)) 4846 4847 #define bcm84756_a0_FCM_FCMAC_PCFGr_PCFG_PSDf_GET(c,r) \ 4848 ((((r).fcm_fcmac_pcfg[0]) >> 8) & 0x1) 4849 4850 #define bcm84756_a0_FCM_FCMAC_PCFGr_PCFG_PSDf_SET(c,r,f) \ 4851 (r).fcm_fcmac_pcfg[0]=(((r).fcm_fcmac_pcfg[0] & ~((buint32_t)0x1 << 8)) | \ 4852 ((((buint32_t)f) & 0x1) << 8)) 4853 4854 #define bcm84756_a0_FCM_FCMAC_PCFGr_PCFG_FFCBf_GET(c,r) \ 4855 ((((r).fcm_fcmac_pcfg[0]) >> 9) & 0x1) 4856 4857 #define bcm84756_a0_FCM_FCMAC_PCFGr_PCFG_FFCBf_SET(c,r,f) \ 4858 (r).fcm_fcmac_pcfg[0]=(((r).fcm_fcmac_pcfg[0] & ~((buint32_t)0x1 << 9)) | \ 4859 ((((buint32_t)f) & 0x1) << 9)) 4860 4861 #define bcm84756_a0_FCM_FCMAC_PCFGr_PCFG_LDHDf_GET(c,r) \ 4862 ((((r).fcm_fcmac_pcfg[0]) >> 10) & 0x1) 4863 4864 #define bcm84756_a0_FCM_FCMAC_PCFGr_PCFG_LDHDf_SET(c,r,f) \ 4865 (r).fcm_fcmac_pcfg[0]=(((r).fcm_fcmac_pcfg[0] & ~((buint32_t)0x1 << 10)) | \ 4866 ((((buint32_t)f) & 0x1) << 10)) 4867 4868 #define bcm84756_a0_FCM_FCMAC_PCFGr_PCFG_SNTOf_GET(c,r) \ 4869 ((((r).fcm_fcmac_pcfg[0]) >> 11) & 0x1) 4870 4871 #define bcm84756_a0_FCM_FCMAC_PCFGr_PCFG_SNTOf_SET(c,r,f) \ 4872 (r).fcm_fcmac_pcfg[0]=(((r).fcm_fcmac_pcfg[0] & ~((buint32_t)0x1 << 11)) | \ 4873 ((((buint32_t)f) & 0x1) << 11)) 4874 4875 #define bcm84756_a0_FCM_FCMAC_PCFGr_PCFG_TMEf_GET(c,r) \ 4876 ((((r).fcm_fcmac_pcfg[0]) >> 12) & 0x1) 4877 4878 #define bcm84756_a0_FCM_FCMAC_PCFGr_PCFG_TMEf_SET(c,r,f) \ 4879 (r).fcm_fcmac_pcfg[0]=(((r).fcm_fcmac_pcfg[0] & ~((buint32_t)0x1 << 12)) | \ 4880 ((((buint32_t)f) & 0x1) << 12)) 4881 4882 #define bcm84756_a0_FCM_FCMAC_PCFGr_PCFG_ALFf_GET(c,r) \ 4883 ((((r).fcm_fcmac_pcfg[0]) >> 13) & 0x1) 4884 4885 #define bcm84756_a0_FCM_FCMAC_PCFGr_PCFG_ALFf_SET(c,r,f) \ 4886 (r).fcm_fcmac_pcfg[0]=(((r).fcm_fcmac_pcfg[0] & ~((buint32_t)0x1 << 13)) | \ 4887 ((((buint32_t)f) & 0x1) << 13)) 4888 4889 #define bcm84756_a0_FCM_FCMAC_PCFGr_PCFG_LPDf_GET(c,r) \ 4890 ((((r).fcm_fcmac_pcfg[0]) >> 14) & 0x1) 4891 4892 #define bcm84756_a0_FCM_FCMAC_PCFGr_PCFG_LPDf_SET(c,r,f) \ 4893 (r).fcm_fcmac_pcfg[0]=(((r).fcm_fcmac_pcfg[0] & ~((buint32_t)0x1 << 14)) | \ 4894 ((((buint32_t)f) & 0x1) << 14)) 4895 4896 #define bcm84756_a0_FCM_FCMAC_PCFGr_PCFG_FOPNDf_GET(c,r) \ 4897 ((((r).fcm_fcmac_pcfg[0]) >> 15) & 0x1) 4898 4899 #define bcm84756_a0_FCM_FCMAC_PCFGr_PCFG_FOPNDf_SET(c,r,f) \ 4900 (r).fcm_fcmac_pcfg[0]=(((r).fcm_fcmac_pcfg[0] & ~((buint32_t)0x1 << 15)) | \ 4901 ((((buint32_t)f) & 0x1) << 15)) 4902 4903 #define bcm84756_a0_FCM_FCMAC_PCFGr_PCFG_TXEf_GET(c,r) \ 4904 ((((r).fcm_fcmac_pcfg[0]) >> 16) & 0x1) 4905 4906 #define bcm84756_a0_FCM_FCMAC_PCFGr_PCFG_TXEf_SET(c,r,f) \ 4907 (r).fcm_fcmac_pcfg[0]=(((r).fcm_fcmac_pcfg[0] & ~((buint32_t)0x1 << 16)) | \ 4908 ((((buint32_t)f) & 0x1) << 16)) 4909 4910 #define bcm84756_a0_FCM_FCMAC_PCFGr_PCFG_TXFEf_GET(c,r) \ 4911 ((((r).fcm_fcmac_pcfg[0]) >> 17) & 0x1) 4912 4913 #define bcm84756_a0_FCM_FCMAC_PCFGr_PCFG_TXFEf_SET(c,r,f) \ 4914 (r).fcm_fcmac_pcfg[0]=(((r).fcm_fcmac_pcfg[0] & ~((buint32_t)0x1 << 17)) | \ 4915 ((((buint32_t)f) & 0x1) << 17)) 4916 4917 #define bcm84756_a0_FCM_FCMAC_PCFGr_PCFG_TXFFf_GET(c,r) \ 4918 ((((r).fcm_fcmac_pcfg[0]) >> 18) & 0x1) 4919 4920 #define bcm84756_a0_FCM_FCMAC_PCFGr_PCFG_TXFFf_SET(c,r,f) \ 4921 (r).fcm_fcmac_pcfg[0]=(((r).fcm_fcmac_pcfg[0] & ~((buint32_t)0x1 << 18)) | \ 4922 ((((buint32_t)f) & 0x1) << 18)) 4923 4924 #define bcm84756_a0_FCM_FCMAC_PCFGr_PCFG_LACf_GET(c,r) \ 4925 ((((r).fcm_fcmac_pcfg[0]) >> 19) & 0x1) 4926 4927 #define bcm84756_a0_FCM_FCMAC_PCFGr_PCFG_LACf_SET(c,r,f) \ 4928 (r).fcm_fcmac_pcfg[0]=(((r).fcm_fcmac_pcfg[0] & ~((buint32_t)0x1 << 19)) | \ 4929 ((((buint32_t)f) & 0x1) << 19)) 4930 4931 #define bcm84756_a0_FCM_FCMAC_PCFGr_PCFG_LAOf_GET(c,r) \ 4932 ((((r).fcm_fcmac_pcfg[0]) >> 20) & 0x1) 4933 4934 #define bcm84756_a0_FCM_FCMAC_PCFGr_PCFG_LAOf_SET(c,r,f) \ 4935 (r).fcm_fcmac_pcfg[0]=(((r).fcm_fcmac_pcfg[0] & ~((buint32_t)0x1 << 20)) | \ 4936 ((((buint32_t)f) & 0x1) << 20)) 4937 4938 #define bcm84756_a0_FCM_FCMAC_PCFGr_PCFG_ABMf_GET(c,r) \ 4939 ((((r).fcm_fcmac_pcfg[0]) >> 21) & 0x1) 4940 4941 #define bcm84756_a0_FCM_FCMAC_PCFGr_PCFG_ABMf_SET(c,r,f) \ 4942 (r).fcm_fcmac_pcfg[0]=(((r).fcm_fcmac_pcfg[0] & ~((buint32_t)0x1 << 21)) | \ 4943 ((((buint32_t)f) & 0x1) << 21)) 4944 4945 #define bcm84756_a0_FCM_FCMAC_PCFGr_PCFG_LPRVf_GET(c,r) \ 4946 ((((r).fcm_fcmac_pcfg[0]) >> 22) & 0x1) 4947 4948 #define bcm84756_a0_FCM_FCMAC_PCFGr_PCFG_LPRVf_SET(c,r,f) \ 4949 (r).fcm_fcmac_pcfg[0]=(((r).fcm_fcmac_pcfg[0] & ~((buint32_t)0x1 << 22)) | \ 4950 ((((buint32_t)f) & 0x1) << 22)) 4951 4952 #define bcm84756_a0_FCM_FCMAC_PCFGr_PCFG_DOSCf_GET(c,r) \ 4953 ((((r).fcm_fcmac_pcfg[0]) >> 23) & 0x1) 4954 4955 #define bcm84756_a0_FCM_FCMAC_PCFGr_PCFG_DOSCf_SET(c,r,f) \ 4956 (r).fcm_fcmac_pcfg[0]=(((r).fcm_fcmac_pcfg[0] & ~((buint32_t)0x1 << 23)) | \ 4957 ((((buint32_t)f) & 0x1) << 23)) 4958 4959 #define bcm84756_a0_FCM_FCMAC_PCFGr_PCFG_DBB0LRf_GET(c,r) \ 4960 ((((r).fcm_fcmac_pcfg[0]) >> 24) & 0x1) 4961 4962 #define bcm84756_a0_FCM_FCMAC_PCFGr_PCFG_DBB0LRf_SET(c,r,f) \ 4963 (r).fcm_fcmac_pcfg[0]=(((r).fcm_fcmac_pcfg[0] & ~((buint32_t)0x1 << 24)) | \ 4964 ((((buint32_t)f) & 0x1) << 24)) 4965 4966 #define bcm84756_a0_FCM_FCMAC_PCFGr_PCFG_NLPf_GET(c,r) \ 4967 ((((r).fcm_fcmac_pcfg[0]) >> 25) & 0x1) 4968 4969 #define bcm84756_a0_FCM_FCMAC_PCFGr_PCFG_NLPf_SET(c,r,f) \ 4970 (r).fcm_fcmac_pcfg[0]=(((r).fcm_fcmac_pcfg[0] & ~((buint32_t)0x1 << 25)) | \ 4971 ((((buint32_t)f) & 0x1) << 25)) 4972 4973 #define bcm84756_a0_FCM_FCMAC_PCFGr_PCFG_ICRCf_GET(c,r) \ 4974 ((((r).fcm_fcmac_pcfg[0]) >> 26) & 0x1) 4975 4976 #define bcm84756_a0_FCM_FCMAC_PCFGr_PCFG_ICRCf_SET(c,r,f) \ 4977 (r).fcm_fcmac_pcfg[0]=(((r).fcm_fcmac_pcfg[0] & ~((buint32_t)0x1 << 26)) | \ 4978 ((((buint32_t)f) & 0x1) << 26)) 4979 4980 #define bcm84756_a0_FCM_FCMAC_PCFGr_PCFG_FSIDf_GET(c,r) \ 4981 ((((r).fcm_fcmac_pcfg[0]) >> 27) & 0x1) 4982 4983 #define bcm84756_a0_FCM_FCMAC_PCFGr_PCFG_FSIDf_SET(c,r,f) \ 4984 (r).fcm_fcmac_pcfg[0]=(((r).fcm_fcmac_pcfg[0] & ~((buint32_t)0x1 << 27)) | \ 4985 ((((buint32_t)f) & 0x1) << 27)) 4986 4987 #define bcm84756_a0_FCM_FCMAC_PCFGr_PCFG_CLIPf_GET(c,r) \ 4988 ((((r).fcm_fcmac_pcfg[0]) >> 28) & 0x1) 4989 4990 #define bcm84756_a0_FCM_FCMAC_PCFGr_PCFG_CLIPf_SET(c,r,f) \ 4991 (r).fcm_fcmac_pcfg[0]=(((r).fcm_fcmac_pcfg[0] & ~((buint32_t)0x1 << 28)) | \ 4992 ((((buint32_t)f) & 0x1) << 28)) 4993 4994 #define bcm84756_a0_FCM_FCMAC_PCFGr_PCFG_RCLSMONIf_GET(c,r) \ 4995 ((((r).fcm_fcmac_pcfg[0]) >> 29) & 0x1) 4996 4997 #define bcm84756_a0_FCM_FCMAC_PCFGr_PCFG_RCLSMONIf_SET(c,r,f) \ 4998 (r).fcm_fcmac_pcfg[0]=(((r).fcm_fcmac_pcfg[0] & ~((buint32_t)0x1 << 29)) | \ 4999 ((((buint32_t)f) & 0x1) << 29)) 5000 5001 #define bcm84756_a0_FCM_FCMAC_PCFGr_PCFG_LIP60f_GET(c,r) \ 5002 ((((r).fcm_fcmac_pcfg[0]) >> 30) & 0x1) 5003 5004 #define bcm84756_a0_FCM_FCMAC_PCFGr_PCFG_LIP60f_SET(c,r,f) \ 5005 (r).fcm_fcmac_pcfg[0]=(((r).fcm_fcmac_pcfg[0] & ~((buint32_t)0x1 << 30)) | \ 5006 ((((buint32_t)f) & 0x1) << 30)) 5007 5008 #define bcm84756_a0_FCM_FCMAC_PCFGr_PCFG_LACOPND_DISf_GET(c,r) \ 5009 ((((r).fcm_fcmac_pcfg[0]) >> 31) & 0x1) 5010 5011 #define bcm84756_a0_FCM_FCMAC_PCFGr_PCFG_LACOPND_DISf_SET(c,r,f) \ 5012 (r).fcm_fcmac_pcfg[0]=(((r).fcm_fcmac_pcfg[0] & ~((buint32_t)0x1 << 31)) | \ 5013 ((((buint32_t)f) & 0x1) << 31)) 5014 5015 5016 /* 5017 * These macros can be used to access FCM_FCMAC_PCFG. 5018 */ 5019 #define bcm84756_a0_READ_FCM_FCMAC_PCFGr(c,r) \ 5020 BFCMAP_REG32_READ((c),bcm84756_a0_FCM_FCMAC_PCFGr((c)),&((r)._fcm_fcmac_pcfg)) 5021 5022 #define bcm84756_a0_WRITE_FCM_FCMAC_PCFGr(c,r) \ 5023 BFCMAP_REG32_WRITE((c),bcm84756_a0_FCM_FCMAC_PCFGr((c)),&((r)._fcm_fcmac_pcfg)) 5024 5025 /******************************************************************************* 5026 * End of 'bcm84756_a0_FCM_FCMAC_PCFGr' 5027 */ 5028 5029 5030 5031 5032 /******************************************************************************* 5033 * CHIP: bcm84756_a0 5034 * REGISTER: FCM_FCMAC_PCFG1 5035 * BLOCKS: SECPORT 5036 * DESCRIPTION : 5037 * ADDR PCFG1 7'h19 // Port configuration reg 1 R/W. 5038 * 5039 * SIZE: 32 5040 * 5041 * FIELDS DESCRIPTION: 5042 * PCFG1_EFF : 5043 * EFIFO bias insert/delete marks. 5044 * 5045 * PCFG1_EOFNI : 5046 * EOFni is used instead of EOFa for error frames. Set this bit to replace 5047 * EOFn and EOFt when CRC error detected. If CRC is bad and option EOFni 5048 * is set, changes EOFn and EOFt to EOFni, else if CRC is bad and option 5049 * EOFni is not set, changes EOF to EOFa. 5050 * 5051 * PCFG1_FWCRRDY0 : 5052 * BBCredit recovery hook -- Firmware increment of VC0 TX RRDY0 pending 5053 * counter. 5054 * 5055 * PCFG1_FWCRRDY1 : 5056 * BBCredit recovery hook -- Firmware increment of VC0 TX RRDY1 pending 5057 * counter. 5058 * 5059 * PCFG1_ARBFFI : 5060 * Firmware option to ignore ARB(ff). 5061 * 5062 * PCFG1_DFR : 5063 * Firmware option to disable TXB frame read. 5064 * 5065 * PCFG1_ACF_S : 5066 * Access flag set for debugging purpose. 5067 * 5068 * PCFG1_ACF_C : 5069 * Access flag clear for debugging purpose. 5070 * 5071 * PCFG1_ARBW_S : 5072 * Arbitration won set for debugging purpose. 5073 * 5074 * PCFG1_ARBW_C : 5075 * Arbitration won clear for debugging purpose. 5076 * 5077 * PCFG1_ARBP_S : 5078 * Arbitration pending set for debugging purpose. 5079 * 5080 * PCFG1_ARBP_C : 5081 * Arbitration pending clear for debugging purpose. 5082 * 5083 * PCFG1_DPLX_S : 5084 * DUPLEX flag set for debugging purpose. 5085 * 5086 * PCFG1_DPLX_C : 5087 * DUPLEX flag clear for debugging purpose. 5088 * 5089 * PCFG1_RPL_S : 5090 * REPLICATE flag set for debugging purpose. 5091 * 5092 * PCFG1_RPL_C : 5093 * REPLICATE flag clear for debugging purpose. 5094 * 5095 * PCFG1_BP_S : 5096 * BYPASS flag set for debugging purpose. 5097 * 5098 * PCFG1_BP_C : 5099 * BYPASS flag clear for debugging purpose. 5100 * 5101 * PCFG1_DHD_S : 5102 * DHD flag set for debugging purpose. 5103 * 5104 * PCFG1_DHD_C : 5105 * DHD flag clear for debugging purpose. 5106 * 5107 * PCFG1_ERRI_S : 5108 * ERR INIT flag set for debugging purpose. 5109 * 5110 * PCFG1_ERRI_C : 5111 * ERR INIT flag clear for debugging purpose. 5112 * 5113 * PCFG1_ARBFS_S : 5114 * ARBF SENT flag set for debugging purpose. 5115 * 5116 * PCFG1_ARBFS_C : 5117 * ARBF SENT flag clear for debugging purpos. 5118 * 5119 * PCFG1_PRT_S : 5120 * PARTICIPATE flag set for debugging purpose. 5121 * 5122 * PCFG1_PRT_C : 5123 * PARTICIPATE flag clear for debugging purpose. 5124 * 5125 * PCFG1_LIM_S : 5126 * LIM flag set for debugging purpose. 5127 * 5128 * PCFG1_LIM_C : 5129 * LIM flag clear for debugging purpose. 5130 * 5131 * PCFG1_X2IC : 5132 * Xmit 2 idles clear after xmitted 2 idles (no prim det(idle) required). 5133 * Read returns 0. 5134 * 5135 * PCFG1_TTM : 5136 * Timer test mode. Read returns 0. 5137 * 5138 * PCFG1_SLP : 5139 * Suppress loop primitives. Read returns 0. 5140 */ 5141 #define bcm84756_a0_FCM_FCMAC_PCFG1r(c) \ 5142 (0x1310007e + (BFCMAP_PORT((c)) << 12)) 5143 5144 #define bcm84756_a0_FCM_FCMAC_PCFG1r_SIZE 1 5145 5146 /* 5147 * This structure should be used to declare and program FCM_FCMAC_PCFG1. 5148 */ 5149 typedef union bcm84756_a0_FCM_FCMAC_PCFG1r_s { 5150 buint32_t v[1]; 5151 buint32_t fcm_fcmac_pcfg1[1]; 5152 buint32_t _fcm_fcmac_pcfg1; 5153 } bcm84756_a0_FCM_FCMAC_PCFG1r_t; 5154 5155 #define bcm84756_a0_FCM_FCMAC_PCFG1r_CLR(r) \ 5156 (r).fcm_fcmac_pcfg1[0] = 0 5157 5158 #define bcm84756_a0_FCM_FCMAC_PCFG1r_SET(r,d) \ 5159 (r).fcm_fcmac_pcfg1[0] = d 5160 5161 #define bcm84756_a0_FCM_FCMAC_PCFG1r_GET(r) \ 5162 (r).fcm_fcmac_pcfg1[0] 5163 5164 5165 /* 5166 * These macros can be used to access individual fields. 5167 */ 5168 #define bcm84756_a0_FCM_FCMAC_PCFG1r_PCFG1_EFFf_GET(c,r) \ 5169 (((r).fcm_fcmac_pcfg1[0]) & 0x3) 5170 5171 #define bcm84756_a0_FCM_FCMAC_PCFG1r_PCFG1_EFFf_SET(c,r,f) \ 5172 (r).fcm_fcmac_pcfg1[0]=(((r).fcm_fcmac_pcfg1[0] & ~((buint32_t)0x3)) | \ 5173 (((buint32_t)f) & 0x3)) 5174 5175 #define bcm84756_a0_FCM_FCMAC_PCFG1r_PCFG1_EOFNIf_GET(c,r) \ 5176 ((((r).fcm_fcmac_pcfg1[0]) >> 2) & 0x1) 5177 5178 #define bcm84756_a0_FCM_FCMAC_PCFG1r_PCFG1_EOFNIf_SET(c,r,f) \ 5179 (r).fcm_fcmac_pcfg1[0]=(((r).fcm_fcmac_pcfg1[0] & ~((buint32_t)0x1 << 2)) | \ 5180 ((((buint32_t)f) & 0x1) << 2)) 5181 5182 #define bcm84756_a0_FCM_FCMAC_PCFG1r_PCFG1_FWCRRDY0f_GET(c,r) \ 5183 ((((r).fcm_fcmac_pcfg1[0]) >> 3) & 0x1) 5184 5185 #define bcm84756_a0_FCM_FCMAC_PCFG1r_PCFG1_FWCRRDY0f_SET(c,r,f) \ 5186 (r).fcm_fcmac_pcfg1[0]=(((r).fcm_fcmac_pcfg1[0] & ~((buint32_t)0x1 << 3)) | \ 5187 ((((buint32_t)f) & 0x1) << 3)) 5188 5189 #define bcm84756_a0_FCM_FCMAC_PCFG1r_PCFG1_FWCRRDY1f_GET(c,r) \ 5190 ((((r).fcm_fcmac_pcfg1[0]) >> 4) & 0x1) 5191 5192 #define bcm84756_a0_FCM_FCMAC_PCFG1r_PCFG1_FWCRRDY1f_SET(c,r,f) \ 5193 (r).fcm_fcmac_pcfg1[0]=(((r).fcm_fcmac_pcfg1[0] & ~((buint32_t)0x1 << 4)) | \ 5194 ((((buint32_t)f) & 0x1) << 4)) 5195 5196 #define bcm84756_a0_FCM_FCMAC_PCFG1r_PCFG1_ARBFFIf_GET(c,r) \ 5197 ((((r).fcm_fcmac_pcfg1[0]) >> 5) & 0x1) 5198 5199 #define bcm84756_a0_FCM_FCMAC_PCFG1r_PCFG1_ARBFFIf_SET(c,r,f) \ 5200 (r).fcm_fcmac_pcfg1[0]=(((r).fcm_fcmac_pcfg1[0] & ~((buint32_t)0x1 << 5)) | \ 5201 ((((buint32_t)f) & 0x1) << 5)) 5202 5203 #define bcm84756_a0_FCM_FCMAC_PCFG1r_PCFG1_DFRf_GET(c,r) \ 5204 ((((r).fcm_fcmac_pcfg1[0]) >> 6) & 0x1) 5205 5206 #define bcm84756_a0_FCM_FCMAC_PCFG1r_PCFG1_DFRf_SET(c,r,f) \ 5207 (r).fcm_fcmac_pcfg1[0]=(((r).fcm_fcmac_pcfg1[0] & ~((buint32_t)0x1 << 6)) | \ 5208 ((((buint32_t)f) & 0x1) << 6)) 5209 5210 #define bcm84756_a0_FCM_FCMAC_PCFG1r_PCFG1_ACF_Sf_GET(c,r) \ 5211 ((((r).fcm_fcmac_pcfg1[0]) >> 7) & 0x1) 5212 5213 #define bcm84756_a0_FCM_FCMAC_PCFG1r_PCFG1_ACF_Sf_SET(c,r,f) \ 5214 (r).fcm_fcmac_pcfg1[0]=(((r).fcm_fcmac_pcfg1[0] & ~((buint32_t)0x1 << 7)) | \ 5215 ((((buint32_t)f) & 0x1) << 7)) 5216 5217 #define bcm84756_a0_FCM_FCMAC_PCFG1r_PCFG1_ACF_Cf_GET(c,r) \ 5218 ((((r).fcm_fcmac_pcfg1[0]) >> 8) & 0x1) 5219 5220 #define bcm84756_a0_FCM_FCMAC_PCFG1r_PCFG1_ACF_Cf_SET(c,r,f) \ 5221 (r).fcm_fcmac_pcfg1[0]=(((r).fcm_fcmac_pcfg1[0] & ~((buint32_t)0x1 << 8)) | \ 5222 ((((buint32_t)f) & 0x1) << 8)) 5223 5224 #define bcm84756_a0_FCM_FCMAC_PCFG1r_PCFG1_ARBW_Sf_GET(c,r) \ 5225 ((((r).fcm_fcmac_pcfg1[0]) >> 9) & 0x1) 5226 5227 #define bcm84756_a0_FCM_FCMAC_PCFG1r_PCFG1_ARBW_Sf_SET(c,r,f) \ 5228 (r).fcm_fcmac_pcfg1[0]=(((r).fcm_fcmac_pcfg1[0] & ~((buint32_t)0x1 << 9)) | \ 5229 ((((buint32_t)f) & 0x1) << 9)) 5230 5231 #define bcm84756_a0_FCM_FCMAC_PCFG1r_PCFG1_ARBW_Cf_GET(c,r) \ 5232 ((((r).fcm_fcmac_pcfg1[0]) >> 10) & 0x1) 5233 5234 #define bcm84756_a0_FCM_FCMAC_PCFG1r_PCFG1_ARBW_Cf_SET(c,r,f) \ 5235 (r).fcm_fcmac_pcfg1[0]=(((r).fcm_fcmac_pcfg1[0] & ~((buint32_t)0x1 << 10)) | \ 5236 ((((buint32_t)f) & 0x1) << 10)) 5237 5238 #define bcm84756_a0_FCM_FCMAC_PCFG1r_PCFG1_ARBP_Sf_GET(c,r) \ 5239 ((((r).fcm_fcmac_pcfg1[0]) >> 11) & 0x1) 5240 5241 #define bcm84756_a0_FCM_FCMAC_PCFG1r_PCFG1_ARBP_Sf_SET(c,r,f) \ 5242 (r).fcm_fcmac_pcfg1[0]=(((r).fcm_fcmac_pcfg1[0] & ~((buint32_t)0x1 << 11)) | \ 5243 ((((buint32_t)f) & 0x1) << 11)) 5244 5245 #define bcm84756_a0_FCM_FCMAC_PCFG1r_PCFG1_ARBP_Cf_GET(c,r) \ 5246 ((((r).fcm_fcmac_pcfg1[0]) >> 12) & 0x1) 5247 5248 #define bcm84756_a0_FCM_FCMAC_PCFG1r_PCFG1_ARBP_Cf_SET(c,r,f) \ 5249 (r).fcm_fcmac_pcfg1[0]=(((r).fcm_fcmac_pcfg1[0] & ~((buint32_t)0x1 << 12)) | \ 5250 ((((buint32_t)f) & 0x1) << 12)) 5251 5252 #define bcm84756_a0_FCM_FCMAC_PCFG1r_PCFG1_DPLX_Sf_GET(c,r) \ 5253 ((((r).fcm_fcmac_pcfg1[0]) >> 13) & 0x1) 5254 5255 #define bcm84756_a0_FCM_FCMAC_PCFG1r_PCFG1_DPLX_Sf_SET(c,r,f) \ 5256 (r).fcm_fcmac_pcfg1[0]=(((r).fcm_fcmac_pcfg1[0] & ~((buint32_t)0x1 << 13)) | \ 5257 ((((buint32_t)f) & 0x1) << 13)) 5258 5259 #define bcm84756_a0_FCM_FCMAC_PCFG1r_PCFG1_DPLX_Cf_GET(c,r) \ 5260 ((((r).fcm_fcmac_pcfg1[0]) >> 14) & 0x1) 5261 5262 #define bcm84756_a0_FCM_FCMAC_PCFG1r_PCFG1_DPLX_Cf_SET(c,r,f) \ 5263 (r).fcm_fcmac_pcfg1[0]=(((r).fcm_fcmac_pcfg1[0] & ~((buint32_t)0x1 << 14)) | \ 5264 ((((buint32_t)f) & 0x1) << 14)) 5265 5266 #define bcm84756_a0_FCM_FCMAC_PCFG1r_PCFG1_RPL_Sf_GET(c,r) \ 5267 ((((r).fcm_fcmac_pcfg1[0]) >> 15) & 0x1) 5268 5269 #define bcm84756_a0_FCM_FCMAC_PCFG1r_PCFG1_RPL_Sf_SET(c,r,f) \ 5270 (r).fcm_fcmac_pcfg1[0]=(((r).fcm_fcmac_pcfg1[0] & ~((buint32_t)0x1 << 15)) | \ 5271 ((((buint32_t)f) & 0x1) << 15)) 5272 5273 #define bcm84756_a0_FCM_FCMAC_PCFG1r_PCFG1_RPL_Cf_GET(c,r) \ 5274 ((((r).fcm_fcmac_pcfg1[0]) >> 16) & 0x1) 5275 5276 #define bcm84756_a0_FCM_FCMAC_PCFG1r_PCFG1_RPL_Cf_SET(c,r,f) \ 5277 (r).fcm_fcmac_pcfg1[0]=(((r).fcm_fcmac_pcfg1[0] & ~((buint32_t)0x1 << 16)) | \ 5278 ((((buint32_t)f) & 0x1) << 16)) 5279 5280 #define bcm84756_a0_FCM_FCMAC_PCFG1r_PCFG1_BP_Sf_GET(c,r) \ 5281 ((((r).fcm_fcmac_pcfg1[0]) >> 17) & 0x1) 5282 5283 #define bcm84756_a0_FCM_FCMAC_PCFG1r_PCFG1_BP_Sf_SET(c,r,f) \ 5284 (r).fcm_fcmac_pcfg1[0]=(((r).fcm_fcmac_pcfg1[0] & ~((buint32_t)0x1 << 17)) | \ 5285 ((((buint32_t)f) & 0x1) << 17)) 5286 5287 #define bcm84756_a0_FCM_FCMAC_PCFG1r_PCFG1_BP_Cf_GET(c,r) \ 5288 ((((r).fcm_fcmac_pcfg1[0]) >> 18) & 0x1) 5289 5290 #define bcm84756_a0_FCM_FCMAC_PCFG1r_PCFG1_BP_Cf_SET(c,r,f) \ 5291 (r).fcm_fcmac_pcfg1[0]=(((r).fcm_fcmac_pcfg1[0] & ~((buint32_t)0x1 << 18)) | \ 5292 ((((buint32_t)f) & 0x1) << 18)) 5293 5294 #define bcm84756_a0_FCM_FCMAC_PCFG1r_PCFG1_DHD_Sf_GET(c,r) \ 5295 ((((r).fcm_fcmac_pcfg1[0]) >> 19) & 0x1) 5296 5297 #define bcm84756_a0_FCM_FCMAC_PCFG1r_PCFG1_DHD_Sf_SET(c,r,f) \ 5298 (r).fcm_fcmac_pcfg1[0]=(((r).fcm_fcmac_pcfg1[0] & ~((buint32_t)0x1 << 19)) | \ 5299 ((((buint32_t)f) & 0x1) << 19)) 5300 5301 #define bcm84756_a0_FCM_FCMAC_PCFG1r_PCFG1_DHD_Cf_GET(c,r) \ 5302 ((((r).fcm_fcmac_pcfg1[0]) >> 20) & 0x1) 5303 5304 #define bcm84756_a0_FCM_FCMAC_PCFG1r_PCFG1_DHD_Cf_SET(c,r,f) \ 5305 (r).fcm_fcmac_pcfg1[0]=(((r).fcm_fcmac_pcfg1[0] & ~((buint32_t)0x1 << 20)) | \ 5306 ((((buint32_t)f) & 0x1) << 20)) 5307 5308 #define bcm84756_a0_FCM_FCMAC_PCFG1r_PCFG1_ERRI_Sf_GET(c,r) \ 5309 ((((r).fcm_fcmac_pcfg1[0]) >> 21) & 0x1) 5310 5311 #define bcm84756_a0_FCM_FCMAC_PCFG1r_PCFG1_ERRI_Sf_SET(c,r,f) \ 5312 (r).fcm_fcmac_pcfg1[0]=(((r).fcm_fcmac_pcfg1[0] & ~((buint32_t)0x1 << 21)) | \ 5313 ((((buint32_t)f) & 0x1) << 21)) 5314 5315 #define bcm84756_a0_FCM_FCMAC_PCFG1r_PCFG1_ERRI_Cf_GET(c,r) \ 5316 ((((r).fcm_fcmac_pcfg1[0]) >> 22) & 0x1) 5317 5318 #define bcm84756_a0_FCM_FCMAC_PCFG1r_PCFG1_ERRI_Cf_SET(c,r,f) \ 5319 (r).fcm_fcmac_pcfg1[0]=(((r).fcm_fcmac_pcfg1[0] & ~((buint32_t)0x1 << 22)) | \ 5320 ((((buint32_t)f) & 0x1) << 22)) 5321 5322 #define bcm84756_a0_FCM_FCMAC_PCFG1r_PCFG1_ARBFS_Sf_GET(c,r) \ 5323 ((((r).fcm_fcmac_pcfg1[0]) >> 23) & 0x1) 5324 5325 #define bcm84756_a0_FCM_FCMAC_PCFG1r_PCFG1_ARBFS_Sf_SET(c,r,f) \ 5326 (r).fcm_fcmac_pcfg1[0]=(((r).fcm_fcmac_pcfg1[0] & ~((buint32_t)0x1 << 23)) | \ 5327 ((((buint32_t)f) & 0x1) << 23)) 5328 5329 #define bcm84756_a0_FCM_FCMAC_PCFG1r_PCFG1_ARBFS_Cf_GET(c,r) \ 5330 ((((r).fcm_fcmac_pcfg1[0]) >> 24) & 0x1) 5331 5332 #define bcm84756_a0_FCM_FCMAC_PCFG1r_PCFG1_ARBFS_Cf_SET(c,r,f) \ 5333 (r).fcm_fcmac_pcfg1[0]=(((r).fcm_fcmac_pcfg1[0] & ~((buint32_t)0x1 << 24)) | \ 5334 ((((buint32_t)f) & 0x1) << 24)) 5335 5336 #define bcm84756_a0_FCM_FCMAC_PCFG1r_PCFG1_PRT_Sf_GET(c,r) \ 5337 ((((r).fcm_fcmac_pcfg1[0]) >> 25) & 0x1) 5338 5339 #define bcm84756_a0_FCM_FCMAC_PCFG1r_PCFG1_PRT_Sf_SET(c,r,f) \ 5340 (r).fcm_fcmac_pcfg1[0]=(((r).fcm_fcmac_pcfg1[0] & ~((buint32_t)0x1 << 25)) | \ 5341 ((((buint32_t)f) & 0x1) << 25)) 5342 5343 #define bcm84756_a0_FCM_FCMAC_PCFG1r_PCFG1_PRT_Cf_GET(c,r) \ 5344 ((((r).fcm_fcmac_pcfg1[0]) >> 26) & 0x1) 5345 5346 #define bcm84756_a0_FCM_FCMAC_PCFG1r_PCFG1_PRT_Cf_SET(c,r,f) \ 5347 (r).fcm_fcmac_pcfg1[0]=(((r).fcm_fcmac_pcfg1[0] & ~((buint32_t)0x1 << 26)) | \ 5348 ((((buint32_t)f) & 0x1) << 26)) 5349 5350 #define bcm84756_a0_FCM_FCMAC_PCFG1r_PCFG1_LIM_Sf_GET(c,r) \ 5351 ((((r).fcm_fcmac_pcfg1[0]) >> 27) & 0x1) 5352 5353 #define bcm84756_a0_FCM_FCMAC_PCFG1r_PCFG1_LIM_Sf_SET(c,r,f) \ 5354 (r).fcm_fcmac_pcfg1[0]=(((r).fcm_fcmac_pcfg1[0] & ~((buint32_t)0x1 << 27)) | \ 5355 ((((buint32_t)f) & 0x1) << 27)) 5356 5357 #define bcm84756_a0_FCM_FCMAC_PCFG1r_PCFG1_LIM_Cf_GET(c,r) \ 5358 ((((r).fcm_fcmac_pcfg1[0]) >> 28) & 0x1) 5359 5360 #define bcm84756_a0_FCM_FCMAC_PCFG1r_PCFG1_LIM_Cf_SET(c,r,f) \ 5361 (r).fcm_fcmac_pcfg1[0]=(((r).fcm_fcmac_pcfg1[0] & ~((buint32_t)0x1 << 28)) | \ 5362 ((((buint32_t)f) & 0x1) << 28)) 5363 5364 #define bcm84756_a0_FCM_FCMAC_PCFG1r_PCFG1_X2ICf_GET(c,r) \ 5365 ((((r).fcm_fcmac_pcfg1[0]) >> 29) & 0x1) 5366 5367 #define bcm84756_a0_FCM_FCMAC_PCFG1r_PCFG1_X2ICf_SET(c,r,f) \ 5368 (r).fcm_fcmac_pcfg1[0]=(((r).fcm_fcmac_pcfg1[0] & ~((buint32_t)0x1 << 29)) | \ 5369 ((((buint32_t)f) & 0x1) << 29)) 5370 5371 #define bcm84756_a0_FCM_FCMAC_PCFG1r_PCFG1_TTMf_GET(c,r) \ 5372 ((((r).fcm_fcmac_pcfg1[0]) >> 30) & 0x1) 5373 5374 #define bcm84756_a0_FCM_FCMAC_PCFG1r_PCFG1_TTMf_SET(c,r,f) \ 5375 (r).fcm_fcmac_pcfg1[0]=(((r).fcm_fcmac_pcfg1[0] & ~((buint32_t)0x1 << 30)) | \ 5376 ((((buint32_t)f) & 0x1) << 30)) 5377 5378 #define bcm84756_a0_FCM_FCMAC_PCFG1r_PCFG1_SLPf_GET(c,r) \ 5379 ((((r).fcm_fcmac_pcfg1[0]) >> 31) & 0x1) 5380 5381 #define bcm84756_a0_FCM_FCMAC_PCFG1r_PCFG1_SLPf_SET(c,r,f) \ 5382 (r).fcm_fcmac_pcfg1[0]=(((r).fcm_fcmac_pcfg1[0] & ~((buint32_t)0x1 << 31)) | \ 5383 ((((buint32_t)f) & 0x1) << 31)) 5384 5385 5386 /* 5387 * These macros can be used to access FCM_FCMAC_PCFG1. 5388 */ 5389 #define bcm84756_a0_READ_FCM_FCMAC_PCFG1r(c,r) \ 5390 BFCMAP_REG32_READ((c),bcm84756_a0_FCM_FCMAC_PCFG1r((c)),&((r)._fcm_fcmac_pcfg1)) 5391 5392 #define bcm84756_a0_WRITE_FCM_FCMAC_PCFG1r(c,r) \ 5393 BFCMAP_REG32_WRITE((c),bcm84756_a0_FCM_FCMAC_PCFG1r((c)),&((r)._fcm_fcmac_pcfg1)) 5394 5395 /******************************************************************************* 5396 * End of 'bcm84756_a0_FCM_FCMAC_PCFG1r' 5397 */ 5398 5399 5400 /******************************************************************************* 5401 * CHIP: bcm84756_c0 5402 * REGISTER: FCM_FCMAC_PCFG2 5403 * BLOCKS: SECPORT 5404 * DESCRIPTION : 5405 * ADDR PCFG2 7'h13 // Port configuration reg 1 R/W. 5406 * 5407 * SIZE: 32 5408 * 5409 * FIELDS DESCRIPTION: 5410 * RX_ALTFW : 5411 * ARBFF Config bits. 5412 */ 5413 #define bcm84756_c0_FCM_FCMAC_PCFG2r(c) \ 5414 (0x13100077 + (BFCMAP_PORT((c)) << 12)) 5415 5416 #define bcm84756_c0_FCM_FCMAC_PCFG2r_SIZE 1 5417 5418 /* 5419 * This structure should be used to declare and program FCM_FCMAC_PCFG1. 5420 */ 5421 typedef union bcm84756_c0_FCM_FCMAC_PCFG2r_s { 5422 buint32_t v[1]; 5423 buint32_t fcm_fcmac_pcfg2[1]; 5424 buint32_t _fcm_fcmac_pcfg2; 5425 } bcm84756_c0_FCM_FCMAC_PCFG2r_t; 5426 5427 #define bcm84756_c0_FCM_FCMAC_PCFG2r_CLR(r) \ 5428 (r).fcm_fcmac_pcfg2[0] = 0 5429 5430 #define bcm84756_c0_FCM_FCMAC_PCFG2r_SET(r,d) \ 5431 (r).fcm_fcmac_pcfg2[0] = d 5432 5433 #define bcm84756_c0_FCM_FCMAC_PCFG2r_GET(r) \ 5434 (r).fcm_fcmac_pcfg2[0] 5435 5436 5437 /* 5438 * These macros can be used to access individual fields. 5439 */ 5440 #define bcm84756_c0_FCM_FCMAC_PCFG2r_RX_ALTFW_GET(c,r) \ 5441 (((r).fcm_fcmac_pcfg2[0]) & 0x3) 5442 5443 #define bcm84756_c0_FCM_FCMAC_PCFG2r_RX_ALTFW_SET(c,r,f) \ 5444 (r).fcm_fcmac_pcfg2[0]=(((r).fcm_fcmac_pcfg2[0] & ~((buint32_t)0x3)) | \ 5445 (((buint32_t)f) & 0x3)) 5446 5447 /* 5448 * These macros can be used to access FCM_FCMAC_PCFG1. 5449 */ 5450 #define bcm84756_c0_READ_FCM_FCMAC_PCFG2r(c,r) \ 5451 BFCMAP_REG32_READ((c),bcm84756_c0_FCM_FCMAC_PCFG2r((c)),&((r)._fcm_fcmac_pcfg2)) 5452 5453 #define bcm84756_c0_WRITE_FCM_FCMAC_PCFG2r(c,r) \ 5454 BFCMAP_REG32_WRITE((c),bcm84756_c0_FCM_FCMAC_PCFG2r((c)),&((r)._fcm_fcmac_pcfg2)) 5455 5456 /******************************************************************************* 5457 * End of 'bcm84756_c0_FCM_FCMAC_PCFG2r' 5458 */ 5459 5460 5461 /******************************************************************************* 5462 * CHIP: bcm84756_a0 5463 * REGISTER: FCM_FCMAC_PMAPW 5464 * BLOCKS: SECPORT 5465 * DESCRIPTION : 5466 * ADDR PMAPW 7'h0E // Proxy Map 1 register R/W. 5467 * 5468 * SIZE: 32 5469 * 5470 * FIELDS DESCRIPTION: 5471 * PMAP_W : 5472 * Assigned prxymap[127:96]. 5473 */ 5474 #define bcm84756_a0_FCM_FCMAC_PMAPWr(c) \ 5475 (0x13100073 + (BFCMAP_PORT((c)) << 12)) 5476 5477 #define bcm84756_a0_FCM_FCMAC_PMAPWr_SIZE 1 5478 5479 /* 5480 * This structure should be used to declare and program FCM_FCMAC_PMAPW. 5481 */ 5482 typedef union bcm84756_a0_FCM_FCMAC_PMAPWr_s { 5483 buint32_t v[1]; 5484 buint32_t fcm_fcmac_pmapw[1]; 5485 buint32_t _fcm_fcmac_pmapw; 5486 } bcm84756_a0_FCM_FCMAC_PMAPWr_t; 5487 5488 #define bcm84756_a0_FCM_FCMAC_PMAPWr_CLR(r) \ 5489 (r).fcm_fcmac_pmapw[0] = 0 5490 5491 #define bcm84756_a0_FCM_FCMAC_PMAPWr_SET(r,d) \ 5492 (r).fcm_fcmac_pmapw[0] = d 5493 5494 #define bcm84756_a0_FCM_FCMAC_PMAPWr_GET(r) \ 5495 (r).fcm_fcmac_pmapw[0] 5496 5497 5498 /* 5499 * These macros can be used to access individual fields. 5500 */ 5501 #define bcm84756_a0_FCM_FCMAC_PMAPWr_PMAP_Wf_GET(c,r) \ 5502 ((r).fcm_fcmac_pmapw[0]) 5503 5504 #define bcm84756_a0_FCM_FCMAC_PMAPWr_PMAP_Wf_SET(c,r,f) \ 5505 (r).fcm_fcmac_pmapw[0]=((buint32_t)f) 5506 5507 5508 /* 5509 * These macros can be used to access FCM_FCMAC_PMAPW. 5510 */ 5511 #define bcm84756_a0_READ_FCM_FCMAC_PMAPWr(c,r) \ 5512 BFCMAP_REG32_READ((c),bcm84756_a0_FCM_FCMAC_PMAPWr((c)),&((r)._fcm_fcmac_pmapw)) 5513 5514 #define bcm84756_a0_WRITE_FCM_FCMAC_PMAPWr(c,r) \ 5515 BFCMAP_REG32_WRITE((c),bcm84756_a0_FCM_FCMAC_PMAPWr((c)),&((r)._fcm_fcmac_pmapw)) 5516 5517 /******************************************************************************* 5518 * End of 'bcm84756_a0_FCM_FCMAC_PMAPWr' 5519 */ 5520 5521 5522 5523 5524 /******************************************************************************* 5525 * CHIP: bcm84756_a0 5526 * REGISTER: FCM_FCMAC_PMAPX 5527 * BLOCKS: SECPORT 5528 * DESCRIPTION : 5529 * ADDR PMAPX 7'h0F // Proxy Map 2 register R/W. 5530 * 5531 * SIZE: 32 5532 * 5533 * FIELDS DESCRIPTION: 5534 * PMAP_X : 5535 * Assigned prxymap[95:64]. 5536 */ 5537 #define bcm84756_a0_FCM_FCMAC_PMAPXr(c) \ 5538 (0x13100074 + (BFCMAP_PORT((c)) << 12)) 5539 5540 #define bcm84756_a0_FCM_FCMAC_PMAPXr_SIZE 1 5541 5542 /* 5543 * This structure should be used to declare and program FCM_FCMAC_PMAPX. 5544 */ 5545 typedef union bcm84756_a0_FCM_FCMAC_PMAPXr_s { 5546 buint32_t v[1]; 5547 buint32_t fcm_fcmac_pmapx[1]; 5548 buint32_t _fcm_fcmac_pmapx; 5549 } bcm84756_a0_FCM_FCMAC_PMAPXr_t; 5550 5551 #define bcm84756_a0_FCM_FCMAC_PMAPXr_CLR(r) \ 5552 (r).fcm_fcmac_pmapx[0] = 0 5553 5554 #define bcm84756_a0_FCM_FCMAC_PMAPXr_SET(r,d) \ 5555 (r).fcm_fcmac_pmapx[0] = d 5556 5557 #define bcm84756_a0_FCM_FCMAC_PMAPXr_GET(r) \ 5558 (r).fcm_fcmac_pmapx[0] 5559 5560 5561 /* 5562 * These macros can be used to access individual fields. 5563 */ 5564 #define bcm84756_a0_FCM_FCMAC_PMAPXr_PMAP_Xf_GET(c,r) \ 5565 ((r).fcm_fcmac_pmapx[0]) 5566 5567 #define bcm84756_a0_FCM_FCMAC_PMAPXr_PMAP_Xf_SET(c,r,f) \ 5568 (r).fcm_fcmac_pmapx[0]=((buint32_t)f) 5569 5570 5571 /* 5572 * These macros can be used to access FCM_FCMAC_PMAPX. 5573 */ 5574 #define bcm84756_a0_READ_FCM_FCMAC_PMAPXr(c,r) \ 5575 BFCMAP_REG32_READ((c),bcm84756_a0_FCM_FCMAC_PMAPXr((c)),&((r)._fcm_fcmac_pmapx)) 5576 5577 #define bcm84756_a0_WRITE_FCM_FCMAC_PMAPXr(c,r) \ 5578 BFCMAP_REG32_WRITE((c),bcm84756_a0_FCM_FCMAC_PMAPXr((c)),&((r)._fcm_fcmac_pmapx)) 5579 5580 /******************************************************************************* 5581 * End of 'bcm84756_a0_FCM_FCMAC_PMAPXr' 5582 */ 5583 5584 5585 5586 5587 /******************************************************************************* 5588 * CHIP: bcm84756_a0 5589 * REGISTER: FCM_FCMAC_PMAPY 5590 * BLOCKS: SECPORT 5591 * DESCRIPTION : 5592 * ADDR PMAPY 7'h10 // Proxy Map 3 register R/W. 5593 * 5594 * SIZE: 32 5595 * 5596 * FIELDS DESCRIPTION: 5597 * PMAP_Y : 5598 * Assigned prxymap[63:32]. 5599 */ 5600 #define bcm84756_a0_FCM_FCMAC_PMAPYr(c) \ 5601 (0x13100075 + (BFCMAP_PORT((c)) << 12)) 5602 5603 #define bcm84756_a0_FCM_FCMAC_PMAPYr_SIZE 1 5604 5605 /* 5606 * This structure should be used to declare and program FCM_FCMAC_PMAPY. 5607 */ 5608 typedef union bcm84756_a0_FCM_FCMAC_PMAPYr_s { 5609 buint32_t v[1]; 5610 buint32_t fcm_fcmac_pmapy[1]; 5611 buint32_t _fcm_fcmac_pmapy; 5612 } bcm84756_a0_FCM_FCMAC_PMAPYr_t; 5613 5614 #define bcm84756_a0_FCM_FCMAC_PMAPYr_CLR(r) \ 5615 (r).fcm_fcmac_pmapy[0] = 0 5616 5617 #define bcm84756_a0_FCM_FCMAC_PMAPYr_SET(r,d) \ 5618 (r).fcm_fcmac_pmapy[0] = d 5619 5620 #define bcm84756_a0_FCM_FCMAC_PMAPYr_GET(r) \ 5621 (r).fcm_fcmac_pmapy[0] 5622 5623 5624 /* 5625 * These macros can be used to access individual fields. 5626 */ 5627 #define bcm84756_a0_FCM_FCMAC_PMAPYr_PMAP_Yf_GET(c,r) \ 5628 ((r).fcm_fcmac_pmapy[0]) 5629 5630 #define bcm84756_a0_FCM_FCMAC_PMAPYr_PMAP_Yf_SET(c,r,f) \ 5631 (r).fcm_fcmac_pmapy[0]=((buint32_t)f) 5632 5633 5634 /* 5635 * These macros can be used to access FCM_FCMAC_PMAPY. 5636 */ 5637 #define bcm84756_a0_READ_FCM_FCMAC_PMAPYr(c,r) \ 5638 BFCMAP_REG32_READ((c),bcm84756_a0_FCM_FCMAC_PMAPYr((c)),&((r)._fcm_fcmac_pmapy)) 5639 5640 #define bcm84756_a0_WRITE_FCM_FCMAC_PMAPYr(c,r) \ 5641 BFCMAP_REG32_WRITE((c),bcm84756_a0_FCM_FCMAC_PMAPYr((c)),&((r)._fcm_fcmac_pmapy)) 5642 5643 /******************************************************************************* 5644 * End of 'bcm84756_a0_FCM_FCMAC_PMAPYr' 5645 */ 5646 5647 5648 5649 5650 /******************************************************************************* 5651 * CHIP: bcm84756_a0 5652 * REGISTER: FCM_FCMAC_PMAPZ 5653 * BLOCKS: SECPORT 5654 * DESCRIPTION : 5655 * ADDR PMAPZ 7'h11 // Proxy Map 4 register R/W. 5656 * 5657 * SIZE: 32 5658 * 5659 * FIELDS DESCRIPTION: 5660 * PMAP_Z : 5661 * Assigned prxymap[31:00]. 5662 */ 5663 #define bcm84756_a0_FCM_FCMAC_PMAPZr(c) \ 5664 (0x13100076 + (BFCMAP_PORT((c)) << 12)) 5665 5666 #define bcm84756_a0_FCM_FCMAC_PMAPZr_SIZE 1 5667 5668 /* 5669 * This structure should be used to declare and program FCM_FCMAC_PMAPZ. 5670 */ 5671 typedef union bcm84756_a0_FCM_FCMAC_PMAPZr_s { 5672 buint32_t v[1]; 5673 buint32_t fcm_fcmac_pmapz[1]; 5674 buint32_t _fcm_fcmac_pmapz; 5675 } bcm84756_a0_FCM_FCMAC_PMAPZr_t; 5676 5677 #define bcm84756_a0_FCM_FCMAC_PMAPZr_CLR(r) \ 5678 (r).fcm_fcmac_pmapz[0] = 0 5679 5680 #define bcm84756_a0_FCM_FCMAC_PMAPZr_SET(r,d) \ 5681 (r).fcm_fcmac_pmapz[0] = d 5682 5683 #define bcm84756_a0_FCM_FCMAC_PMAPZr_GET(r) \ 5684 (r).fcm_fcmac_pmapz[0] 5685 5686 5687 /* 5688 * These macros can be used to access individual fields. 5689 */ 5690 #define bcm84756_a0_FCM_FCMAC_PMAPZr_PMAP_Zf_GET(c,r) \ 5691 ((r).fcm_fcmac_pmapz[0]) 5692 5693 #define bcm84756_a0_FCM_FCMAC_PMAPZr_PMAP_Zf_SET(c,r,f) \ 5694 (r).fcm_fcmac_pmapz[0]=((buint32_t)f) 5695 5696 5697 /* 5698 * These macros can be used to access FCM_FCMAC_PMAPZ. 5699 */ 5700 #define bcm84756_a0_READ_FCM_FCMAC_PMAPZr(c,r) \ 5701 BFCMAP_REG32_READ((c),bcm84756_a0_FCM_FCMAC_PMAPZr((c)),&((r)._fcm_fcmac_pmapz)) 5702 5703 #define bcm84756_a0_WRITE_FCM_FCMAC_PMAPZr(c,r) \ 5704 BFCMAP_REG32_WRITE((c),bcm84756_a0_FCM_FCMAC_PMAPZr((c)),&((r)._fcm_fcmac_pmapz)) 5705 5706 /******************************************************************************* 5707 * End of 'bcm84756_a0_FCM_FCMAC_PMAPZr' 5708 */ 5709 5710 5711 5712 5713 /******************************************************************************* 5714 * CHIP: bcm84756_a0 5715 * REGISTER: FCM_FCMAC_PRIMCTRL 5716 * BLOCKS: SECPORT 5717 * DESCRIPTION : 5718 * ADDR PRIMCTRL 7'h1C // primitive generation control register. 5719 * 5720 * SIZE: 32 5721 * 5722 * FIELDS DESCRIPTION: 5723 * FC_PRIMCTRL_KC1 : 5724 * Generate prim with K28.5 transmit signal asserted. 5725 * 5726 * FC_PRIMCTRL_CNT : 5727 * Count of number of PRIMs to be sent when not in continuous mode. 5728 * 5729 * FC_PRIMCTRL_CONTINUOUS : 5730 * When set to 1, the primgen is continuous and the FC PRIMCTRL CNT field 5731 * has no affect. 5732 */ 5733 #define bcm84756_a0_FCM_FCMAC_PRIMCTRLr(c) \ 5734 (0x13100081 + (BFCMAP_PORT((c)) << 12)) 5735 5736 #define bcm84756_a0_FCM_FCMAC_PRIMCTRLr_SIZE 1 5737 5738 /* 5739 * This structure should be used to declare and program FCM_FCMAC_PRIMCTRL. 5740 */ 5741 typedef union bcm84756_a0_FCM_FCMAC_PRIMCTRLr_s { 5742 buint32_t v[1]; 5743 buint32_t fcm_fcmac_primctrl[1]; 5744 buint32_t _fcm_fcmac_primctrl; 5745 } bcm84756_a0_FCM_FCMAC_PRIMCTRLr_t; 5746 5747 #define bcm84756_a0_FCM_FCMAC_PRIMCTRLr_CLR(r) \ 5748 (r).fcm_fcmac_primctrl[0] = 0 5749 5750 #define bcm84756_a0_FCM_FCMAC_PRIMCTRLr_SET(r,d) \ 5751 (r).fcm_fcmac_primctrl[0] = d 5752 5753 #define bcm84756_a0_FCM_FCMAC_PRIMCTRLr_GET(r) \ 5754 (r).fcm_fcmac_primctrl[0] 5755 5756 5757 /* 5758 * These macros can be used to access individual fields. 5759 */ 5760 #define bcm84756_a0_FCM_FCMAC_PRIMCTRLr_FC_PRIMCTRL_KC1f_GET(c,r) \ 5761 (((r).fcm_fcmac_primctrl[0]) & 0x1) 5762 5763 #define bcm84756_a0_FCM_FCMAC_PRIMCTRLr_FC_PRIMCTRL_KC1f_SET(c,r,f) \ 5764 (r).fcm_fcmac_primctrl[0]=(((r).fcm_fcmac_primctrl[0] & ~((buint32_t)0x1)) | \ 5765 (((buint32_t)f) & 0x1)) 5766 5767 #define bcm84756_a0_FCM_FCMAC_PRIMCTRLr_FC_PRIMCTRL_CNTf_GET(c,r) \ 5768 ((((r).fcm_fcmac_primctrl[0]) >> 4) & 0xf) 5769 5770 #define bcm84756_a0_FCM_FCMAC_PRIMCTRLr_FC_PRIMCTRL_CNTf_SET(c,r,f) \ 5771 (r).fcm_fcmac_primctrl[0]=(((r).fcm_fcmac_primctrl[0] & ~((buint32_t)0xf << 4)) | \ 5772 ((((buint32_t)f) & 0xf) << 4)) 5773 5774 #define bcm84756_a0_FCM_FCMAC_PRIMCTRLr_FC_PRIMCTRL_CONTINUOUSf_GET(c,r) \ 5775 ((((r).fcm_fcmac_primctrl[0]) >> 8) & 0x1) 5776 5777 #define bcm84756_a0_FCM_FCMAC_PRIMCTRLr_FC_PRIMCTRL_CONTINUOUSf_SET(c,r,f) \ 5778 (r).fcm_fcmac_primctrl[0]=(((r).fcm_fcmac_primctrl[0] & ~((buint32_t)0x1 << 8)) | \ 5779 ((((buint32_t)f) & 0x1) << 8)) 5780 5781 5782 /* 5783 * These macros can be used to access FCM_FCMAC_PRIMCTRL. 5784 */ 5785 #define bcm84756_a0_READ_FCM_FCMAC_PRIMCTRLr(c,r) \ 5786 BFCMAP_REG32_READ((c),bcm84756_a0_FCM_FCMAC_PRIMCTRLr((c)),&((r)._fcm_fcmac_primctrl)) 5787 5788 #define bcm84756_a0_WRITE_FCM_FCMAC_PRIMCTRLr(c,r) \ 5789 BFCMAP_REG32_WRITE((c),bcm84756_a0_FCM_FCMAC_PRIMCTRLr((c)),&((r)._fcm_fcmac_primctrl)) 5790 5791 /******************************************************************************* 5792 * End of 'bcm84756_a0_FCM_FCMAC_PRIMCTRLr' 5793 */ 5794 5795 5796 5797 5798 /******************************************************************************* 5799 * CHIP: bcm84756_a0 5800 * REGISTER: FCM_FCMAC_PRIMVAL 5801 * BLOCKS: SECPORT 5802 * DESCRIPTION : 5803 * ADDR PRIM 7'h1D // primitive value generation register. 5804 * 5805 * SIZE: 32 5806 * 5807 * FIELDS DESCRIPTION: 5808 * VALUE : 5809 * 32-bit primitive code to be generated. 5810 */ 5811 #define bcm84756_a0_FCM_FCMAC_PRIMVALr(c) \ 5812 (0x13100082 + (BFCMAP_PORT((c)) << 12)) 5813 5814 #define bcm84756_a0_FCM_FCMAC_PRIMVALr_SIZE 1 5815 5816 /* 5817 * This structure should be used to declare and program FCM_FCMAC_PRIMVAL. 5818 */ 5819 typedef union bcm84756_a0_FCM_FCMAC_PRIMVALr_s { 5820 buint32_t v[1]; 5821 buint32_t fcm_fcmac_primval[1]; 5822 buint32_t _fcm_fcmac_primval; 5823 } bcm84756_a0_FCM_FCMAC_PRIMVALr_t; 5824 5825 #define bcm84756_a0_FCM_FCMAC_PRIMVALr_CLR(r) \ 5826 (r).fcm_fcmac_primval[0] = 0 5827 5828 #define bcm84756_a0_FCM_FCMAC_PRIMVALr_SET(r,d) \ 5829 (r).fcm_fcmac_primval[0] = d 5830 5831 #define bcm84756_a0_FCM_FCMAC_PRIMVALr_GET(r) \ 5832 (r).fcm_fcmac_primval[0] 5833 5834 5835 /* 5836 * These macros can be used to access individual fields. 5837 */ 5838 #define bcm84756_a0_FCM_FCMAC_PRIMVALr_VALUEf_GET(c,r) \ 5839 ((r).fcm_fcmac_primval[0]) 5840 5841 #define bcm84756_a0_FCM_FCMAC_PRIMVALr_VALUEf_SET(c,r,f) \ 5842 (r).fcm_fcmac_primval[0]=((buint32_t)f) 5843 5844 5845 /* 5846 * These macros can be used to access FCM_FCMAC_PRIMVAL. 5847 */ 5848 #define bcm84756_a0_READ_FCM_FCMAC_PRIMVALr(c,r) \ 5849 BFCMAP_REG32_READ((c),bcm84756_a0_FCM_FCMAC_PRIMVALr((c)),&((r)._fcm_fcmac_primval)) 5850 5851 #define bcm84756_a0_WRITE_FCM_FCMAC_PRIMVALr(c,r) \ 5852 BFCMAP_REG32_WRITE((c),bcm84756_a0_FCM_FCMAC_PRIMVALr((c)),&((r)._fcm_fcmac_primval)) 5853 5854 /******************************************************************************* 5855 * End of 'bcm84756_a0_FCM_FCMAC_PRIMVALr' 5856 */ 5857 5858 5859 5860 5861 /******************************************************************************* 5862 * CHIP: bcm84756_a0 5863 * REGISTER: FCM_FCMAC_RRDY0 5864 * BLOCKS: SECPORT 5865 * DESCRIPTION : 5866 * ADDR RRDY0 7'h15 // Programmable RRDY VC0 value register R/W. 5867 * 5868 * SIZE: 32 5869 * 5870 * FIELDS DESCRIPTION: 5871 * RRDY0_VALUE : 5872 * Programmable RRDY0 value. 5873 */ 5874 #define bcm84756_a0_FCM_FCMAC_RRDY0r(c) \ 5875 (0x1310007a + (BFCMAP_PORT((c)) << 12)) 5876 5877 #define bcm84756_a0_FCM_FCMAC_RRDY0r_SIZE 1 5878 5879 /* 5880 * This structure should be used to declare and program FCM_FCMAC_RRDY0. 5881 */ 5882 typedef union bcm84756_a0_FCM_FCMAC_RRDY0r_s { 5883 buint32_t v[1]; 5884 buint32_t fcm_fcmac_rrdy0[1]; 5885 buint32_t _fcm_fcmac_rrdy0; 5886 } bcm84756_a0_FCM_FCMAC_RRDY0r_t; 5887 5888 #define bcm84756_a0_FCM_FCMAC_RRDY0r_CLR(r) \ 5889 (r).fcm_fcmac_rrdy0[0] = 0 5890 5891 #define bcm84756_a0_FCM_FCMAC_RRDY0r_SET(r,d) \ 5892 (r).fcm_fcmac_rrdy0[0] = d 5893 5894 #define bcm84756_a0_FCM_FCMAC_RRDY0r_GET(r) \ 5895 (r).fcm_fcmac_rrdy0[0] 5896 5897 5898 /* 5899 * These macros can be used to access individual fields. 5900 */ 5901 #define bcm84756_a0_FCM_FCMAC_RRDY0r_RRDY0_VALUEf_GET(c,r) \ 5902 ((r).fcm_fcmac_rrdy0[0]) 5903 5904 #define bcm84756_a0_FCM_FCMAC_RRDY0r_RRDY0_VALUEf_SET(c,r,f) \ 5905 (r).fcm_fcmac_rrdy0[0]=((buint32_t)f) 5906 5907 5908 /* 5909 * These macros can be used to access FCM_FCMAC_RRDY0. 5910 */ 5911 #define bcm84756_a0_READ_FCM_FCMAC_RRDY0r(c,r) \ 5912 BFCMAP_REG32_READ((c),bcm84756_a0_FCM_FCMAC_RRDY0r((c)),&((r)._fcm_fcmac_rrdy0)) 5913 5914 #define bcm84756_a0_WRITE_FCM_FCMAC_RRDY0r(c,r) \ 5915 BFCMAP_REG32_WRITE((c),bcm84756_a0_FCM_FCMAC_RRDY0r((c)),&((r)._fcm_fcmac_rrdy0)) 5916 5917 /******************************************************************************* 5918 * End of 'bcm84756_a0_FCM_FCMAC_RRDY0r' 5919 */ 5920 5921 5922 5923 5924 /******************************************************************************* 5925 * CHIP: bcm84756_a0 5926 * REGISTER: FCM_FCMAC_RRDY1 5927 * BLOCKS: SECPORT 5928 * DESCRIPTION : 5929 * ADDR RRDY1 7'h16 // Programmable RRDY VC1 value register R/W. 5930 * 5931 * SIZE: 32 5932 * 5933 * FIELDS DESCRIPTION: 5934 * RRDY1_VALUE : 5935 * Programmable RRDY1 value. 5936 */ 5937 #define bcm84756_a0_FCM_FCMAC_RRDY1r(c) \ 5938 (0x1310007b + (BFCMAP_PORT((c)) << 12)) 5939 5940 #define bcm84756_a0_FCM_FCMAC_RRDY1r_SIZE 1 5941 5942 /* 5943 * This structure should be used to declare and program FCM_FCMAC_RRDY1. 5944 */ 5945 typedef union bcm84756_a0_FCM_FCMAC_RRDY1r_s { 5946 buint32_t v[1]; 5947 buint32_t fcm_fcmac_rrdy1[1]; 5948 buint32_t _fcm_fcmac_rrdy1; 5949 } bcm84756_a0_FCM_FCMAC_RRDY1r_t; 5950 5951 #define bcm84756_a0_FCM_FCMAC_RRDY1r_CLR(r) \ 5952 (r).fcm_fcmac_rrdy1[0] = 0 5953 5954 #define bcm84756_a0_FCM_FCMAC_RRDY1r_SET(r,d) \ 5955 (r).fcm_fcmac_rrdy1[0] = d 5956 5957 #define bcm84756_a0_FCM_FCMAC_RRDY1r_GET(r) \ 5958 (r).fcm_fcmac_rrdy1[0] 5959 5960 5961 /* 5962 * These macros can be used to access individual fields. 5963 */ 5964 #define bcm84756_a0_FCM_FCMAC_RRDY1r_RRDY1_VALUEf_GET(c,r) \ 5965 ((r).fcm_fcmac_rrdy1[0]) 5966 5967 #define bcm84756_a0_FCM_FCMAC_RRDY1r_RRDY1_VALUEf_SET(c,r,f) \ 5968 (r).fcm_fcmac_rrdy1[0]=((buint32_t)f) 5969 5970 5971 /* 5972 * These macros can be used to access FCM_FCMAC_RRDY1. 5973 */ 5974 #define bcm84756_a0_READ_FCM_FCMAC_RRDY1r(c,r) \ 5975 BFCMAP_REG32_READ((c),bcm84756_a0_FCM_FCMAC_RRDY1r((c)),&((r)._fcm_fcmac_rrdy1)) 5976 5977 #define bcm84756_a0_WRITE_FCM_FCMAC_RRDY1r(c,r) \ 5978 BFCMAP_REG32_WRITE((c),bcm84756_a0_FCM_FCMAC_RRDY1r((c)),&((r)._fcm_fcmac_rrdy1)) 5979 5980 /******************************************************************************* 5981 * End of 'bcm84756_a0_FCM_FCMAC_RRDY1r' 5982 */ 5983 5984 5985 5986 5987 /******************************************************************************* 5988 * CHIP: bcm84756_a0 5989 * REGISTER: FCM_FCMAC_RTTR 5990 * BLOCKS: SECPORT 5991 * DESCRIPTION : 5992 * ADDR RTTR 7'h14 // R T TOV reload register R/W. A write loads a new value 5993 * of r t tov 5994 * 5995 * SIZE: 32 5996 * 5997 * FIELDS DESCRIPTION: 5998 * RTTR_R_T_TOV : 5999 * A write loads a new value of R T TOV for the FC timers. 6000 */ 6001 #define bcm84756_a0_FCM_FCMAC_RTTRr(c) \ 6002 (0x13100079 + (BFCMAP_PORT((c)) << 12)) 6003 6004 #define bcm84756_a0_FCM_FCMAC_RTTRr_SIZE 1 6005 6006 /* 6007 * This structure should be used to declare and program FCM_FCMAC_RTTR. 6008 */ 6009 typedef union bcm84756_a0_FCM_FCMAC_RTTRr_s { 6010 buint32_t v[1]; 6011 buint32_t fcm_fcmac_rttr[1]; 6012 buint32_t _fcm_fcmac_rttr; 6013 } bcm84756_a0_FCM_FCMAC_RTTRr_t; 6014 6015 #define bcm84756_a0_FCM_FCMAC_RTTRr_CLR(r) \ 6016 (r).fcm_fcmac_rttr[0] = 0 6017 6018 #define bcm84756_a0_FCM_FCMAC_RTTRr_SET(r,d) \ 6019 (r).fcm_fcmac_rttr[0] = d 6020 6021 #define bcm84756_a0_FCM_FCMAC_RTTRr_GET(r) \ 6022 (r).fcm_fcmac_rttr[0] 6023 6024 6025 /* 6026 * These macros can be used to access individual fields. 6027 */ 6028 #define bcm84756_a0_FCM_FCMAC_RTTRr_RTTR_R_T_TOVf_GET(c,r) \ 6029 (((r).fcm_fcmac_rttr[0]) & 0xffff) 6030 6031 #define bcm84756_a0_FCM_FCMAC_RTTRr_RTTR_R_T_TOVf_SET(c,r,f) \ 6032 (r).fcm_fcmac_rttr[0]=(((r).fcm_fcmac_rttr[0] & ~((buint32_t)0xffff)) | \ 6033 (((buint32_t)f) & 0xffff)) 6034 6035 6036 /* 6037 * These macros can be used to access FCM_FCMAC_RTTR. 6038 */ 6039 #define bcm84756_a0_READ_FCM_FCMAC_RTTRr(c,r) \ 6040 BFCMAP_REG32_READ((c),bcm84756_a0_FCM_FCMAC_RTTRr((c)),&((r)._fcm_fcmac_rttr)) 6041 6042 #define bcm84756_a0_WRITE_FCM_FCMAC_RTTRr(c,r) \ 6043 BFCMAP_REG32_WRITE((c),bcm84756_a0_FCM_FCMAC_RTTRr((c)),&((r)._fcm_fcmac_rttr)) 6044 6045 /******************************************************************************* 6046 * End of 'bcm84756_a0_FCM_FCMAC_RTTRr' 6047 */ 6048 6049 6050 6051 6052 /******************************************************************************* 6053 * CHIP: bcm84756_a0 6054 * REGISTER: FCM_FCMAC_RXBBCR_MGR_CONFIG 6055 * BLOCKS: SECPORT 6056 * DESCRIPTION : 6057 * ADDR BBCREDIT shim config 7'h20 // RX BBCREDIT shim configuration. rw 6058 * 6059 * SIZE: 32 6060 * 6061 * FIELDS DESCRIPTION: 6062 * UNH2P1I_MODE : 6063 * RX K-char decode mode 1 = Kchar decodes only K28.5 (RD+ or RD-) as 6064 * required by UNH testcase 2.1i. 0 = Kchar decodes any valid K char. 6065 * 6066 * XGS_COUNTER_COMPAT_MODE : 6067 * When 0, counters are cleared on read and saturated at maximum count. 6068 * When 1 (XGS compatibility mode), counters maintain their values on read 6069 * and roll over on maximum count. 6070 * 6071 * CELL_SIZE : 6072 * Word size in frame buffers, units of bytes. Default is 16 bytes for 6073 * 128-bit wide buffer memory. 6074 */ 6075 #define bcm84756_a0_FCM_FCMAC_RXBBCR_MGR_CONFIGr(c) \ 6076 (0x13100000 + (BFCMAP_PORT((c)) << 12)) 6077 6078 #define bcm84756_a0_FCM_FCMAC_RXBBCR_MGR_CONFIGr_SIZE 1 6079 6080 /* 6081 * This structure should be used to declare and program FCM_FCMAC_RXBBCR_MGR_CONFIG. 6082 */ 6083 typedef union bcm84756_a0_FCM_FCMAC_RXBBCR_MGR_CONFIGr_s { 6084 buint32_t v[1]; 6085 buint32_t fcm_fcmac_rxbbcr_mgr_config[1]; 6086 buint32_t _fcm_fcmac_rxbbcr_mgr_config; 6087 } bcm84756_a0_FCM_FCMAC_RXBBCR_MGR_CONFIGr_t; 6088 6089 #define bcm84756_a0_FCM_FCMAC_RXBBCR_MGR_CONFIGr_CLR(r) \ 6090 (r).fcm_fcmac_rxbbcr_mgr_config[0] = 0 6091 6092 #define bcm84756_a0_FCM_FCMAC_RXBBCR_MGR_CONFIGr_SET(r,d) \ 6093 (r).fcm_fcmac_rxbbcr_mgr_config[0] = d 6094 6095 #define bcm84756_a0_FCM_FCMAC_RXBBCR_MGR_CONFIGr_GET(r) \ 6096 (r).fcm_fcmac_rxbbcr_mgr_config[0] 6097 6098 6099 /* 6100 * These macros can be used to access individual fields. 6101 */ 6102 #define bcm84756_a0_FCM_FCMAC_RXBBCR_MGR_CONFIGr_UNH2P1I_MODEf_GET(c,r) \ 6103 (((r).fcm_fcmac_rxbbcr_mgr_config[0]) & 0x1) 6104 6105 #define bcm84756_a0_FCM_FCMAC_RXBBCR_MGR_CONFIGr_UNH2P1I_MODEf_SET(c,r,f) \ 6106 (r).fcm_fcmac_rxbbcr_mgr_config[0]=(((r).fcm_fcmac_rxbbcr_mgr_config[0] & ~((buint32_t)0x1)) | \ 6107 (((buint32_t)f) & 0x1)) 6108 6109 #define bcm84756_a0_FCM_FCMAC_RXBBCR_MGR_CONFIGr_XGS_COUNTER_COMPAT_MODEf_GET(c,r) \ 6110 ((((r).fcm_fcmac_rxbbcr_mgr_config[0]) >> 1) & 0x1) 6111 6112 #define bcm84756_a0_FCM_FCMAC_RXBBCR_MGR_CONFIGr_XGS_COUNTER_COMPAT_MODEf_SET(c,r,f) \ 6113 (r).fcm_fcmac_rxbbcr_mgr_config[0]=(((r).fcm_fcmac_rxbbcr_mgr_config[0] & ~((buint32_t)0x1 << 1)) | \ 6114 ((((buint32_t)f) & 0x1) << 1)) 6115 6116 #define bcm84756_a0_FCM_FCMAC_RXBBCR_MGR_CONFIGr_CELL_SIZEf_GET(c,r) \ 6117 ((((r).fcm_fcmac_rxbbcr_mgr_config[0]) >> 16) & 0xffff) 6118 6119 #define bcm84756_a0_FCM_FCMAC_RXBBCR_MGR_CONFIGr_CELL_SIZEf_SET(c,r,f) \ 6120 (r).fcm_fcmac_rxbbcr_mgr_config[0]=(((r).fcm_fcmac_rxbbcr_mgr_config[0] & ~((buint32_t)0xffff << 16)) | \ 6121 ((((buint32_t)f) & 0xffff) << 16)) 6122 6123 6124 /* 6125 * These macros can be used to access FCM_FCMAC_RXBBCR_MGR_CONFIG. 6126 */ 6127 #define bcm84756_a0_READ_FCM_FCMAC_RXBBCR_MGR_CONFIGr(c,r) \ 6128 BFCMAP_REG32_READ((c),bcm84756_a0_FCM_FCMAC_RXBBCR_MGR_CONFIGr((c)),&((r)._fcm_fcmac_rxbbcr_mgr_config)) 6129 6130 #define bcm84756_a0_WRITE_FCM_FCMAC_RXBBCR_MGR_CONFIGr(c,r) \ 6131 BFCMAP_REG32_WRITE((c),bcm84756_a0_FCM_FCMAC_RXBBCR_MGR_CONFIGr((c)),&((r)._fcm_fcmac_rxbbcr_mgr_config)) 6132 6133 /******************************************************************************* 6134 * End of 'bcm84756_a0_FCM_FCMAC_RXBBCR_MGR_CONFIGr' 6135 */ 6136 6137 6138 6139 6140 /******************************************************************************* 6141 * CHIP: bcm84756_a0 6142 * REGISTER: FCM_FCMAC_TXOPNDCLS_TOV 6143 * BLOCKS: SECPORT 6144 * DESCRIPTION : 6145 * ADDR TXOPNDCLS TOV 7'h1F // Loop Port OPENED Auto CLS register. 6146 * 6147 * SIZE: 32 6148 * 6149 * FIELDS DESCRIPTION: 6150 * TOV : 6151 * Units in microseconds. Set timeout to send CLS when in OPENED state 6152 * with a frame to send. Timer is started if there is a frame to send to a 6153 * different ALPA than the opened ALPA. 6154 */ 6155 #define bcm84756_a0_FCM_FCMAC_TXOPNDCLS_TOVr(c) \ 6156 (0x13100084 + (BFCMAP_PORT((c)) << 12)) 6157 6158 #define bcm84756_a0_FCM_FCMAC_TXOPNDCLS_TOVr_SIZE 1 6159 6160 /* 6161 * This structure should be used to declare and program FCM_FCMAC_TXOPNDCLS_TOV. 6162 */ 6163 typedef union bcm84756_a0_FCM_FCMAC_TXOPNDCLS_TOVr_s { 6164 buint32_t v[1]; 6165 buint32_t fcm_fcmac_txopndcls_tov[1]; 6166 buint32_t _fcm_fcmac_txopndcls_tov; 6167 } bcm84756_a0_FCM_FCMAC_TXOPNDCLS_TOVr_t; 6168 6169 #define bcm84756_a0_FCM_FCMAC_TXOPNDCLS_TOVr_CLR(r) \ 6170 (r).fcm_fcmac_txopndcls_tov[0] = 0 6171 6172 #define bcm84756_a0_FCM_FCMAC_TXOPNDCLS_TOVr_SET(r,d) \ 6173 (r).fcm_fcmac_txopndcls_tov[0] = d 6174 6175 #define bcm84756_a0_FCM_FCMAC_TXOPNDCLS_TOVr_GET(r) \ 6176 (r).fcm_fcmac_txopndcls_tov[0] 6177 6178 6179 /* 6180 * These macros can be used to access individual fields. 6181 */ 6182 #define bcm84756_a0_FCM_FCMAC_TXOPNDCLS_TOVr_TOVf_GET(c,r) \ 6183 (((r).fcm_fcmac_txopndcls_tov[0]) & 0xfff) 6184 6185 #define bcm84756_a0_FCM_FCMAC_TXOPNDCLS_TOVr_TOVf_SET(c,r,f) \ 6186 (r).fcm_fcmac_txopndcls_tov[0]=(((r).fcm_fcmac_txopndcls_tov[0] & ~((buint32_t)0xfff)) | \ 6187 (((buint32_t)f) & 0xfff)) 6188 6189 6190 /* 6191 * These macros can be used to access FCM_FCMAC_TXOPNDCLS_TOV. 6192 */ 6193 #define bcm84756_a0_READ_FCM_FCMAC_TXOPNDCLS_TOVr(c,r) \ 6194 BFCMAP_REG32_READ((c),bcm84756_a0_FCM_FCMAC_TXOPNDCLS_TOVr((c)),&((r)._fcm_fcmac_txopndcls_tov)) 6195 6196 #define bcm84756_a0_WRITE_FCM_FCMAC_TXOPNDCLS_TOVr(c,r) \ 6197 BFCMAP_REG32_WRITE((c),bcm84756_a0_FCM_FCMAC_TXOPNDCLS_TOVr((c)),&((r)._fcm_fcmac_txopndcls_tov)) 6198 6199 /******************************************************************************* 6200 * End of 'bcm84756_a0_FCM_FCMAC_TXOPNDCLS_TOVr' 6201 */ 6202 6203 6204 6205 6206 /******************************************************************************* 6207 * CHIP: bcm84756_a0 6208 * REGISTER: FCM_FCME_CONFIG 6209 * BLOCKS: SECPORT 6210 * DESCRIPTION : 6211 * This register allows general configuation of the FCM Mapper in the egress 6212 * direction. 6213 * 6214 * SIZE: 32 6215 * 6216 * FIELDS DESCRIPTION: 6217 * FCS_REGEN_MODE : 6218 * This mode allows the FC frame within the FCoE packet to be modified by 6219 * an external switch with FCM Mapper handling the CRC recomputation. 1 - 6220 * No CRC Check Mode; Mapper checks FCS and if it's good generate a good 6221 * CRC regardless of the inner CRC. If FCS is bad generate a bad CRC. 6222 * Applies to all frames whether FC frame is modified by the FCM Mapper or 6223 * not. 0 - Normal; FCS and CRC checked before regenerating CRC. If FCS or 6224 * CRC is bad, a bad FCS and/or CRC is regenerated. 6225 * 6226 * FCS_EOF_MODE : 6227 * Enables FCS to be forcibly corrupted based on EOF. Applies only to FCoE 6228 * packets when fcs field present is set. 1 - Receiving a packet with 6229 * EOFni or EOFa forces a bad FCS word on encapsulation. 0 - FCS is not 6230 * modified based on EOF type. 6231 * 6232 * FCS_FIELD_PRESENT : 6233 * Indicates format of packets between the switch MAC and line MAC. 1 - 6234 * FCS is present and generated as necessary on all packets. 0 - FCS field 6235 * is not present on input packets and is not generated on output packets. 6236 * 6237 * DBG_IGNORE_CRC : 6238 * Ignore CRC debug mode. 1 - CRC is not checked by mapper, value is 6239 * always considered good. 0 - Normal operating mode. 6240 * 6241 * MAP_TABLE_INPUT : 6242 * Map table input can be from VFT Header or from VLAN tag. Determines 6243 * what field is used as map table input : 1 = VFT Header VFID field. 0 = 6244 * VLAN tag VID field. 6245 * 6246 * MAP_TABLE_DIRECTION : 6247 * Determines which table output is used for the mapped result : 1 = VSAN 6248 * entry maps to VLAN output. 0 = VLAN entry maps to VSAN output. 6249 * 6250 * DISCARD_BADPKT_DISABLE : 6251 * Disable auto discard of bad packets due to parsed invalid fields : 1 = 6252 * Mapper forwards packets parsed as bad. 0 = Mapper discards packets 6253 * parsed as bad. 6254 * 6255 * MAPPER_BYPASS_ENABLE : 6256 * Disable auto discard of runt packets : 1 = Mapper datapath is bypassed. 6257 * 0 = Normal mode. 6258 * 6259 * DECAP_FCOE2FC_ENABLE : 6260 * FCoE decap enable bit. This bit should be 1 for FC to FCoE operation, 6261 * and it should be 0 for FCoE to FCoE operation. 1 - Enable FCoE 6262 * decapsulation (FC/FCoE deployment model), 0 - FCoE decapsulation not 6263 * done (FCoE/FCoE deployment model). 6264 * 6265 * DBG_CURRENTSTATE : 6266 * FCME Mapper FSM state. 6267 */ 6268 #define bcm84756_a0_FCM_FCME_CONFIGr(c) \ 6269 (0x1310000b + (BFCMAP_PORT((c)) << 12)) 6270 6271 #define bcm84756_a0_FCM_FCME_CONFIGr_SIZE 1 6272 6273 /* 6274 * This structure should be used to declare and program FCM_FCME_CONFIG. 6275 */ 6276 typedef union bcm84756_a0_FCM_FCME_CONFIGr_s { 6277 buint32_t v[1]; 6278 buint32_t fcm_fcme_config[1]; 6279 buint32_t _fcm_fcme_config; 6280 } bcm84756_a0_FCM_FCME_CONFIGr_t; 6281 6282 #define bcm84756_a0_FCM_FCME_CONFIGr_CLR(r) \ 6283 (r).fcm_fcme_config[0] = 0 6284 6285 #define bcm84756_a0_FCM_FCME_CONFIGr_SET(r,d) \ 6286 (r).fcm_fcme_config[0] = d 6287 6288 #define bcm84756_a0_FCM_FCME_CONFIGr_GET(r) \ 6289 (r).fcm_fcme_config[0] 6290 6291 6292 /* 6293 * These macros can be used to access individual fields. 6294 */ 6295 #define bcm84756_a0_FCM_FCME_CONFIGr_FCS_REGEN_MODEf_GET(c,r) \ 6296 (((r).fcm_fcme_config[0]) & 0x1) 6297 6298 #define bcm84756_a0_FCM_FCME_CONFIGr_FCS_REGEN_MODEf_SET(c,r,f) \ 6299 (r).fcm_fcme_config[0]=(((r).fcm_fcme_config[0] & ~((buint32_t)0x1)) | \ 6300 (((buint32_t)f) & 0x1)) 6301 6302 #define bcm84756_a0_FCM_FCME_CONFIGr_FCS_EOF_MODEf_GET(c,r) \ 6303 ((((r).fcm_fcme_config[0]) >> 1) & 0x1) 6304 6305 #define bcm84756_a0_FCM_FCME_CONFIGr_FCS_EOF_MODEf_SET(c,r,f) \ 6306 (r).fcm_fcme_config[0]=(((r).fcm_fcme_config[0] & ~((buint32_t)0x1 << 1)) | \ 6307 ((((buint32_t)f) & 0x1) << 1)) 6308 6309 #define bcm84756_a0_FCM_FCME_CONFIGr_FCS_FIELD_PRESENTf_GET(c,r) \ 6310 ((((r).fcm_fcme_config[0]) >> 2) & 0x1) 6311 6312 #define bcm84756_a0_FCM_FCME_CONFIGr_FCS_FIELD_PRESENTf_SET(c,r,f) \ 6313 (r).fcm_fcme_config[0]=(((r).fcm_fcme_config[0] & ~((buint32_t)0x1 << 2)) | \ 6314 ((((buint32_t)f) & 0x1) << 2)) 6315 6316 #define bcm84756_a0_FCM_FCME_CONFIGr_DBG_IGNORE_CRCf_GET(c,r) \ 6317 ((((r).fcm_fcme_config[0]) >> 3) & 0x1) 6318 6319 #define bcm84756_a0_FCM_FCME_CONFIGr_DBG_IGNORE_CRCf_SET(c,r,f) \ 6320 (r).fcm_fcme_config[0]=(((r).fcm_fcme_config[0] & ~((buint32_t)0x1 << 3)) | \ 6321 ((((buint32_t)f) & 0x1) << 3)) 6322 6323 #define bcm84756_a0_FCM_FCME_CONFIGr_MAP_TABLE_INPUTf_GET(c,r) \ 6324 ((((r).fcm_fcme_config[0]) >> 4) & 0x1) 6325 6326 #define bcm84756_a0_FCM_FCME_CONFIGr_MAP_TABLE_INPUTf_SET(c,r,f) \ 6327 (r).fcm_fcme_config[0]=(((r).fcm_fcme_config[0] & ~((buint32_t)0x1 << 4)) | \ 6328 ((((buint32_t)f) & 0x1) << 4)) 6329 6330 #define bcm84756_a0_FCM_FCME_CONFIGr_MAP_TABLE_DIRECTIONf_GET(c,r) \ 6331 ((((r).fcm_fcme_config[0]) >> 5) & 0x1) 6332 6333 #define bcm84756_a0_FCM_FCME_CONFIGr_MAP_TABLE_DIRECTIONf_SET(c,r,f) \ 6334 (r).fcm_fcme_config[0]=(((r).fcm_fcme_config[0] & ~((buint32_t)0x1 << 5)) | \ 6335 ((((buint32_t)f) & 0x1) << 5)) 6336 6337 #define bcm84756_a0_FCM_FCME_CONFIGr_DISCARD_BADPKT_DISABLEf_GET(c,r) \ 6338 ((((r).fcm_fcme_config[0]) >> 6) & 0x1) 6339 6340 #define bcm84756_a0_FCM_FCME_CONFIGr_DISCARD_BADPKT_DISABLEf_SET(c,r,f) \ 6341 (r).fcm_fcme_config[0]=(((r).fcm_fcme_config[0] & ~((buint32_t)0x1 << 6)) | \ 6342 ((((buint32_t)f) & 0x1) << 6)) 6343 6344 #define bcm84756_a0_FCM_FCME_CONFIGr_MAPPER_BYPASS_ENABLEf_GET(c,r) \ 6345 ((((r).fcm_fcme_config[0]) >> 7) & 0x1) 6346 6347 #define bcm84756_a0_FCM_FCME_CONFIGr_MAPPER_BYPASS_ENABLEf_SET(c,r,f) \ 6348 (r).fcm_fcme_config[0]=(((r).fcm_fcme_config[0] & ~((buint32_t)0x1 << 7)) | \ 6349 ((((buint32_t)f) & 0x1) << 7)) 6350 6351 #define bcm84756_a0_FCM_FCME_CONFIGr_DECAP_FCOE2FC_ENABLEf_GET(c,r) \ 6352 ((((r).fcm_fcme_config[0]) >> 14) & 0x1) 6353 6354 #define bcm84756_a0_FCM_FCME_CONFIGr_DECAP_FCOE2FC_ENABLEf_SET(c,r,f) \ 6355 (r).fcm_fcme_config[0]=(((r).fcm_fcme_config[0] & ~((buint32_t)0x1 << 14)) | \ 6356 ((((buint32_t)f) & 0x1) << 14)) 6357 6358 #define bcm84756_a0_FCM_FCME_CONFIGr_DBG_CURRENTSTATEf_GET(c,r) \ 6359 ((((r).fcm_fcme_config[0]) >> 16) & 0x3f) 6360 6361 #define bcm84756_a0_FCM_FCME_CONFIGr_DBG_CURRENTSTATEf_SET(c,r,f) \ 6362 (r).fcm_fcme_config[0]=(((r).fcm_fcme_config[0] & ~((buint32_t)0x3f << 16)) | \ 6363 ((((buint32_t)f) & 0x3f) << 16)) 6364 6365 6366 /* 6367 * These macros can be used to access FCM_FCME_CONFIG. 6368 */ 6369 #define bcm84756_a0_READ_FCM_FCME_CONFIGr(c,r) \ 6370 BFCMAP_REG32_READ((c),bcm84756_a0_FCM_FCME_CONFIGr((c)),&((r)._fcm_fcme_config)) 6371 6372 #define bcm84756_a0_WRITE_FCM_FCME_CONFIGr(c,r) \ 6373 BFCMAP_REG32_WRITE((c),bcm84756_a0_FCM_FCME_CONFIGr((c)),&((r)._fcm_fcme_config)) 6374 6375 /******************************************************************************* 6376 * End of 'bcm84756_a0_FCM_FCME_CONFIGr' 6377 */ 6378 6379 6380 6381 6382 /******************************************************************************* 6383 * CHIP: bcm84756_a0 6384 * REGISTER: FCM_FCME_MAC_SRC 6385 * BLOCKS: SECPORT 6386 * DESCRIPTION : 6387 * Configures how the mapper creates the Dest MAC and Src MAC fields for an 6388 * encapsulated packet. 6389 * 6390 * SIZE: 32 6391 * 6392 * FIELDS DESCRIPTION: 6393 * FCOE_SA_MODE : 6394 * SrcMAC address construction mode: 2'b00 - FPMA Source Mode; SA is the 6395 * concatenation of a per-port 24-bit prefix with the 24-bit FC SID 2'b01 6396 * - Null Source Mode; SA is all zeroes 2'b10 - Register Source Mode; All 6397 * 48-bits of the SA are from the SrcMAC default register. 2'b11 - 6398 * Reserved 6399 * 6400 * FCOE_DA_MODE : 6401 * DestMAC address construction mode: 2'b00 - FPMA Destination Mode; DA is 6402 * the concatenation of a per-port 24-bit prefix with the 24-bit FC DID 6403 * 2'b01 - Null Destination Mode; DA is all zeroes. 2'b10 - Register 6404 * Destination Mode; All 48-bits of the DA are from the DestMAC default 6405 * register. 2'b11 - Reserved 6406 */ 6407 #define bcm84756_a0_FCM_FCME_MAC_SRCr(c) \ 6408 (0x1310000e + (BFCMAP_PORT((c)) << 12)) 6409 6410 #define bcm84756_a0_FCM_FCME_MAC_SRCr_SIZE 1 6411 6412 /* 6413 * This structure should be used to declare and program FCM_FCME_MAC_SRC. 6414 */ 6415 typedef union bcm84756_a0_FCM_FCME_MAC_SRCr_s { 6416 buint32_t v[1]; 6417 buint32_t fcm_fcme_mac_src[1]; 6418 buint32_t _fcm_fcme_mac_src; 6419 } bcm84756_a0_FCM_FCME_MAC_SRCr_t; 6420 6421 #define bcm84756_a0_FCM_FCME_MAC_SRCr_CLR(r) \ 6422 (r).fcm_fcme_mac_src[0] = 0 6423 6424 #define bcm84756_a0_FCM_FCME_MAC_SRCr_SET(r,d) \ 6425 (r).fcm_fcme_mac_src[0] = d 6426 6427 #define bcm84756_a0_FCM_FCME_MAC_SRCr_GET(r) \ 6428 (r).fcm_fcme_mac_src[0] 6429 6430 6431 /* 6432 * These macros can be used to access individual fields. 6433 */ 6434 #define bcm84756_a0_FCM_FCME_MAC_SRCr_FCOE_SA_MODEf_GET(c,r) \ 6435 (((r).fcm_fcme_mac_src[0]) & 0x3) 6436 6437 #define bcm84756_a0_FCM_FCME_MAC_SRCr_FCOE_SA_MODEf_SET(c,r,f) \ 6438 (r).fcm_fcme_mac_src[0]=(((r).fcm_fcme_mac_src[0] & ~((buint32_t)0x3)) | \ 6439 (((buint32_t)f) & 0x3)) 6440 6441 #define bcm84756_a0_FCM_FCME_MAC_SRCr_FCOE_DA_MODEf_GET(c,r) \ 6442 ((((r).fcm_fcme_mac_src[0]) >> 2) & 0x3) 6443 6444 #define bcm84756_a0_FCM_FCME_MAC_SRCr_FCOE_DA_MODEf_SET(c,r,f) \ 6445 (r).fcm_fcme_mac_src[0]=(((r).fcm_fcme_mac_src[0] & ~((buint32_t)0x3 << 2)) | \ 6446 ((((buint32_t)f) & 0x3) << 2)) 6447 6448 6449 /* 6450 * These macros can be used to access FCM_FCME_MAC_SRC. 6451 */ 6452 #define bcm84756_a0_READ_FCM_FCME_MAC_SRCr(c,r) \ 6453 BFCMAP_REG32_READ((c),bcm84756_a0_FCM_FCME_MAC_SRCr((c)),&((r)._fcm_fcme_mac_src)) 6454 6455 #define bcm84756_a0_WRITE_FCM_FCME_MAC_SRCr(c,r) \ 6456 BFCMAP_REG32_WRITE((c),bcm84756_a0_FCM_FCME_MAC_SRCr((c)),&((r)._fcm_fcme_mac_src)) 6457 6458 /******************************************************************************* 6459 * End of 'bcm84756_a0_FCM_FCME_MAC_SRCr' 6460 */ 6461 6462 6463 6464 6465 /******************************************************************************* 6466 * CHIP: bcm84756_a0 6467 * REGISTER: FCM_FCME_VFTHDR_PROC_MODE 6468 * BLOCKS: SECPORT 6469 * DESCRIPTION : 6470 * Configures how the mapper creates, removes, or modifies the VFT Header 6471 * field of a FCoE packet or FC-2 frame. 6472 * 6473 * SIZE: 32 6474 * 6475 * FIELDS DESCRIPTION: 6476 * HOPCOUNT_DISCARD_ENABLE : 6477 * Hop count discard enable and mode. If Hopcnt == 1, discard (or EOFni) 6478 * on ingress OR egress, else do not discard. 2'b00, 2'b01 - Disable hop 6479 * count based discard. 2'b10 - Enable hop count based discard. drop 6480 * packet and increment corresponding MIB drop counter, 2'b11 - Enable hop 6481 * count based discard, change EOF to EOFni, do not drop packet. 6482 * 6483 * HOPCOUNT_DECR_ENABLE : 6484 * Enable VFT HopCount field auto decrement. (HopCnt discard is checked 6485 * before the decrement is done). 1 - Enable hop count decrement in VFT 6486 * Header, 0 - Disable hop count decrement. When HopCnt Auto-Decrement 6487 * mode is enabled, if Hopcnt > 1 decrement on egress. 6488 * 6489 * VFID_MAPSRC : 6490 * Define source of post-mapper VFID field when VFTHdr exists at 6491 * post-mapper. 3'b000 - Disable VFID field processing. 3'b001 - Pass thru 6492 * VFID field else use port default if not exist. 3'b010 - Apply Port 6493 * default to VFID field. 3'b011 - Apply VLAN VID field directly to VFID 6494 * field, else use port default if 802.1Q tag does not exist at VLAN. 6495 * 3'b100 - Apply Map result (as defined in map table input and map table 6496 * direction) to VFID field. else use port default if 802.1Q tag does not 6497 * exist. Other - Reserved 6498 * 6499 * VFTHDR_PRESENCE : 6500 * Preserve/Insert/Drop setting of the post-mapper packet or frame. 2'b00 6501 * - Preserve VFT Header -- an existing VFT header is preserved and mapped 6502 * according to VFID mapsrc. If a VFT Header does not exist, VFT 6503 * processing is skipped . 2'b01 - In this mode the frame will be 6504 * forwarded with a VFT header. If a VFT header does not exist, the mapper 6505 * will create and insert a VFT header based on the VFID mapsrc setting. 6506 * Otherwise if a VFT header does exist, the mapper will process the 6507 * existing VFT header as programmed in VFID mapsrc. If VFT header does 6508 * not exist, a VFT header will be inserted and the programmed VFID mapsrc 6509 * will be applied to this inserted VFT header. If VFT header does already 6510 * exist, the programmed VFID mapsrc will be applied to existing VFT 6511 * header. 2'b10 - Drop VFTHdr if exists, otherwise do nothing if VFTHdr 6512 * does not exist. 2'b11 - Reserved 6513 */ 6514 #define bcm84756_a0_FCM_FCME_VFTHDR_PROC_MODEr(c) \ 6515 (0x1310000c + (BFCMAP_PORT((c)) << 12)) 6516 6517 #define bcm84756_a0_FCM_FCME_VFTHDR_PROC_MODEr_SIZE 1 6518 6519 /* 6520 * This structure should be used to declare and program FCM_FCME_VFTHDR_PROC_MODE. 6521 */ 6522 typedef union bcm84756_a0_FCM_FCME_VFTHDR_PROC_MODEr_s { 6523 buint32_t v[1]; 6524 buint32_t fcm_fcme_vfthdr_proc_mode[1]; 6525 buint32_t _fcm_fcme_vfthdr_proc_mode; 6526 } bcm84756_a0_FCM_FCME_VFTHDR_PROC_MODEr_t; 6527 6528 #define bcm84756_a0_FCM_FCME_VFTHDR_PROC_MODEr_CLR(r) \ 6529 (r).fcm_fcme_vfthdr_proc_mode[0] = 0 6530 6531 #define bcm84756_a0_FCM_FCME_VFTHDR_PROC_MODEr_SET(r,d) \ 6532 (r).fcm_fcme_vfthdr_proc_mode[0] = d 6533 6534 #define bcm84756_a0_FCM_FCME_VFTHDR_PROC_MODEr_GET(r) \ 6535 (r).fcm_fcme_vfthdr_proc_mode[0] 6536 6537 6538 /* 6539 * These macros can be used to access individual fields. 6540 */ 6541 #define bcm84756_a0_FCM_FCME_VFTHDR_PROC_MODEr_HOPCOUNT_DISCARD_ENABLEf_GET(c,r) \ 6542 (((r).fcm_fcme_vfthdr_proc_mode[0]) & 0x3) 6543 6544 #define bcm84756_a0_FCM_FCME_VFTHDR_PROC_MODEr_HOPCOUNT_DISCARD_ENABLEf_SET(c,r,f) \ 6545 (r).fcm_fcme_vfthdr_proc_mode[0]=(((r).fcm_fcme_vfthdr_proc_mode[0] & ~((buint32_t)0x3)) | \ 6546 (((buint32_t)f) & 0x3)) 6547 6548 #define bcm84756_a0_FCM_FCME_VFTHDR_PROC_MODEr_HOPCOUNT_DECR_ENABLEf_GET(c,r) \ 6549 ((((r).fcm_fcme_vfthdr_proc_mode[0]) >> 2) & 0x1) 6550 6551 #define bcm84756_a0_FCM_FCME_VFTHDR_PROC_MODEr_HOPCOUNT_DECR_ENABLEf_SET(c,r,f) \ 6552 (r).fcm_fcme_vfthdr_proc_mode[0]=(((r).fcm_fcme_vfthdr_proc_mode[0] & ~((buint32_t)0x1 << 2)) | \ 6553 ((((buint32_t)f) & 0x1) << 2)) 6554 6555 #define bcm84756_a0_FCM_FCME_VFTHDR_PROC_MODEr_VFID_MAPSRCf_GET(c,r) \ 6556 ((((r).fcm_fcme_vfthdr_proc_mode[0]) >> 4) & 0x7) 6557 6558 #define bcm84756_a0_FCM_FCME_VFTHDR_PROC_MODEr_VFID_MAPSRCf_SET(c,r,f) \ 6559 (r).fcm_fcme_vfthdr_proc_mode[0]=(((r).fcm_fcme_vfthdr_proc_mode[0] & ~((buint32_t)0x7 << 4)) | \ 6560 ((((buint32_t)f) & 0x7) << 4)) 6561 6562 #define bcm84756_a0_FCM_FCME_VFTHDR_PROC_MODEr_VFTHDR_PRESENCEf_GET(c,r) \ 6563 ((((r).fcm_fcme_vfthdr_proc_mode[0]) >> 8) & 0x3) 6564 6565 #define bcm84756_a0_FCM_FCME_VFTHDR_PROC_MODEr_VFTHDR_PRESENCEf_SET(c,r,f) \ 6566 (r).fcm_fcme_vfthdr_proc_mode[0]=(((r).fcm_fcme_vfthdr_proc_mode[0] & ~((buint32_t)0x3 << 8)) | \ 6567 ((((buint32_t)f) & 0x3) << 8)) 6568 6569 6570 /* 6571 * These macros can be used to access FCM_FCME_VFTHDR_PROC_MODE. 6572 */ 6573 #define bcm84756_a0_READ_FCM_FCME_VFTHDR_PROC_MODEr(c,r) \ 6574 BFCMAP_REG32_READ((c),bcm84756_a0_FCM_FCME_VFTHDR_PROC_MODEr((c)),&((r)._fcm_fcme_vfthdr_proc_mode)) 6575 6576 #define bcm84756_a0_WRITE_FCM_FCME_VFTHDR_PROC_MODEr(c,r) \ 6577 BFCMAP_REG32_WRITE((c),bcm84756_a0_FCM_FCME_VFTHDR_PROC_MODEr((c)),&((r)._fcm_fcme_vfthdr_proc_mode)) 6578 6579 /******************************************************************************* 6580 * End of 'bcm84756_a0_FCM_FCME_VFTHDR_PROC_MODEr' 6581 */ 6582 6583 6584 6585 6586 /******************************************************************************* 6587 * CHIP: bcm84756_a0 6588 * REGISTER: FCM_FCME_VLANTAG_PROC_MODE 6589 * BLOCKS: SECPORT 6590 * DESCRIPTION : 6591 * Configures how the mapper creates, removes, or modifies the 802.1Q tag 6592 * field of a FCoE packet. 6593 * 6594 * SIZE: 32 6595 * 6596 * FIELDS DESCRIPTION: 6597 * PRI_MAP_MODE : 6598 * Post-Mapper VLAN tag PRI Field Processing; VLAN PRI to VLAN PRI mapping 6599 * mode. 1 - Pass thru PRI if VLAN tag exists else use port default. 0 - 6600 * Use PRI port default. 6601 * 6602 * VLANTAG_MAPSRC : 6603 * Define source of post-mapper VLAN tag field when a VLAN tag exists at 6604 * post-mapper. 2'b00 - Pass thru VLANtag field from VFID else use port 6605 * default if not exist. 2'b01 - Pass thru VLANtag field from VLANtag else 6606 * use port default if not exist. 2'b10 - Apply Port default to VLANtag 6607 * field. 2'b11 - Apply Map result (as defined inport mode) to VLANtag 6608 * field, else use port default. if 802.1Q tag does not exist at VLAN. 6609 * 6610 * VLANTAG_PRESENCE : 6611 * Drop/Insert/Pass setting of the post-mapper packet. 2'b00 - Disable 6612 * VLANtag processing -- No change. 2'b01 - Insert VLANtag if it does not 6613 * exist, else pass thru if it does exist. 2'b10 - Remove VLANtag if 6614 * exists, otherwise do nothing if VFTHdr does not exist. 2'b11 - reserved 6615 */ 6616 #define bcm84756_a0_FCM_FCME_VLANTAG_PROC_MODEr(c) \ 6617 (0x1310000d + (BFCMAP_PORT((c)) << 12)) 6618 6619 #define bcm84756_a0_FCM_FCME_VLANTAG_PROC_MODEr_SIZE 1 6620 6621 /* 6622 * This structure should be used to declare and program FCM_FCME_VLANTAG_PROC_MODE. 6623 */ 6624 typedef union bcm84756_a0_FCM_FCME_VLANTAG_PROC_MODEr_s { 6625 buint32_t v[1]; 6626 buint32_t fcm_fcme_vlantag_proc_mode[1]; 6627 buint32_t _fcm_fcme_vlantag_proc_mode; 6628 } bcm84756_a0_FCM_FCME_VLANTAG_PROC_MODEr_t; 6629 6630 #define bcm84756_a0_FCM_FCME_VLANTAG_PROC_MODEr_CLR(r) \ 6631 (r).fcm_fcme_vlantag_proc_mode[0] = 0 6632 6633 #define bcm84756_a0_FCM_FCME_VLANTAG_PROC_MODEr_SET(r,d) \ 6634 (r).fcm_fcme_vlantag_proc_mode[0] = d 6635 6636 #define bcm84756_a0_FCM_FCME_VLANTAG_PROC_MODEr_GET(r) \ 6637 (r).fcm_fcme_vlantag_proc_mode[0] 6638 6639 6640 /* 6641 * These macros can be used to access individual fields. 6642 */ 6643 #define bcm84756_a0_FCM_FCME_VLANTAG_PROC_MODEr_PRI_MAP_MODEf_GET(c,r) \ 6644 (((r).fcm_fcme_vlantag_proc_mode[0]) & 0x1) 6645 6646 #define bcm84756_a0_FCM_FCME_VLANTAG_PROC_MODEr_PRI_MAP_MODEf_SET(c,r,f) \ 6647 (r).fcm_fcme_vlantag_proc_mode[0]=(((r).fcm_fcme_vlantag_proc_mode[0] & ~((buint32_t)0x1)) | \ 6648 (((buint32_t)f) & 0x1)) 6649 6650 #define bcm84756_a0_FCM_FCME_VLANTAG_PROC_MODEr_VLANTAG_MAPSRCf_GET(c,r) \ 6651 ((((r).fcm_fcme_vlantag_proc_mode[0]) >> 3) & 0x3) 6652 6653 #define bcm84756_a0_FCM_FCME_VLANTAG_PROC_MODEr_VLANTAG_MAPSRCf_SET(c,r,f) \ 6654 (r).fcm_fcme_vlantag_proc_mode[0]=(((r).fcm_fcme_vlantag_proc_mode[0] & ~((buint32_t)0x3 << 3)) | \ 6655 ((((buint32_t)f) & 0x3) << 3)) 6656 6657 #define bcm84756_a0_FCM_FCME_VLANTAG_PROC_MODEr_VLANTAG_PRESENCEf_GET(c,r) \ 6658 ((((r).fcm_fcme_vlantag_proc_mode[0]) >> 5) & 0x3) 6659 6660 #define bcm84756_a0_FCM_FCME_VLANTAG_PROC_MODEr_VLANTAG_PRESENCEf_SET(c,r,f) \ 6661 (r).fcm_fcme_vlantag_proc_mode[0]=(((r).fcm_fcme_vlantag_proc_mode[0] & ~((buint32_t)0x3 << 5)) | \ 6662 ((((buint32_t)f) & 0x3) << 5)) 6663 6664 6665 /* 6666 * These macros can be used to access FCM_FCME_VLANTAG_PROC_MODE. 6667 */ 6668 #define bcm84756_a0_READ_FCM_FCME_VLANTAG_PROC_MODEr(c,r) \ 6669 BFCMAP_REG32_READ((c),bcm84756_a0_FCM_FCME_VLANTAG_PROC_MODEr((c)),&((r)._fcm_fcme_vlantag_proc_mode)) 6670 6671 #define bcm84756_a0_WRITE_FCM_FCME_VLANTAG_PROC_MODEr(c,r) \ 6672 BFCMAP_REG32_WRITE((c),bcm84756_a0_FCM_FCME_VLANTAG_PROC_MODEr((c)),&((r)._fcm_fcme_vlantag_proc_mode)) 6673 6674 /******************************************************************************* 6675 * End of 'bcm84756_a0_FCM_FCME_VLANTAG_PROC_MODEr' 6676 */ 6677 6678 6679 6680 6681 /******************************************************************************* 6682 * CHIP: bcm84756_a0 6683 * REGISTER: FCM_FCMI_CONFIG 6684 * BLOCKS: SECPORT 6685 * DESCRIPTION : 6686 * This register allows general configuation of the FCM Mapper in the ingress 6687 * direction. 6688 * 6689 * SIZE: 32 6690 * 6691 * FIELDS DESCRIPTION: 6692 * FCS_REGEN_MODE : 6693 * This mode allows the FC frame within the FCoE packet to be modified by 6694 * an external switch with FCM Mapper handling the CRC recomputation. 1 - 6695 * No CRC Check Mode; Mapper checks FCS and if it's good generate a good 6696 * CRC regardless of the inner CRC. If FCS is bad generate a bad CRC. 6697 * Applies to all frames whether FC frame is modified by the FCM Mapper or 6698 * not. 0 - Normal; FCS and CRC checked before regenerating CRC. If FCS or 6699 * CRC is bad, a bad FCS and/or CRC is regenerated. 6700 * 6701 * FCS_EOF_MODE : 6702 * Enables FCS to be forcibly corrupted based on EOF. Applies only to FCoE 6703 * packets when fcs field present is set. 1 - Receiving a packet with 6704 * EOFni or EOFa forces a bad FCS word on encapsulation. 0 - FCS is not 6705 * modified based on EOF type. 6706 * 6707 * FCS_FIELD_PRESENT : 6708 * Indicates format of packets between the switch MAC and line MAC. 1 - 6709 * FCS is present and generated as necessary on all packets. 0 - FCS field 6710 * is not present on input packets and is not generated on output packets. 6711 * 6712 * DBG_IGNORE_CRC : 6713 * Ignore CRC debug mode. 1 - CRC is not checked by mapper, value is 6714 * always considered good. 0 - Normal operating mode. 6715 * 6716 * MAP_TABLE_INPUT : 6717 * Map table input can be from VFT Header or from VLAN tag. Determines 6718 * what field is used as map table input : 1 = VLAN tag VID field. 0 = VFT 6719 * Header VFID field. 6720 * 6721 * MAP_TABLE_DIRECTION : 6722 * Determines which table output is used for the mapped result : 1 = VLAN 6723 * entry maps to VSAN output. 0 = VSAN entry maps to VLAN output. 6724 * 6725 * DISCARD_BADPKT_DISABLE : 6726 * Disable auto discard of bad packets due to parsed invalid fields : 1 = 6727 * Mapper forwards packets parsed as bad. 0 = Mapper discards packets 6728 * parsed as bad. 6729 * 6730 * MAPPER_BYPASS_ENABLE : 6731 * Disable auto discard of runt packets : 1 = Mapper datapath is bypassed. 6732 * 0 = Normal mode. 6733 * 6734 * ENCAP_FC2FCOE_EN : 6735 * FCoE Encap enable bit. This bit should be 1 for FC to FCoE operation, 6736 * and it should be 0 for FCoE to FCoE operation. 1 - Enable FCoE 6737 * encapsulation (FC/FCoE deployment model), 0 - FCoE encapsulation not 6738 * done (FCoE/FCoE deployment model). 6739 * 6740 * DBG_CURRENTSTATE : 6741 * FCMI Mapper FSM state. 6742 */ 6743 #define bcm84756_a0_FCM_FCMI_CONFIGr(c) \ 6744 (0x13100007 + (BFCMAP_PORT((c)) << 12)) 6745 6746 #define bcm84756_a0_FCM_FCMI_CONFIGr_SIZE 1 6747 6748 /* 6749 * This structure should be used to declare and program FCM_FCMI_CONFIG. 6750 */ 6751 typedef union bcm84756_a0_FCM_FCMI_CONFIGr_s { 6752 buint32_t v[1]; 6753 buint32_t fcm_fcmi_config[1]; 6754 buint32_t _fcm_fcmi_config; 6755 } bcm84756_a0_FCM_FCMI_CONFIGr_t; 6756 6757 #define bcm84756_a0_FCM_FCMI_CONFIGr_CLR(r) \ 6758 (r).fcm_fcmi_config[0] = 0 6759 6760 #define bcm84756_a0_FCM_FCMI_CONFIGr_SET(r,d) \ 6761 (r).fcm_fcmi_config[0] = d 6762 6763 #define bcm84756_a0_FCM_FCMI_CONFIGr_GET(r) \ 6764 (r).fcm_fcmi_config[0] 6765 6766 6767 /* 6768 * These macros can be used to access individual fields. 6769 */ 6770 #define bcm84756_a0_FCM_FCMI_CONFIGr_FCS_REGEN_MODEf_GET(c,r) \ 6771 (((r).fcm_fcmi_config[0]) & 0x1) 6772 6773 #define bcm84756_a0_FCM_FCMI_CONFIGr_FCS_REGEN_MODEf_SET(c,r,f) \ 6774 (r).fcm_fcmi_config[0]=(((r).fcm_fcmi_config[0] & ~((buint32_t)0x1)) | \ 6775 (((buint32_t)f) & 0x1)) 6776 6777 #define bcm84756_a0_FCM_FCMI_CONFIGr_FCS_EOF_MODEf_GET(c,r) \ 6778 ((((r).fcm_fcmi_config[0]) >> 1) & 0x1) 6779 6780 #define bcm84756_a0_FCM_FCMI_CONFIGr_FCS_EOF_MODEf_SET(c,r,f) \ 6781 (r).fcm_fcmi_config[0]=(((r).fcm_fcmi_config[0] & ~((buint32_t)0x1 << 1)) | \ 6782 ((((buint32_t)f) & 0x1) << 1)) 6783 6784 #define bcm84756_a0_FCM_FCMI_CONFIGr_FCS_FIELD_PRESENTf_GET(c,r) \ 6785 ((((r).fcm_fcmi_config[0]) >> 2) & 0x1) 6786 6787 #define bcm84756_a0_FCM_FCMI_CONFIGr_FCS_FIELD_PRESENTf_SET(c,r,f) \ 6788 (r).fcm_fcmi_config[0]=(((r).fcm_fcmi_config[0] & ~((buint32_t)0x1 << 2)) | \ 6789 ((((buint32_t)f) & 0x1) << 2)) 6790 6791 #define bcm84756_a0_FCM_FCMI_CONFIGr_DBG_IGNORE_CRCf_GET(c,r) \ 6792 ((((r).fcm_fcmi_config[0]) >> 3) & 0x1) 6793 6794 #define bcm84756_a0_FCM_FCMI_CONFIGr_DBG_IGNORE_CRCf_SET(c,r,f) \ 6795 (r).fcm_fcmi_config[0]=(((r).fcm_fcmi_config[0] & ~((buint32_t)0x1 << 3)) | \ 6796 ((((buint32_t)f) & 0x1) << 3)) 6797 6798 #define bcm84756_a0_FCM_FCMI_CONFIGr_MAP_TABLE_INPUTf_GET(c,r) \ 6799 ((((r).fcm_fcmi_config[0]) >> 4) & 0x1) 6800 6801 #define bcm84756_a0_FCM_FCMI_CONFIGr_MAP_TABLE_INPUTf_SET(c,r,f) \ 6802 (r).fcm_fcmi_config[0]=(((r).fcm_fcmi_config[0] & ~((buint32_t)0x1 << 4)) | \ 6803 ((((buint32_t)f) & 0x1) << 4)) 6804 6805 #define bcm84756_a0_FCM_FCMI_CONFIGr_MAP_TABLE_DIRECTIONf_GET(c,r) \ 6806 ((((r).fcm_fcmi_config[0]) >> 5) & 0x1) 6807 6808 #define bcm84756_a0_FCM_FCMI_CONFIGr_MAP_TABLE_DIRECTIONf_SET(c,r,f) \ 6809 (r).fcm_fcmi_config[0]=(((r).fcm_fcmi_config[0] & ~((buint32_t)0x1 << 5)) | \ 6810 ((((buint32_t)f) & 0x1) << 5)) 6811 6812 #define bcm84756_a0_FCM_FCMI_CONFIGr_DISCARD_BADPKT_DISABLEf_GET(c,r) \ 6813 ((((r).fcm_fcmi_config[0]) >> 6) & 0x1) 6814 6815 #define bcm84756_a0_FCM_FCMI_CONFIGr_DISCARD_BADPKT_DISABLEf_SET(c,r,f) \ 6816 (r).fcm_fcmi_config[0]=(((r).fcm_fcmi_config[0] & ~((buint32_t)0x1 << 6)) | \ 6817 ((((buint32_t)f) & 0x1) << 6)) 6818 6819 #define bcm84756_a0_FCM_FCMI_CONFIGr_MAPPER_BYPASS_ENABLEf_GET(c,r) \ 6820 ((((r).fcm_fcmi_config[0]) >> 7) & 0x1) 6821 6822 #define bcm84756_a0_FCM_FCMI_CONFIGr_MAPPER_BYPASS_ENABLEf_SET(c,r,f) \ 6823 (r).fcm_fcmi_config[0]=(((r).fcm_fcmi_config[0] & ~((buint32_t)0x1 << 7)) | \ 6824 ((((buint32_t)f) & 0x1) << 7)) 6825 6826 #define bcm84756_a0_FCM_FCMI_CONFIGr_ENCAP_FC2FCOE_ENf_GET(c,r) \ 6827 ((((r).fcm_fcmi_config[0]) >> 15) & 0x1) 6828 6829 #define bcm84756_a0_FCM_FCMI_CONFIGr_ENCAP_FC2FCOE_ENf_SET(c,r,f) \ 6830 (r).fcm_fcmi_config[0]=(((r).fcm_fcmi_config[0] & ~((buint32_t)0x1 << 15)) | \ 6831 ((((buint32_t)f) & 0x1) << 15)) 6832 6833 #define bcm84756_a0_FCM_FCMI_CONFIGr_DBG_CURRENTSTATEf_GET(c,r) \ 6834 ((((r).fcm_fcmi_config[0]) >> 16) & 0x3f) 6835 6836 #define bcm84756_a0_FCM_FCMI_CONFIGr_DBG_CURRENTSTATEf_SET(c,r,f) \ 6837 (r).fcm_fcmi_config[0]=(((r).fcm_fcmi_config[0] & ~((buint32_t)0x3f << 16)) | \ 6838 ((((buint32_t)f) & 0x3f) << 16)) 6839 6840 6841 /* 6842 * These macros can be used to access FCM_FCMI_CONFIG. 6843 */ 6844 #define bcm84756_a0_READ_FCM_FCMI_CONFIGr(c,r) \ 6845 BFCMAP_REG32_READ((c),bcm84756_a0_FCM_FCMI_CONFIGr((c)),&((r)._fcm_fcmi_config)) 6846 6847 #define bcm84756_a0_WRITE_FCM_FCMI_CONFIGr(c,r) \ 6848 BFCMAP_REG32_WRITE((c),bcm84756_a0_FCM_FCMI_CONFIGr((c)),&((r)._fcm_fcmi_config)) 6849 6850 /******************************************************************************* 6851 * End of 'bcm84756_a0_FCM_FCMI_CONFIGr' 6852 */ 6853 6854 6855 6856 6857 /******************************************************************************* 6858 * CHIP: bcm84756_a0 6859 * REGISTER: FCM_FCMI_MAC_SRC 6860 * BLOCKS: SECPORT 6861 * DESCRIPTION : 6862 * Configures how the mapper creates the Dest MAC and Src MAC fields for an 6863 * encapsulated packet. 6864 * 6865 * SIZE: 32 6866 * 6867 * FIELDS DESCRIPTION: 6868 * FCOE_SA_MODE : 6869 * SrcMAC address construction mode: 2'b00 - FPMA Source Mode; SA is the 6870 * concatenation of a per-port 24-bit prefix with the 24-bit FC SID 2'b01 6871 * - Null Source Mode; SA is all zeroes 2'b10 - Register Source Mode; All 6872 * 48-bits of the SA are from the SrcMAC default register. 2'b11 - 6873 * Reserved 6874 * 6875 * FCOE_DA_MODE : 6876 * DestMAC address construction mode: 2'b00 - FPMA Destination Mode; DA is 6877 * the concatenation of a per-port 24-bit prefix with the 24-bit FC DID 6878 * 2'b01 - Null Destination Mode; DA is all zeroes. 2'b10 - Register 6879 * Destination Mode; All 48-bits of the DA are from the DestMAC default 6880 * register. 2'b11 - Reserved 6881 */ 6882 #define bcm84756_a0_FCM_FCMI_MAC_SRCr(c) \ 6883 (0x1310000a + (BFCMAP_PORT((c)) << 12)) 6884 6885 #define bcm84756_a0_FCM_FCMI_MAC_SRCr_SIZE 1 6886 6887 /* 6888 * This structure should be used to declare and program FCM_FCMI_MAC_SRC. 6889 */ 6890 typedef union bcm84756_a0_FCM_FCMI_MAC_SRCr_s { 6891 buint32_t v[1]; 6892 buint32_t fcm_fcmi_mac_src[1]; 6893 buint32_t _fcm_fcmi_mac_src; 6894 } bcm84756_a0_FCM_FCMI_MAC_SRCr_t; 6895 6896 #define bcm84756_a0_FCM_FCMI_MAC_SRCr_CLR(r) \ 6897 (r).fcm_fcmi_mac_src[0] = 0 6898 6899 #define bcm84756_a0_FCM_FCMI_MAC_SRCr_SET(r,d) \ 6900 (r).fcm_fcmi_mac_src[0] = d 6901 6902 #define bcm84756_a0_FCM_FCMI_MAC_SRCr_GET(r) \ 6903 (r).fcm_fcmi_mac_src[0] 6904 6905 6906 /* 6907 * These macros can be used to access individual fields. 6908 */ 6909 #define bcm84756_a0_FCM_FCMI_MAC_SRCr_FCOE_SA_MODEf_GET(c,r) \ 6910 (((r).fcm_fcmi_mac_src[0]) & 0x3) 6911 6912 #define bcm84756_a0_FCM_FCMI_MAC_SRCr_FCOE_SA_MODEf_SET(c,r,f) \ 6913 (r).fcm_fcmi_mac_src[0]=(((r).fcm_fcmi_mac_src[0] & ~((buint32_t)0x3)) | \ 6914 (((buint32_t)f) & 0x3)) 6915 6916 #define bcm84756_a0_FCM_FCMI_MAC_SRCr_FCOE_DA_MODEf_GET(c,r) \ 6917 ((((r).fcm_fcmi_mac_src[0]) >> 2) & 0x3) 6918 6919 #define bcm84756_a0_FCM_FCMI_MAC_SRCr_FCOE_DA_MODEf_SET(c,r,f) \ 6920 (r).fcm_fcmi_mac_src[0]=(((r).fcm_fcmi_mac_src[0] & ~((buint32_t)0x3 << 2)) | \ 6921 ((((buint32_t)f) & 0x3) << 2)) 6922 6923 6924 /* 6925 * These macros can be used to access FCM_FCMI_MAC_SRC. 6926 */ 6927 #define bcm84756_a0_READ_FCM_FCMI_MAC_SRCr(c,r) \ 6928 BFCMAP_REG32_READ((c),bcm84756_a0_FCM_FCMI_MAC_SRCr((c)),&((r)._fcm_fcmi_mac_src)) 6929 6930 #define bcm84756_a0_WRITE_FCM_FCMI_MAC_SRCr(c,r) \ 6931 BFCMAP_REG32_WRITE((c),bcm84756_a0_FCM_FCMI_MAC_SRCr((c)),&((r)._fcm_fcmi_mac_src)) 6932 6933 /******************************************************************************* 6934 * End of 'bcm84756_a0_FCM_FCMI_MAC_SRCr' 6935 */ 6936 6937 6938 6939 6940 /******************************************************************************* 6941 * CHIP: bcm84756_a0 6942 * REGISTER: FCM_FCMI_VFTHDR_PROC_MODE 6943 * BLOCKS: SECPORT 6944 * DESCRIPTION : 6945 * Configures how the mapper creates, removes, or modifies the VFT Header 6946 * field of a FCoE packet or FC-2 frame. 6947 * 6948 * SIZE: 32 6949 * 6950 * FIELDS DESCRIPTION: 6951 * HOPCOUNT_DISCARD_ENABLE : 6952 * Hop count discard enable and mode. If Hopcnt == 1, discard (or EOFni) 6953 * on ingress OR egress, else do not discard. 2'b00, 2'b01 - Disable hop 6954 * count based discard. 2'b10 - Enable hop count based discard. drop 6955 * packet and increment corresponding MIB drop counter, 2'b11 - Enable hop 6956 * count based discard, change EOF to EOFni, do not drop packet. 6957 * 6958 * HOPCOUNT_DECR_ENABLE : 6959 * Enable VFT HopCount field auto decrement. (HopCnt discard is checked 6960 * before the decrement is done). 1 - Enable hop count decrement in VFT 6961 * Header, 0 - Disable hop count decrement. When HopCnt Auto-Decrement 6962 * mode is enabled, if Hopcnt > 1 decrement on egress. 6963 * 6964 * VFID_MAPSRC : 6965 * Define source of post-mapper VFID field when VFTHdr exists at 6966 * post-mapper. 3'b000 - Disable VFID field processing. 3'b001 - Pass thru 6967 * VFID field else use port default if not exist. 3'b010 - Apply Port 6968 * default to VFID field. 3'b011 - Apply VLAN VID field directly to VFID 6969 * field, else use port default if 802.1Q tag does not exist at VLAN. 6970 * 3'b100 - Apply Map result (as defined in map table input and map table 6971 * direction) to VFID field. else use port default if 802.1Q tag does not 6972 * exist. Other - Reserved 6973 * 6974 * VFTHDR_PRESENCE : 6975 * Preserve/Insert/Drop setting of the post-mapper packet or frame. 2'b00 6976 * - Preserve VFT Header -- an existing VFT header is preserved and mapped 6977 * according to VFID mapsrc. If a VFT Header does not exist, VFT 6978 * processing is skipped . 2'b01 - In this mode the frame will be 6979 * forwarded with a VFT header. If a VFT header does not exist, the mapper 6980 * will create and insert a VFT header based on the VFID mapsrc setting. 6981 * Otherwise if a VFT header does exist, the mapper will process the 6982 * existing VFT header as programmed in VFID mapsrc. If VFT header does 6983 * not exist, a VFT header will be inserted and the programmed VFID mapsrc 6984 * will be applied to this inserted VFT header. If VFT header does already 6985 * exist, the programmed VFID mapsrc will be applied to existing VFT 6986 * header. 2'b10 - Drop VFTHdr if exists, otherwise do nothing if VFTHdr 6987 * does not exist. 2'b11 - reserved 6988 */ 6989 #define bcm84756_a0_FCM_FCMI_VFTHDR_PROC_MODEr(c) \ 6990 (0x13100008 + (BFCMAP_PORT((c)) << 12)) 6991 6992 #define bcm84756_a0_FCM_FCMI_VFTHDR_PROC_MODEr_SIZE 1 6993 6994 /* 6995 * This structure should be used to declare and program FCM_FCMI_VFTHDR_PROC_MODE. 6996 */ 6997 typedef union bcm84756_a0_FCM_FCMI_VFTHDR_PROC_MODEr_s { 6998 buint32_t v[1]; 6999 buint32_t fcm_fcmi_vfthdr_proc_mode[1]; 7000 buint32_t _fcm_fcmi_vfthdr_proc_mode; 7001 } bcm84756_a0_FCM_FCMI_VFTHDR_PROC_MODEr_t; 7002 7003 #define bcm84756_a0_FCM_FCMI_VFTHDR_PROC_MODEr_CLR(r) \ 7004 (r).fcm_fcmi_vfthdr_proc_mode[0] = 0 7005 7006 #define bcm84756_a0_FCM_FCMI_VFTHDR_PROC_MODEr_SET(r,d) \ 7007 (r).fcm_fcmi_vfthdr_proc_mode[0] = d 7008 7009 #define bcm84756_a0_FCM_FCMI_VFTHDR_PROC_MODEr_GET(r) \ 7010 (r).fcm_fcmi_vfthdr_proc_mode[0] 7011 7012 7013 /* 7014 * These macros can be used to access individual fields. 7015 */ 7016 #define bcm84756_a0_FCM_FCMI_VFTHDR_PROC_MODEr_HOPCOUNT_DISCARD_ENABLEf_GET(c,r) \ 7017 (((r).fcm_fcmi_vfthdr_proc_mode[0]) & 0x3) 7018 7019 #define bcm84756_a0_FCM_FCMI_VFTHDR_PROC_MODEr_HOPCOUNT_DISCARD_ENABLEf_SET(c,r,f) \ 7020 (r).fcm_fcmi_vfthdr_proc_mode[0]=(((r).fcm_fcmi_vfthdr_proc_mode[0] & ~((buint32_t)0x3)) | \ 7021 (((buint32_t)f) & 0x3)) 7022 7023 #define bcm84756_a0_FCM_FCMI_VFTHDR_PROC_MODEr_HOPCOUNT_DECR_ENABLEf_GET(c,r) \ 7024 ((((r).fcm_fcmi_vfthdr_proc_mode[0]) >> 2) & 0x1) 7025 7026 #define bcm84756_a0_FCM_FCMI_VFTHDR_PROC_MODEr_HOPCOUNT_DECR_ENABLEf_SET(c,r,f) \ 7027 (r).fcm_fcmi_vfthdr_proc_mode[0]=(((r).fcm_fcmi_vfthdr_proc_mode[0] & ~((buint32_t)0x1 << 2)) | \ 7028 ((((buint32_t)f) & 0x1) << 2)) 7029 7030 #define bcm84756_a0_FCM_FCMI_VFTHDR_PROC_MODEr_VFID_MAPSRCf_GET(c,r) \ 7031 ((((r).fcm_fcmi_vfthdr_proc_mode[0]) >> 4) & 0x7) 7032 7033 #define bcm84756_a0_FCM_FCMI_VFTHDR_PROC_MODEr_VFID_MAPSRCf_SET(c,r,f) \ 7034 (r).fcm_fcmi_vfthdr_proc_mode[0]=(((r).fcm_fcmi_vfthdr_proc_mode[0] & ~((buint32_t)0x7 << 4)) | \ 7035 ((((buint32_t)f) & 0x7) << 4)) 7036 7037 #define bcm84756_a0_FCM_FCMI_VFTHDR_PROC_MODEr_VFTHDR_PRESENCEf_GET(c,r) \ 7038 ((((r).fcm_fcmi_vfthdr_proc_mode[0]) >> 8) & 0x3) 7039 7040 #define bcm84756_a0_FCM_FCMI_VFTHDR_PROC_MODEr_VFTHDR_PRESENCEf_SET(c,r,f) \ 7041 (r).fcm_fcmi_vfthdr_proc_mode[0]=(((r).fcm_fcmi_vfthdr_proc_mode[0] & ~((buint32_t)0x3 << 8)) | \ 7042 ((((buint32_t)f) & 0x3) << 8)) 7043 7044 7045 /* 7046 * These macros can be used to access FCM_FCMI_VFTHDR_PROC_MODE. 7047 */ 7048 #define bcm84756_a0_READ_FCM_FCMI_VFTHDR_PROC_MODEr(c,r) \ 7049 BFCMAP_REG32_READ((c),bcm84756_a0_FCM_FCMI_VFTHDR_PROC_MODEr((c)),&((r)._fcm_fcmi_vfthdr_proc_mode)) 7050 7051 #define bcm84756_a0_WRITE_FCM_FCMI_VFTHDR_PROC_MODEr(c,r) \ 7052 BFCMAP_REG32_WRITE((c),bcm84756_a0_FCM_FCMI_VFTHDR_PROC_MODEr((c)),&((r)._fcm_fcmi_vfthdr_proc_mode)) 7053 7054 /******************************************************************************* 7055 * End of 'bcm84756_a0_FCM_FCMI_VFTHDR_PROC_MODEr' 7056 */ 7057 7058 7059 7060 7061 /******************************************************************************* 7062 * CHIP: bcm84756_a0 7063 * REGISTER: FCM_FCMI_VLANTAG_PROC_MODE 7064 * BLOCKS: SECPORT 7065 * DESCRIPTION : 7066 * Configures how the mapper creates, removes, or modifies the 802.1Q tag 7067 * field of a FCoE packet. 7068 * 7069 * SIZE: 32 7070 * 7071 * FIELDS DESCRIPTION: 7072 * PRI_MAP_MODE : 7073 * Post-Mapper VLAN tag PRI Field Processing; VLAN PRI to VLAN PRI mapping 7074 * mode. 1 - Pass thru PRI if VLAN tag exists else use port default. 0 - 7075 * Use PRI port default. 7076 * 7077 * VLANTAG_MAPSRC : 7078 * Define source of post-mapper VLAN tag field when a VLAN tag exists at 7079 * post-mapper. 2'b00 - Pass thru VLANtag field from VFID else use port 7080 * default if not exist. 2'b01 - Pass thru VLANtag field from VLANtag else 7081 * use port default if not exist. 2'b10 - Apply Port default to VLANtag 7082 * field. 2'b11 - Apply Map result (as defined inport mode) to VLANtag 7083 * field, else use port default. if 802.1Q tag does not exist at VLAN. 7084 * 7085 * VLANTAG_PRESENCE : 7086 * Drop/Insert/Pass setting of the post-mapper packet. 2'b00 - Disable 7087 * VLANtag processing -- No change. 2'b01 - Insert VLANtag if it does not 7088 * exist, else pass thru if it does exist. 2'b10 - Remove VLANtag if 7089 * exists, otherwise do nothing if VLANtag does not exist. 2'b11 - 7090 * reserved 7091 */ 7092 #define bcm84756_a0_FCM_FCMI_VLANTAG_PROC_MODEr(c) \ 7093 (0x13100009 + (BFCMAP_PORT((c)) << 12)) 7094 7095 #define bcm84756_a0_FCM_FCMI_VLANTAG_PROC_MODEr_SIZE 1 7096 7097 /* 7098 * This structure should be used to declare and program FCM_FCMI_VLANTAG_PROC_MODE. 7099 */ 7100 typedef union bcm84756_a0_FCM_FCMI_VLANTAG_PROC_MODEr_s { 7101 buint32_t v[1]; 7102 buint32_t fcm_fcmi_vlantag_proc_mode[1]; 7103 buint32_t _fcm_fcmi_vlantag_proc_mode; 7104 } bcm84756_a0_FCM_FCMI_VLANTAG_PROC_MODEr_t; 7105 7106 #define bcm84756_a0_FCM_FCMI_VLANTAG_PROC_MODEr_CLR(r) \ 7107 (r).fcm_fcmi_vlantag_proc_mode[0] = 0 7108 7109 #define bcm84756_a0_FCM_FCMI_VLANTAG_PROC_MODEr_SET(r,d) \ 7110 (r).fcm_fcmi_vlantag_proc_mode[0] = d 7111 7112 #define bcm84756_a0_FCM_FCMI_VLANTAG_PROC_MODEr_GET(r) \ 7113 (r).fcm_fcmi_vlantag_proc_mode[0] 7114 7115 7116 /* 7117 * These macros can be used to access individual fields. 7118 */ 7119 #define bcm84756_a0_FCM_FCMI_VLANTAG_PROC_MODEr_PRI_MAP_MODEf_GET(c,r) \ 7120 (((r).fcm_fcmi_vlantag_proc_mode[0]) & 0x1) 7121 7122 #define bcm84756_a0_FCM_FCMI_VLANTAG_PROC_MODEr_PRI_MAP_MODEf_SET(c,r,f) \ 7123 (r).fcm_fcmi_vlantag_proc_mode[0]=(((r).fcm_fcmi_vlantag_proc_mode[0] & ~((buint32_t)0x1)) | \ 7124 (((buint32_t)f) & 0x1)) 7125 7126 #define bcm84756_a0_FCM_FCMI_VLANTAG_PROC_MODEr_VLANTAG_MAPSRCf_GET(c,r) \ 7127 ((((r).fcm_fcmi_vlantag_proc_mode[0]) >> 3) & 0x3) 7128 7129 #define bcm84756_a0_FCM_FCMI_VLANTAG_PROC_MODEr_VLANTAG_MAPSRCf_SET(c,r,f) \ 7130 (r).fcm_fcmi_vlantag_proc_mode[0]=(((r).fcm_fcmi_vlantag_proc_mode[0] & ~((buint32_t)0x3 << 3)) | \ 7131 ((((buint32_t)f) & 0x3) << 3)) 7132 7133 #define bcm84756_a0_FCM_FCMI_VLANTAG_PROC_MODEr_VLANTAG_PRESENCEf_GET(c,r) \ 7134 ((((r).fcm_fcmi_vlantag_proc_mode[0]) >> 5) & 0x3) 7135 7136 #define bcm84756_a0_FCM_FCMI_VLANTAG_PROC_MODEr_VLANTAG_PRESENCEf_SET(c,r,f) \ 7137 (r).fcm_fcmi_vlantag_proc_mode[0]=(((r).fcm_fcmi_vlantag_proc_mode[0] & ~((buint32_t)0x3 << 5)) | \ 7138 ((((buint32_t)f) & 0x3) << 5)) 7139 7140 7141 /* 7142 * These macros can be used to access FCM_FCMI_VLANTAG_PROC_MODE. 7143 */ 7144 #define bcm84756_a0_READ_FCM_FCMI_VLANTAG_PROC_MODEr(c,r) \ 7145 BFCMAP_REG32_READ((c),bcm84756_a0_FCM_FCMI_VLANTAG_PROC_MODEr((c)),&((r)._fcm_fcmi_vlantag_proc_mode)) 7146 7147 #define bcm84756_a0_WRITE_FCM_FCMI_VLANTAG_PROC_MODEr(c,r) \ 7148 BFCMAP_REG32_WRITE((c),bcm84756_a0_FCM_FCMI_VLANTAG_PROC_MODEr((c)),&((r)._fcm_fcmi_vlantag_proc_mode)) 7149 7150 /******************************************************************************* 7151 * End of 'bcm84756_a0_FCM_FCMI_VLANTAG_PROC_MODEr' 7152 */ 7153 7154 7155 7156 7157 /******************************************************************************* 7158 * CHIP: bcm84756_a0 7159 * REGISTER: FCM_FCMON_INTR_MASK 7160 * BLOCKS: SECPORT 7161 * DESCRIPTION : 7162 * FCMON Interrupt pin mask register. 7163 * 7164 * SIZE: 32 7165 * 7166 * FIELDS DESCRIPTION: 7167 * HOSTM : 7168 * Mask the FCMON interrupt from asserting the o int host signal. 7169 * 7170 * LOCALM : 7171 * Mask the FCMON interrupt from asserting the o int local signal. 7172 */ 7173 #define bcm84756_a0_FCM_FCMON_INTR_MASKr(c) \ 7174 (0x1310001b + (BFCMAP_PORT((c)) << 12)) 7175 7176 #define bcm84756_a0_FCM_FCMON_INTR_MASKr_SIZE 1 7177 7178 /* 7179 * This structure should be used to declare and program FCM_FCMON_INTR_MASK. 7180 */ 7181 typedef union bcm84756_a0_FCM_FCMON_INTR_MASKr_s { 7182 buint32_t v[1]; 7183 buint32_t fcm_fcmon_intr_mask[1]; 7184 buint32_t _fcm_fcmon_intr_mask; 7185 } bcm84756_a0_FCM_FCMON_INTR_MASKr_t; 7186 7187 #define bcm84756_a0_FCM_FCMON_INTR_MASKr_CLR(r) \ 7188 (r).fcm_fcmon_intr_mask[0] = 0 7189 7190 #define bcm84756_a0_FCM_FCMON_INTR_MASKr_SET(r,d) \ 7191 (r).fcm_fcmon_intr_mask[0] = d 7192 7193 #define bcm84756_a0_FCM_FCMON_INTR_MASKr_GET(r) \ 7194 (r).fcm_fcmon_intr_mask[0] 7195 7196 7197 /* 7198 * These macros can be used to access individual fields. 7199 */ 7200 #define bcm84756_a0_FCM_FCMON_INTR_MASKr_HOSTMf_GET(c,r) \ 7201 (((r).fcm_fcmon_intr_mask[0]) & 0x1) 7202 7203 #define bcm84756_a0_FCM_FCMON_INTR_MASKr_HOSTMf_SET(c,r,f) \ 7204 (r).fcm_fcmon_intr_mask[0]=(((r).fcm_fcmon_intr_mask[0] & ~((buint32_t)0x1)) | \ 7205 (((buint32_t)f) & 0x1)) 7206 7207 #define bcm84756_a0_FCM_FCMON_INTR_MASKr_LOCALMf_GET(c,r) \ 7208 ((((r).fcm_fcmon_intr_mask[0]) >> 1) & 0x1) 7209 7210 #define bcm84756_a0_FCM_FCMON_INTR_MASKr_LOCALMf_SET(c,r,f) \ 7211 (r).fcm_fcmon_intr_mask[0]=(((r).fcm_fcmon_intr_mask[0] & ~((buint32_t)0x1 << 1)) | \ 7212 ((((buint32_t)f) & 0x1) << 1)) 7213 7214 7215 /* 7216 * These macros can be used to access FCM_FCMON_INTR_MASK. 7217 */ 7218 #define bcm84756_a0_READ_FCM_FCMON_INTR_MASKr(c,r) \ 7219 BFCMAP_REG32_READ((c),bcm84756_a0_FCM_FCMON_INTR_MASKr((c)),&((r)._fcm_fcmon_intr_mask)) 7220 7221 #define bcm84756_a0_WRITE_FCM_FCMON_INTR_MASKr(c,r) \ 7222 BFCMAP_REG32_WRITE((c),bcm84756_a0_FCM_FCMON_INTR_MASKr((c)),&((r)._fcm_fcmon_intr_mask)) 7223 7224 /******************************************************************************* 7225 * End of 'bcm84756_a0_FCM_FCMON_INTR_MASKr' 7226 */ 7227 7228 7229 7230 7231 /******************************************************************************* 7232 * CHIP: bcm84756_a0 7233 * REGISTER: FCM_FCMON_RX_AUTO_SPEED_CONFIG 7234 * BLOCKS: SECPORT 7235 * DESCRIPTION : 7236 * FCMON RX Auto Speed Config. 7237 * 7238 * SIZE: 32 7239 * 7240 * FIELDS DESCRIPTION: 7241 * FC_OPER_RATE : 7242 * Configures the Fiber Channel Rx block speed. 3'b000 - auto-speed 7243 * detection 3'b001 - reserved 3'b010 - 2.125 Gb/s 3'b011 - 4.25 Gb/s 7244 * 3'b100 - 8.5 Gb/s others - reserved 7245 * 7246 * FC_AUTO_SPEED_RESET : 7247 * Writing 1 will re-initialize the auto-speed detection process fc auto 7248 * speed reset is self-clearing. 7249 * 7250 * FC_AUTO_SPEED_SYNC_TEST_START : 7251 * Writing 1 will re-initialize the auto-speed sync test at the current 7252 * speed. The speed won't change once this process is done. The fc auto 7253 * speed sync test start bit is self-clearing., 0 - The Fiber Channel 8GFC 7254 * sync test interrupt is masked at the interrupt pin. 1 - The Fiber 7255 * Channel 8GFC sync test interrupt is enabled. 7256 * 7257 * FC_AUTO_SPEED_DELAY : 7258 * Configure the auto-speed detect delay. (TBD: write-only?) 0 - The delay 7259 * in the auto-speed detection is 25 usec 1 - The delay in the auto-speed 7260 * detection is 50 usec 7261 * 7262 * FC_AUTO_SPEED_SELF_RESTART : 7263 * fc auto speed self restart. (TBD: write-only?) 0 - The auto-speed 7264 * detection does not restart on a loss of word synchronization. 1 - The 7265 * auto-speed detection does restart on a loss of word synchronization. 7266 */ 7267 #define bcm84756_a0_FCM_FCMON_RX_AUTO_SPEED_CONFIGr(c) \ 7268 (0x13100089 + (BFCMAP_PORT((c)) << 12)) 7269 7270 #define bcm84756_a0_FCM_FCMON_RX_AUTO_SPEED_CONFIGr_SIZE 1 7271 7272 /* 7273 * This structure should be used to declare and program FCM_FCMON_RX_AUTO_SPEED_CONFIG. 7274 */ 7275 typedef union bcm84756_a0_FCM_FCMON_RX_AUTO_SPEED_CONFIGr_s { 7276 buint32_t v[1]; 7277 buint32_t fcm_fcmon_rx_auto_speed_config[1]; 7278 buint32_t _fcm_fcmon_rx_auto_speed_config; 7279 } bcm84756_a0_FCM_FCMON_RX_AUTO_SPEED_CONFIGr_t; 7280 7281 #define bcm84756_a0_FCM_FCMON_RX_AUTO_SPEED_CONFIGr_CLR(r) \ 7282 (r).fcm_fcmon_rx_auto_speed_config[0] = 0 7283 7284 #define bcm84756_a0_FCM_FCMON_RX_AUTO_SPEED_CONFIGr_SET(r,d) \ 7285 (r).fcm_fcmon_rx_auto_speed_config[0] = d 7286 7287 #define bcm84756_a0_FCM_FCMON_RX_AUTO_SPEED_CONFIGr_GET(r) \ 7288 (r).fcm_fcmon_rx_auto_speed_config[0] 7289 7290 7291 /* 7292 * These macros can be used to access individual fields. 7293 */ 7294 #define bcm84756_a0_FCM_FCMON_RX_AUTO_SPEED_CONFIGr_FC_OPER_RATEf_GET(c,r) \ 7295 (((r).fcm_fcmon_rx_auto_speed_config[0]) & 0x7) 7296 7297 #define bcm84756_a0_FCM_FCMON_RX_AUTO_SPEED_CONFIGr_FC_OPER_RATEf_SET(c,r,f) \ 7298 (r).fcm_fcmon_rx_auto_speed_config[0]=(((r).fcm_fcmon_rx_auto_speed_config[0] & ~((buint32_t)0x7)) | \ 7299 (((buint32_t)f) & 0x7)) 7300 7301 #define bcm84756_a0_FCM_FCMON_RX_AUTO_SPEED_CONFIGr_FC_AUTO_SPEED_RESETf_GET(c,r) \ 7302 ((((r).fcm_fcmon_rx_auto_speed_config[0]) >> 6) & 0x1) 7303 7304 #define bcm84756_a0_FCM_FCMON_RX_AUTO_SPEED_CONFIGr_FC_AUTO_SPEED_RESETf_SET(c,r,f) \ 7305 (r).fcm_fcmon_rx_auto_speed_config[0]=(((r).fcm_fcmon_rx_auto_speed_config[0] & ~((buint32_t)0x1 << 6)) | \ 7306 ((((buint32_t)f) & 0x1) << 6)) 7307 7308 #define bcm84756_a0_FCM_FCMON_RX_AUTO_SPEED_CONFIGr_FC_AUTO_SPEED_SYNC_TEST_STARTf_GET(c,r) \ 7309 ((((r).fcm_fcmon_rx_auto_speed_config[0]) >> 7) & 0x1) 7310 7311 #define bcm84756_a0_FCM_FCMON_RX_AUTO_SPEED_CONFIGr_FC_AUTO_SPEED_SYNC_TEST_STARTf_SET(c,r,f) \ 7312 (r).fcm_fcmon_rx_auto_speed_config[0]=(((r).fcm_fcmon_rx_auto_speed_config[0] & ~((buint32_t)0x1 << 7)) | \ 7313 ((((buint32_t)f) & 0x1) << 7)) 7314 7315 #define bcm84756_a0_FCM_FCMON_RX_AUTO_SPEED_CONFIGr_FC_AUTO_SPEED_DELAYf_GET(c,r) \ 7316 ((((r).fcm_fcmon_rx_auto_speed_config[0]) >> 8) & 0x1) 7317 7318 #define bcm84756_a0_FCM_FCMON_RX_AUTO_SPEED_CONFIGr_FC_AUTO_SPEED_DELAYf_SET(c,r,f) \ 7319 (r).fcm_fcmon_rx_auto_speed_config[0]=(((r).fcm_fcmon_rx_auto_speed_config[0] & ~((buint32_t)0x1 << 8)) | \ 7320 ((((buint32_t)f) & 0x1) << 8)) 7321 7322 #define bcm84756_a0_FCM_FCMON_RX_AUTO_SPEED_CONFIGr_FC_AUTO_SPEED_SELF_RESTARTf_GET(c,r) \ 7323 ((((r).fcm_fcmon_rx_auto_speed_config[0]) >> 9) & 0x1) 7324 7325 #define bcm84756_a0_FCM_FCMON_RX_AUTO_SPEED_CONFIGr_FC_AUTO_SPEED_SELF_RESTARTf_SET(c,r,f) \ 7326 (r).fcm_fcmon_rx_auto_speed_config[0]=(((r).fcm_fcmon_rx_auto_speed_config[0] & ~((buint32_t)0x1 << 9)) | \ 7327 ((((buint32_t)f) & 0x1) << 9)) 7328 7329 7330 /* 7331 * These macros can be used to access FCM_FCMON_RX_AUTO_SPEED_CONFIG. 7332 */ 7333 #define bcm84756_a0_READ_FCM_FCMON_RX_AUTO_SPEED_CONFIGr(c,r) \ 7334 BFCMAP_REG32_READ((c),bcm84756_a0_FCM_FCMON_RX_AUTO_SPEED_CONFIGr((c)),&((r)._fcm_fcmon_rx_auto_speed_config)) 7335 7336 #define bcm84756_a0_WRITE_FCM_FCMON_RX_AUTO_SPEED_CONFIGr(c,r) \ 7337 BFCMAP_REG32_WRITE((c),bcm84756_a0_FCM_FCMON_RX_AUTO_SPEED_CONFIGr((c)),&((r)._fcm_fcmon_rx_auto_speed_config)) 7338 7339 /******************************************************************************* 7340 * End of 'bcm84756_a0_FCM_FCMON_RX_AUTO_SPEED_CONFIGr' 7341 */ 7342 7343 7344 7345 7346 /******************************************************************************* 7347 * CHIP: bcm84756_a0 7348 * REGISTER: FCM_FCMON_RX_AUTO_SPEED_STATUS 7349 * BLOCKS: SECPORT 7350 * DESCRIPTION : 7351 * FCMON RX Auto Speed Status. 7352 * 7353 * SIZE: 32 7354 * 7355 * FIELDS DESCRIPTION: 7356 * FC_RX_LINK_SPEED : 7357 * Speed in operation: 3'b010 - 2.125 Gb/s 3'b011 - 4.25 Gb/s 3'b100 - 8.5 7358 * Gb/s 7359 * 7360 * FC_AUTO_SPEED_SYNC_TEST_END : 7361 * Indicates that the auto-speed sync test has completed. 7362 * 7363 * FC_AUTO_SPEED_SYNC_TEST_FAIL : 7364 * Indicates that the auto-speed sync test has failed for the current link 7365 * speed. 7366 */ 7367 #define bcm84756_a0_FCM_FCMON_RX_AUTO_SPEED_STATUSr(c) \ 7368 (0x1310008a + (BFCMAP_PORT((c)) << 12)) 7369 7370 #define bcm84756_a0_FCM_FCMON_RX_AUTO_SPEED_STATUSr_SIZE 1 7371 7372 /* 7373 * This structure should be used to declare and program FCM_FCMON_RX_AUTO_SPEED_STATUS. 7374 */ 7375 typedef union bcm84756_a0_FCM_FCMON_RX_AUTO_SPEED_STATUSr_s { 7376 buint32_t v[1]; 7377 buint32_t fcm_fcmon_rx_auto_speed_status[1]; 7378 buint32_t _fcm_fcmon_rx_auto_speed_status; 7379 } bcm84756_a0_FCM_FCMON_RX_AUTO_SPEED_STATUSr_t; 7380 7381 #define bcm84756_a0_FCM_FCMON_RX_AUTO_SPEED_STATUSr_CLR(r) \ 7382 (r).fcm_fcmon_rx_auto_speed_status[0] = 0 7383 7384 #define bcm84756_a0_FCM_FCMON_RX_AUTO_SPEED_STATUSr_SET(r,d) \ 7385 (r).fcm_fcmon_rx_auto_speed_status[0] = d 7386 7387 #define bcm84756_a0_FCM_FCMON_RX_AUTO_SPEED_STATUSr_GET(r) \ 7388 (r).fcm_fcmon_rx_auto_speed_status[0] 7389 7390 7391 /* 7392 * These macros can be used to access individual fields. 7393 */ 7394 #define bcm84756_a0_FCM_FCMON_RX_AUTO_SPEED_STATUSr_FC_RX_LINK_SPEEDf_GET(c,r) \ 7395 (((r).fcm_fcmon_rx_auto_speed_status[0]) & 0x7) 7396 7397 #define bcm84756_a0_FCM_FCMON_RX_AUTO_SPEED_STATUSr_FC_RX_LINK_SPEEDf_SET(c,r,f) \ 7398 (r).fcm_fcmon_rx_auto_speed_status[0]=(((r).fcm_fcmon_rx_auto_speed_status[0] & ~((buint32_t)0x7)) | \ 7399 (((buint32_t)f) & 0x7)) 7400 7401 #define bcm84756_a0_FCM_FCMON_RX_AUTO_SPEED_STATUSr_FC_AUTO_SPEED_SYNC_TEST_ENDf_GET(c,r) \ 7402 ((((r).fcm_fcmon_rx_auto_speed_status[0]) >> 7) & 0x1) 7403 7404 #define bcm84756_a0_FCM_FCMON_RX_AUTO_SPEED_STATUSr_FC_AUTO_SPEED_SYNC_TEST_ENDf_SET(c,r,f) \ 7405 (r).fcm_fcmon_rx_auto_speed_status[0]=(((r).fcm_fcmon_rx_auto_speed_status[0] & ~((buint32_t)0x1 << 7)) | \ 7406 ((((buint32_t)f) & 0x1) << 7)) 7407 7408 #define bcm84756_a0_FCM_FCMON_RX_AUTO_SPEED_STATUSr_FC_AUTO_SPEED_SYNC_TEST_FAILf_GET(c,r) \ 7409 ((((r).fcm_fcmon_rx_auto_speed_status[0]) >> 8) & 0x1) 7410 7411 #define bcm84756_a0_FCM_FCMON_RX_AUTO_SPEED_STATUSr_FC_AUTO_SPEED_SYNC_TEST_FAILf_SET(c,r,f) \ 7412 (r).fcm_fcmon_rx_auto_speed_status[0]=(((r).fcm_fcmon_rx_auto_speed_status[0] & ~((buint32_t)0x1 << 8)) | \ 7413 ((((buint32_t)f) & 0x1) << 8)) 7414 7415 7416 /* 7417 * These macros can be used to access FCM_FCMON_RX_AUTO_SPEED_STATUS. 7418 */ 7419 #define bcm84756_a0_READ_FCM_FCMON_RX_AUTO_SPEED_STATUSr(c,r) \ 7420 BFCMAP_REG32_READ((c),bcm84756_a0_FCM_FCMON_RX_AUTO_SPEED_STATUSr((c)),&((r)._fcm_fcmon_rx_auto_speed_status)) 7421 7422 #define bcm84756_a0_WRITE_FCM_FCMON_RX_AUTO_SPEED_STATUSr(c,r) \ 7423 BFCMAP_REG32_WRITE((c),bcm84756_a0_FCM_FCMON_RX_AUTO_SPEED_STATUSr((c)),&((r)._fcm_fcmon_rx_auto_speed_status)) 7424 7425 /******************************************************************************* 7426 * End of 'bcm84756_a0_FCM_FCMON_RX_AUTO_SPEED_STATUSr' 7427 */ 7428 7429 7430 7431 7432 /******************************************************************************* 7433 * CHIP: bcm84756_a0 7434 * REGISTER: FCM_FCMON_RX_CONTROL 7435 * BLOCKS: SECPORT 7436 * DESCRIPTION : 7437 * FCMON Control Reg. 7438 * 7439 * SIZE: 32 7440 * 7441 * FIELDS DESCRIPTION: 7442 * FC_PWR_DWN : 7443 * FCMON powerdown. 0 - The Fiber Channel Rx block in alive 1 - The Fiber 7444 * Channel Rx block is powered down (except the configuration registers) 7445 * 7446 * FC_SW_RST : 7447 * FCMON RX reset. 0 - The Fiber Channel Rx block is functional 1 - The 7448 * Fiber Channel Rx block is in reset 7449 * 7450 * WSYNC_MODE : 7451 * Word sync state machine mode. 0 - The Fiber Channel synchronizes on any 7452 * comma word 1 - The Fiber Channel synchronizes only on K28.5 character 7453 * 7454 * WSYNC_RST : 7455 * Word sync state machine reset. 0 - The Fiber Channel Word 7456 * Synchronization funtions normally 1 - The Fiber Channel Word 7457 * Synchronization is in reset state. 7458 * 7459 * COMMA_DETECT_WINDOW : 7460 * Comma detection mode. An interrupt is declared if a comma character is 7461 * not detected within the window. 000 : 25 usec 001 : 50 usec 010 : 100 7462 * usec 011 : 200 usec 100 : 400 usec 101 : 800 usec 110 : 1600 usec 111 : 7463 * 3200 usec 7464 * 7465 * RX10B_BIT_ORDER : 7466 * Receive data bit order reversal. 0 - Normal bit order. 1 - Reverse RX 7467 * 10b word bit order. 7468 * 7469 * CDR_REQ_SEQSTART : 7470 * Word sync state machine mode. 7471 */ 7472 #define bcm84756_a0_FCM_FCMON_RX_CONTROLr(c) \ 7473 (0x13100085 + (BFCMAP_PORT((c)) << 12)) 7474 7475 #define bcm84756_a0_FCM_FCMON_RX_CONTROLr_SIZE 1 7476 7477 /* 7478 * This structure should be used to declare and program FCM_FCMON_RX_CONTROL. 7479 */ 7480 typedef union bcm84756_a0_FCM_FCMON_RX_CONTROLr_s { 7481 buint32_t v[1]; 7482 buint32_t fcm_fcmon_rx_control[1]; 7483 buint32_t _fcm_fcmon_rx_control; 7484 } bcm84756_a0_FCM_FCMON_RX_CONTROLr_t; 7485 7486 #define bcm84756_a0_FCM_FCMON_RX_CONTROLr_CLR(r) \ 7487 (r).fcm_fcmon_rx_control[0] = 0 7488 7489 #define bcm84756_a0_FCM_FCMON_RX_CONTROLr_SET(r,d) \ 7490 (r).fcm_fcmon_rx_control[0] = d 7491 7492 #define bcm84756_a0_FCM_FCMON_RX_CONTROLr_GET(r) \ 7493 (r).fcm_fcmon_rx_control[0] 7494 7495 7496 /* 7497 * These macros can be used to access individual fields. 7498 */ 7499 #define bcm84756_a0_FCM_FCMON_RX_CONTROLr_FC_PWR_DWNf_GET(c,r) \ 7500 (((r).fcm_fcmon_rx_control[0]) & 0x1) 7501 7502 #define bcm84756_a0_FCM_FCMON_RX_CONTROLr_FC_PWR_DWNf_SET(c,r,f) \ 7503 (r).fcm_fcmon_rx_control[0]=(((r).fcm_fcmon_rx_control[0] & ~((buint32_t)0x1)) | \ 7504 (((buint32_t)f) & 0x1)) 7505 7506 #define bcm84756_a0_FCM_FCMON_RX_CONTROLr_FC_SW_RSTf_GET(c,r) \ 7507 ((((r).fcm_fcmon_rx_control[0]) >> 1) & 0x1) 7508 7509 #define bcm84756_a0_FCM_FCMON_RX_CONTROLr_FC_SW_RSTf_SET(c,r,f) \ 7510 (r).fcm_fcmon_rx_control[0]=(((r).fcm_fcmon_rx_control[0] & ~((buint32_t)0x1 << 1)) | \ 7511 ((((buint32_t)f) & 0x1) << 1)) 7512 7513 #define bcm84756_a0_FCM_FCMON_RX_CONTROLr_WSYNC_MODEf_GET(c,r) \ 7514 ((((r).fcm_fcmon_rx_control[0]) >> 3) & 0x1) 7515 7516 #define bcm84756_a0_FCM_FCMON_RX_CONTROLr_WSYNC_MODEf_SET(c,r,f) \ 7517 (r).fcm_fcmon_rx_control[0]=(((r).fcm_fcmon_rx_control[0] & ~((buint32_t)0x1 << 3)) | \ 7518 ((((buint32_t)f) & 0x1) << 3)) 7519 7520 #define bcm84756_a0_FCM_FCMON_RX_CONTROLr_WSYNC_RSTf_GET(c,r) \ 7521 ((((r).fcm_fcmon_rx_control[0]) >> 4) & 0x1) 7522 7523 #define bcm84756_a0_FCM_FCMON_RX_CONTROLr_WSYNC_RSTf_SET(c,r,f) \ 7524 (r).fcm_fcmon_rx_control[0]=(((r).fcm_fcmon_rx_control[0] & ~((buint32_t)0x1 << 4)) | \ 7525 ((((buint32_t)f) & 0x1) << 4)) 7526 7527 #define bcm84756_a0_FCM_FCMON_RX_CONTROLr_COMMA_DETECT_WINDOWf_GET(c,r) \ 7528 ((((r).fcm_fcmon_rx_control[0]) >> 5) & 0x7) 7529 7530 #define bcm84756_a0_FCM_FCMON_RX_CONTROLr_COMMA_DETECT_WINDOWf_SET(c,r,f) \ 7531 (r).fcm_fcmon_rx_control[0]=(((r).fcm_fcmon_rx_control[0] & ~((buint32_t)0x7 << 5)) | \ 7532 ((((buint32_t)f) & 0x7) << 5)) 7533 7534 #define bcm84756_a0_FCM_FCMON_RX_CONTROLr_RX10B_BIT_ORDERf_GET(c,r) \ 7535 ((((r).fcm_fcmon_rx_control[0]) >> 8) & 0x1) 7536 7537 #define bcm84756_a0_FCM_FCMON_RX_CONTROLr_RX10B_BIT_ORDERf_SET(c,r,f) \ 7538 (r).fcm_fcmon_rx_control[0]=(((r).fcm_fcmon_rx_control[0] & ~((buint32_t)0x1 << 8)) | \ 7539 ((((buint32_t)f) & 0x1) << 8)) 7540 7541 #define bcm84756_a0_FCM_FCMON_RX_CONTROLr_CDR_REQ_SEQSTARTf_GET(c,r) \ 7542 ((((r).fcm_fcmon_rx_control[0]) >> 9) & 0x1) 7543 7544 #define bcm84756_a0_FCM_FCMON_RX_CONTROLr_CDR_REQ_SEQSTARTf_SET(c,r,f) \ 7545 (r).fcm_fcmon_rx_control[0]=(((r).fcm_fcmon_rx_control[0] & ~((buint32_t)0x1 << 9)) | \ 7546 ((((buint32_t)f) & 0x1) << 9)) 7547 7548 7549 /* 7550 * These macros can be used to access FCM_FCMON_RX_CONTROL. 7551 */ 7552 #define bcm84756_a0_READ_FCM_FCMON_RX_CONTROLr(c,r) \ 7553 BFCMAP_REG32_READ((c),bcm84756_a0_FCM_FCMON_RX_CONTROLr((c)),&((r)._fcm_fcmon_rx_control)) 7554 7555 #define bcm84756_a0_WRITE_FCM_FCMON_RX_CONTROLr(c,r) \ 7556 BFCMAP_REG32_WRITE((c),bcm84756_a0_FCM_FCMON_RX_CONTROLr((c)),&((r)._fcm_fcmon_rx_control)) 7557 7558 /******************************************************************************* 7559 * End of 'bcm84756_a0_FCM_FCMON_RX_CONTROLr' 7560 */ 7561 7562 7563 7564 7565 /******************************************************************************* 7566 * CHIP: bcm84756_a0 7567 * REGISTER: FCM_FCMON_RX_INTERRUPTS 7568 * BLOCKS: SECPORT 7569 * DESCRIPTION : 7570 * FCMON Status Reg. 7571 * 7572 * SIZE: 32 7573 * 7574 * FIELDS DESCRIPTION: 7575 * FC_WORD_SYNC_ACQ_INT : 7576 * Word Sync status change. 0 - The Fiber Channel word synchronization 7577 * status did not changed since the last read of this register. 1 - The 7578 * Fiber Channel word synchronization status changed since the last read 7579 * of this register. 7580 * 7581 * FC_LINK_FAIL_INT : 7582 * A link failure is declared when the port is in the loss of sync state 7583 * for r t tov. 0 - The Fiber Channel word link did not failed since the 7584 * last read of this register. 1 - The Fiber Channel word link failed 7585 * since the last read of this register. 7586 * 7587 * FC_SPEED_ACQ_INT : 7588 * Auto speed acquired. 0 - The Fiber Channel Auto-Speed Detection did not 7589 * acquire a speed since the last read of this register. 1 - The Fiber 7590 * Channel Auto-Speed Detection acquired a speed since the last read of 7591 * this register. 7592 * 7593 * FC_8B10B_CODE_ERROR_INT : 7594 * 8b10b code error. 0 - The Fiber Channel 8B/10B decoder did not detect 7595 * any code error since the last read of this register. 1 - The Fiber 7596 * Channel 8B/10B decoder detected a code error since the last read of 7597 * this register. 7598 * 7599 * FC_8B10B_DISPARITY_ERROR_INT : 7600 * 8b10b disparity error. 0 - The Fiber Channel 8B/10B decoder did not 7601 * detect any disparity error since the last read of this register. 1 - 7602 * The Fiber Channel 8B/10B decoder detected a disparity error since the 7603 * last read of this register. 7604 * 7605 * FC_40B_CODE_ERROR_INT : 7606 * RX 40b code error. 0 - The Fiber Channel word decoder did not detect 7607 * any error since the last read of this register. 1 - The Fiber Channel 7608 * word decoder detected an error since the last read of this register. 7609 * 7610 * FC_COMMA_DETECT_INT : 7611 * comma detect. 0 - The Fiber Channel word synchronizer did detect within 7612 * the specified window (comma detect window). 1 - The Fiber Channel word 7613 * synchronizer did not detect within the specified window (comma detect 7614 * window). 7615 * 7616 * FC_2G_SYNC_TEST_FAILED_INT : 7617 * 2g sync test failed. 0 - The Fiber Channel 2GFC sync test did not 7618 * failed since the last read of this register. 1 - The Fiber Channel 2GFC 7619 * sync test did failed since the last read of this register. 7620 * 7621 * FC_4G_SYNC_TEST_FAILED_INT : 7622 * 4g sync test failed. 0 - The Fiber Channel 4GFC sync test did not 7623 * failed since the last read of this register. 1 - The Fiber Channel 4GFC 7624 * sync test did failed since the last read of this register. 7625 * 7626 * FC_8G_SYNC_TEST_FAILED_INT : 7627 * 8g sync test failed. 0 - The Fiber Channel 8GFC sync test did not 7628 * failed since the last read of this register. 1 - The Fiber Channel 8GFC 7629 * sync test did failed since the last read of this register. 7630 */ 7631 #define bcm84756_a0_FCM_FCMON_RX_INTERRUPTSr(c) \ 7632 (0x13100087 + (BFCMAP_PORT((c)) << 12)) 7633 7634 #define bcm84756_a0_FCM_FCMON_RX_INTERRUPTSr_SIZE 1 7635 7636 /* 7637 * This structure should be used to declare and program FCM_FCMON_RX_INTERRUPTS. 7638 */ 7639 typedef union bcm84756_a0_FCM_FCMON_RX_INTERRUPTSr_s { 7640 buint32_t v[1]; 7641 buint32_t fcm_fcmon_rx_interrupts[1]; 7642 buint32_t _fcm_fcmon_rx_interrupts; 7643 } bcm84756_a0_FCM_FCMON_RX_INTERRUPTSr_t; 7644 7645 #define bcm84756_a0_FCM_FCMON_RX_INTERRUPTSr_CLR(r) \ 7646 (r).fcm_fcmon_rx_interrupts[0] = 0 7647 7648 #define bcm84756_a0_FCM_FCMON_RX_INTERRUPTSr_SET(r,d) \ 7649 (r).fcm_fcmon_rx_interrupts[0] = d 7650 7651 #define bcm84756_a0_FCM_FCMON_RX_INTERRUPTSr_GET(r) \ 7652 (r).fcm_fcmon_rx_interrupts[0] 7653 7654 7655 /* 7656 * These macros can be used to access individual fields. 7657 */ 7658 #define bcm84756_a0_FCM_FCMON_RX_INTERRUPTSr_FC_WORD_SYNC_ACQ_INTf_GET(c,r) \ 7659 (((r).fcm_fcmon_rx_interrupts[0]) & 0x1) 7660 7661 #define bcm84756_a0_FCM_FCMON_RX_INTERRUPTSr_FC_WORD_SYNC_ACQ_INTf_SET(c,r,f) \ 7662 (r).fcm_fcmon_rx_interrupts[0]=(((r).fcm_fcmon_rx_interrupts[0] & ~((buint32_t)0x1)) | \ 7663 (((buint32_t)f) & 0x1)) 7664 7665 #define bcm84756_a0_FCM_FCMON_RX_INTERRUPTSr_FC_LINK_FAIL_INTf_GET(c,r) \ 7666 ((((r).fcm_fcmon_rx_interrupts[0]) >> 1) & 0x1) 7667 7668 #define bcm84756_a0_FCM_FCMON_RX_INTERRUPTSr_FC_LINK_FAIL_INTf_SET(c,r,f) \ 7669 (r).fcm_fcmon_rx_interrupts[0]=(((r).fcm_fcmon_rx_interrupts[0] & ~((buint32_t)0x1 << 1)) | \ 7670 ((((buint32_t)f) & 0x1) << 1)) 7671 7672 #define bcm84756_a0_FCM_FCMON_RX_INTERRUPTSr_FC_SPEED_ACQ_INTf_GET(c,r) \ 7673 ((((r).fcm_fcmon_rx_interrupts[0]) >> 2) & 0x1) 7674 7675 #define bcm84756_a0_FCM_FCMON_RX_INTERRUPTSr_FC_SPEED_ACQ_INTf_SET(c,r,f) \ 7676 (r).fcm_fcmon_rx_interrupts[0]=(((r).fcm_fcmon_rx_interrupts[0] & ~((buint32_t)0x1 << 2)) | \ 7677 ((((buint32_t)f) & 0x1) << 2)) 7678 7679 #define bcm84756_a0_FCM_FCMON_RX_INTERRUPTSr_FC_8B10B_CODE_ERROR_INTf_GET(c,r) \ 7680 ((((r).fcm_fcmon_rx_interrupts[0]) >> 3) & 0x1) 7681 7682 #define bcm84756_a0_FCM_FCMON_RX_INTERRUPTSr_FC_8B10B_CODE_ERROR_INTf_SET(c,r,f) \ 7683 (r).fcm_fcmon_rx_interrupts[0]=(((r).fcm_fcmon_rx_interrupts[0] & ~((buint32_t)0x1 << 3)) | \ 7684 ((((buint32_t)f) & 0x1) << 3)) 7685 7686 #define bcm84756_a0_FCM_FCMON_RX_INTERRUPTSr_FC_8B10B_DISPARITY_ERROR_INTf_GET(c,r) \ 7687 ((((r).fcm_fcmon_rx_interrupts[0]) >> 4) & 0x1) 7688 7689 #define bcm84756_a0_FCM_FCMON_RX_INTERRUPTSr_FC_8B10B_DISPARITY_ERROR_INTf_SET(c,r,f) \ 7690 (r).fcm_fcmon_rx_interrupts[0]=(((r).fcm_fcmon_rx_interrupts[0] & ~((buint32_t)0x1 << 4)) | \ 7691 ((((buint32_t)f) & 0x1) << 4)) 7692 7693 #define bcm84756_a0_FCM_FCMON_RX_INTERRUPTSr_FC_40B_CODE_ERROR_INTf_GET(c,r) \ 7694 ((((r).fcm_fcmon_rx_interrupts[0]) >> 5) & 0x1) 7695 7696 #define bcm84756_a0_FCM_FCMON_RX_INTERRUPTSr_FC_40B_CODE_ERROR_INTf_SET(c,r,f) \ 7697 (r).fcm_fcmon_rx_interrupts[0]=(((r).fcm_fcmon_rx_interrupts[0] & ~((buint32_t)0x1 << 5)) | \ 7698 ((((buint32_t)f) & 0x1) << 5)) 7699 7700 #define bcm84756_a0_FCM_FCMON_RX_INTERRUPTSr_FC_COMMA_DETECT_INTf_GET(c,r) \ 7701 ((((r).fcm_fcmon_rx_interrupts[0]) >> 6) & 0x1) 7702 7703 #define bcm84756_a0_FCM_FCMON_RX_INTERRUPTSr_FC_COMMA_DETECT_INTf_SET(c,r,f) \ 7704 (r).fcm_fcmon_rx_interrupts[0]=(((r).fcm_fcmon_rx_interrupts[0] & ~((buint32_t)0x1 << 6)) | \ 7705 ((((buint32_t)f) & 0x1) << 6)) 7706 7707 #define bcm84756_a0_FCM_FCMON_RX_INTERRUPTSr_FC_2G_SYNC_TEST_FAILED_INTf_GET(c,r) \ 7708 ((((r).fcm_fcmon_rx_interrupts[0]) >> 7) & 0x1) 7709 7710 #define bcm84756_a0_FCM_FCMON_RX_INTERRUPTSr_FC_2G_SYNC_TEST_FAILED_INTf_SET(c,r,f) \ 7711 (r).fcm_fcmon_rx_interrupts[0]=(((r).fcm_fcmon_rx_interrupts[0] & ~((buint32_t)0x1 << 7)) | \ 7712 ((((buint32_t)f) & 0x1) << 7)) 7713 7714 #define bcm84756_a0_FCM_FCMON_RX_INTERRUPTSr_FC_4G_SYNC_TEST_FAILED_INTf_GET(c,r) \ 7715 ((((r).fcm_fcmon_rx_interrupts[0]) >> 8) & 0x1) 7716 7717 #define bcm84756_a0_FCM_FCMON_RX_INTERRUPTSr_FC_4G_SYNC_TEST_FAILED_INTf_SET(c,r,f) \ 7718 (r).fcm_fcmon_rx_interrupts[0]=(((r).fcm_fcmon_rx_interrupts[0] & ~((buint32_t)0x1 << 8)) | \ 7719 ((((buint32_t)f) & 0x1) << 8)) 7720 7721 #define bcm84756_a0_FCM_FCMON_RX_INTERRUPTSr_FC_8G_SYNC_TEST_FAILED_INTf_GET(c,r) \ 7722 ((((r).fcm_fcmon_rx_interrupts[0]) >> 9) & 0x1) 7723 7724 #define bcm84756_a0_FCM_FCMON_RX_INTERRUPTSr_FC_8G_SYNC_TEST_FAILED_INTf_SET(c,r,f) \ 7725 (r).fcm_fcmon_rx_interrupts[0]=(((r).fcm_fcmon_rx_interrupts[0] & ~((buint32_t)0x1 << 9)) | \ 7726 ((((buint32_t)f) & 0x1) << 9)) 7727 7728 7729 /* 7730 * These macros can be used to access FCM_FCMON_RX_INTERRUPTS. 7731 */ 7732 #define bcm84756_a0_READ_FCM_FCMON_RX_INTERRUPTSr(c,r) \ 7733 BFCMAP_REG32_READ((c),bcm84756_a0_FCM_FCMON_RX_INTERRUPTSr((c)),&((r)._fcm_fcmon_rx_interrupts)) 7734 7735 #define bcm84756_a0_WRITE_FCM_FCMON_RX_INTERRUPTSr(c,r) \ 7736 BFCMAP_REG32_WRITE((c),bcm84756_a0_FCM_FCMON_RX_INTERRUPTSr((c)),&((r)._fcm_fcmon_rx_interrupts)) 7737 7738 /******************************************************************************* 7739 * End of 'bcm84756_a0_FCM_FCMON_RX_INTERRUPTSr' 7740 */ 7741 7742 7743 7744 7745 /******************************************************************************* 7746 * CHIP: bcm84756_a0 7747 * REGISTER: FCM_FCMON_RX_INTERRUPT_ENABLE 7748 * BLOCKS: SECPORT 7749 * DESCRIPTION : 7750 * FCMON Interrupt Enable Reg. 7751 * 7752 * SIZE: 32 7753 * 7754 * FIELDS DESCRIPTION: 7755 * FC_WORD_SYNC_ACQ_ENABLE : 7756 * Word Sync status interrupt enable. 0 - The Fiber Channel word 7757 * synchronization status is masked at the interrupt pin. 1 - The Fiber 7758 * Channel word synchronization status interrupt enable. 7759 * 7760 * FC_LINK_FAIL_ENABLE : 7761 * Link failure interrupt enable. 0 - The Fiber Channel word link failed 7762 * status is masked at the interrupt pin. 1 - The Fiber Channel word link 7763 * failed interrupt enable. 7764 * 7765 * FC_SPEED_ACQ_ENABLE : 7766 * Auto speed acquired interrupt enable. 0 - The Fiber Channel Auto-Speed 7767 * Detection is masked at the interrupt pin. 1 - The Fiber Channel 7768 * Auto-Speed Detection interrupt enable. 7769 * 7770 * FC_8B10B_CODE_ERROR_ENABLE : 7771 * 8b10b code error interrupt enable. 0 - The Fiber Channel 8B/10B decoder 7772 * is masked at the interrupt pin. 1 - The Fiber Channel 8B/10B decoder 7773 * interrupt enable. 7774 * 7775 * FC_8B10B_DISPARITY_ERROR_ENABLE : 7776 * 8b10b disparity error interrupt enable. 0 - The Fiber Channel 8B/10B 7777 * decoder is masked at the interrupt pin. 1 - The Fiber Channel 8B/10B 7778 * decoder interrupt enable. 7779 * 7780 * FC_40B_CODE_ERROR_ENABLE : 7781 * RX 40b code error interrupt enable. 0 - The Fiber Channel word decoder 7782 * is masked at the interrupt pin. 1 - The Fiber Channel word decoder 7783 * interrupt enable. 7784 * 7785 * FC_COMMA_DETECT_ENABLE : 7786 * comma detect interrupt enable. 0 - The Fiber Channel word synchronizer 7787 * is masked at the interrupt pin. 1 - The Fiber Channel word synchronizer 7788 * interrupt enable. 7789 * 7790 * FC_2G_SYNC_TEST_FAILED_ENABLE : 7791 * 2g sync test failed interrupt enable. 0 - The Fiber Channel 2GFC sync 7792 * test is masked at the interrupt pin. 1 - The Fiber Channel 2GFC sync 7793 * test interrupt enable. 7794 * 7795 * FC_4G_SYNC_TEST_FAILED_ENABLE : 7796 * 4g sync test failed interrupt enable. 0 - The Fiber Channel 4GFC sync 7797 * test interrupt is masked at the interrupt pin. 1 - The Fiber Channel 7798 * 4GFC sync test is enabled. 7799 * 7800 * FC_8G_SYNC_TEST_FAILED_ENABLE : 7801 * 8g sync test failed interrupt enable. 0 - The Fiber Channel 8GFC sync 7802 * test interrupt is masked at the interrupt pin. 1 - The Fiber Channel 7803 * 8GFC sync test interrupt is enabled. 7804 */ 7805 #define bcm84756_a0_FCM_FCMON_RX_INTERRUPT_ENABLEr(c) \ 7806 (0x13100088 + (BFCMAP_PORT((c)) << 12)) 7807 7808 #define bcm84756_a0_FCM_FCMON_RX_INTERRUPT_ENABLEr_SIZE 1 7809 7810 /* 7811 * This structure should be used to declare and program FCM_FCMON_RX_INTERRUPT_ENABLE. 7812 */ 7813 typedef union bcm84756_a0_FCM_FCMON_RX_INTERRUPT_ENABLEr_s { 7814 buint32_t v[1]; 7815 buint32_t fcm_fcmon_rx_interrupt_enable[1]; 7816 buint32_t _fcm_fcmon_rx_interrupt_enable; 7817 } bcm84756_a0_FCM_FCMON_RX_INTERRUPT_ENABLEr_t; 7818 7819 #define bcm84756_a0_FCM_FCMON_RX_INTERRUPT_ENABLEr_CLR(r) \ 7820 (r).fcm_fcmon_rx_interrupt_enable[0] = 0 7821 7822 #define bcm84756_a0_FCM_FCMON_RX_INTERRUPT_ENABLEr_SET(r,d) \ 7823 (r).fcm_fcmon_rx_interrupt_enable[0] = d 7824 7825 #define bcm84756_a0_FCM_FCMON_RX_INTERRUPT_ENABLEr_GET(r) \ 7826 (r).fcm_fcmon_rx_interrupt_enable[0] 7827 7828 7829 /* 7830 * These macros can be used to access individual fields. 7831 */ 7832 #define bcm84756_a0_FCM_FCMON_RX_INTERRUPT_ENABLEr_FC_WORD_SYNC_ACQ_ENABLEf_GET(c,r) \ 7833 (((r).fcm_fcmon_rx_interrupt_enable[0]) & 0x1) 7834 7835 #define bcm84756_a0_FCM_FCMON_RX_INTERRUPT_ENABLEr_FC_WORD_SYNC_ACQ_ENABLEf_SET(c,r,f) \ 7836 (r).fcm_fcmon_rx_interrupt_enable[0]=(((r).fcm_fcmon_rx_interrupt_enable[0] & ~((buint32_t)0x1)) | \ 7837 (((buint32_t)f) & 0x1)) 7838 7839 #define bcm84756_a0_FCM_FCMON_RX_INTERRUPT_ENABLEr_FC_LINK_FAIL_ENABLEf_GET(c,r) \ 7840 ((((r).fcm_fcmon_rx_interrupt_enable[0]) >> 1) & 0x1) 7841 7842 #define bcm84756_a0_FCM_FCMON_RX_INTERRUPT_ENABLEr_FC_LINK_FAIL_ENABLEf_SET(c,r,f) \ 7843 (r).fcm_fcmon_rx_interrupt_enable[0]=(((r).fcm_fcmon_rx_interrupt_enable[0] & ~((buint32_t)0x1 << 1)) | \ 7844 ((((buint32_t)f) & 0x1) << 1)) 7845 7846 #define bcm84756_a0_FCM_FCMON_RX_INTERRUPT_ENABLEr_FC_SPEED_ACQ_ENABLEf_GET(c,r) \ 7847 ((((r).fcm_fcmon_rx_interrupt_enable[0]) >> 2) & 0x1) 7848 7849 #define bcm84756_a0_FCM_FCMON_RX_INTERRUPT_ENABLEr_FC_SPEED_ACQ_ENABLEf_SET(c,r,f) \ 7850 (r).fcm_fcmon_rx_interrupt_enable[0]=(((r).fcm_fcmon_rx_interrupt_enable[0] & ~((buint32_t)0x1 << 2)) | \ 7851 ((((buint32_t)f) & 0x1) << 2)) 7852 7853 #define bcm84756_a0_FCM_FCMON_RX_INTERRUPT_ENABLEr_FC_8B10B_CODE_ERROR_ENABLEf_GET(c,r) \ 7854 ((((r).fcm_fcmon_rx_interrupt_enable[0]) >> 3) & 0x1) 7855 7856 #define bcm84756_a0_FCM_FCMON_RX_INTERRUPT_ENABLEr_FC_8B10B_CODE_ERROR_ENABLEf_SET(c,r,f) \ 7857 (r).fcm_fcmon_rx_interrupt_enable[0]=(((r).fcm_fcmon_rx_interrupt_enable[0] & ~((buint32_t)0x1 << 3)) | \ 7858 ((((buint32_t)f) & 0x1) << 3)) 7859 7860 #define bcm84756_a0_FCM_FCMON_RX_INTERRUPT_ENABLEr_FC_8B10B_DISPARITY_ERROR_ENABLEf_GET(c,r) \ 7861 ((((r).fcm_fcmon_rx_interrupt_enable[0]) >> 4) & 0x1) 7862 7863 #define bcm84756_a0_FCM_FCMON_RX_INTERRUPT_ENABLEr_FC_8B10B_DISPARITY_ERROR_ENABLEf_SET(c,r,f) \ 7864 (r).fcm_fcmon_rx_interrupt_enable[0]=(((r).fcm_fcmon_rx_interrupt_enable[0] & ~((buint32_t)0x1 << 4)) | \ 7865 ((((buint32_t)f) & 0x1) << 4)) 7866 7867 #define bcm84756_a0_FCM_FCMON_RX_INTERRUPT_ENABLEr_FC_40B_CODE_ERROR_ENABLEf_GET(c,r) \ 7868 ((((r).fcm_fcmon_rx_interrupt_enable[0]) >> 5) & 0x1) 7869 7870 #define bcm84756_a0_FCM_FCMON_RX_INTERRUPT_ENABLEr_FC_40B_CODE_ERROR_ENABLEf_SET(c,r,f) \ 7871 (r).fcm_fcmon_rx_interrupt_enable[0]=(((r).fcm_fcmon_rx_interrupt_enable[0] & ~((buint32_t)0x1 << 5)) | \ 7872 ((((buint32_t)f) & 0x1) << 5)) 7873 7874 #define bcm84756_a0_FCM_FCMON_RX_INTERRUPT_ENABLEr_FC_COMMA_DETECT_ENABLEf_GET(c,r) \ 7875 ((((r).fcm_fcmon_rx_interrupt_enable[0]) >> 6) & 0x1) 7876 7877 #define bcm84756_a0_FCM_FCMON_RX_INTERRUPT_ENABLEr_FC_COMMA_DETECT_ENABLEf_SET(c,r,f) \ 7878 (r).fcm_fcmon_rx_interrupt_enable[0]=(((r).fcm_fcmon_rx_interrupt_enable[0] & ~((buint32_t)0x1 << 6)) | \ 7879 ((((buint32_t)f) & 0x1) << 6)) 7880 7881 #define bcm84756_a0_FCM_FCMON_RX_INTERRUPT_ENABLEr_FC_2G_SYNC_TEST_FAILED_ENABLEf_GET(c,r) \ 7882 ((((r).fcm_fcmon_rx_interrupt_enable[0]) >> 7) & 0x1) 7883 7884 #define bcm84756_a0_FCM_FCMON_RX_INTERRUPT_ENABLEr_FC_2G_SYNC_TEST_FAILED_ENABLEf_SET(c,r,f) \ 7885 (r).fcm_fcmon_rx_interrupt_enable[0]=(((r).fcm_fcmon_rx_interrupt_enable[0] & ~((buint32_t)0x1 << 7)) | \ 7886 ((((buint32_t)f) & 0x1) << 7)) 7887 7888 #define bcm84756_a0_FCM_FCMON_RX_INTERRUPT_ENABLEr_FC_4G_SYNC_TEST_FAILED_ENABLEf_GET(c,r) \ 7889 ((((r).fcm_fcmon_rx_interrupt_enable[0]) >> 8) & 0x1) 7890 7891 #define bcm84756_a0_FCM_FCMON_RX_INTERRUPT_ENABLEr_FC_4G_SYNC_TEST_FAILED_ENABLEf_SET(c,r,f) \ 7892 (r).fcm_fcmon_rx_interrupt_enable[0]=(((r).fcm_fcmon_rx_interrupt_enable[0] & ~((buint32_t)0x1 << 8)) | \ 7893 ((((buint32_t)f) & 0x1) << 8)) 7894 7895 #define bcm84756_a0_FCM_FCMON_RX_INTERRUPT_ENABLEr_FC_8G_SYNC_TEST_FAILED_ENABLEf_GET(c,r) \ 7896 ((((r).fcm_fcmon_rx_interrupt_enable[0]) >> 9) & 0x1) 7897 7898 #define bcm84756_a0_FCM_FCMON_RX_INTERRUPT_ENABLEr_FC_8G_SYNC_TEST_FAILED_ENABLEf_SET(c,r,f) \ 7899 (r).fcm_fcmon_rx_interrupt_enable[0]=(((r).fcm_fcmon_rx_interrupt_enable[0] & ~((buint32_t)0x1 << 9)) | \ 7900 ((((buint32_t)f) & 0x1) << 9)) 7901 7902 7903 /* 7904 * These macros can be used to access FCM_FCMON_RX_INTERRUPT_ENABLE. 7905 */ 7906 #define bcm84756_a0_READ_FCM_FCMON_RX_INTERRUPT_ENABLEr(c,r) \ 7907 BFCMAP_REG32_READ((c),bcm84756_a0_FCM_FCMON_RX_INTERRUPT_ENABLEr((c)),&((r)._fcm_fcmon_rx_interrupt_enable)) 7908 7909 #define bcm84756_a0_WRITE_FCM_FCMON_RX_INTERRUPT_ENABLEr(c,r) \ 7910 BFCMAP_REG32_WRITE((c),bcm84756_a0_FCM_FCMON_RX_INTERRUPT_ENABLEr((c)),&((r)._fcm_fcmon_rx_interrupt_enable)) 7911 7912 /******************************************************************************* 7913 * End of 'bcm84756_a0_FCM_FCMON_RX_INTERRUPT_ENABLEr' 7914 */ 7915 7916 7917 7918 7919 /******************************************************************************* 7920 * CHIP: bcm84756_a0 7921 * REGISTER: FCM_FCMON_RX_R_T_TOV 7922 * BLOCKS: SECPORT 7923 * DESCRIPTION : 7924 * R T TOV value register. 7925 * 7926 * SIZE: 32 7927 * 7928 * FIELDS DESCRIPTION: 7929 * R_T_TOV : 7930 * FCMON RX time-out of word synchronization required to declare a link 7931 * failure. Units are increments of 1.6384 usec; this default sets the 7932 * timeout to 100 milliseconds. Note -- Other suggested test values to 7933 * speed up simulation time : 0x3d = 100us 0x06 = 9.8us 7934 */ 7935 #define bcm84756_a0_FCM_FCMON_RX_R_T_TOVr(c) \ 7936 (0x1310008b + (BFCMAP_PORT((c)) << 12)) 7937 7938 #define bcm84756_a0_FCM_FCMON_RX_R_T_TOVr_SIZE 1 7939 7940 /* 7941 * This structure should be used to declare and program FCM_FCMON_RX_R_T_TOV. 7942 */ 7943 typedef union bcm84756_a0_FCM_FCMON_RX_R_T_TOVr_s { 7944 buint32_t v[1]; 7945 buint32_t fcm_fcmon_rx_r_t_tov[1]; 7946 buint32_t _fcm_fcmon_rx_r_t_tov; 7947 } bcm84756_a0_FCM_FCMON_RX_R_T_TOVr_t; 7948 7949 #define bcm84756_a0_FCM_FCMON_RX_R_T_TOVr_CLR(r) \ 7950 (r).fcm_fcmon_rx_r_t_tov[0] = 0 7951 7952 #define bcm84756_a0_FCM_FCMON_RX_R_T_TOVr_SET(r,d) \ 7953 (r).fcm_fcmon_rx_r_t_tov[0] = d 7954 7955 #define bcm84756_a0_FCM_FCMON_RX_R_T_TOVr_GET(r) \ 7956 (r).fcm_fcmon_rx_r_t_tov[0] 7957 7958 7959 /* 7960 * These macros can be used to access individual fields. 7961 */ 7962 #define bcm84756_a0_FCM_FCMON_RX_R_T_TOVr_R_T_TOVf_GET(c,r) \ 7963 (((r).fcm_fcmon_rx_r_t_tov[0]) & 0xffff) 7964 7965 #define bcm84756_a0_FCM_FCMON_RX_R_T_TOVr_R_T_TOVf_SET(c,r,f) \ 7966 (r).fcm_fcmon_rx_r_t_tov[0]=(((r).fcm_fcmon_rx_r_t_tov[0] & ~((buint32_t)0xffff)) | \ 7967 (((buint32_t)f) & 0xffff)) 7968 7969 7970 /* 7971 * These macros can be used to access FCM_FCMON_RX_R_T_TOV. 7972 */ 7973 #define bcm84756_a0_READ_FCM_FCMON_RX_R_T_TOVr(c,r) \ 7974 BFCMAP_REG32_READ((c),bcm84756_a0_FCM_FCMON_RX_R_T_TOVr((c)),&((r)._fcm_fcmon_rx_r_t_tov)) 7975 7976 #define bcm84756_a0_WRITE_FCM_FCMON_RX_R_T_TOVr(c,r) \ 7977 BFCMAP_REG32_WRITE((c),bcm84756_a0_FCM_FCMON_RX_R_T_TOVr((c)),&((r)._fcm_fcmon_rx_r_t_tov)) 7978 7979 /******************************************************************************* 7980 * End of 'bcm84756_a0_FCM_FCMON_RX_R_T_TOVr' 7981 */ 7982 7983 7984 7985 7986 /******************************************************************************* 7987 * CHIP: bcm84756_a0 7988 * REGISTER: FCM_FCMON_RX_STATUS 7989 * BLOCKS: SECPORT 7990 * DESCRIPTION : 7991 * FCMON Status Reg. 7992 * 7993 * SIZE: 32 7994 * 7995 * FIELDS DESCRIPTION: 7996 * FC_WORD_SYNC_ACQ : 7997 * FCMON powerdown. 0 - The Fiber Channel word synchronization is not 7998 * acquired. 1 - The Fiber Channel word synchronization is acquired. 7999 * 8000 * FC_SPEED_ACQ : 8001 * FCMON RX reset. 0 - The Fiber Channel Auto-Speed Detection did not 8002 * acquired a speed. 1 - The Fiber Channel Auto-Speed Detection acquired a 8003 * speed. 8004 * 8005 * FC_SPEED_DETECTION_ACTIVE : 8006 * Word sync state machine mode. 0 - The Fiber Channel Auto-Speed 8007 * Detection is not running. 1 - The Fiber Channel Auto-Speed Detection is 8008 * running. 8009 */ 8010 #define bcm84756_a0_FCM_FCMON_RX_STATUSr(c) \ 8011 (0x13100086 + (BFCMAP_PORT((c)) << 12)) 8012 8013 #define bcm84756_a0_FCM_FCMON_RX_STATUSr_SIZE 1 8014 8015 /* 8016 * This structure should be used to declare and program FCM_FCMON_RX_STATUS. 8017 */ 8018 typedef union bcm84756_a0_FCM_FCMON_RX_STATUSr_s { 8019 buint32_t v[1]; 8020 buint32_t fcm_fcmon_rx_status[1]; 8021 buint32_t _fcm_fcmon_rx_status; 8022 } bcm84756_a0_FCM_FCMON_RX_STATUSr_t; 8023 8024 #define bcm84756_a0_FCM_FCMON_RX_STATUSr_CLR(r) \ 8025 (r).fcm_fcmon_rx_status[0] = 0 8026 8027 #define bcm84756_a0_FCM_FCMON_RX_STATUSr_SET(r,d) \ 8028 (r).fcm_fcmon_rx_status[0] = d 8029 8030 #define bcm84756_a0_FCM_FCMON_RX_STATUSr_GET(r) \ 8031 (r).fcm_fcmon_rx_status[0] 8032 8033 8034 /* 8035 * These macros can be used to access individual fields. 8036 */ 8037 #define bcm84756_a0_FCM_FCMON_RX_STATUSr_FC_WORD_SYNC_ACQf_GET(c,r) \ 8038 (((r).fcm_fcmon_rx_status[0]) & 0x1) 8039 8040 #define bcm84756_a0_FCM_FCMON_RX_STATUSr_FC_WORD_SYNC_ACQf_SET(c,r,f) \ 8041 (r).fcm_fcmon_rx_status[0]=(((r).fcm_fcmon_rx_status[0] & ~((buint32_t)0x1)) | \ 8042 (((buint32_t)f) & 0x1)) 8043 8044 #define bcm84756_a0_FCM_FCMON_RX_STATUSr_FC_SPEED_ACQf_GET(c,r) \ 8045 ((((r).fcm_fcmon_rx_status[0]) >> 1) & 0x1) 8046 8047 #define bcm84756_a0_FCM_FCMON_RX_STATUSr_FC_SPEED_ACQf_SET(c,r,f) \ 8048 (r).fcm_fcmon_rx_status[0]=(((r).fcm_fcmon_rx_status[0] & ~((buint32_t)0x1 << 1)) | \ 8049 ((((buint32_t)f) & 0x1) << 1)) 8050 8051 #define bcm84756_a0_FCM_FCMON_RX_STATUSr_FC_SPEED_DETECTION_ACTIVEf_GET(c,r) \ 8052 ((((r).fcm_fcmon_rx_status[0]) >> 2) & 0x1) 8053 8054 #define bcm84756_a0_FCM_FCMON_RX_STATUSr_FC_SPEED_DETECTION_ACTIVEf_SET(c,r,f) \ 8055 (r).fcm_fcmon_rx_status[0]=(((r).fcm_fcmon_rx_status[0] & ~((buint32_t)0x1 << 2)) | \ 8056 ((((buint32_t)f) & 0x1) << 2)) 8057 8058 8059 /* 8060 * These macros can be used to access FCM_FCMON_RX_STATUS. 8061 */ 8062 #define bcm84756_a0_READ_FCM_FCMON_RX_STATUSr(c,r) \ 8063 BFCMAP_REG32_READ((c),bcm84756_a0_FCM_FCMON_RX_STATUSr((c)),&((r)._fcm_fcmon_rx_status)) 8064 8065 #define bcm84756_a0_WRITE_FCM_FCMON_RX_STATUSr(c,r) \ 8066 BFCMAP_REG32_WRITE((c),bcm84756_a0_FCM_FCMON_RX_STATUSr((c)),&((r)._fcm_fcmon_rx_status)) 8067 8068 /******************************************************************************* 8069 * End of 'bcm84756_a0_FCM_FCMON_RX_STATUSr' 8070 */ 8071 8072 8073 8074 8075 /******************************************************************************* 8076 * CHIP: bcm84756_a0 8077 * REGISTER: FCM_FCMON_RX_tpat_mon_config 8078 * BLOCKS: SECPORT 8079 * DESCRIPTION : 8080 * RX Test Pattern Monitor Configuration register. 8081 * 8082 * SIZE: 32 8083 * 8084 * FIELDS DESCRIPTION: 8085 * FC_TPAT_MON_ENABLE : 8086 * Tpat monitor enable: 0 - The Fiber Channel Test Pattern Monitor is 8087 * disabled. 1 - The Fiber Channel Test Pattern Monitor is enabled. 8088 * 8089 * FC_TPAT_MODE : 8090 * Fiber Channel Test Pattern Type: 2'b00 - JSPAT 2'b01 - JTSPAT 2'b10 - 8091 * CJTPAT 2'b11 - CRPAT 8092 * 8093 * FC_TPAD_IDLE : 8094 * Number of IDLE ordered sets to monitor between each test pattern. 8095 */ 8096 #define bcm84756_a0_FCM_FCMON_RX_TPAT_MON_CONFIGr(c) \ 8097 (0x1310008c + (BFCMAP_PORT((c)) << 12)) 8098 8099 #define bcm84756_a0_FCM_FCMON_RX_TPAT_MON_CONFIGr_SIZE 1 8100 8101 /* 8102 * This structure should be used to declare and program FCM_FCMON_RX_tpat_mon_config. 8103 */ 8104 typedef union bcm84756_a0_FCM_FCMON_RX_TPAT_MON_CONFIGr_s { 8105 buint32_t v[1]; 8106 buint32_t fcm_fcmon_rx_tpat_mon_config[1]; 8107 buint32_t _fcm_fcmon_rx_tpat_mon_config; 8108 } bcm84756_a0_FCM_FCMON_RX_TPAT_MON_CONFIGr_t; 8109 8110 #define bcm84756_a0_FCM_FCMON_RX_TPAT_MON_CONFIGr_CLR(r) \ 8111 (r).fcm_fcmon_rx_tpat_mon_config[0] = 0 8112 8113 #define bcm84756_a0_FCM_FCMON_RX_TPAT_MON_CONFIGr_SET(r,d) \ 8114 (r).fcm_fcmon_rx_tpat_mon_config[0] = d 8115 8116 #define bcm84756_a0_FCM_FCMON_RX_TPAT_MON_CONFIGr_GET(r) \ 8117 (r).fcm_fcmon_rx_tpat_mon_config[0] 8118 8119 8120 /* 8121 * These macros can be used to access individual fields. 8122 */ 8123 #define bcm84756_a0_FCM_FCMON_RX_TPAT_MON_CONFIGr_FC_TPAT_MON_ENABLEf_GET(c,r) \ 8124 (((r).fcm_fcmon_rx_tpat_mon_config[0]) & 0x1) 8125 8126 #define bcm84756_a0_FCM_FCMON_RX_TPAT_MON_CONFIGr_FC_TPAT_MON_ENABLEf_SET(c,r,f) \ 8127 (r).fcm_fcmon_rx_tpat_mon_config[0]=(((r).fcm_fcmon_rx_tpat_mon_config[0] & ~((buint32_t)0x1)) | \ 8128 (((buint32_t)f) & 0x1)) 8129 8130 #define bcm84756_a0_FCM_FCMON_RX_TPAT_MON_CONFIGr_FC_TPAT_MODEf_GET(c,r) \ 8131 ((((r).fcm_fcmon_rx_tpat_mon_config[0]) >> 1) & 0x3) 8132 8133 #define bcm84756_a0_FCM_FCMON_RX_TPAT_MON_CONFIGr_FC_TPAT_MODEf_SET(c,r,f) \ 8134 (r).fcm_fcmon_rx_tpat_mon_config[0]=(((r).fcm_fcmon_rx_tpat_mon_config[0] & ~((buint32_t)0x3 << 1)) | \ 8135 ((((buint32_t)f) & 0x3) << 1)) 8136 8137 #define bcm84756_a0_FCM_FCMON_RX_TPAT_MON_CONFIGr_FC_TPAD_IDLEf_GET(c,r) \ 8138 ((((r).fcm_fcmon_rx_tpat_mon_config[0]) >> 3) & 0xf) 8139 8140 #define bcm84756_a0_FCM_FCMON_RX_TPAT_MON_CONFIGr_FC_TPAD_IDLEf_SET(c,r,f) \ 8141 (r).fcm_fcmon_rx_tpat_mon_config[0]=(((r).fcm_fcmon_rx_tpat_mon_config[0] & ~((buint32_t)0xf << 3)) | \ 8142 ((((buint32_t)f) & 0xf) << 3)) 8143 8144 8145 /* 8146 * These macros can be used to access FCM_FCMON_RX_tpat_mon_config. 8147 */ 8148 #define bcm84756_a0_READ_FCM_FCMON_RX_TPAT_MON_CONFIGr(c,r) \ 8149 BFCMAP_REG32_READ((c),bcm84756_a0_FCM_FCMON_RX_TPAT_MON_CONFIGr((c)),&((r)._fcm_fcmon_rx_tpat_mon_config)) 8150 8151 #define bcm84756_a0_WRITE_FCM_FCMON_RX_TPAT_MON_CONFIGr(c,r) \ 8152 BFCMAP_REG32_WRITE((c),bcm84756_a0_FCM_FCMON_RX_TPAT_MON_CONFIGr((c)),&((r)._fcm_fcmon_rx_tpat_mon_config)) 8153 8154 /******************************************************************************* 8155 * End of 'bcm84756_a0_FCM_FCMON_RX_TPAT_MON_CONFIGr' 8156 */ 8157 8158 8159 8160 8161 /******************************************************************************* 8162 * CHIP: bcm84756_a0 8163 * REGISTER: FCM_FCMON_RX_tpat_mon_counter 8164 * BLOCKS: SECPORT 8165 * DESCRIPTION : 8166 * Tpat monitor pattern counter. 8167 * 8168 * SIZE: 32 8169 * 8170 * FIELDS DESCRIPTION: 8171 * FC_TPAT_MON_CNT : 8172 * Number of Fiber Channel test patterns received since the last read of 8173 * this register. 8174 */ 8175 #define bcm84756_a0_FCM_FCMON_RX_TPAT_MON_COUNTERr(c) \ 8176 (0x1310008e + (BFCMAP_PORT((c)) << 12)) 8177 8178 #define bcm84756_a0_FCM_FCMON_RX_TPAT_MON_COUNTERr_SIZE 1 8179 8180 /* 8181 * This structure should be used to declare and program FCM_FCMON_RX_tpat_mon_counter. 8182 */ 8183 typedef union bcm84756_a0_FCM_FCMON_RX_TPAT_MON_COUNTERr_s { 8184 buint32_t v[1]; 8185 buint32_t fcm_fcmon_rx_tpat_mon_counter[1]; 8186 buint32_t _fcm_fcmon_rx_tpat_mon_counter; 8187 } bcm84756_a0_FCM_FCMON_RX_TPAT_MON_COUNTERr_t; 8188 8189 #define bcm84756_a0_FCM_FCMON_RX_TPAT_MON_COUNTERr_CLR(r) \ 8190 (r).fcm_fcmon_rx_tpat_mon_counter[0] = 0 8191 8192 #define bcm84756_a0_FCM_FCMON_RX_TPAT_MON_COUNTERr_SET(r,d) \ 8193 (r).fcm_fcmon_rx_tpat_mon_counter[0] = d 8194 8195 #define bcm84756_a0_FCM_FCMON_RX_TPAT_MON_COUNTERr_GET(r) \ 8196 (r).fcm_fcmon_rx_tpat_mon_counter[0] 8197 8198 8199 /* 8200 * These macros can be used to access individual fields. 8201 */ 8202 #define bcm84756_a0_FCM_FCMON_RX_TPAT_MON_COUNTERr_FC_TPAT_MON_CNTf_GET(c,r) \ 8203 (((r).fcm_fcmon_rx_tpat_mon_counter[0]) & 0xffff) 8204 8205 #define bcm84756_a0_FCM_FCMON_RX_TPAT_MON_COUNTERr_FC_TPAT_MON_CNTf_SET(c,r,f) \ 8206 (r).fcm_fcmon_rx_tpat_mon_counter[0]=(((r).fcm_fcmon_rx_tpat_mon_counter[0] & ~((buint32_t)0xffff)) | \ 8207 (((buint32_t)f) & 0xffff)) 8208 8209 8210 /* 8211 * These macros can be used to access FCM_FCMON_RX_tpat_mon_counter. 8212 */ 8213 #define bcm84756_a0_READ_FCM_FCMON_RX_TPAT_MON_COUNTERr(c,r) \ 8214 BFCMAP_REG32_READ((c),bcm84756_a0_FCM_FCMON_RX_TPAT_MON_COUNTERr((c)),&((r)._fcm_fcmon_rx_tpat_mon_counter)) 8215 8216 #define bcm84756_a0_WRITE_FCM_FCMON_RX_TPAT_MON_COUNTERr(c,r) \ 8217 BFCMAP_REG32_WRITE((c),bcm84756_a0_FCM_FCMON_RX_TPAT_MON_COUNTERr((c)),&((r)._fcm_fcmon_rx_tpat_mon_counter)) 8218 8219 /******************************************************************************* 8220 * End of 'bcm84756_a0_FCM_FCMON_RX_TPAT_MON_COUNTERr' 8221 */ 8222 8223 8224 8225 8226 /******************************************************************************* 8227 * CHIP: bcm84756_a0 8228 * REGISTER: FCM_FCMON_RX_tpat_mon_errcnt 8229 * BLOCKS: SECPORT 8230 * DESCRIPTION : 8231 * Tpat monitor pattern error counter. 8232 * 8233 * SIZE: 32 8234 * 8235 * FIELDS DESCRIPTION: 8236 * FC_TPAT_MON_ERRCNT : 8237 * Number of Fiber Channel 40-bit words containing errors while the Test 8238 * Pattern Monitor is locked. 8239 */ 8240 #define bcm84756_a0_FCM_FCMON_RX_TPAT_MON_ERRCNTr(c) \ 8241 (0x1310008f + (BFCMAP_PORT((c)) << 12)) 8242 8243 #define bcm84756_a0_FCM_FCMON_RX_TPAT_MON_ERRCNTr_SIZE 1 8244 8245 /* 8246 * This structure should be used to declare and program FCM_FCMON_RX_tpat_mon_errcnt. 8247 */ 8248 typedef union bcm84756_a0_FCM_FCMON_RX_TPAT_MON_ERRCNTr_s { 8249 buint32_t v[1]; 8250 buint32_t fcm_fcmon_rx_tpat_mon_errcnt[1]; 8251 buint32_t _fcm_fcmon_rx_tpat_mon_errcnt; 8252 } bcm84756_a0_FCM_FCMON_RX_TPAT_MON_ERRCNTr_t; 8253 8254 #define bcm84756_a0_FCM_FCMON_RX_TPAT_MON_ERRCNTr_CLR(r) \ 8255 (r).fcm_fcmon_rx_tpat_mon_errcnt[0] = 0 8256 8257 #define bcm84756_a0_FCM_FCMON_RX_TPAT_MON_ERRCNTr_SET(r,d) \ 8258 (r).fcm_fcmon_rx_tpat_mon_errcnt[0] = d 8259 8260 #define bcm84756_a0_FCM_FCMON_RX_TPAT_MON_ERRCNTr_GET(r) \ 8261 (r).fcm_fcmon_rx_tpat_mon_errcnt[0] 8262 8263 8264 /* 8265 * These macros can be used to access individual fields. 8266 */ 8267 #define bcm84756_a0_FCM_FCMON_RX_TPAT_MON_ERRCNTr_FC_TPAT_MON_ERRCNTf_GET(c,r) \ 8268 (((r).fcm_fcmon_rx_tpat_mon_errcnt[0]) & 0xffff) 8269 8270 #define bcm84756_a0_FCM_FCMON_RX_TPAT_MON_ERRCNTr_FC_TPAT_MON_ERRCNTf_SET(c,r,f) \ 8271 (r).fcm_fcmon_rx_tpat_mon_errcnt[0]=(((r).fcm_fcmon_rx_tpat_mon_errcnt[0] & ~((buint32_t)0xffff)) | \ 8272 (((buint32_t)f) & 0xffff)) 8273 8274 8275 /* 8276 * These macros can be used to access FCM_FCMON_RX_tpat_mon_errcnt. 8277 */ 8278 #define bcm84756_a0_READ_FCM_FCMON_RX_TPAT_MON_ERRCNTr(c,r) \ 8279 BFCMAP_REG32_READ((c),bcm84756_a0_FCM_FCMON_RX_TPAT_MON_ERRCNTr((c)),&((r)._fcm_fcmon_rx_tpat_mon_errcnt)) 8280 8281 #define bcm84756_a0_WRITE_FCM_FCMON_RX_TPAT_MON_ERRCNTr(c,r) \ 8282 BFCMAP_REG32_WRITE((c),bcm84756_a0_FCM_FCMON_RX_TPAT_MON_ERRCNTr((c)),&((r)._fcm_fcmon_rx_tpat_mon_errcnt)) 8283 8284 /******************************************************************************* 8285 * End of 'bcm84756_a0_FCM_FCMON_RX_TPAT_MON_ERRCNTr' 8286 */ 8287 8288 8289 8290 8291 /******************************************************************************* 8292 * CHIP: bcm84756_a0 8293 * REGISTER: FCM_FCMON_RX_tpat_mon_status 8294 * BLOCKS: SECPORT 8295 * DESCRIPTION : 8296 * Tpat monitor status register. 8297 * 8298 * SIZE: 32 8299 * 8300 * FIELDS DESCRIPTION: 8301 * FC_TPAT_MON_LOCK : 8302 * Test pattern monitor lock status: 0 - The Fiber Channel Test Pattern 8303 * Monitor is not locked to the data. 1 - The Fiber Channel Test Pattern 8304 * Monitor is locked to the data. 8305 */ 8306 #define bcm84756_a0_FCM_FCMON_RX_TPAT_MON_STATUSr(c) \ 8307 (0x1310008d + (BFCMAP_PORT((c)) << 12)) 8308 8309 #define bcm84756_a0_FCM_FCMON_RX_TPAT_MON_STATUSr_SIZE 1 8310 8311 /* 8312 * This structure should be used to declare and program FCM_FCMON_RX_tpat_mon_status. 8313 */ 8314 typedef union bcm84756_a0_FCM_FCMON_RX_TPAT_MON_STATUSr_s { 8315 buint32_t v[1]; 8316 buint32_t fcm_fcmon_rx_tpat_mon_status[1]; 8317 buint32_t _fcm_fcmon_rx_tpat_mon_status; 8318 } bcm84756_a0_FCM_FCMON_RX_TPAT_MON_STATUSr_t; 8319 8320 #define bcm84756_a0_FCM_FCMON_RX_TPAT_MON_STATUSr_CLR(r) \ 8321 (r).fcm_fcmon_rx_tpat_mon_status[0] = 0 8322 8323 #define bcm84756_a0_FCM_FCMON_RX_TPAT_MON_STATUSr_SET(r,d) \ 8324 (r).fcm_fcmon_rx_tpat_mon_status[0] = d 8325 8326 #define bcm84756_a0_FCM_FCMON_RX_TPAT_MON_STATUSr_GET(r) \ 8327 (r).fcm_fcmon_rx_tpat_mon_status[0] 8328 8329 8330 /* 8331 * These macros can be used to access individual fields. 8332 */ 8333 #define bcm84756_a0_FCM_FCMON_RX_TPAT_MON_STATUSr_FC_TPAT_MON_LOCKf_GET(c,r) \ 8334 (((r).fcm_fcmon_rx_tpat_mon_status[0]) & 0x1) 8335 8336 #define bcm84756_a0_FCM_FCMON_RX_TPAT_MON_STATUSr_FC_TPAT_MON_LOCKf_SET(c,r,f) \ 8337 (r).fcm_fcmon_rx_tpat_mon_status[0]=(((r).fcm_fcmon_rx_tpat_mon_status[0] & ~((buint32_t)0x1)) | \ 8338 (((buint32_t)f) & 0x1)) 8339 8340 8341 /* 8342 * These macros can be used to access FCM_FCMON_RX_tpat_mon_status. 8343 */ 8344 #define bcm84756_a0_READ_FCM_FCMON_RX_TPAT_MON_STATUSr(c,r) \ 8345 BFCMAP_REG32_READ((c),bcm84756_a0_FCM_FCMON_RX_TPAT_MON_STATUSr((c)),&((r)._fcm_fcmon_rx_tpat_mon_status)) 8346 8347 #define bcm84756_a0_WRITE_FCM_FCMON_RX_TPAT_MON_STATUSr(c,r) \ 8348 BFCMAP_REG32_WRITE((c),bcm84756_a0_FCM_FCMON_RX_TPAT_MON_STATUSr((c)),&((r)._fcm_fcmon_rx_tpat_mon_status)) 8349 8350 /******************************************************************************* 8351 * End of 'bcm84756_a0_FCM_FCMON_RX_TPAT_MON_STATUSr' 8352 */ 8353 8354 8355 8356 8357 /******************************************************************************* 8358 * CHIP: bcm84756_a0 8359 * REGISTER: FCM_FLUSH 8360 * BLOCKS: SECPORT 8361 * DESCRIPTION : 8362 * Frame buffer flush status and control register 8363 * 8364 * SIZE: 32 8365 * 8366 * FIELDS DESCRIPTION: 8367 * TXBUF_SPACE_FILLED : 8368 * Space filled in TX frame buffer, units of 128-bit words. Empty = 0, 8369 * Full = 0x800. 8370 * 8371 * TXBUF_EMPTY : 8372 * This bit is set when TX Frame buffer is empty. 8373 * 8374 * TXBUF_FULL : 8375 * This bit is set when RX Frame buffer is full. 8376 * 8377 * FLUSH_TX_DONE : 8378 * Single frame flush done, TX frame buffer. 8379 * 8380 * FLUSH_TX_REQ : 8381 * Single frame flush request, TX frame buffer. Set this bit to flush a 8382 * single TX frame at the FCMAC TX frame interface. When the flush tx done 8383 * bit is polled set, clear the flush tx req bit. 8384 * 8385 * RXBUF_SPACE_FILLED : 8386 * Space filled in RX frame buffer, units of 128-bit words. Empty = 0, 8387 * Full = 0x800. 8388 * 8389 * RXBUF_EMPTY : 8390 * This bit is set when RX Frame buffer is empty. 8391 * 8392 * RXBUF_FULL : 8393 * This bit is set when RX Frame buffer is full. 8394 */ 8395 #define bcm84756_a0_FCM_FLUSHr(c) \ 8396 (0x13100003 + (BFCMAP_PORT((c)) << 12)) 8397 8398 #define bcm84756_a0_FCM_FLUSHr_SIZE 1 8399 8400 /* 8401 * This structure should be used to declare and program FCM_FLUSH. 8402 */ 8403 typedef union bcm84756_a0_FCM_FLUSHr_s { 8404 buint32_t v[1]; 8405 buint32_t fcm_flush[1]; 8406 buint32_t _fcm_flush; 8407 } bcm84756_a0_FCM_FLUSHr_t; 8408 8409 #define bcm84756_a0_FCM_FLUSHr_CLR(r) \ 8410 (r).fcm_flush[0] = 0 8411 8412 #define bcm84756_a0_FCM_FLUSHr_SET(r,d) \ 8413 (r).fcm_flush[0] = d 8414 8415 #define bcm84756_a0_FCM_FLUSHr_GET(r) \ 8416 (r).fcm_flush[0] 8417 8418 8419 /* 8420 * These macros can be used to access individual fields. 8421 */ 8422 #define bcm84756_a0_FCM_FLUSHr_TXBUF_SPACE_FILLEDf_GET(c,r) \ 8423 (((r).fcm_flush[0]) & 0xfff) 8424 8425 #define bcm84756_a0_FCM_FLUSHr_TXBUF_SPACE_FILLEDf_SET(c,r,f) \ 8426 (r).fcm_flush[0]=(((r).fcm_flush[0] & ~((buint32_t)0xfff)) | \ 8427 (((buint32_t)f) & 0xfff)) 8428 8429 #define bcm84756_a0_FCM_FLUSHr_TXBUF_EMPTYf_GET(c,r) \ 8430 ((((r).fcm_flush[0]) >> 12) & 0x1) 8431 8432 #define bcm84756_a0_FCM_FLUSHr_TXBUF_EMPTYf_SET(c,r,f) \ 8433 (r).fcm_flush[0]=(((r).fcm_flush[0] & ~((buint32_t)0x1 << 12)) | \ 8434 ((((buint32_t)f) & 0x1) << 12)) 8435 8436 #define bcm84756_a0_FCM_FLUSHr_TXBUF_FULLf_GET(c,r) \ 8437 ((((r).fcm_flush[0]) >> 13) & 0x1) 8438 8439 #define bcm84756_a0_FCM_FLUSHr_TXBUF_FULLf_SET(c,r,f) \ 8440 (r).fcm_flush[0]=(((r).fcm_flush[0] & ~((buint32_t)0x1 << 13)) | \ 8441 ((((buint32_t)f) & 0x1) << 13)) 8442 8443 #define bcm84756_a0_FCM_FLUSHr_FLUSH_TX_DONEf_GET(c,r) \ 8444 ((((r).fcm_flush[0]) >> 14) & 0x1) 8445 8446 #define bcm84756_a0_FCM_FLUSHr_FLUSH_TX_DONEf_SET(c,r,f) \ 8447 (r).fcm_flush[0]=(((r).fcm_flush[0] & ~((buint32_t)0x1 << 14)) | \ 8448 ((((buint32_t)f) & 0x1) << 14)) 8449 8450 #define bcm84756_a0_FCM_FLUSHr_FLUSH_TX_REQf_GET(c,r) \ 8451 ((((r).fcm_flush[0]) >> 15) & 0x1) 8452 8453 #define bcm84756_a0_FCM_FLUSHr_FLUSH_TX_REQf_SET(c,r,f) \ 8454 (r).fcm_flush[0]=(((r).fcm_flush[0] & ~((buint32_t)0x1 << 15)) | \ 8455 ((((buint32_t)f) & 0x1) << 15)) 8456 8457 #define bcm84756_a0_FCM_FLUSHr_RXBUF_SPACE_FILLEDf_GET(c,r) \ 8458 ((((r).fcm_flush[0]) >> 16) & 0xfff) 8459 8460 #define bcm84756_a0_FCM_FLUSHr_RXBUF_SPACE_FILLEDf_SET(c,r,f) \ 8461 (r).fcm_flush[0]=(((r).fcm_flush[0] & ~((buint32_t)0xfff << 16)) | \ 8462 ((((buint32_t)f) & 0xfff) << 16)) 8463 8464 #define bcm84756_a0_FCM_FLUSHr_RXBUF_EMPTYf_GET(c,r) \ 8465 ((((r).fcm_flush[0]) >> 28) & 0x1) 8466 8467 #define bcm84756_a0_FCM_FLUSHr_RXBUF_EMPTYf_SET(c,r,f) \ 8468 (r).fcm_flush[0]=(((r).fcm_flush[0] & ~((buint32_t)0x1 << 28)) | \ 8469 ((((buint32_t)f) & 0x1) << 28)) 8470 8471 #define bcm84756_a0_FCM_FLUSHr_RXBUF_FULLf_GET(c,r) \ 8472 ((((r).fcm_flush[0]) >> 29) & 0x1) 8473 8474 #define bcm84756_a0_FCM_FLUSHr_RXBUF_FULLf_SET(c,r,f) \ 8475 (r).fcm_flush[0]=(((r).fcm_flush[0] & ~((buint32_t)0x1 << 29)) | \ 8476 ((((buint32_t)f) & 0x1) << 29)) 8477 8478 8479 /* 8480 * These macros can be used to access FCM_FLUSH. 8481 */ 8482 #define bcm84756_a0_READ_FCM_FLUSHr(c,r) \ 8483 BFCMAP_REG32_READ((c),bcm84756_a0_FCM_FLUSHr((c)),&((r)._fcm_flush)) 8484 8485 #define bcm84756_a0_WRITE_FCM_FLUSHr(c,r) \ 8486 BFCMAP_REG32_WRITE((c),bcm84756_a0_FCM_FLUSHr((c)),&((r)._fcm_flush)) 8487 8488 /******************************************************************************* 8489 * End of 'bcm84756_a0_FCM_FLUSHr' 8490 */ 8491 8492 8493 8494 8495 /******************************************************************************* 8496 * CHIP: bcm84756_a0 8497 * REGISTER: FCM_LINK_RATE 8498 * BLOCKS: SECPORT 8499 * DESCRIPTION : 8500 * Set link rates of FCMAC. For use by speed autonegotiation firmware. 8501 * Overrides hardware autospeed detect. 8502 * 8503 * SIZE: 32 8504 * 8505 * FIELDS DESCRIPTION: 8506 * RX_RATE : 8507 * Configure RX link rate of FCMAC. 2'b00 - Set as 2Gig 2'b01 - Set as 8508 * 4Gig 2'b10 - Set as 8Gig 2'b11 - Enable hardware autospeed detect mode 8509 * (FCMON) 8510 * 8511 * TX_RATE : 8512 * Configure TX link rate of FCMAC. 2'b00 - Set as 2Gig 2'b01 - Set as 8513 * 4Gig 2'b10 - Set as 8Gig 2'b11 - Enable hardware autospeed detect mode 8514 * (FCGEN) 8515 * 8516 * FW_LINKRATE_DONE : 8517 * This bit qualifies the o fcm rx lock sts status. This bit should be set 8518 * by firware after speed negotiation is complete. 8519 * 8520 * RX_LOCK_PIN_STS : 8521 * This bit reflects the o fcm rx lock sts pin state; o fcm rx lock sts = 8522 * !wsyn loss sync && !serdes rx los && rx lock ready. 8523 * 8524 * WSYN_LOSS_SYNC : 8525 * State of loss of word-sync status signal (intended for 8526 * debug/diagnostics). 8527 * 8528 * SERDES_RX_LOS : 8529 * State of serdes RX LOS input to FCMAC (intended for debug/diagnostics). 8530 */ 8531 #define bcm84756_a0_FCM_LINK_RATEr(c) \ 8532 (0x13100063 + (BFCMAP_PORT((c)) << 12)) 8533 8534 #define bcm84756_a0_FCM_LINK_RATEr_SIZE 1 8535 8536 /* 8537 * This structure should be used to declare and program FCM_LINK_RATE. 8538 */ 8539 typedef union bcm84756_a0_FCM_LINK_RATEr_s { 8540 buint32_t v[1]; 8541 buint32_t fcm_link_rate[1]; 8542 buint32_t _fcm_link_rate; 8543 } bcm84756_a0_FCM_LINK_RATEr_t; 8544 8545 #define bcm84756_a0_FCM_LINK_RATEr_CLR(r) \ 8546 (r).fcm_link_rate[0] = 0 8547 8548 #define bcm84756_a0_FCM_LINK_RATEr_SET(r,d) \ 8549 (r).fcm_link_rate[0] = d 8550 8551 #define bcm84756_a0_FCM_LINK_RATEr_GET(r) \ 8552 (r).fcm_link_rate[0] 8553 8554 8555 /* 8556 * These macros can be used to access individual fields. 8557 */ 8558 #define bcm84756_a0_FCM_LINK_RATEr_RX_RATEf_GET(c,r) \ 8559 (((r).fcm_link_rate[0]) & 0x3) 8560 8561 #define bcm84756_a0_FCM_LINK_RATEr_RX_RATEf_SET(c,r,f) \ 8562 (r).fcm_link_rate[0]=(((r).fcm_link_rate[0] & ~((buint32_t)0x3)) | \ 8563 (((buint32_t)f) & 0x3)) 8564 8565 #define bcm84756_a0_FCM_LINK_RATEr_TX_RATEf_GET(c,r) \ 8566 ((((r).fcm_link_rate[0]) >> 4) & 0x3) 8567 8568 #define bcm84756_a0_FCM_LINK_RATEr_TX_RATEf_SET(c,r,f) \ 8569 (r).fcm_link_rate[0]=(((r).fcm_link_rate[0] & ~((buint32_t)0x3 << 4)) | \ 8570 ((((buint32_t)f) & 0x3) << 4)) 8571 8572 #define bcm84756_a0_FCM_LINK_RATEr_FW_LINKRATE_DONEf_GET(c,r) \ 8573 ((((r).fcm_link_rate[0]) >> 8) & 0x1) 8574 8575 #define bcm84756_a0_FCM_LINK_RATEr_FW_LINKRATE_DONEf_SET(c,r,f) \ 8576 (r).fcm_link_rate[0]=(((r).fcm_link_rate[0] & ~((buint32_t)0x1 << 8)) | \ 8577 ((((buint32_t)f) & 0x1) << 8)) 8578 8579 #define bcm84756_a0_FCM_LINK_RATEr_RX_LOCK_PIN_STSf_GET(c,r) \ 8580 ((((r).fcm_link_rate[0]) >> 9) & 0x1) 8581 8582 #define bcm84756_a0_FCM_LINK_RATEr_RX_LOCK_PIN_STSf_SET(c,r,f) \ 8583 (r).fcm_link_rate[0]=(((r).fcm_link_rate[0] & ~((buint32_t)0x1 << 9)) | \ 8584 ((((buint32_t)f) & 0x1) << 9)) 8585 8586 #define bcm84756_a0_FCM_LINK_RATEr_WSYN_LOSS_SYNCf_GET(c,r) \ 8587 ((((r).fcm_link_rate[0]) >> 10) & 0x1) 8588 8589 #define bcm84756_a0_FCM_LINK_RATEr_WSYN_LOSS_SYNCf_SET(c,r,f) \ 8590 (r).fcm_link_rate[0]=(((r).fcm_link_rate[0] & ~((buint32_t)0x1 << 10)) | \ 8591 ((((buint32_t)f) & 0x1) << 10)) 8592 8593 #define bcm84756_a0_FCM_LINK_RATEr_SERDES_RX_LOSf_GET(c,r) \ 8594 ((((r).fcm_link_rate[0]) >> 11) & 0x1) 8595 8596 #define bcm84756_a0_FCM_LINK_RATEr_SERDES_RX_LOSf_SET(c,r,f) \ 8597 (r).fcm_link_rate[0]=(((r).fcm_link_rate[0] & ~((buint32_t)0x1 << 11)) | \ 8598 ((((buint32_t)f) & 0x1) << 11)) 8599 8600 8601 /* 8602 * These macros can be used to access FCM_LINK_RATE. 8603 */ 8604 #define bcm84756_a0_READ_FCM_LINK_RATEr(c,r) \ 8605 BFCMAP_REG32_READ((c),bcm84756_a0_FCM_LINK_RATEr((c)),&((r)._fcm_link_rate)) 8606 8607 #define bcm84756_a0_WRITE_FCM_LINK_RATEr(c,r) \ 8608 BFCMAP_REG32_WRITE((c),bcm84756_a0_FCM_LINK_RATEr((c)),&((r)._fcm_link_rate)) 8609 8610 /******************************************************************************* 8611 * End of 'bcm84756_a0_FCM_LINK_RATEr' 8612 */ 8613 8614 8615 8616 8617 /******************************************************************************* 8618 * CHIP: bcm84756_a0 8619 * REGISTER: FCM_LOOPBACK_CONFIG 8620 * BLOCKS: SECPORT 8621 * DESCRIPTION : 8622 * Enable loopback path at 16-bit TX to RX 8B data interfaces of FCMAC. 8623 * 8624 * SIZE: 32 8625 * 8626 * FIELDS DESCRIPTION: 8627 * LTR1 : 8628 * Enable loopback path; FCM AC loopback at 16b interface. TXCLK drives 8629 * RXCLK (no fiber necessary). 8630 */ 8631 #define bcm84756_a0_FCM_LOOPBACK_CONFIGr(c) \ 8632 (0x13100006 + (BFCMAP_PORT((c)) << 12)) 8633 8634 #define bcm84756_a0_FCM_LOOPBACK_CONFIGr_SIZE 1 8635 8636 /* 8637 * This structure should be used to declare and program FCM_LOOPBACK_CONFIG. 8638 */ 8639 typedef union bcm84756_a0_FCM_LOOPBACK_CONFIGr_s { 8640 buint32_t v[1]; 8641 buint32_t fcm_loopback_config[1]; 8642 buint32_t _fcm_loopback_config; 8643 } bcm84756_a0_FCM_LOOPBACK_CONFIGr_t; 8644 8645 #define bcm84756_a0_FCM_LOOPBACK_CONFIGr_CLR(r) \ 8646 (r).fcm_loopback_config[0] = 0 8647 8648 #define bcm84756_a0_FCM_LOOPBACK_CONFIGr_SET(r,d) \ 8649 (r).fcm_loopback_config[0] = d 8650 8651 #define bcm84756_a0_FCM_LOOPBACK_CONFIGr_GET(r) \ 8652 (r).fcm_loopback_config[0] 8653 8654 8655 /* 8656 * These macros can be used to access individual fields. 8657 */ 8658 #define bcm84756_a0_FCM_LOOPBACK_CONFIGr_LTR1f_GET(c,r) \ 8659 (((r).fcm_loopback_config[0]) & 0x1) 8660 8661 #define bcm84756_a0_FCM_LOOPBACK_CONFIGr_LTR1f_SET(c,r,f) \ 8662 (r).fcm_loopback_config[0]=(((r).fcm_loopback_config[0] & ~((buint32_t)0x1)) | \ 8663 (((buint32_t)f) & 0x1)) 8664 8665 8666 /* 8667 * These macros can be used to access FCM_LOOPBACK_CONFIG. 8668 */ 8669 #define bcm84756_a0_READ_FCM_LOOPBACK_CONFIGr(c,r) \ 8670 BFCMAP_REG32_READ((c),bcm84756_a0_FCM_LOOPBACK_CONFIGr((c)),&((r)._fcm_loopback_config)) 8671 8672 #define bcm84756_a0_WRITE_FCM_LOOPBACK_CONFIGr(c,r) \ 8673 BFCMAP_REG32_WRITE((c),bcm84756_a0_FCM_LOOPBACK_CONFIGr((c)),&((r)._fcm_loopback_config)) 8674 8675 /******************************************************************************* 8676 * End of 'bcm84756_a0_FCM_LOOPBACK_CONFIGr' 8677 */ 8678 8679 8680 8681 8682 /******************************************************************************* 8683 * CHIP: bcm84756_a0 8684 * REGISTER: FCM_LOS_STATUS 8685 * BLOCKS: SECPORT 8686 * DESCRIPTION : 8687 * RX LOS status flag. 8688 * 8689 * SIZE: 32 8690 * 8691 * FIELDS DESCRIPTION: 8692 * LOS : 8693 * Sticky RX LOS Loss-of-word-sync status register. Clear on read. 8694 */ 8695 #define bcm84756_a0_FCM_LOS_STATUSr(c) \ 8696 (0x13100061 + (BFCMAP_PORT((c)) << 12)) 8697 8698 #define bcm84756_a0_FCM_LOS_STATUSr_SIZE 1 8699 8700 /* 8701 * This structure should be used to declare and program FCM_LOS_STATUS. 8702 */ 8703 typedef union bcm84756_a0_FCM_LOS_STATUSr_s { 8704 buint32_t v[1]; 8705 buint32_t fcm_los_status[1]; 8706 buint32_t _fcm_los_status; 8707 } bcm84756_a0_FCM_LOS_STATUSr_t; 8708 8709 #define bcm84756_a0_FCM_LOS_STATUSr_CLR(r) \ 8710 (r).fcm_los_status[0] = 0 8711 8712 #define bcm84756_a0_FCM_LOS_STATUSr_SET(r,d) \ 8713 (r).fcm_los_status[0] = d 8714 8715 #define bcm84756_a0_FCM_LOS_STATUSr_GET(r) \ 8716 (r).fcm_los_status[0] 8717 8718 8719 /* 8720 * These macros can be used to access individual fields. 8721 */ 8722 #define bcm84756_a0_FCM_LOS_STATUSr_LOSf_GET(c,r) \ 8723 (((r).fcm_los_status[0]) & 0x1) 8724 8725 #define bcm84756_a0_FCM_LOS_STATUSr_LOSf_SET(c,r,f) \ 8726 (r).fcm_los_status[0]=(((r).fcm_los_status[0] & ~((buint32_t)0x1)) | \ 8727 (((buint32_t)f) & 0x1)) 8728 8729 8730 /* 8731 * These macros can be used to access FCM_LOS_STATUS. 8732 */ 8733 #define bcm84756_a0_READ_FCM_LOS_STATUSr(c,r) \ 8734 BFCMAP_REG32_READ((c),bcm84756_a0_FCM_LOS_STATUSr((c)),&((r)._fcm_los_status)) 8735 8736 #define bcm84756_a0_WRITE_FCM_LOS_STATUSr(c,r) \ 8737 BFCMAP_REG32_WRITE((c),bcm84756_a0_FCM_LOS_STATUSr((c)),&((r)._fcm_los_status)) 8738 8739 /******************************************************************************* 8740 * End of 'bcm84756_a0_FCM_LOS_STATUSr' 8741 */ 8742 8743 8744 8745 8746 /******************************************************************************* 8747 * CHIP: bcm84756_a0 8748 * REGISTER: FCM_PCS_CONFIG 8749 * BLOCKS: SECPORT 8750 * DESCRIPTION : 8751 * Front-End TX and RX Configuration. 8752 * 8753 * SIZE: 32 8754 * 8755 * FIELDS DESCRIPTION: 8756 * PCS_SCRAMBLING_EN : 8757 * Enable scrambled data in 8GFC. 8758 */ 8759 #define bcm84756_a0_FCM_PCS_CONFIGr(c) \ 8760 (0x1310001a + (BFCMAP_PORT((c)) << 12)) 8761 8762 #define bcm84756_a0_FCM_PCS_CONFIGr_SIZE 1 8763 8764 /* 8765 * This structure should be used to declare and program FCM_PCS_CONFIG. 8766 */ 8767 typedef union bcm84756_a0_FCM_PCS_CONFIGr_s { 8768 buint32_t v[1]; 8769 buint32_t fcm_pcs_config[1]; 8770 buint32_t _fcm_pcs_config; 8771 } bcm84756_a0_FCM_PCS_CONFIGr_t; 8772 8773 #define bcm84756_a0_FCM_PCS_CONFIGr_CLR(r) \ 8774 (r).fcm_pcs_config[0] = 0 8775 8776 #define bcm84756_a0_FCM_PCS_CONFIGr_SET(r,d) \ 8777 (r).fcm_pcs_config[0] = d 8778 8779 #define bcm84756_a0_FCM_PCS_CONFIGr_GET(r) \ 8780 (r).fcm_pcs_config[0] 8781 8782 8783 /* 8784 * These macros can be used to access individual fields. 8785 */ 8786 #define bcm84756_a0_FCM_PCS_CONFIGr_PCS_SCRAMBLING_ENf_GET(c,r) \ 8787 (((r).fcm_pcs_config[0]) & 0x1) 8788 8789 #define bcm84756_a0_FCM_PCS_CONFIGr_PCS_SCRAMBLING_ENf_SET(c,r,f) \ 8790 (r).fcm_pcs_config[0]=(((r).fcm_pcs_config[0] & ~((buint32_t)0x1)) | \ 8791 (((buint32_t)f) & 0x1)) 8792 8793 8794 /* 8795 * These macros can be used to access FCM_PCS_CONFIG. 8796 */ 8797 #define bcm84756_a0_READ_FCM_PCS_CONFIGr(c,r) \ 8798 BFCMAP_REG32_READ((c),bcm84756_a0_FCM_PCS_CONFIGr((c)),&((r)._fcm_pcs_config)) 8799 8800 #define bcm84756_a0_WRITE_FCM_PCS_CONFIGr(c,r) \ 8801 BFCMAP_REG32_WRITE((c),bcm84756_a0_FCM_PCS_CONFIGr((c)),&((r)._fcm_pcs_config)) 8802 8803 /******************************************************************************* 8804 * End of 'bcm84756_a0_FCM_PCS_CONFIGr' 8805 */ 8806 8807 8808 8809 8810 /******************************************************************************* 8811 * CHIP: bcm84756_a0 8812 * REGISTER: FCM_TX_DISABLE 8813 * BLOCKS: SECPORT 8814 * DESCRIPTION : 8815 * Front-end TX DISABLE output signal control bit. 8816 * 8817 * SIZE: 32 8818 * 8819 * FIELDS DESCRIPTION: 8820 * TX_DISABLE : 8821 * Provides direct control of the TX DISABLE output signal. 1= high, 0 = 8822 * low. 8823 */ 8824 #define bcm84756_a0_FCM_TX_DISABLEr(c) \ 8825 (0x13100062 + (BFCMAP_PORT((c)) << 12)) 8826 8827 #define bcm84756_a0_FCM_TX_DISABLEr_SIZE 1 8828 8829 /* 8830 * This structure should be used to declare and program FCM_TX_DISABLE. 8831 */ 8832 typedef union bcm84756_a0_FCM_TX_DISABLEr_s { 8833 buint32_t v[1]; 8834 buint32_t fcm_tx_disable[1]; 8835 buint32_t _fcm_tx_disable; 8836 } bcm84756_a0_FCM_TX_DISABLEr_t; 8837 8838 #define bcm84756_a0_FCM_TX_DISABLEr_CLR(r) \ 8839 (r).fcm_tx_disable[0] = 0 8840 8841 #define bcm84756_a0_FCM_TX_DISABLEr_SET(r,d) \ 8842 (r).fcm_tx_disable[0] = d 8843 8844 #define bcm84756_a0_FCM_TX_DISABLEr_GET(r) \ 8845 (r).fcm_tx_disable[0] 8846 8847 8848 /* 8849 * These macros can be used to access individual fields. 8850 */ 8851 #define bcm84756_a0_FCM_TX_DISABLEr_TX_DISABLEf_GET(c,r) \ 8852 (((r).fcm_tx_disable[0]) & 0x1) 8853 8854 #define bcm84756_a0_FCM_TX_DISABLEr_TX_DISABLEf_SET(c,r,f) \ 8855 (r).fcm_tx_disable[0]=(((r).fcm_tx_disable[0] & ~((buint32_t)0x1)) | \ 8856 (((buint32_t)f) & 0x1)) 8857 8858 8859 /* 8860 * These macros can be used to access FCM_TX_DISABLE. 8861 */ 8862 #define bcm84756_a0_READ_FCM_TX_DISABLEr(c,r) \ 8863 BFCMAP_REG32_READ((c),bcm84756_a0_FCM_TX_DISABLEr((c)),&((r)._fcm_tx_disable)) 8864 8865 #define bcm84756_a0_WRITE_FCM_TX_DISABLEr(c,r) \ 8866 BFCMAP_REG32_WRITE((c),bcm84756_a0_FCM_TX_DISABLEr((c)),&((r)._fcm_tx_disable)) 8867 8868 /******************************************************************************* 8869 * End of 'bcm84756_a0_FCM_TX_DISABLEr' 8870 */ 8871 8872 8873 8874 8875 /******************************************************************************* 8876 * CHIP: bcm84756_a0 8877 * REGISTER: FCM_rxfrmbuf 8878 * BLOCKS: SECPORT 8879 * DESCRIPTION : 8880 * RX (line to switch) Frame Buffer FIFO Write Pointer load register. 8881 * 8882 * SIZE: 32 8883 * 8884 * FIELDS DESCRIPTION: 8885 * WRPTR : 8886 * RX Frame Buffer wrptr load register. Frame should be loaded starting at 8887 * offset of rdptr. The wrptr register should be loaded with the location 8888 * at the end of packet offset + 1. Units are 128-bit quad-words. MSbit 8889 * indicates buffer wrap-around. 8890 * 8891 * RDPTR : 8892 * RX Frame Buffer rdptr. Units are 128-bit quad-words. MSbit indicates 8893 * buffer wrap-around. 8894 */ 8895 #define bcm84756_a0_FCM_RXFRMBUFr(c) \ 8896 (0x13100098 + (BFCMAP_PORT((c)) << 12)) 8897 8898 #define bcm84756_a0_FCM_RXFRMBUFr_SIZE 1 8899 8900 /* 8901 * This structure should be used to declare and program FCM_rxfrmbuf. 8902 */ 8903 typedef union bcm84756_a0_FCM_RXFRMBUFr_s { 8904 buint32_t v[1]; 8905 buint32_t fcm_rxfrmbuf[1]; 8906 buint32_t _fcm_rxfrmbuf; 8907 } bcm84756_a0_FCM_RXFRMBUFr_t; 8908 8909 #define bcm84756_a0_FCM_RXFRMBUFr_CLR(r) \ 8910 (r).fcm_rxfrmbuf[0] = 0 8911 8912 #define bcm84756_a0_FCM_RXFRMBUFr_SET(r,d) \ 8913 (r).fcm_rxfrmbuf[0] = d 8914 8915 #define bcm84756_a0_FCM_RXFRMBUFr_GET(r) \ 8916 (r).fcm_rxfrmbuf[0] 8917 8918 8919 /* 8920 * These macros can be used to access individual fields. 8921 */ 8922 #define bcm84756_a0_FCM_RXFRMBUFr_WRPTRf_GET(c,r) \ 8923 (((r).fcm_rxfrmbuf[0]) & 0xfff) 8924 8925 #define bcm84756_a0_FCM_RXFRMBUFr_WRPTRf_SET(c,r,f) \ 8926 (r).fcm_rxfrmbuf[0]=(((r).fcm_rxfrmbuf[0] & ~((buint32_t)0xfff)) | \ 8927 (((buint32_t)f) & 0xfff)) 8928 8929 #define bcm84756_a0_FCM_RXFRMBUFr_RDPTRf_GET(c,r) \ 8930 ((((r).fcm_rxfrmbuf[0]) >> 16) & 0xfff) 8931 8932 #define bcm84756_a0_FCM_RXFRMBUFr_RDPTRf_SET(c,r,f) \ 8933 (r).fcm_rxfrmbuf[0]=(((r).fcm_rxfrmbuf[0] & ~((buint32_t)0xfff << 16)) | \ 8934 ((((buint32_t)f) & 0xfff) << 16)) 8935 8936 8937 /* 8938 * These macros can be used to access FCM_rxfrmbuf. 8939 */ 8940 #define bcm84756_a0_READ_FCM_RXFRMBUFr(c,r) \ 8941 BFCMAP_REG32_READ((c),bcm84756_a0_FCM_RXFRMBUFr((c)),&((r)._fcm_rxfrmbuf)) 8942 8943 #define bcm84756_a0_WRITE_FCM_RXFRMBUFr(c,r) \ 8944 BFCMAP_REG32_WRITE((c),bcm84756_a0_FCM_RXFRMBUFr((c)),&((r)._fcm_rxfrmbuf)) 8945 8946 /******************************************************************************* 8947 * End of 'bcm84756_a0_FCM_RXFRMBUFr' 8948 */ 8949 8950 8951 8952 8953 /******************************************************************************* 8954 * CHIP: bcm84756_a0 8955 * REGISTER: FCM_txfrmbuf 8956 * BLOCKS: SECPORT 8957 * DESCRIPTION : 8958 * TX (switch to line) Frame Buffer FIFO Write Pointer load register. 8959 * 8960 * SIZE: 32 8961 * 8962 * FIELDS DESCRIPTION: 8963 * WRPTR : 8964 * TX Frame Buffer wrptr load register. Frame should be loaded starting at 8965 * offset of rdptr. The wrptr register should be loaded with the location 8966 * at the end of packet offset + 1. Units are 128-bit quad-words. MSbit 8967 * indicates buffer wrap-around. 8968 * 8969 * RDPTR : 8970 * TX Frame Buffer rdptr. Units are 128-bit quad-words. MSbit indicates 8971 * buffer wrap-around. 8972 */ 8973 #define bcm84756_a0_FCM_TXFRMBUFr(c) \ 8974 (0x13100099 + (BFCMAP_PORT((c)) << 12)) 8975 8976 #define bcm84756_a0_FCM_TXFRMBUFr_SIZE 1 8977 8978 /* 8979 * This structure should be used to declare and program FCM_txfrmbuf. 8980 */ 8981 typedef union bcm84756_a0_FCM_TXFRMBUFr_s { 8982 buint32_t v[1]; 8983 buint32_t fcm_txfrmbuf[1]; 8984 buint32_t _fcm_txfrmbuf; 8985 } bcm84756_a0_FCM_TXFRMBUFr_t; 8986 8987 #define bcm84756_a0_FCM_TXFRMBUFr_CLR(r) \ 8988 (r).fcm_txfrmbuf[0] = 0 8989 8990 #define bcm84756_a0_FCM_TXFRMBUFr_SET(r,d) \ 8991 (r).fcm_txfrmbuf[0] = d 8992 8993 #define bcm84756_a0_FCM_TXFRMBUFr_GET(r) \ 8994 (r).fcm_txfrmbuf[0] 8995 8996 8997 /* 8998 * These macros can be used to access individual fields. 8999 */ 9000 #define bcm84756_a0_FCM_TXFRMBUFr_WRPTRf_GET(c,r) \ 9001 (((r).fcm_txfrmbuf[0]) & 0xfff) 9002 9003 #define bcm84756_a0_FCM_TXFRMBUFr_WRPTRf_SET(c,r,f) \ 9004 (r).fcm_txfrmbuf[0]=(((r).fcm_txfrmbuf[0] & ~((buint32_t)0xfff)) | \ 9005 (((buint32_t)f) & 0xfff)) 9006 9007 #define bcm84756_a0_FCM_TXFRMBUFr_RDPTRf_GET(c,r) \ 9008 ((((r).fcm_txfrmbuf[0]) >> 16) & 0xfff) 9009 9010 #define bcm84756_a0_FCM_TXFRMBUFr_RDPTRf_SET(c,r,f) \ 9011 (r).fcm_txfrmbuf[0]=(((r).fcm_txfrmbuf[0] & ~((buint32_t)0xfff << 16)) | \ 9012 ((((buint32_t)f) & 0xfff) << 16)) 9013 9014 9015 /* 9016 * These macros can be used to access FCM_txfrmbuf. 9017 */ 9018 #define bcm84756_a0_READ_FCM_TXFRMBUFr(c,r) \ 9019 BFCMAP_REG32_READ((c),bcm84756_a0_FCM_TXFRMBUFr((c)),&((r)._fcm_txfrmbuf)) 9020 9021 #define bcm84756_a0_WRITE_FCM_TXFRMBUFr(c,r) \ 9022 BFCMAP_REG32_WRITE((c),bcm84756_a0_FCM_TXFRMBUFr((c)),&((r)._fcm_txfrmbuf)) 9023 9024 /******************************************************************************* 9025 * End of 'bcm84756_a0_FCM_TXFRMBUFr' 9026 */ 9027 9028 9029 9030 9031 /******************************************************************************* 9032 * CHIP: bcm84756_a0 9033 * REGISTER: RX_BUFFER_CONFIG 9034 * BLOCKS: SECPORT 9035 * DESCRIPTION : 9036 * RX Frame Buffer Configuration. Configures buffer used in FCMAC to Switch 9037 * direction. 9038 * 9039 * SIZE: 32 9040 * 9041 * FIELDS DESCRIPTION: 9042 * THRESHOLD : 9043 * Measured from SOF of first frame in the queue. Threshold required to 9044 * prevent underrun at read port. In units of 128-bit words. Recommended 9045 * settings per link rate : 8G = 0x2c 4G = 0x5a 2G = 0x72 9046 * 9047 * HEADROOM : 9048 * Space required for buffer full latency to FC MAC. Typically set to zero 9049 * for a BBCredit managed RX. In units of 128-bit words. 9050 */ 9051 #define bcm84756_a0_RX_BUFFER_CONFIGr(c) \ 9052 (0x1310005d + (BFCMAP_PORT((c)) << 12)) 9053 9054 #define bcm84756_a0_RX_BUFFER_CONFIGr_SIZE 1 9055 9056 /* 9057 * This structure should be used to declare and program RX_BUFFER_CONFIG. 9058 */ 9059 typedef union bcm84756_a0_RX_BUFFER_CONFIGr_s { 9060 buint32_t v[1]; 9061 buint32_t rx_buffer_config[1]; 9062 buint32_t _rx_buffer_config; 9063 } bcm84756_a0_RX_BUFFER_CONFIGr_t; 9064 9065 #define bcm84756_a0_RX_BUFFER_CONFIGr_CLR(r) \ 9066 (r).rx_buffer_config[0] = 0 9067 9068 #define bcm84756_a0_RX_BUFFER_CONFIGr_SET(r,d) \ 9069 (r).rx_buffer_config[0] = d 9070 9071 #define bcm84756_a0_RX_BUFFER_CONFIGr_GET(r) \ 9072 (r).rx_buffer_config[0] 9073 9074 9075 /* 9076 * These macros can be used to access individual fields. 9077 */ 9078 #define bcm84756_a0_RX_BUFFER_CONFIGr_THRESHOLDf_GET(c,r) \ 9079 (((r).rx_buffer_config[0]) & 0x7ff) 9080 9081 #define bcm84756_a0_RX_BUFFER_CONFIGr_THRESHOLDf_SET(c,r,f) \ 9082 (r).rx_buffer_config[0]=(((r).rx_buffer_config[0] & ~((buint32_t)0x7ff)) | \ 9083 (((buint32_t)f) & 0x7ff)) 9084 9085 #define bcm84756_a0_RX_BUFFER_CONFIGr_HEADROOMf_GET(c,r) \ 9086 ((((r).rx_buffer_config[0]) >> 16) & 0x7ff) 9087 9088 #define bcm84756_a0_RX_BUFFER_CONFIGr_HEADROOMf_SET(c,r,f) \ 9089 (r).rx_buffer_config[0]=(((r).rx_buffer_config[0] & ~((buint32_t)0x7ff << 16)) | \ 9090 ((((buint32_t)f) & 0x7ff) << 16)) 9091 9092 9093 /* 9094 * These macros can be used to access RX_BUFFER_CONFIG. 9095 */ 9096 #define bcm84756_a0_READ_RX_BUFFER_CONFIGr(c,r) \ 9097 BFCMAP_REG32_READ((c),bcm84756_a0_RX_BUFFER_CONFIGr((c)),&((r)._rx_buffer_config)) 9098 9099 #define bcm84756_a0_WRITE_RX_BUFFER_CONFIGr(c,r) \ 9100 BFCMAP_REG32_WRITE((c),bcm84756_a0_RX_BUFFER_CONFIGr((c)),&((r)._rx_buffer_config)) 9101 9102 /******************************************************************************* 9103 * End of 'bcm84756_a0_RX_BUFFER_CONFIGr' 9104 */ 9105 9106 9107 9108 9109 /******************************************************************************* 9110 * CHIP: bcm84756_a0 9111 * REGISTER: RX_BUFFER_ECCSTS 9112 * BLOCKS: SECPORT 9113 * DESCRIPTION : 9114 * Ingress RX Frame Buffer ECC Status. 9115 * 9116 * SIZE: 32 9117 * 9118 * FIELDS DESCRIPTION: 9119 * ECC_ERR_ADDR : 9120 * ECC error address. 9121 * 9122 * ECC_ERR_1BIT : 9123 * Correctable ECC error status bit. 9124 * 9125 * ECC_ERR_2BIT : 9126 * Uncorrectable ECC error status bit. 9127 */ 9128 #define bcm84756_a0_RX_BUFFER_ECCSTSr(c) \ 9129 (0x1310005f + (BFCMAP_PORT((c)) << 12)) 9130 9131 #define bcm84756_a0_RX_BUFFER_ECCSTSr_SIZE 1 9132 9133 /* 9134 * This structure should be used to declare and program RX_BUFFER_ECCSTS. 9135 */ 9136 typedef union bcm84756_a0_RX_BUFFER_ECCSTSr_s { 9137 buint32_t v[1]; 9138 buint32_t rx_buffer_eccsts[1]; 9139 buint32_t _rx_buffer_eccsts; 9140 } bcm84756_a0_RX_BUFFER_ECCSTSr_t; 9141 9142 #define bcm84756_a0_RX_BUFFER_ECCSTSr_CLR(r) \ 9143 (r).rx_buffer_eccsts[0] = 0 9144 9145 #define bcm84756_a0_RX_BUFFER_ECCSTSr_SET(r,d) \ 9146 (r).rx_buffer_eccsts[0] = d 9147 9148 #define bcm84756_a0_RX_BUFFER_ECCSTSr_GET(r) \ 9149 (r).rx_buffer_eccsts[0] 9150 9151 9152 /* 9153 * These macros can be used to access individual fields. 9154 */ 9155 #define bcm84756_a0_RX_BUFFER_ECCSTSr_ECC_ERR_ADDRf_GET(c,r) \ 9156 (((r).rx_buffer_eccsts[0]) & 0x7ff) 9157 9158 #define bcm84756_a0_RX_BUFFER_ECCSTSr_ECC_ERR_ADDRf_SET(c,r,f) \ 9159 (r).rx_buffer_eccsts[0]=(((r).rx_buffer_eccsts[0] & ~((buint32_t)0x7ff)) | \ 9160 (((buint32_t)f) & 0x7ff)) 9161 9162 #define bcm84756_a0_RX_BUFFER_ECCSTSr_ECC_ERR_1BITf_GET(c,r) \ 9163 ((((r).rx_buffer_eccsts[0]) >> 16) & 0x1) 9164 9165 #define bcm84756_a0_RX_BUFFER_ECCSTSr_ECC_ERR_1BITf_SET(c,r,f) \ 9166 (r).rx_buffer_eccsts[0]=(((r).rx_buffer_eccsts[0] & ~((buint32_t)0x1 << 16)) | \ 9167 ((((buint32_t)f) & 0x1) << 16)) 9168 9169 #define bcm84756_a0_RX_BUFFER_ECCSTSr_ECC_ERR_2BITf_GET(c,r) \ 9170 ((((r).rx_buffer_eccsts[0]) >> 17) & 0x1) 9171 9172 #define bcm84756_a0_RX_BUFFER_ECCSTSr_ECC_ERR_2BITf_SET(c,r,f) \ 9173 (r).rx_buffer_eccsts[0]=(((r).rx_buffer_eccsts[0] & ~((buint32_t)0x1 << 17)) | \ 9174 ((((buint32_t)f) & 0x1) << 17)) 9175 9176 9177 /* 9178 * These macros can be used to access RX_BUFFER_ECCSTS. 9179 */ 9180 #define bcm84756_a0_READ_RX_BUFFER_ECCSTSr(c,r) \ 9181 BFCMAP_REG32_READ((c),bcm84756_a0_RX_BUFFER_ECCSTSr((c)),&((r)._rx_buffer_eccsts)) 9182 9183 #define bcm84756_a0_WRITE_RX_BUFFER_ECCSTSr(c,r) \ 9184 BFCMAP_REG32_WRITE((c),bcm84756_a0_RX_BUFFER_ECCSTSr((c)),&((r)._rx_buffer_eccsts)) 9185 9186 /******************************************************************************* 9187 * End of 'bcm84756_a0_RX_BUFFER_ECCSTSr' 9188 */ 9189 9190 9191 9192 9193 /******************************************************************************* 9194 * CHIP: bcm84756_a0 9195 * REGISTER: TX_BUFFER_CONFIG 9196 * BLOCKS: SECPORT 9197 * DESCRIPTION : 9198 * TX Frame Buffer Configuration. Configures buffer used in Switch to FCMAC 9199 * direction.. 9200 * 9201 * SIZE: 32 9202 * 9203 * FIELDS DESCRIPTION: 9204 * THRESHOLD : 9205 * Transfer threshold required to prevent underrun at read port. In units 9206 * of 128-bit words. 9207 * 9208 * HEADROOM : 9209 * Space required for buffer full (Eth PAUSE) latency to switch MAC. In 9210 * units of 128-bit words. 9211 */ 9212 #define bcm84756_a0_TX_BUFFER_CONFIGr(c) \ 9213 (0x1310005c + (BFCMAP_PORT((c)) << 12)) 9214 9215 #define bcm84756_a0_TX_BUFFER_CONFIGr_SIZE 1 9216 9217 /* 9218 * This structure should be used to declare and program TX_BUFFER_CONFIG. 9219 */ 9220 typedef union bcm84756_a0_TX_BUFFER_CONFIGr_s { 9221 buint32_t v[1]; 9222 buint32_t tx_buffer_config[1]; 9223 buint32_t _tx_buffer_config; 9224 } bcm84756_a0_TX_BUFFER_CONFIGr_t; 9225 9226 #define bcm84756_a0_TX_BUFFER_CONFIGr_CLR(r) \ 9227 (r).tx_buffer_config[0] = 0 9228 9229 #define bcm84756_a0_TX_BUFFER_CONFIGr_SET(r,d) \ 9230 (r).tx_buffer_config[0] = d 9231 9232 #define bcm84756_a0_TX_BUFFER_CONFIGr_GET(r) \ 9233 (r).tx_buffer_config[0] 9234 9235 9236 /* 9237 * These macros can be used to access individual fields. 9238 */ 9239 #define bcm84756_a0_TX_BUFFER_CONFIGr_THRESHOLDf_GET(c,r) \ 9240 (((r).tx_buffer_config[0]) & 0x7ff) 9241 9242 #define bcm84756_a0_TX_BUFFER_CONFIGr_THRESHOLDf_SET(c,r,f) \ 9243 (r).tx_buffer_config[0]=(((r).tx_buffer_config[0] & ~((buint32_t)0x7ff)) | \ 9244 (((buint32_t)f) & 0x7ff)) 9245 9246 #define bcm84756_a0_TX_BUFFER_CONFIGr_HEADROOMf_GET(c,r) \ 9247 ((((r).tx_buffer_config[0]) >> 16) & 0x7ff) 9248 9249 #define bcm84756_a0_TX_BUFFER_CONFIGr_HEADROOMf_SET(c,r,f) \ 9250 (r).tx_buffer_config[0]=(((r).tx_buffer_config[0] & ~((buint32_t)0x7ff << 16)) | \ 9251 ((((buint32_t)f) & 0x7ff) << 16)) 9252 9253 9254 /* 9255 * These macros can be used to access TX_BUFFER_CONFIG. 9256 */ 9257 #define bcm84756_a0_READ_TX_BUFFER_CONFIGr(c,r) \ 9258 BFCMAP_REG32_READ((c),bcm84756_a0_TX_BUFFER_CONFIGr((c)),&((r)._tx_buffer_config)) 9259 9260 #define bcm84756_a0_WRITE_TX_BUFFER_CONFIGr(c,r) \ 9261 BFCMAP_REG32_WRITE((c),bcm84756_a0_TX_BUFFER_CONFIGr((c)),&((r)._tx_buffer_config)) 9262 9263 /******************************************************************************* 9264 * End of 'bcm84756_a0_TX_BUFFER_CONFIGr' 9265 */ 9266 9267 9268 9269 9270 /******************************************************************************* 9271 * CHIP: bcm84756_a0 9272 * REGISTER: TX_BUFFER_ECCSTS 9273 * BLOCKS: SECPORT 9274 * DESCRIPTION : 9275 * Egress TX Frame Buffer ECC Status. 9276 * 9277 * SIZE: 32 9278 * 9279 * FIELDS DESCRIPTION: 9280 * ECC_ERR_ADDR : 9281 * ECC error address. 9282 * 9283 * ECC_ERR_1BIT : 9284 * Correctable ECC error status bit. 9285 * 9286 * ECC_ERR_2BIT : 9287 * Uncorrectable ECC error status bit. 9288 */ 9289 #define bcm84756_a0_TX_BUFFER_ECCSTSr(c) \ 9290 (0x1310005e + (BFCMAP_PORT((c)) << 12)) 9291 9292 #define bcm84756_a0_TX_BUFFER_ECCSTSr_SIZE 1 9293 9294 /* 9295 * This structure should be used to declare and program TX_BUFFER_ECCSTS. 9296 */ 9297 typedef union bcm84756_a0_TX_BUFFER_ECCSTSr_s { 9298 buint32_t v[1]; 9299 buint32_t tx_buffer_eccsts[1]; 9300 buint32_t _tx_buffer_eccsts; 9301 } bcm84756_a0_TX_BUFFER_ECCSTSr_t; 9302 9303 #define bcm84756_a0_TX_BUFFER_ECCSTSr_CLR(r) \ 9304 (r).tx_buffer_eccsts[0] = 0 9305 9306 #define bcm84756_a0_TX_BUFFER_ECCSTSr_SET(r,d) \ 9307 (r).tx_buffer_eccsts[0] = d 9308 9309 #define bcm84756_a0_TX_BUFFER_ECCSTSr_GET(r) \ 9310 (r).tx_buffer_eccsts[0] 9311 9312 9313 /* 9314 * These macros can be used to access individual fields. 9315 */ 9316 #define bcm84756_a0_TX_BUFFER_ECCSTSr_ECC_ERR_ADDRf_GET(c,r) \ 9317 (((r).tx_buffer_eccsts[0]) & 0x7ff) 9318 9319 #define bcm84756_a0_TX_BUFFER_ECCSTSr_ECC_ERR_ADDRf_SET(c,r,f) \ 9320 (r).tx_buffer_eccsts[0]=(((r).tx_buffer_eccsts[0] & ~((buint32_t)0x7ff)) | \ 9321 (((buint32_t)f) & 0x7ff)) 9322 9323 #define bcm84756_a0_TX_BUFFER_ECCSTSr_ECC_ERR_1BITf_GET(c,r) \ 9324 ((((r).tx_buffer_eccsts[0]) >> 16) & 0x1) 9325 9326 #define bcm84756_a0_TX_BUFFER_ECCSTSr_ECC_ERR_1BITf_SET(c,r,f) \ 9327 (r).tx_buffer_eccsts[0]=(((r).tx_buffer_eccsts[0] & ~((buint32_t)0x1 << 16)) | \ 9328 ((((buint32_t)f) & 0x1) << 16)) 9329 9330 #define bcm84756_a0_TX_BUFFER_ECCSTSr_ECC_ERR_2BITf_GET(c,r) \ 9331 ((((r).tx_buffer_eccsts[0]) >> 17) & 0x1) 9332 9333 #define bcm84756_a0_TX_BUFFER_ECCSTSr_ECC_ERR_2BITf_SET(c,r,f) \ 9334 (r).tx_buffer_eccsts[0]=(((r).tx_buffer_eccsts[0] & ~((buint32_t)0x1 << 17)) | \ 9335 ((((buint32_t)f) & 0x1) << 17)) 9336 9337 9338 /* 9339 * These macros can be used to access TX_BUFFER_ECCSTS. 9340 */ 9341 #define bcm84756_a0_READ_TX_BUFFER_ECCSTSr(c,r) \ 9342 BFCMAP_REG32_READ((c),bcm84756_a0_TX_BUFFER_ECCSTSr((c)),&((r)._tx_buffer_eccsts)) 9343 9344 #define bcm84756_a0_WRITE_TX_BUFFER_ECCSTSr(c,r) \ 9345 BFCMAP_REG32_WRITE((c),bcm84756_a0_TX_BUFFER_ECCSTSr((c)),&((r)._tx_buffer_eccsts)) 9346 9347 /******************************************************************************* 9348 * End of 'bcm84756_a0_TX_BUFFER_ECCSTSr' 9349 */ 9350 9351 9352 9353 9354 /******************************************************************************* 9355 * CHIP: bcm84756_a0 9356 * REGISTER: VLAN_MAPTABLE_0 9357 * BLOCKS: SECPORT 9358 * DESCRIPTION : 9359 * Egress Mapping Table Entry, entry 0. 9360 * 9361 * SIZE: 32 9362 * 9363 * FIELDS DESCRIPTION: 9364 * VSAN_VFID : 9365 * Lookup table entry. 9366 * 9367 * VLAN_VID : 9368 * Lookup table entry. 9369 */ 9370 #define bcm84756_a0_VLAN_MAPTABLE_0r(c) \ 9371 (0x1310001c + (BFCMAP_PORT((c)) << 12)) 9372 9373 #define bcm84756_a0_VLAN_MAPTABLE_0r_SIZE 1 9374 9375 /* 9376 * This structure should be used to declare and program VLAN_MAPTABLE_0. 9377 */ 9378 typedef union bcm84756_a0_VLAN_MAPTABLE_0r_s { 9379 buint32_t v[1]; 9380 buint32_t vlan_maptable_0[1]; 9381 buint32_t _vlan_maptable_0; 9382 } bcm84756_a0_VLAN_MAPTABLE_0r_t; 9383 9384 #define bcm84756_a0_VLAN_MAPTABLE_0r_CLR(r) \ 9385 (r).vlan_maptable_0[0] = 0 9386 9387 #define bcm84756_a0_VLAN_MAPTABLE_0r_SET(r,d) \ 9388 (r).vlan_maptable_0[0] = d 9389 9390 #define bcm84756_a0_VLAN_MAPTABLE_0r_GET(r) \ 9391 (r).vlan_maptable_0[0] 9392 9393 9394 /* 9395 * These macros can be used to access individual fields. 9396 */ 9397 #define bcm84756_a0_VLAN_MAPTABLE_0r_VSAN_VFIDf_GET(c,r) \ 9398 (((r).vlan_maptable_0[0]) & 0xfff) 9399 9400 #define bcm84756_a0_VLAN_MAPTABLE_0r_VSAN_VFIDf_SET(c,r,f) \ 9401 (r).vlan_maptable_0[0]=(((r).vlan_maptable_0[0] & ~((buint32_t)0xfff)) | \ 9402 (((buint32_t)f) & 0xfff)) 9403 9404 #define bcm84756_a0_VLAN_MAPTABLE_0r_VLAN_VIDf_GET(c,r) \ 9405 ((((r).vlan_maptable_0[0]) >> 16) & 0xfff) 9406 9407 #define bcm84756_a0_VLAN_MAPTABLE_0r_VLAN_VIDf_SET(c,r,f) \ 9408 (r).vlan_maptable_0[0]=(((r).vlan_maptable_0[0] & ~((buint32_t)0xfff << 16)) | \ 9409 ((((buint32_t)f) & 0xfff) << 16)) 9410 9411 9412 /* 9413 * These macros can be used to access VLAN_MAPTABLE_0. 9414 */ 9415 #define bcm84756_a0_READ_VLAN_MAPTABLE_0r(c,r) \ 9416 BFCMAP_REG32_READ((c),bcm84756_a0_VLAN_MAPTABLE_0r((c)),&((r)._vlan_maptable_0)) 9417 9418 #define bcm84756_a0_WRITE_VLAN_MAPTABLE_0r(c,r) \ 9419 BFCMAP_REG32_WRITE((c),bcm84756_a0_VLAN_MAPTABLE_0r((c)),&((r)._vlan_maptable_0)) 9420 9421 /******************************************************************************* 9422 * End of 'bcm84756_a0_VLAN_MAPTABLE_0r' 9423 */ 9424 9425 9426 9427 9428 /******************************************************************************* 9429 * CHIP: bcm84756_a0 9430 * REGISTER: VLAN_MAPTABLE_1 9431 * BLOCKS: SECPORT 9432 * DESCRIPTION : 9433 * Egress Mapping Table Entry, entry 1. 9434 * 9435 * SIZE: 32 9436 * 9437 * FIELDS DESCRIPTION: 9438 * VSAN_VFID : 9439 * Lookup table entry. 9440 * 9441 * VLAN_VID : 9442 * Lookup table entry. 9443 */ 9444 #define bcm84756_a0_VLAN_MAPTABLE_1r(c) \ 9445 (0x1310001d + (BFCMAP_PORT((c)) << 12)) 9446 9447 #define bcm84756_a0_VLAN_MAPTABLE_1r_SIZE 1 9448 9449 /* 9450 * This structure should be used to declare and program VLAN_MAPTABLE_1. 9451 */ 9452 typedef union bcm84756_a0_VLAN_MAPTABLE_1r_s { 9453 buint32_t v[1]; 9454 buint32_t vlan_maptable_1[1]; 9455 buint32_t _vlan_maptable_1; 9456 } bcm84756_a0_VLAN_MAPTABLE_1r_t; 9457 9458 #define bcm84756_a0_VLAN_MAPTABLE_1r_CLR(r) \ 9459 (r).vlan_maptable_1[0] = 0 9460 9461 #define bcm84756_a0_VLAN_MAPTABLE_1r_SET(r,d) \ 9462 (r).vlan_maptable_1[0] = d 9463 9464 #define bcm84756_a0_VLAN_MAPTABLE_1r_GET(r) \ 9465 (r).vlan_maptable_1[0] 9466 9467 9468 /* 9469 * These macros can be used to access individual fields. 9470 */ 9471 #define bcm84756_a0_VLAN_MAPTABLE_1r_VSAN_VFIDf_GET(c,r) \ 9472 (((r).vlan_maptable_1[0]) & 0xfff) 9473 9474 #define bcm84756_a0_VLAN_MAPTABLE_1r_VSAN_VFIDf_SET(c,r,f) \ 9475 (r).vlan_maptable_1[0]=(((r).vlan_maptable_1[0] & ~((buint32_t)0xfff)) | \ 9476 (((buint32_t)f) & 0xfff)) 9477 9478 #define bcm84756_a0_VLAN_MAPTABLE_1r_VLAN_VIDf_GET(c,r) \ 9479 ((((r).vlan_maptable_1[0]) >> 16) & 0xfff) 9480 9481 #define bcm84756_a0_VLAN_MAPTABLE_1r_VLAN_VIDf_SET(c,r,f) \ 9482 (r).vlan_maptable_1[0]=(((r).vlan_maptable_1[0] & ~((buint32_t)0xfff << 16)) | \ 9483 ((((buint32_t)f) & 0xfff) << 16)) 9484 9485 9486 /* 9487 * These macros can be used to access VLAN_MAPTABLE_1. 9488 */ 9489 #define bcm84756_a0_READ_VLAN_MAPTABLE_1r(c,r) \ 9490 BFCMAP_REG32_READ((c),bcm84756_a0_VLAN_MAPTABLE_1r((c)),&((r)._vlan_maptable_1)) 9491 9492 #define bcm84756_a0_WRITE_VLAN_MAPTABLE_1r(c,r) \ 9493 BFCMAP_REG32_WRITE((c),bcm84756_a0_VLAN_MAPTABLE_1r((c)),&((r)._vlan_maptable_1)) 9494 9495 /******************************************************************************* 9496 * End of 'bcm84756_a0_VLAN_MAPTABLE_1r' 9497 */ 9498 9499 9500 9501 9502 /******************************************************************************* 9503 * CHIP: bcm84756_a0 9504 * REGISTER: VLAN_MAPTABLE_10 9505 * BLOCKS: SECPORT 9506 * DESCRIPTION : 9507 * Egress Mapping Table Entry, entry 10. 9508 * 9509 * SIZE: 32 9510 * 9511 * FIELDS DESCRIPTION: 9512 * VSAN_VFID : 9513 * Lookup table entry. 9514 * 9515 * VLAN_VID : 9516 * Lookup table entry. 9517 */ 9518 #define bcm84756_a0_VLAN_MAPTABLE_10r(c) \ 9519 (0x13100026 + (BFCMAP_PORT((c)) << 12)) 9520 9521 #define bcm84756_a0_VLAN_MAPTABLE_10r_SIZE 1 9522 9523 /* 9524 * This structure should be used to declare and program VLAN_MAPTABLE_10. 9525 */ 9526 typedef union bcm84756_a0_VLAN_MAPTABLE_10r_s { 9527 buint32_t v[1]; 9528 buint32_t vlan_maptable_10[1]; 9529 buint32_t _vlan_maptable_10; 9530 } bcm84756_a0_VLAN_MAPTABLE_10r_t; 9531 9532 #define bcm84756_a0_VLAN_MAPTABLE_10r_CLR(r) \ 9533 (r).vlan_maptable_10[0] = 0 9534 9535 #define bcm84756_a0_VLAN_MAPTABLE_10r_SET(r,d) \ 9536 (r).vlan_maptable_10[0] = d 9537 9538 #define bcm84756_a0_VLAN_MAPTABLE_10r_GET(r) \ 9539 (r).vlan_maptable_10[0] 9540 9541 9542 /* 9543 * These macros can be used to access individual fields. 9544 */ 9545 #define bcm84756_a0_VLAN_MAPTABLE_10r_VSAN_VFIDf_GET(c,r) \ 9546 (((r).vlan_maptable_10[0]) & 0xfff) 9547 9548 #define bcm84756_a0_VLAN_MAPTABLE_10r_VSAN_VFIDf_SET(c,r,f) \ 9549 (r).vlan_maptable_10[0]=(((r).vlan_maptable_10[0] & ~((buint32_t)0xfff)) | \ 9550 (((buint32_t)f) & 0xfff)) 9551 9552 #define bcm84756_a0_VLAN_MAPTABLE_10r_VLAN_VIDf_GET(c,r) \ 9553 ((((r).vlan_maptable_10[0]) >> 16) & 0xfff) 9554 9555 #define bcm84756_a0_VLAN_MAPTABLE_10r_VLAN_VIDf_SET(c,r,f) \ 9556 (r).vlan_maptable_10[0]=(((r).vlan_maptable_10[0] & ~((buint32_t)0xfff << 16)) | \ 9557 ((((buint32_t)f) & 0xfff) << 16)) 9558 9559 9560 /* 9561 * These macros can be used to access VLAN_MAPTABLE_10. 9562 */ 9563 #define bcm84756_a0_READ_VLAN_MAPTABLE_10r(c,r) \ 9564 BFCMAP_REG32_READ((c),bcm84756_a0_VLAN_MAPTABLE_10r((c)),&((r)._vlan_maptable_10)) 9565 9566 #define bcm84756_a0_WRITE_VLAN_MAPTABLE_10r(c,r) \ 9567 BFCMAP_REG32_WRITE((c),bcm84756_a0_VLAN_MAPTABLE_10r((c)),&((r)._vlan_maptable_10)) 9568 9569 /******************************************************************************* 9570 * End of 'bcm84756_a0_VLAN_MAPTABLE_10r' 9571 */ 9572 9573 9574 9575 9576 /******************************************************************************* 9577 * CHIP: bcm84756_a0 9578 * REGISTER: VLAN_MAPTABLE_11 9579 * BLOCKS: SECPORT 9580 * DESCRIPTION : 9581 * Egress Mapping Table Entry, entry 11. 9582 * 9583 * SIZE: 32 9584 * 9585 * FIELDS DESCRIPTION: 9586 * VSAN_VFID : 9587 * Lookup table entry. 9588 * 9589 * VLAN_VID : 9590 * Lookup table entry. 9591 */ 9592 #define bcm84756_a0_VLAN_MAPTABLE_11r(c) \ 9593 (0x13100027 + (BFCMAP_PORT((c)) << 12)) 9594 9595 #define bcm84756_a0_VLAN_MAPTABLE_11r_SIZE 1 9596 9597 /* 9598 * This structure should be used to declare and program VLAN_MAPTABLE_11. 9599 */ 9600 typedef union bcm84756_a0_VLAN_MAPTABLE_11r_s { 9601 buint32_t v[1]; 9602 buint32_t vlan_maptable_11[1]; 9603 buint32_t _vlan_maptable_11; 9604 } bcm84756_a0_VLAN_MAPTABLE_11r_t; 9605 9606 #define bcm84756_a0_VLAN_MAPTABLE_11r_CLR(r) \ 9607 (r).vlan_maptable_11[0] = 0 9608 9609 #define bcm84756_a0_VLAN_MAPTABLE_11r_SET(r,d) \ 9610 (r).vlan_maptable_11[0] = d 9611 9612 #define bcm84756_a0_VLAN_MAPTABLE_11r_GET(r) \ 9613 (r).vlan_maptable_11[0] 9614 9615 9616 /* 9617 * These macros can be used to access individual fields. 9618 */ 9619 #define bcm84756_a0_VLAN_MAPTABLE_11r_VSAN_VFIDf_GET(c,r) \ 9620 (((r).vlan_maptable_11[0]) & 0xfff) 9621 9622 #define bcm84756_a0_VLAN_MAPTABLE_11r_VSAN_VFIDf_SET(c,r,f) \ 9623 (r).vlan_maptable_11[0]=(((r).vlan_maptable_11[0] & ~((buint32_t)0xfff)) | \ 9624 (((buint32_t)f) & 0xfff)) 9625 9626 #define bcm84756_a0_VLAN_MAPTABLE_11r_VLAN_VIDf_GET(c,r) \ 9627 ((((r).vlan_maptable_11[0]) >> 16) & 0xfff) 9628 9629 #define bcm84756_a0_VLAN_MAPTABLE_11r_VLAN_VIDf_SET(c,r,f) \ 9630 (r).vlan_maptable_11[0]=(((r).vlan_maptable_11[0] & ~((buint32_t)0xfff << 16)) | \ 9631 ((((buint32_t)f) & 0xfff) << 16)) 9632 9633 9634 /* 9635 * These macros can be used to access VLAN_MAPTABLE_11. 9636 */ 9637 #define bcm84756_a0_READ_VLAN_MAPTABLE_11r(c,r) \ 9638 BFCMAP_REG32_READ((c),bcm84756_a0_VLAN_MAPTABLE_11r((c)),&((r)._vlan_maptable_11)) 9639 9640 #define bcm84756_a0_WRITE_VLAN_MAPTABLE_11r(c,r) \ 9641 BFCMAP_REG32_WRITE((c),bcm84756_a0_VLAN_MAPTABLE_11r((c)),&((r)._vlan_maptable_11)) 9642 9643 /******************************************************************************* 9644 * End of 'bcm84756_a0_VLAN_MAPTABLE_11r' 9645 */ 9646 9647 9648 9649 9650 /******************************************************************************* 9651 * CHIP: bcm84756_a0 9652 * REGISTER: VLAN_MAPTABLE_12 9653 * BLOCKS: SECPORT 9654 * DESCRIPTION : 9655 * Egress Mapping Table Entry, entry 12. 9656 * 9657 * SIZE: 32 9658 * 9659 * FIELDS DESCRIPTION: 9660 * VSAN_VFID : 9661 * Lookup table entry. 9662 * 9663 * VLAN_VID : 9664 * Lookup table entry. 9665 */ 9666 #define bcm84756_a0_VLAN_MAPTABLE_12r(c) \ 9667 (0x13100028 + (BFCMAP_PORT((c)) << 12)) 9668 9669 #define bcm84756_a0_VLAN_MAPTABLE_12r_SIZE 1 9670 9671 /* 9672 * This structure should be used to declare and program VLAN_MAPTABLE_12. 9673 */ 9674 typedef union bcm84756_a0_VLAN_MAPTABLE_12r_s { 9675 buint32_t v[1]; 9676 buint32_t vlan_maptable_12[1]; 9677 buint32_t _vlan_maptable_12; 9678 } bcm84756_a0_VLAN_MAPTABLE_12r_t; 9679 9680 #define bcm84756_a0_VLAN_MAPTABLE_12r_CLR(r) \ 9681 (r).vlan_maptable_12[0] = 0 9682 9683 #define bcm84756_a0_VLAN_MAPTABLE_12r_SET(r,d) \ 9684 (r).vlan_maptable_12[0] = d 9685 9686 #define bcm84756_a0_VLAN_MAPTABLE_12r_GET(r) \ 9687 (r).vlan_maptable_12[0] 9688 9689 9690 /* 9691 * These macros can be used to access individual fields. 9692 */ 9693 #define bcm84756_a0_VLAN_MAPTABLE_12r_VSAN_VFIDf_GET(c,r) \ 9694 (((r).vlan_maptable_12[0]) & 0xfff) 9695 9696 #define bcm84756_a0_VLAN_MAPTABLE_12r_VSAN_VFIDf_SET(c,r,f) \ 9697 (r).vlan_maptable_12[0]=(((r).vlan_maptable_12[0] & ~((buint32_t)0xfff)) | \ 9698 (((buint32_t)f) & 0xfff)) 9699 9700 #define bcm84756_a0_VLAN_MAPTABLE_12r_VLAN_VIDf_GET(c,r) \ 9701 ((((r).vlan_maptable_12[0]) >> 16) & 0xfff) 9702 9703 #define bcm84756_a0_VLAN_MAPTABLE_12r_VLAN_VIDf_SET(c,r,f) \ 9704 (r).vlan_maptable_12[0]=(((r).vlan_maptable_12[0] & ~((buint32_t)0xfff << 16)) | \ 9705 ((((buint32_t)f) & 0xfff) << 16)) 9706 9707 9708 /* 9709 * These macros can be used to access VLAN_MAPTABLE_12. 9710 */ 9711 #define bcm84756_a0_READ_VLAN_MAPTABLE_12r(c,r) \ 9712 BFCMAP_REG32_READ((c),bcm84756_a0_VLAN_MAPTABLE_12r((c)),&((r)._vlan_maptable_12)) 9713 9714 #define bcm84756_a0_WRITE_VLAN_MAPTABLE_12r(c,r) \ 9715 BFCMAP_REG32_WRITE((c),bcm84756_a0_VLAN_MAPTABLE_12r((c)),&((r)._vlan_maptable_12)) 9716 9717 /******************************************************************************* 9718 * End of 'bcm84756_a0_VLAN_MAPTABLE_12r' 9719 */ 9720 9721 9722 9723 9724 /******************************************************************************* 9725 * CHIP: bcm84756_a0 9726 * REGISTER: VLAN_MAPTABLE_13 9727 * BLOCKS: SECPORT 9728 * DESCRIPTION : 9729 * Egress Mapping Table Entry, entry 13. 9730 * 9731 * SIZE: 32 9732 * 9733 * FIELDS DESCRIPTION: 9734 * VSAN_VFID : 9735 * Lookup table entry. 9736 * 9737 * VLAN_VID : 9738 * Lookup table entry. 9739 */ 9740 #define bcm84756_a0_VLAN_MAPTABLE_13r(c) \ 9741 (0x13100029 + (BFCMAP_PORT((c)) << 12)) 9742 9743 #define bcm84756_a0_VLAN_MAPTABLE_13r_SIZE 1 9744 9745 /* 9746 * This structure should be used to declare and program VLAN_MAPTABLE_13. 9747 */ 9748 typedef union bcm84756_a0_VLAN_MAPTABLE_13r_s { 9749 buint32_t v[1]; 9750 buint32_t vlan_maptable_13[1]; 9751 buint32_t _vlan_maptable_13; 9752 } bcm84756_a0_VLAN_MAPTABLE_13r_t; 9753 9754 #define bcm84756_a0_VLAN_MAPTABLE_13r_CLR(r) \ 9755 (r).vlan_maptable_13[0] = 0 9756 9757 #define bcm84756_a0_VLAN_MAPTABLE_13r_SET(r,d) \ 9758 (r).vlan_maptable_13[0] = d 9759 9760 #define bcm84756_a0_VLAN_MAPTABLE_13r_GET(r) \ 9761 (r).vlan_maptable_13[0] 9762 9763 9764 /* 9765 * These macros can be used to access individual fields. 9766 */ 9767 #define bcm84756_a0_VLAN_MAPTABLE_13r_VSAN_VFIDf_GET(c,r) \ 9768 (((r).vlan_maptable_13[0]) & 0xfff) 9769 9770 #define bcm84756_a0_VLAN_MAPTABLE_13r_VSAN_VFIDf_SET(c,r,f) \ 9771 (r).vlan_maptable_13[0]=(((r).vlan_maptable_13[0] & ~((buint32_t)0xfff)) | \ 9772 (((buint32_t)f) & 0xfff)) 9773 9774 #define bcm84756_a0_VLAN_MAPTABLE_13r_VLAN_VIDf_GET(c,r) \ 9775 ((((r).vlan_maptable_13[0]) >> 16) & 0xfff) 9776 9777 #define bcm84756_a0_VLAN_MAPTABLE_13r_VLAN_VIDf_SET(c,r,f) \ 9778 (r).vlan_maptable_13[0]=(((r).vlan_maptable_13[0] & ~((buint32_t)0xfff << 16)) | \ 9779 ((((buint32_t)f) & 0xfff) << 16)) 9780 9781 9782 /* 9783 * These macros can be used to access VLAN_MAPTABLE_13. 9784 */ 9785 #define bcm84756_a0_READ_VLAN_MAPTABLE_13r(c,r) \ 9786 BFCMAP_REG32_READ((c),bcm84756_a0_VLAN_MAPTABLE_13r((c)),&((r)._vlan_maptable_13)) 9787 9788 #define bcm84756_a0_WRITE_VLAN_MAPTABLE_13r(c,r) \ 9789 BFCMAP_REG32_WRITE((c),bcm84756_a0_VLAN_MAPTABLE_13r((c)),&((r)._vlan_maptable_13)) 9790 9791 /******************************************************************************* 9792 * End of 'bcm84756_a0_VLAN_MAPTABLE_13r' 9793 */ 9794 9795 9796 9797 9798 /******************************************************************************* 9799 * CHIP: bcm84756_a0 9800 * REGISTER: VLAN_MAPTABLE_14 9801 * BLOCKS: SECPORT 9802 * DESCRIPTION : 9803 * Egress Mapping Table Entry, entry 14. 9804 * 9805 * SIZE: 32 9806 * 9807 * FIELDS DESCRIPTION: 9808 * VSAN_VFID : 9809 * Lookup table entry. 9810 * 9811 * VLAN_VID : 9812 * Lookup table entry. 9813 */ 9814 #define bcm84756_a0_VLAN_MAPTABLE_14r(c) \ 9815 (0x1310002a + (BFCMAP_PORT((c)) << 12)) 9816 9817 #define bcm84756_a0_VLAN_MAPTABLE_14r_SIZE 1 9818 9819 /* 9820 * This structure should be used to declare and program VLAN_MAPTABLE_14. 9821 */ 9822 typedef union bcm84756_a0_VLAN_MAPTABLE_14r_s { 9823 buint32_t v[1]; 9824 buint32_t vlan_maptable_14[1]; 9825 buint32_t _vlan_maptable_14; 9826 } bcm84756_a0_VLAN_MAPTABLE_14r_t; 9827 9828 #define bcm84756_a0_VLAN_MAPTABLE_14r_CLR(r) \ 9829 (r).vlan_maptable_14[0] = 0 9830 9831 #define bcm84756_a0_VLAN_MAPTABLE_14r_SET(r,d) \ 9832 (r).vlan_maptable_14[0] = d 9833 9834 #define bcm84756_a0_VLAN_MAPTABLE_14r_GET(r) \ 9835 (r).vlan_maptable_14[0] 9836 9837 9838 /* 9839 * These macros can be used to access individual fields. 9840 */ 9841 #define bcm84756_a0_VLAN_MAPTABLE_14r_VSAN_VFIDf_GET(c,r) \ 9842 (((r).vlan_maptable_14[0]) & 0xfff) 9843 9844 #define bcm84756_a0_VLAN_MAPTABLE_14r_VSAN_VFIDf_SET(c,r,f) \ 9845 (r).vlan_maptable_14[0]=(((r).vlan_maptable_14[0] & ~((buint32_t)0xfff)) | \ 9846 (((buint32_t)f) & 0xfff)) 9847 9848 #define bcm84756_a0_VLAN_MAPTABLE_14r_VLAN_VIDf_GET(c,r) \ 9849 ((((r).vlan_maptable_14[0]) >> 16) & 0xfff) 9850 9851 #define bcm84756_a0_VLAN_MAPTABLE_14r_VLAN_VIDf_SET(c,r,f) \ 9852 (r).vlan_maptable_14[0]=(((r).vlan_maptable_14[0] & ~((buint32_t)0xfff << 16)) | \ 9853 ((((buint32_t)f) & 0xfff) << 16)) 9854 9855 9856 /* 9857 * These macros can be used to access VLAN_MAPTABLE_14. 9858 */ 9859 #define bcm84756_a0_READ_VLAN_MAPTABLE_14r(c,r) \ 9860 BFCMAP_REG32_READ((c),bcm84756_a0_VLAN_MAPTABLE_14r((c)),&((r)._vlan_maptable_14)) 9861 9862 #define bcm84756_a0_WRITE_VLAN_MAPTABLE_14r(c,r) \ 9863 BFCMAP_REG32_WRITE((c),bcm84756_a0_VLAN_MAPTABLE_14r((c)),&((r)._vlan_maptable_14)) 9864 9865 /******************************************************************************* 9866 * End of 'bcm84756_a0_VLAN_MAPTABLE_14r' 9867 */ 9868 9869 9870 9871 9872 /******************************************************************************* 9873 * CHIP: bcm84756_a0 9874 * REGISTER: VLAN_MAPTABLE_15 9875 * BLOCKS: SECPORT 9876 * DESCRIPTION : 9877 * Egress Mapping Table Entry, entry 15. 9878 * 9879 * SIZE: 32 9880 * 9881 * FIELDS DESCRIPTION: 9882 * VSAN_VFID : 9883 * Lookup table entry. 9884 * 9885 * VLAN_VID : 9886 * Lookup table entry. 9887 */ 9888 #define bcm84756_a0_VLAN_MAPTABLE_15r(c) \ 9889 (0x1310002b + (BFCMAP_PORT((c)) << 12)) 9890 9891 #define bcm84756_a0_VLAN_MAPTABLE_15r_SIZE 1 9892 9893 /* 9894 * This structure should be used to declare and program VLAN_MAPTABLE_15. 9895 */ 9896 typedef union bcm84756_a0_VLAN_MAPTABLE_15r_s { 9897 buint32_t v[1]; 9898 buint32_t vlan_maptable_15[1]; 9899 buint32_t _vlan_maptable_15; 9900 } bcm84756_a0_VLAN_MAPTABLE_15r_t; 9901 9902 #define bcm84756_a0_VLAN_MAPTABLE_15r_CLR(r) \ 9903 (r).vlan_maptable_15[0] = 0 9904 9905 #define bcm84756_a0_VLAN_MAPTABLE_15r_SET(r,d) \ 9906 (r).vlan_maptable_15[0] = d 9907 9908 #define bcm84756_a0_VLAN_MAPTABLE_15r_GET(r) \ 9909 (r).vlan_maptable_15[0] 9910 9911 9912 /* 9913 * These macros can be used to access individual fields. 9914 */ 9915 #define bcm84756_a0_VLAN_MAPTABLE_15r_VSAN_VFIDf_GET(c,r) \ 9916 (((r).vlan_maptable_15[0]) & 0xfff) 9917 9918 #define bcm84756_a0_VLAN_MAPTABLE_15r_VSAN_VFIDf_SET(c,r,f) \ 9919 (r).vlan_maptable_15[0]=(((r).vlan_maptable_15[0] & ~((buint32_t)0xfff)) | \ 9920 (((buint32_t)f) & 0xfff)) 9921 9922 #define bcm84756_a0_VLAN_MAPTABLE_15r_VLAN_VIDf_GET(c,r) \ 9923 ((((r).vlan_maptable_15[0]) >> 16) & 0xfff) 9924 9925 #define bcm84756_a0_VLAN_MAPTABLE_15r_VLAN_VIDf_SET(c,r,f) \ 9926 (r).vlan_maptable_15[0]=(((r).vlan_maptable_15[0] & ~((buint32_t)0xfff << 16)) | \ 9927 ((((buint32_t)f) & 0xfff) << 16)) 9928 9929 9930 /* 9931 * These macros can be used to access VLAN_MAPTABLE_15. 9932 */ 9933 #define bcm84756_a0_READ_VLAN_MAPTABLE_15r(c,r) \ 9934 BFCMAP_REG32_READ((c),bcm84756_a0_VLAN_MAPTABLE_15r((c)),&((r)._vlan_maptable_15)) 9935 9936 #define bcm84756_a0_WRITE_VLAN_MAPTABLE_15r(c,r) \ 9937 BFCMAP_REG32_WRITE((c),bcm84756_a0_VLAN_MAPTABLE_15r((c)),&((r)._vlan_maptable_15)) 9938 9939 /******************************************************************************* 9940 * End of 'bcm84756_a0_VLAN_MAPTABLE_15r' 9941 */ 9942 9943 9944 9945 9946 /******************************************************************************* 9947 * CHIP: bcm84756_a0 9948 * REGISTER: VLAN_MAPTABLE_16 9949 * BLOCKS: SECPORT 9950 * DESCRIPTION : 9951 * Egress Mapping Table Entry, entry 16. 9952 * 9953 * SIZE: 32 9954 * 9955 * FIELDS DESCRIPTION: 9956 * VSAN_VFID : 9957 * Lookup table entry. 9958 * 9959 * VLAN_VID : 9960 * Lookup table entry. 9961 */ 9962 #define bcm84756_a0_VLAN_MAPTABLE_16r(c) \ 9963 (0x1310002c + (BFCMAP_PORT((c)) << 12)) 9964 9965 #define bcm84756_a0_VLAN_MAPTABLE_16r_SIZE 1 9966 9967 /* 9968 * This structure should be used to declare and program VLAN_MAPTABLE_16. 9969 */ 9970 typedef union bcm84756_a0_VLAN_MAPTABLE_16r_s { 9971 buint32_t v[1]; 9972 buint32_t vlan_maptable_16[1]; 9973 buint32_t _vlan_maptable_16; 9974 } bcm84756_a0_VLAN_MAPTABLE_16r_t; 9975 9976 #define bcm84756_a0_VLAN_MAPTABLE_16r_CLR(r) \ 9977 (r).vlan_maptable_16[0] = 0 9978 9979 #define bcm84756_a0_VLAN_MAPTABLE_16r_SET(r,d) \ 9980 (r).vlan_maptable_16[0] = d 9981 9982 #define bcm84756_a0_VLAN_MAPTABLE_16r_GET(r) \ 9983 (r).vlan_maptable_16[0] 9984 9985 9986 /* 9987 * These macros can be used to access individual fields. 9988 */ 9989 #define bcm84756_a0_VLAN_MAPTABLE_16r_VSAN_VFIDf_GET(c,r) \ 9990 (((r).vlan_maptable_16[0]) & 0xfff) 9991 9992 #define bcm84756_a0_VLAN_MAPTABLE_16r_VSAN_VFIDf_SET(c,r,f) \ 9993 (r).vlan_maptable_16[0]=(((r).vlan_maptable_16[0] & ~((buint32_t)0xfff)) | \ 9994 (((buint32_t)f) & 0xfff)) 9995 9996 #define bcm84756_a0_VLAN_MAPTABLE_16r_VLAN_VIDf_GET(c,r) \ 9997 ((((r).vlan_maptable_16[0]) >> 16) & 0xfff) 9998 9999 #define bcm84756_a0_VLAN_MAPTABLE_16r_VLAN_VIDf_SET(c,r,f) \ 10000 (r).vlan_maptable_16[0]=(((r).vlan_maptable_16[0] & ~((buint32_t)0xfff << 16)) | \ 10001 ((((buint32_t)f) & 0xfff) << 16)) 10002 10003 10004 /* 10005 * These macros can be used to access VLAN_MAPTABLE_16. 10006 */ 10007 #define bcm84756_a0_READ_VLAN_MAPTABLE_16r(c,r) \ 10008 BFCMAP_REG32_READ((c),bcm84756_a0_VLAN_MAPTABLE_16r((c)),&((r)._vlan_maptable_16)) 10009 10010 #define bcm84756_a0_WRITE_VLAN_MAPTABLE_16r(c,r) \ 10011 BFCMAP_REG32_WRITE((c),bcm84756_a0_VLAN_MAPTABLE_16r((c)),&((r)._vlan_maptable_16)) 10012 10013 /******************************************************************************* 10014 * End of 'bcm84756_a0_VLAN_MAPTABLE_16r' 10015 */ 10016 10017 10018 10019 10020 /******************************************************************************* 10021 * CHIP: bcm84756_a0 10022 * REGISTER: VLAN_MAPTABLE_17 10023 * BLOCKS: SECPORT 10024 * DESCRIPTION : 10025 * Egress Mapping Table Entry, entry 17. 10026 * 10027 * SIZE: 32 10028 * 10029 * FIELDS DESCRIPTION: 10030 * VSAN_VFID : 10031 * Lookup table entry. 10032 * 10033 * VLAN_VID : 10034 * Lookup table entry. 10035 */ 10036 #define bcm84756_a0_VLAN_MAPTABLE_17r(c) \ 10037 (0x1310002d + (BFCMAP_PORT((c)) << 12)) 10038 10039 #define bcm84756_a0_VLAN_MAPTABLE_17r_SIZE 1 10040 10041 /* 10042 * This structure should be used to declare and program VLAN_MAPTABLE_17. 10043 */ 10044 typedef union bcm84756_a0_VLAN_MAPTABLE_17r_s { 10045 buint32_t v[1]; 10046 buint32_t vlan_maptable_17[1]; 10047 buint32_t _vlan_maptable_17; 10048 } bcm84756_a0_VLAN_MAPTABLE_17r_t; 10049 10050 #define bcm84756_a0_VLAN_MAPTABLE_17r_CLR(r) \ 10051 (r).vlan_maptable_17[0] = 0 10052 10053 #define bcm84756_a0_VLAN_MAPTABLE_17r_SET(r,d) \ 10054 (r).vlan_maptable_17[0] = d 10055 10056 #define bcm84756_a0_VLAN_MAPTABLE_17r_GET(r) \ 10057 (r).vlan_maptable_17[0] 10058 10059 10060 /* 10061 * These macros can be used to access individual fields. 10062 */ 10063 #define bcm84756_a0_VLAN_MAPTABLE_17r_VSAN_VFIDf_GET(c,r) \ 10064 (((r).vlan_maptable_17[0]) & 0xfff) 10065 10066 #define bcm84756_a0_VLAN_MAPTABLE_17r_VSAN_VFIDf_SET(c,r,f) \ 10067 (r).vlan_maptable_17[0]=(((r).vlan_maptable_17[0] & ~((buint32_t)0xfff)) | \ 10068 (((buint32_t)f) & 0xfff)) 10069 10070 #define bcm84756_a0_VLAN_MAPTABLE_17r_VLAN_VIDf_GET(c,r) \ 10071 ((((r).vlan_maptable_17[0]) >> 16) & 0xfff) 10072 10073 #define bcm84756_a0_VLAN_MAPTABLE_17r_VLAN_VIDf_SET(c,r,f) \ 10074 (r).vlan_maptable_17[0]=(((r).vlan_maptable_17[0] & ~((buint32_t)0xfff << 16)) | \ 10075 ((((buint32_t)f) & 0xfff) << 16)) 10076 10077 10078 /* 10079 * These macros can be used to access VLAN_MAPTABLE_17. 10080 */ 10081 #define bcm84756_a0_READ_VLAN_MAPTABLE_17r(c,r) \ 10082 BFCMAP_REG32_READ((c),bcm84756_a0_VLAN_MAPTABLE_17r((c)),&((r)._vlan_maptable_17)) 10083 10084 #define bcm84756_a0_WRITE_VLAN_MAPTABLE_17r(c,r) \ 10085 BFCMAP_REG32_WRITE((c),bcm84756_a0_VLAN_MAPTABLE_17r((c)),&((r)._vlan_maptable_17)) 10086 10087 /******************************************************************************* 10088 * End of 'bcm84756_a0_VLAN_MAPTABLE_17r' 10089 */ 10090 10091 10092 10093 10094 /******************************************************************************* 10095 * CHIP: bcm84756_a0 10096 * REGISTER: VLAN_MAPTABLE_18 10097 * BLOCKS: SECPORT 10098 * DESCRIPTION : 10099 * Egress Mapping Table Entry, entry 18. 10100 * 10101 * SIZE: 32 10102 * 10103 * FIELDS DESCRIPTION: 10104 * VSAN_VFID : 10105 * Lookup table entry. 10106 * 10107 * VLAN_VID : 10108 * Lookup table entry. 10109 */ 10110 #define bcm84756_a0_VLAN_MAPTABLE_18r(c) \ 10111 (0x1310002e + (BFCMAP_PORT((c)) << 12)) 10112 10113 #define bcm84756_a0_VLAN_MAPTABLE_18r_SIZE 1 10114 10115 /* 10116 * This structure should be used to declare and program VLAN_MAPTABLE_18. 10117 */ 10118 typedef union bcm84756_a0_VLAN_MAPTABLE_18r_s { 10119 buint32_t v[1]; 10120 buint32_t vlan_maptable_18[1]; 10121 buint32_t _vlan_maptable_18; 10122 } bcm84756_a0_VLAN_MAPTABLE_18r_t; 10123 10124 #define bcm84756_a0_VLAN_MAPTABLE_18r_CLR(r) \ 10125 (r).vlan_maptable_18[0] = 0 10126 10127 #define bcm84756_a0_VLAN_MAPTABLE_18r_SET(r,d) \ 10128 (r).vlan_maptable_18[0] = d 10129 10130 #define bcm84756_a0_VLAN_MAPTABLE_18r_GET(r) \ 10131 (r).vlan_maptable_18[0] 10132 10133 10134 /* 10135 * These macros can be used to access individual fields. 10136 */ 10137 #define bcm84756_a0_VLAN_MAPTABLE_18r_VSAN_VFIDf_GET(c,r) \ 10138 (((r).vlan_maptable_18[0]) & 0xfff) 10139 10140 #define bcm84756_a0_VLAN_MAPTABLE_18r_VSAN_VFIDf_SET(c,r,f) \ 10141 (r).vlan_maptable_18[0]=(((r).vlan_maptable_18[0] & ~((buint32_t)0xfff)) | \ 10142 (((buint32_t)f) & 0xfff)) 10143 10144 #define bcm84756_a0_VLAN_MAPTABLE_18r_VLAN_VIDf_GET(c,r) \ 10145 ((((r).vlan_maptable_18[0]) >> 16) & 0xfff) 10146 10147 #define bcm84756_a0_VLAN_MAPTABLE_18r_VLAN_VIDf_SET(c,r,f) \ 10148 (r).vlan_maptable_18[0]=(((r).vlan_maptable_18[0] & ~((buint32_t)0xfff << 16)) | \ 10149 ((((buint32_t)f) & 0xfff) << 16)) 10150 10151 10152 /* 10153 * These macros can be used to access VLAN_MAPTABLE_18. 10154 */ 10155 #define bcm84756_a0_READ_VLAN_MAPTABLE_18r(c,r) \ 10156 BFCMAP_REG32_READ((c),bcm84756_a0_VLAN_MAPTABLE_18r((c)),&((r)._vlan_maptable_18)) 10157 10158 #define bcm84756_a0_WRITE_VLAN_MAPTABLE_18r(c,r) \ 10159 BFCMAP_REG32_WRITE((c),bcm84756_a0_VLAN_MAPTABLE_18r((c)),&((r)._vlan_maptable_18)) 10160 10161 /******************************************************************************* 10162 * End of 'bcm84756_a0_VLAN_MAPTABLE_18r' 10163 */ 10164 10165 10166 10167 10168 /******************************************************************************* 10169 * CHIP: bcm84756_a0 10170 * REGISTER: VLAN_MAPTABLE_19 10171 * BLOCKS: SECPORT 10172 * DESCRIPTION : 10173 * Egress Mapping Table Entry, entry 19. 10174 * 10175 * SIZE: 32 10176 * 10177 * FIELDS DESCRIPTION: 10178 * VSAN_VFID : 10179 * Lookup table entry. 10180 * 10181 * VLAN_VID : 10182 * Lookup table entry. 10183 */ 10184 #define bcm84756_a0_VLAN_MAPTABLE_19r(c) \ 10185 (0x1310002f + (BFCMAP_PORT((c)) << 12)) 10186 10187 #define bcm84756_a0_VLAN_MAPTABLE_19r_SIZE 1 10188 10189 /* 10190 * This structure should be used to declare and program VLAN_MAPTABLE_19. 10191 */ 10192 typedef union bcm84756_a0_VLAN_MAPTABLE_19r_s { 10193 buint32_t v[1]; 10194 buint32_t vlan_maptable_19[1]; 10195 buint32_t _vlan_maptable_19; 10196 } bcm84756_a0_VLAN_MAPTABLE_19r_t; 10197 10198 #define bcm84756_a0_VLAN_MAPTABLE_19r_CLR(r) \ 10199 (r).vlan_maptable_19[0] = 0 10200 10201 #define bcm84756_a0_VLAN_MAPTABLE_19r_SET(r,d) \ 10202 (r).vlan_maptable_19[0] = d 10203 10204 #define bcm84756_a0_VLAN_MAPTABLE_19r_GET(r) \ 10205 (r).vlan_maptable_19[0] 10206 10207 10208 /* 10209 * These macros can be used to access individual fields. 10210 */ 10211 #define bcm84756_a0_VLAN_MAPTABLE_19r_VSAN_VFIDf_GET(c,r) \ 10212 (((r).vlan_maptable_19[0]) & 0xfff) 10213 10214 #define bcm84756_a0_VLAN_MAPTABLE_19r_VSAN_VFIDf_SET(c,r,f) \ 10215 (r).vlan_maptable_19[0]=(((r).vlan_maptable_19[0] & ~((buint32_t)0xfff)) | \ 10216 (((buint32_t)f) & 0xfff)) 10217 10218 #define bcm84756_a0_VLAN_MAPTABLE_19r_VLAN_VIDf_GET(c,r) \ 10219 ((((r).vlan_maptable_19[0]) >> 16) & 0xfff) 10220 10221 #define bcm84756_a0_VLAN_MAPTABLE_19r_VLAN_VIDf_SET(c,r,f) \ 10222 (r).vlan_maptable_19[0]=(((r).vlan_maptable_19[0] & ~((buint32_t)0xfff << 16)) | \ 10223 ((((buint32_t)f) & 0xfff) << 16)) 10224 10225 10226 /* 10227 * These macros can be used to access VLAN_MAPTABLE_19. 10228 */ 10229 #define bcm84756_a0_READ_VLAN_MAPTABLE_19r(c,r) \ 10230 BFCMAP_REG32_READ((c),bcm84756_a0_VLAN_MAPTABLE_19r((c)),&((r)._vlan_maptable_19)) 10231 10232 #define bcm84756_a0_WRITE_VLAN_MAPTABLE_19r(c,r) \ 10233 BFCMAP_REG32_WRITE((c),bcm84756_a0_VLAN_MAPTABLE_19r((c)),&((r)._vlan_maptable_19)) 10234 10235 /******************************************************************************* 10236 * End of 'bcm84756_a0_VLAN_MAPTABLE_19r' 10237 */ 10238 10239 10240 10241 10242 /******************************************************************************* 10243 * CHIP: bcm84756_a0 10244 * REGISTER: VLAN_MAPTABLE_2 10245 * BLOCKS: SECPORT 10246 * DESCRIPTION : 10247 * Egress Mapping Table Entry, entry 2. 10248 * 10249 * SIZE: 32 10250 * 10251 * FIELDS DESCRIPTION: 10252 * VSAN_VFID : 10253 * Lookup table entry. 10254 * 10255 * VLAN_VID : 10256 * Lookup table entry. 10257 */ 10258 #define bcm84756_a0_VLAN_MAPTABLE_2r(c) \ 10259 (0x1310001e + (BFCMAP_PORT((c)) << 12)) 10260 10261 #define bcm84756_a0_VLAN_MAPTABLE_2r_SIZE 1 10262 10263 /* 10264 * This structure should be used to declare and program VLAN_MAPTABLE_2. 10265 */ 10266 typedef union bcm84756_a0_VLAN_MAPTABLE_2r_s { 10267 buint32_t v[1]; 10268 buint32_t vlan_maptable_2[1]; 10269 buint32_t _vlan_maptable_2; 10270 } bcm84756_a0_VLAN_MAPTABLE_2r_t; 10271 10272 #define bcm84756_a0_VLAN_MAPTABLE_2r_CLR(r) \ 10273 (r).vlan_maptable_2[0] = 0 10274 10275 #define bcm84756_a0_VLAN_MAPTABLE_2r_SET(r,d) \ 10276 (r).vlan_maptable_2[0] = d 10277 10278 #define bcm84756_a0_VLAN_MAPTABLE_2r_GET(r) \ 10279 (r).vlan_maptable_2[0] 10280 10281 10282 /* 10283 * These macros can be used to access individual fields. 10284 */ 10285 #define bcm84756_a0_VLAN_MAPTABLE_2r_VSAN_VFIDf_GET(c,r) \ 10286 (((r).vlan_maptable_2[0]) & 0xfff) 10287 10288 #define bcm84756_a0_VLAN_MAPTABLE_2r_VSAN_VFIDf_SET(c,r,f) \ 10289 (r).vlan_maptable_2[0]=(((r).vlan_maptable_2[0] & ~((buint32_t)0xfff)) | \ 10290 (((buint32_t)f) & 0xfff)) 10291 10292 #define bcm84756_a0_VLAN_MAPTABLE_2r_VLAN_VIDf_GET(c,r) \ 10293 ((((r).vlan_maptable_2[0]) >> 16) & 0xfff) 10294 10295 #define bcm84756_a0_VLAN_MAPTABLE_2r_VLAN_VIDf_SET(c,r,f) \ 10296 (r).vlan_maptable_2[0]=(((r).vlan_maptable_2[0] & ~((buint32_t)0xfff << 16)) | \ 10297 ((((buint32_t)f) & 0xfff) << 16)) 10298 10299 10300 /* 10301 * These macros can be used to access VLAN_MAPTABLE_2. 10302 */ 10303 #define bcm84756_a0_READ_VLAN_MAPTABLE_2r(c,r) \ 10304 BFCMAP_REG32_READ((c),bcm84756_a0_VLAN_MAPTABLE_2r((c)),&((r)._vlan_maptable_2)) 10305 10306 #define bcm84756_a0_WRITE_VLAN_MAPTABLE_2r(c,r) \ 10307 BFCMAP_REG32_WRITE((c),bcm84756_a0_VLAN_MAPTABLE_2r((c)),&((r)._vlan_maptable_2)) 10308 10309 /******************************************************************************* 10310 * End of 'bcm84756_a0_VLAN_MAPTABLE_2r' 10311 */ 10312 10313 10314 10315 10316 /******************************************************************************* 10317 * CHIP: bcm84756_a0 10318 * REGISTER: VLAN_MAPTABLE_20 10319 * BLOCKS: SECPORT 10320 * DESCRIPTION : 10321 * Egress Mapping Table Entry, entry 20. 10322 * 10323 * SIZE: 32 10324 * 10325 * FIELDS DESCRIPTION: 10326 * VSAN_VFID : 10327 * Lookup table entry. 10328 * 10329 * VLAN_VID : 10330 * Lookup table entry. 10331 */ 10332 #define bcm84756_a0_VLAN_MAPTABLE_20r(c) \ 10333 (0x13100030 + (BFCMAP_PORT((c)) << 12)) 10334 10335 #define bcm84756_a0_VLAN_MAPTABLE_20r_SIZE 1 10336 10337 /* 10338 * This structure should be used to declare and program VLAN_MAPTABLE_20. 10339 */ 10340 typedef union bcm84756_a0_VLAN_MAPTABLE_20r_s { 10341 buint32_t v[1]; 10342 buint32_t vlan_maptable_20[1]; 10343 buint32_t _vlan_maptable_20; 10344 } bcm84756_a0_VLAN_MAPTABLE_20r_t; 10345 10346 #define bcm84756_a0_VLAN_MAPTABLE_20r_CLR(r) \ 10347 (r).vlan_maptable_20[0] = 0 10348 10349 #define bcm84756_a0_VLAN_MAPTABLE_20r_SET(r,d) \ 10350 (r).vlan_maptable_20[0] = d 10351 10352 #define bcm84756_a0_VLAN_MAPTABLE_20r_GET(r) \ 10353 (r).vlan_maptable_20[0] 10354 10355 10356 /* 10357 * These macros can be used to access individual fields. 10358 */ 10359 #define bcm84756_a0_VLAN_MAPTABLE_20r_VSAN_VFIDf_GET(c,r) \ 10360 (((r).vlan_maptable_20[0]) & 0xfff) 10361 10362 #define bcm84756_a0_VLAN_MAPTABLE_20r_VSAN_VFIDf_SET(c,r,f) \ 10363 (r).vlan_maptable_20[0]=(((r).vlan_maptable_20[0] & ~((buint32_t)0xfff)) | \ 10364 (((buint32_t)f) & 0xfff)) 10365 10366 #define bcm84756_a0_VLAN_MAPTABLE_20r_VLAN_VIDf_GET(c,r) \ 10367 ((((r).vlan_maptable_20[0]) >> 16) & 0xfff) 10368 10369 #define bcm84756_a0_VLAN_MAPTABLE_20r_VLAN_VIDf_SET(c,r,f) \ 10370 (r).vlan_maptable_20[0]=(((r).vlan_maptable_20[0] & ~((buint32_t)0xfff << 16)) | \ 10371 ((((buint32_t)f) & 0xfff) << 16)) 10372 10373 10374 /* 10375 * These macros can be used to access VLAN_MAPTABLE_20. 10376 */ 10377 #define bcm84756_a0_READ_VLAN_MAPTABLE_20r(c,r) \ 10378 BFCMAP_REG32_READ((c),bcm84756_a0_VLAN_MAPTABLE_20r((c)),&((r)._vlan_maptable_20)) 10379 10380 #define bcm84756_a0_WRITE_VLAN_MAPTABLE_20r(c,r) \ 10381 BFCMAP_REG32_WRITE((c),bcm84756_a0_VLAN_MAPTABLE_20r((c)),&((r)._vlan_maptable_20)) 10382 10383 /******************************************************************************* 10384 * End of 'bcm84756_a0_VLAN_MAPTABLE_20r' 10385 */ 10386 10387 10388 10389 10390 /******************************************************************************* 10391 * CHIP: bcm84756_a0 10392 * REGISTER: VLAN_MAPTABLE_21 10393 * BLOCKS: SECPORT 10394 * DESCRIPTION : 10395 * Egress Mapping Table Entry, entry 21. 10396 * 10397 * SIZE: 32 10398 * 10399 * FIELDS DESCRIPTION: 10400 * VSAN_VFID : 10401 * Lookup table entry. 10402 * 10403 * VLAN_VID : 10404 * Lookup table entry. 10405 */ 10406 #define bcm84756_a0_VLAN_MAPTABLE_21r(c) \ 10407 (0x13100031 + (BFCMAP_PORT((c)) << 12)) 10408 10409 #define bcm84756_a0_VLAN_MAPTABLE_21r_SIZE 1 10410 10411 /* 10412 * This structure should be used to declare and program VLAN_MAPTABLE_21. 10413 */ 10414 typedef union bcm84756_a0_VLAN_MAPTABLE_21r_s { 10415 buint32_t v[1]; 10416 buint32_t vlan_maptable_21[1]; 10417 buint32_t _vlan_maptable_21; 10418 } bcm84756_a0_VLAN_MAPTABLE_21r_t; 10419 10420 #define bcm84756_a0_VLAN_MAPTABLE_21r_CLR(r) \ 10421 (r).vlan_maptable_21[0] = 0 10422 10423 #define bcm84756_a0_VLAN_MAPTABLE_21r_SET(r,d) \ 10424 (r).vlan_maptable_21[0] = d 10425 10426 #define bcm84756_a0_VLAN_MAPTABLE_21r_GET(r) \ 10427 (r).vlan_maptable_21[0] 10428 10429 10430 /* 10431 * These macros can be used to access individual fields. 10432 */ 10433 #define bcm84756_a0_VLAN_MAPTABLE_21r_VSAN_VFIDf_GET(c,r) \ 10434 (((r).vlan_maptable_21[0]) & 0xfff) 10435 10436 #define bcm84756_a0_VLAN_MAPTABLE_21r_VSAN_VFIDf_SET(c,r,f) \ 10437 (r).vlan_maptable_21[0]=(((r).vlan_maptable_21[0] & ~((buint32_t)0xfff)) | \ 10438 (((buint32_t)f) & 0xfff)) 10439 10440 #define bcm84756_a0_VLAN_MAPTABLE_21r_VLAN_VIDf_GET(c,r) \ 10441 ((((r).vlan_maptable_21[0]) >> 16) & 0xfff) 10442 10443 #define bcm84756_a0_VLAN_MAPTABLE_21r_VLAN_VIDf_SET(c,r,f) \ 10444 (r).vlan_maptable_21[0]=(((r).vlan_maptable_21[0] & ~((buint32_t)0xfff << 16)) | \ 10445 ((((buint32_t)f) & 0xfff) << 16)) 10446 10447 10448 /* 10449 * These macros can be used to access VLAN_MAPTABLE_21. 10450 */ 10451 #define bcm84756_a0_READ_VLAN_MAPTABLE_21r(c,r) \ 10452 BFCMAP_REG32_READ((c),bcm84756_a0_VLAN_MAPTABLE_21r((c)),&((r)._vlan_maptable_21)) 10453 10454 #define bcm84756_a0_WRITE_VLAN_MAPTABLE_21r(c,r) \ 10455 BFCMAP_REG32_WRITE((c),bcm84756_a0_VLAN_MAPTABLE_21r((c)),&((r)._vlan_maptable_21)) 10456 10457 /******************************************************************************* 10458 * End of 'bcm84756_a0_VLAN_MAPTABLE_21r' 10459 */ 10460 10461 10462 10463 10464 /******************************************************************************* 10465 * CHIP: bcm84756_a0 10466 * REGISTER: VLAN_MAPTABLE_22 10467 * BLOCKS: SECPORT 10468 * DESCRIPTION : 10469 * Egress Mapping Table Entry, entry 22. 10470 * 10471 * SIZE: 32 10472 * 10473 * FIELDS DESCRIPTION: 10474 * VSAN_VFID : 10475 * Lookup table entry. 10476 * 10477 * VLAN_VID : 10478 * Lookup table entry. 10479 */ 10480 #define bcm84756_a0_VLAN_MAPTABLE_22r(c) \ 10481 (0x13100032 + (BFCMAP_PORT((c)) << 12)) 10482 10483 #define bcm84756_a0_VLAN_MAPTABLE_22r_SIZE 1 10484 10485 /* 10486 * This structure should be used to declare and program VLAN_MAPTABLE_22. 10487 */ 10488 typedef union bcm84756_a0_VLAN_MAPTABLE_22r_s { 10489 buint32_t v[1]; 10490 buint32_t vlan_maptable_22[1]; 10491 buint32_t _vlan_maptable_22; 10492 } bcm84756_a0_VLAN_MAPTABLE_22r_t; 10493 10494 #define bcm84756_a0_VLAN_MAPTABLE_22r_CLR(r) \ 10495 (r).vlan_maptable_22[0] = 0 10496 10497 #define bcm84756_a0_VLAN_MAPTABLE_22r_SET(r,d) \ 10498 (r).vlan_maptable_22[0] = d 10499 10500 #define bcm84756_a0_VLAN_MAPTABLE_22r_GET(r) \ 10501 (r).vlan_maptable_22[0] 10502 10503 10504 /* 10505 * These macros can be used to access individual fields. 10506 */ 10507 #define bcm84756_a0_VLAN_MAPTABLE_22r_VSAN_VFIDf_GET(c,r) \ 10508 (((r).vlan_maptable_22[0]) & 0xfff) 10509 10510 #define bcm84756_a0_VLAN_MAPTABLE_22r_VSAN_VFIDf_SET(c,r,f) \ 10511 (r).vlan_maptable_22[0]=(((r).vlan_maptable_22[0] & ~((buint32_t)0xfff)) | \ 10512 (((buint32_t)f) & 0xfff)) 10513 10514 #define bcm84756_a0_VLAN_MAPTABLE_22r_VLAN_VIDf_GET(c,r) \ 10515 ((((r).vlan_maptable_22[0]) >> 16) & 0xfff) 10516 10517 #define bcm84756_a0_VLAN_MAPTABLE_22r_VLAN_VIDf_SET(c,r,f) \ 10518 (r).vlan_maptable_22[0]=(((r).vlan_maptable_22[0] & ~((buint32_t)0xfff << 16)) | \ 10519 ((((buint32_t)f) & 0xfff) << 16)) 10520 10521 10522 /* 10523 * These macros can be used to access VLAN_MAPTABLE_22. 10524 */ 10525 #define bcm84756_a0_READ_VLAN_MAPTABLE_22r(c,r) \ 10526 BFCMAP_REG32_READ((c),bcm84756_a0_VLAN_MAPTABLE_22r((c)),&((r)._vlan_maptable_22)) 10527 10528 #define bcm84756_a0_WRITE_VLAN_MAPTABLE_22r(c,r) \ 10529 BFCMAP_REG32_WRITE((c),bcm84756_a0_VLAN_MAPTABLE_22r((c)),&((r)._vlan_maptable_22)) 10530 10531 /******************************************************************************* 10532 * End of 'bcm84756_a0_VLAN_MAPTABLE_22r' 10533 */ 10534 10535 10536 10537 10538 /******************************************************************************* 10539 * CHIP: bcm84756_a0 10540 * REGISTER: VLAN_MAPTABLE_23 10541 * BLOCKS: SECPORT 10542 * DESCRIPTION : 10543 * Egress Mapping Table Entry, entry 23. 10544 * 10545 * SIZE: 32 10546 * 10547 * FIELDS DESCRIPTION: 10548 * VSAN_VFID : 10549 * Lookup table entry. 10550 * 10551 * VLAN_VID : 10552 * Lookup table entry. 10553 */ 10554 #define bcm84756_a0_VLAN_MAPTABLE_23r(c) \ 10555 (0x13100033 + (BFCMAP_PORT((c)) << 12)) 10556 10557 #define bcm84756_a0_VLAN_MAPTABLE_23r_SIZE 1 10558 10559 /* 10560 * This structure should be used to declare and program VLAN_MAPTABLE_23. 10561 */ 10562 typedef union bcm84756_a0_VLAN_MAPTABLE_23r_s { 10563 buint32_t v[1]; 10564 buint32_t vlan_maptable_23[1]; 10565 buint32_t _vlan_maptable_23; 10566 } bcm84756_a0_VLAN_MAPTABLE_23r_t; 10567 10568 #define bcm84756_a0_VLAN_MAPTABLE_23r_CLR(r) \ 10569 (r).vlan_maptable_23[0] = 0 10570 10571 #define bcm84756_a0_VLAN_MAPTABLE_23r_SET(r,d) \ 10572 (r).vlan_maptable_23[0] = d 10573 10574 #define bcm84756_a0_VLAN_MAPTABLE_23r_GET(r) \ 10575 (r).vlan_maptable_23[0] 10576 10577 10578 /* 10579 * These macros can be used to access individual fields. 10580 */ 10581 #define bcm84756_a0_VLAN_MAPTABLE_23r_VSAN_VFIDf_GET(c,r) \ 10582 (((r).vlan_maptable_23[0]) & 0xfff) 10583 10584 #define bcm84756_a0_VLAN_MAPTABLE_23r_VSAN_VFIDf_SET(c,r,f) \ 10585 (r).vlan_maptable_23[0]=(((r).vlan_maptable_23[0] & ~((buint32_t)0xfff)) | \ 10586 (((buint32_t)f) & 0xfff)) 10587 10588 #define bcm84756_a0_VLAN_MAPTABLE_23r_VLAN_VIDf_GET(c,r) \ 10589 ((((r).vlan_maptable_23[0]) >> 16) & 0xfff) 10590 10591 #define bcm84756_a0_VLAN_MAPTABLE_23r_VLAN_VIDf_SET(c,r,f) \ 10592 (r).vlan_maptable_23[0]=(((r).vlan_maptable_23[0] & ~((buint32_t)0xfff << 16)) | \ 10593 ((((buint32_t)f) & 0xfff) << 16)) 10594 10595 10596 /* 10597 * These macros can be used to access VLAN_MAPTABLE_23. 10598 */ 10599 #define bcm84756_a0_READ_VLAN_MAPTABLE_23r(c,r) \ 10600 BFCMAP_REG32_READ((c),bcm84756_a0_VLAN_MAPTABLE_23r((c)),&((r)._vlan_maptable_23)) 10601 10602 #define bcm84756_a0_WRITE_VLAN_MAPTABLE_23r(c,r) \ 10603 BFCMAP_REG32_WRITE((c),bcm84756_a0_VLAN_MAPTABLE_23r((c)),&((r)._vlan_maptable_23)) 10604 10605 /******************************************************************************* 10606 * End of 'bcm84756_a0_VLAN_MAPTABLE_23r' 10607 */ 10608 10609 10610 10611 10612 /******************************************************************************* 10613 * CHIP: bcm84756_a0 10614 * REGISTER: VLAN_MAPTABLE_24 10615 * BLOCKS: SECPORT 10616 * DESCRIPTION : 10617 * Egress Mapping Table Entry, entry 24. 10618 * 10619 * SIZE: 32 10620 * 10621 * FIELDS DESCRIPTION: 10622 * VSAN_VFID : 10623 * Lookup table entry. 10624 * 10625 * VLAN_VID : 10626 * Lookup table entry. 10627 */ 10628 #define bcm84756_a0_VLAN_MAPTABLE_24r(c) \ 10629 (0x13100034 + (BFCMAP_PORT((c)) << 12)) 10630 10631 #define bcm84756_a0_VLAN_MAPTABLE_24r_SIZE 1 10632 10633 /* 10634 * This structure should be used to declare and program VLAN_MAPTABLE_24. 10635 */ 10636 typedef union bcm84756_a0_VLAN_MAPTABLE_24r_s { 10637 buint32_t v[1]; 10638 buint32_t vlan_maptable_24[1]; 10639 buint32_t _vlan_maptable_24; 10640 } bcm84756_a0_VLAN_MAPTABLE_24r_t; 10641 10642 #define bcm84756_a0_VLAN_MAPTABLE_24r_CLR(r) \ 10643 (r).vlan_maptable_24[0] = 0 10644 10645 #define bcm84756_a0_VLAN_MAPTABLE_24r_SET(r,d) \ 10646 (r).vlan_maptable_24[0] = d 10647 10648 #define bcm84756_a0_VLAN_MAPTABLE_24r_GET(r) \ 10649 (r).vlan_maptable_24[0] 10650 10651 10652 /* 10653 * These macros can be used to access individual fields. 10654 */ 10655 #define bcm84756_a0_VLAN_MAPTABLE_24r_VSAN_VFIDf_GET(c,r) \ 10656 (((r).vlan_maptable_24[0]) & 0xfff) 10657 10658 #define bcm84756_a0_VLAN_MAPTABLE_24r_VSAN_VFIDf_SET(c,r,f) \ 10659 (r).vlan_maptable_24[0]=(((r).vlan_maptable_24[0] & ~((buint32_t)0xfff)) | \ 10660 (((buint32_t)f) & 0xfff)) 10661 10662 #define bcm84756_a0_VLAN_MAPTABLE_24r_VLAN_VIDf_GET(c,r) \ 10663 ((((r).vlan_maptable_24[0]) >> 16) & 0xfff) 10664 10665 #define bcm84756_a0_VLAN_MAPTABLE_24r_VLAN_VIDf_SET(c,r,f) \ 10666 (r).vlan_maptable_24[0]=(((r).vlan_maptable_24[0] & ~((buint32_t)0xfff << 16)) | \ 10667 ((((buint32_t)f) & 0xfff) << 16)) 10668 10669 10670 /* 10671 * These macros can be used to access VLAN_MAPTABLE_24. 10672 */ 10673 #define bcm84756_a0_READ_VLAN_MAPTABLE_24r(c,r) \ 10674 BFCMAP_REG32_READ((c),bcm84756_a0_VLAN_MAPTABLE_24r((c)),&((r)._vlan_maptable_24)) 10675 10676 #define bcm84756_a0_WRITE_VLAN_MAPTABLE_24r(c,r) \ 10677 BFCMAP_REG32_WRITE((c),bcm84756_a0_VLAN_MAPTABLE_24r((c)),&((r)._vlan_maptable_24)) 10678 10679 /******************************************************************************* 10680 * End of 'bcm84756_a0_VLAN_MAPTABLE_24r' 10681 */ 10682 10683 10684 10685 10686 /******************************************************************************* 10687 * CHIP: bcm84756_a0 10688 * REGISTER: VLAN_MAPTABLE_25 10689 * BLOCKS: SECPORT 10690 * DESCRIPTION : 10691 * Egress Mapping Table Entry, entry 25. 10692 * 10693 * SIZE: 32 10694 * 10695 * FIELDS DESCRIPTION: 10696 * VSAN_VFID : 10697 * Lookup table entry. 10698 * 10699 * VLAN_VID : 10700 * Lookup table entry. 10701 */ 10702 #define bcm84756_a0_VLAN_MAPTABLE_25r(c) \ 10703 (0x13100035 + (BFCMAP_PORT((c)) << 12)) 10704 10705 #define bcm84756_a0_VLAN_MAPTABLE_25r_SIZE 1 10706 10707 /* 10708 * This structure should be used to declare and program VLAN_MAPTABLE_25. 10709 */ 10710 typedef union bcm84756_a0_VLAN_MAPTABLE_25r_s { 10711 buint32_t v[1]; 10712 buint32_t vlan_maptable_25[1]; 10713 buint32_t _vlan_maptable_25; 10714 } bcm84756_a0_VLAN_MAPTABLE_25r_t; 10715 10716 #define bcm84756_a0_VLAN_MAPTABLE_25r_CLR(r) \ 10717 (r).vlan_maptable_25[0] = 0 10718 10719 #define bcm84756_a0_VLAN_MAPTABLE_25r_SET(r,d) \ 10720 (r).vlan_maptable_25[0] = d 10721 10722 #define bcm84756_a0_VLAN_MAPTABLE_25r_GET(r) \ 10723 (r).vlan_maptable_25[0] 10724 10725 10726 /* 10727 * These macros can be used to access individual fields. 10728 */ 10729 #define bcm84756_a0_VLAN_MAPTABLE_25r_VSAN_VFIDf_GET(c,r) \ 10730 (((r).vlan_maptable_25[0]) & 0xfff) 10731 10732 #define bcm84756_a0_VLAN_MAPTABLE_25r_VSAN_VFIDf_SET(c,r,f) \ 10733 (r).vlan_maptable_25[0]=(((r).vlan_maptable_25[0] & ~((buint32_t)0xfff)) | \ 10734 (((buint32_t)f) & 0xfff)) 10735 10736 #define bcm84756_a0_VLAN_MAPTABLE_25r_VLAN_VIDf_GET(c,r) \ 10737 ((((r).vlan_maptable_25[0]) >> 16) & 0xfff) 10738 10739 #define bcm84756_a0_VLAN_MAPTABLE_25r_VLAN_VIDf_SET(c,r,f) \ 10740 (r).vlan_maptable_25[0]=(((r).vlan_maptable_25[0] & ~((buint32_t)0xfff << 16)) | \ 10741 ((((buint32_t)f) & 0xfff) << 16)) 10742 10743 10744 /* 10745 * These macros can be used to access VLAN_MAPTABLE_25. 10746 */ 10747 #define bcm84756_a0_READ_VLAN_MAPTABLE_25r(c,r) \ 10748 BFCMAP_REG32_READ((c),bcm84756_a0_VLAN_MAPTABLE_25r((c)),&((r)._vlan_maptable_25)) 10749 10750 #define bcm84756_a0_WRITE_VLAN_MAPTABLE_25r(c,r) \ 10751 BFCMAP_REG32_WRITE((c),bcm84756_a0_VLAN_MAPTABLE_25r((c)),&((r)._vlan_maptable_25)) 10752 10753 /******************************************************************************* 10754 * End of 'bcm84756_a0_VLAN_MAPTABLE_25r' 10755 */ 10756 10757 10758 10759 10760 /******************************************************************************* 10761 * CHIP: bcm84756_a0 10762 * REGISTER: VLAN_MAPTABLE_26 10763 * BLOCKS: SECPORT 10764 * DESCRIPTION : 10765 * Egress Mapping Table Entry, entry 26. 10766 * 10767 * SIZE: 32 10768 * 10769 * FIELDS DESCRIPTION: 10770 * VSAN_VFID : 10771 * Lookup table entry. 10772 * 10773 * VLAN_VID : 10774 * Lookup table entry. 10775 */ 10776 #define bcm84756_a0_VLAN_MAPTABLE_26r(c) \ 10777 (0x13100036 + (BFCMAP_PORT((c)) << 12)) 10778 10779 #define bcm84756_a0_VLAN_MAPTABLE_26r_SIZE 1 10780 10781 /* 10782 * This structure should be used to declare and program VLAN_MAPTABLE_26. 10783 */ 10784 typedef union bcm84756_a0_VLAN_MAPTABLE_26r_s { 10785 buint32_t v[1]; 10786 buint32_t vlan_maptable_26[1]; 10787 buint32_t _vlan_maptable_26; 10788 } bcm84756_a0_VLAN_MAPTABLE_26r_t; 10789 10790 #define bcm84756_a0_VLAN_MAPTABLE_26r_CLR(r) \ 10791 (r).vlan_maptable_26[0] = 0 10792 10793 #define bcm84756_a0_VLAN_MAPTABLE_26r_SET(r,d) \ 10794 (r).vlan_maptable_26[0] = d 10795 10796 #define bcm84756_a0_VLAN_MAPTABLE_26r_GET(r) \ 10797 (r).vlan_maptable_26[0] 10798 10799 10800 /* 10801 * These macros can be used to access individual fields. 10802 */ 10803 #define bcm84756_a0_VLAN_MAPTABLE_26r_VSAN_VFIDf_GET(c,r) \ 10804 (((r).vlan_maptable_26[0]) & 0xfff) 10805 10806 #define bcm84756_a0_VLAN_MAPTABLE_26r_VSAN_VFIDf_SET(c,r,f) \ 10807 (r).vlan_maptable_26[0]=(((r).vlan_maptable_26[0] & ~((buint32_t)0xfff)) | \ 10808 (((buint32_t)f) & 0xfff)) 10809 10810 #define bcm84756_a0_VLAN_MAPTABLE_26r_VLAN_VIDf_GET(c,r) \ 10811 ((((r).vlan_maptable_26[0]) >> 16) & 0xfff) 10812 10813 #define bcm84756_a0_VLAN_MAPTABLE_26r_VLAN_VIDf_SET(c,r,f) \ 10814 (r).vlan_maptable_26[0]=(((r).vlan_maptable_26[0] & ~((buint32_t)0xfff << 16)) | \ 10815 ((((buint32_t)f) & 0xfff) << 16)) 10816 10817 10818 /* 10819 * These macros can be used to access VLAN_MAPTABLE_26. 10820 */ 10821 #define bcm84756_a0_READ_VLAN_MAPTABLE_26r(c,r) \ 10822 BFCMAP_REG32_READ((c),bcm84756_a0_VLAN_MAPTABLE_26r((c)),&((r)._vlan_maptable_26)) 10823 10824 #define bcm84756_a0_WRITE_VLAN_MAPTABLE_26r(c,r) \ 10825 BFCMAP_REG32_WRITE((c),bcm84756_a0_VLAN_MAPTABLE_26r((c)),&((r)._vlan_maptable_26)) 10826 10827 /******************************************************************************* 10828 * End of 'bcm84756_a0_VLAN_MAPTABLE_26r' 10829 */ 10830 10831 10832 10833 10834 /******************************************************************************* 10835 * CHIP: bcm84756_a0 10836 * REGISTER: VLAN_MAPTABLE_27 10837 * BLOCKS: SECPORT 10838 * DESCRIPTION : 10839 * Egress Mapping Table Entry, entry 27. 10840 * 10841 * SIZE: 32 10842 * 10843 * FIELDS DESCRIPTION: 10844 * VSAN_VFID : 10845 * Lookup table entry. 10846 * 10847 * VLAN_VID : 10848 * Lookup table entry. 10849 */ 10850 #define bcm84756_a0_VLAN_MAPTABLE_27r(c) \ 10851 (0x13100037 + (BFCMAP_PORT((c)) << 12)) 10852 10853 #define bcm84756_a0_VLAN_MAPTABLE_27r_SIZE 1 10854 10855 /* 10856 * This structure should be used to declare and program VLAN_MAPTABLE_27. 10857 */ 10858 typedef union bcm84756_a0_VLAN_MAPTABLE_27r_s { 10859 buint32_t v[1]; 10860 buint32_t vlan_maptable_27[1]; 10861 buint32_t _vlan_maptable_27; 10862 } bcm84756_a0_VLAN_MAPTABLE_27r_t; 10863 10864 #define bcm84756_a0_VLAN_MAPTABLE_27r_CLR(r) \ 10865 (r).vlan_maptable_27[0] = 0 10866 10867 #define bcm84756_a0_VLAN_MAPTABLE_27r_SET(r,d) \ 10868 (r).vlan_maptable_27[0] = d 10869 10870 #define bcm84756_a0_VLAN_MAPTABLE_27r_GET(r) \ 10871 (r).vlan_maptable_27[0] 10872 10873 10874 /* 10875 * These macros can be used to access individual fields. 10876 */ 10877 #define bcm84756_a0_VLAN_MAPTABLE_27r_VSAN_VFIDf_GET(c,r) \ 10878 (((r).vlan_maptable_27[0]) & 0xfff) 10879 10880 #define bcm84756_a0_VLAN_MAPTABLE_27r_VSAN_VFIDf_SET(c,r,f) \ 10881 (r).vlan_maptable_27[0]=(((r).vlan_maptable_27[0] & ~((buint32_t)0xfff)) | \ 10882 (((buint32_t)f) & 0xfff)) 10883 10884 #define bcm84756_a0_VLAN_MAPTABLE_27r_VLAN_VIDf_GET(c,r) \ 10885 ((((r).vlan_maptable_27[0]) >> 16) & 0xfff) 10886 10887 #define bcm84756_a0_VLAN_MAPTABLE_27r_VLAN_VIDf_SET(c,r,f) \ 10888 (r).vlan_maptable_27[0]=(((r).vlan_maptable_27[0] & ~((buint32_t)0xfff << 16)) | \ 10889 ((((buint32_t)f) & 0xfff) << 16)) 10890 10891 10892 /* 10893 * These macros can be used to access VLAN_MAPTABLE_27. 10894 */ 10895 #define bcm84756_a0_READ_VLAN_MAPTABLE_27r(c,r) \ 10896 BFCMAP_REG32_READ((c),bcm84756_a0_VLAN_MAPTABLE_27r((c)),&((r)._vlan_maptable_27)) 10897 10898 #define bcm84756_a0_WRITE_VLAN_MAPTABLE_27r(c,r) \ 10899 BFCMAP_REG32_WRITE((c),bcm84756_a0_VLAN_MAPTABLE_27r((c)),&((r)._vlan_maptable_27)) 10900 10901 /******************************************************************************* 10902 * End of 'bcm84756_a0_VLAN_MAPTABLE_27r' 10903 */ 10904 10905 10906 10907 10908 /******************************************************************************* 10909 * CHIP: bcm84756_a0 10910 * REGISTER: VLAN_MAPTABLE_28 10911 * BLOCKS: SECPORT 10912 * DESCRIPTION : 10913 * Egress Mapping Table Entry, entry 28. 10914 * 10915 * SIZE: 32 10916 * 10917 * FIELDS DESCRIPTION: 10918 * VSAN_VFID : 10919 * Lookup table entry. 10920 * 10921 * VLAN_VID : 10922 * Lookup table entry. 10923 */ 10924 #define bcm84756_a0_VLAN_MAPTABLE_28r(c) \ 10925 (0x13100038 + (BFCMAP_PORT((c)) << 12)) 10926 10927 #define bcm84756_a0_VLAN_MAPTABLE_28r_SIZE 1 10928 10929 /* 10930 * This structure should be used to declare and program VLAN_MAPTABLE_28. 10931 */ 10932 typedef union bcm84756_a0_VLAN_MAPTABLE_28r_s { 10933 buint32_t v[1]; 10934 buint32_t vlan_maptable_28[1]; 10935 buint32_t _vlan_maptable_28; 10936 } bcm84756_a0_VLAN_MAPTABLE_28r_t; 10937 10938 #define bcm84756_a0_VLAN_MAPTABLE_28r_CLR(r) \ 10939 (r).vlan_maptable_28[0] = 0 10940 10941 #define bcm84756_a0_VLAN_MAPTABLE_28r_SET(r,d) \ 10942 (r).vlan_maptable_28[0] = d 10943 10944 #define bcm84756_a0_VLAN_MAPTABLE_28r_GET(r) \ 10945 (r).vlan_maptable_28[0] 10946 10947 10948 /* 10949 * These macros can be used to access individual fields. 10950 */ 10951 #define bcm84756_a0_VLAN_MAPTABLE_28r_VSAN_VFIDf_GET(c,r) \ 10952 (((r).vlan_maptable_28[0]) & 0xfff) 10953 10954 #define bcm84756_a0_VLAN_MAPTABLE_28r_VSAN_VFIDf_SET(c,r,f) \ 10955 (r).vlan_maptable_28[0]=(((r).vlan_maptable_28[0] & ~((buint32_t)0xfff)) | \ 10956 (((buint32_t)f) & 0xfff)) 10957 10958 #define bcm84756_a0_VLAN_MAPTABLE_28r_VLAN_VIDf_GET(c,r) \ 10959 ((((r).vlan_maptable_28[0]) >> 16) & 0xfff) 10960 10961 #define bcm84756_a0_VLAN_MAPTABLE_28r_VLAN_VIDf_SET(c,r,f) \ 10962 (r).vlan_maptable_28[0]=(((r).vlan_maptable_28[0] & ~((buint32_t)0xfff << 16)) | \ 10963 ((((buint32_t)f) & 0xfff) << 16)) 10964 10965 10966 /* 10967 * These macros can be used to access VLAN_MAPTABLE_28. 10968 */ 10969 #define bcm84756_a0_READ_VLAN_MAPTABLE_28r(c,r) \ 10970 BFCMAP_REG32_READ((c),bcm84756_a0_VLAN_MAPTABLE_28r((c)),&((r)._vlan_maptable_28)) 10971 10972 #define bcm84756_a0_WRITE_VLAN_MAPTABLE_28r(c,r) \ 10973 BFCMAP_REG32_WRITE((c),bcm84756_a0_VLAN_MAPTABLE_28r((c)),&((r)._vlan_maptable_28)) 10974 10975 /******************************************************************************* 10976 * End of 'bcm84756_a0_VLAN_MAPTABLE_28r' 10977 */ 10978 10979 10980 10981 10982 /******************************************************************************* 10983 * CHIP: bcm84756_a0 10984 * REGISTER: VLAN_MAPTABLE_29 10985 * BLOCKS: SECPORT 10986 * DESCRIPTION : 10987 * Egress Mapping Table Entry, entry 29. 10988 * 10989 * SIZE: 32 10990 * 10991 * FIELDS DESCRIPTION: 10992 * VSAN_VFID : 10993 * Lookup table entry. 10994 * 10995 * VLAN_VID : 10996 * Lookup table entry. 10997 */ 10998 #define bcm84756_a0_VLAN_MAPTABLE_29r(c) \ 10999 (0x13100039 + (BFCMAP_PORT((c)) << 12)) 11000 11001 #define bcm84756_a0_VLAN_MAPTABLE_29r_SIZE 1 11002 11003 /* 11004 * This structure should be used to declare and program VLAN_MAPTABLE_29. 11005 */ 11006 typedef union bcm84756_a0_VLAN_MAPTABLE_29r_s { 11007 buint32_t v[1]; 11008 buint32_t vlan_maptable_29[1]; 11009 buint32_t _vlan_maptable_29; 11010 } bcm84756_a0_VLAN_MAPTABLE_29r_t; 11011 11012 #define bcm84756_a0_VLAN_MAPTABLE_29r_CLR(r) \ 11013 (r).vlan_maptable_29[0] = 0 11014 11015 #define bcm84756_a0_VLAN_MAPTABLE_29r_SET(r,d) \ 11016 (r).vlan_maptable_29[0] = d 11017 11018 #define bcm84756_a0_VLAN_MAPTABLE_29r_GET(r) \ 11019 (r).vlan_maptable_29[0] 11020 11021 11022 /* 11023 * These macros can be used to access individual fields. 11024 */ 11025 #define bcm84756_a0_VLAN_MAPTABLE_29r_VSAN_VFIDf_GET(c,r) \ 11026 (((r).vlan_maptable_29[0]) & 0xfff) 11027 11028 #define bcm84756_a0_VLAN_MAPTABLE_29r_VSAN_VFIDf_SET(c,r,f) \ 11029 (r).vlan_maptable_29[0]=(((r).vlan_maptable_29[0] & ~((buint32_t)0xfff)) | \ 11030 (((buint32_t)f) & 0xfff)) 11031 11032 #define bcm84756_a0_VLAN_MAPTABLE_29r_VLAN_VIDf_GET(c,r) \ 11033 ((((r).vlan_maptable_29[0]) >> 16) & 0xfff) 11034 11035 #define bcm84756_a0_VLAN_MAPTABLE_29r_VLAN_VIDf_SET(c,r,f) \ 11036 (r).vlan_maptable_29[0]=(((r).vlan_maptable_29[0] & ~((buint32_t)0xfff << 16)) | \ 11037 ((((buint32_t)f) & 0xfff) << 16)) 11038 11039 11040 /* 11041 * These macros can be used to access VLAN_MAPTABLE_29. 11042 */ 11043 #define bcm84756_a0_READ_VLAN_MAPTABLE_29r(c,r) \ 11044 BFCMAP_REG32_READ((c),bcm84756_a0_VLAN_MAPTABLE_29r((c)),&((r)._vlan_maptable_29)) 11045 11046 #define bcm84756_a0_WRITE_VLAN_MAPTABLE_29r(c,r) \ 11047 BFCMAP_REG32_WRITE((c),bcm84756_a0_VLAN_MAPTABLE_29r((c)),&((r)._vlan_maptable_29)) 11048 11049 /******************************************************************************* 11050 * End of 'bcm84756_a0_VLAN_MAPTABLE_29r' 11051 */ 11052 11053 11054 11055 11056 /******************************************************************************* 11057 * CHIP: bcm84756_a0 11058 * REGISTER: VLAN_MAPTABLE_3 11059 * BLOCKS: SECPORT 11060 * DESCRIPTION : 11061 * Egress Mapping Table Entry, entry 3. 11062 * 11063 * SIZE: 32 11064 * 11065 * FIELDS DESCRIPTION: 11066 * VSAN_VFID : 11067 * Lookup table entry. 11068 * 11069 * VLAN_VID : 11070 * Lookup table entry. 11071 */ 11072 #define bcm84756_a0_VLAN_MAPTABLE_3r(c) \ 11073 (0x1310001f + (BFCMAP_PORT((c)) << 12)) 11074 11075 #define bcm84756_a0_VLAN_MAPTABLE_3r_SIZE 1 11076 11077 /* 11078 * This structure should be used to declare and program VLAN_MAPTABLE_3. 11079 */ 11080 typedef union bcm84756_a0_VLAN_MAPTABLE_3r_s { 11081 buint32_t v[1]; 11082 buint32_t vlan_maptable_3[1]; 11083 buint32_t _vlan_maptable_3; 11084 } bcm84756_a0_VLAN_MAPTABLE_3r_t; 11085 11086 #define bcm84756_a0_VLAN_MAPTABLE_3r_CLR(r) \ 11087 (r).vlan_maptable_3[0] = 0 11088 11089 #define bcm84756_a0_VLAN_MAPTABLE_3r_SET(r,d) \ 11090 (r).vlan_maptable_3[0] = d 11091 11092 #define bcm84756_a0_VLAN_MAPTABLE_3r_GET(r) \ 11093 (r).vlan_maptable_3[0] 11094 11095 11096 /* 11097 * These macros can be used to access individual fields. 11098 */ 11099 #define bcm84756_a0_VLAN_MAPTABLE_3r_VSAN_VFIDf_GET(c,r) \ 11100 (((r).vlan_maptable_3[0]) & 0xfff) 11101 11102 #define bcm84756_a0_VLAN_MAPTABLE_3r_VSAN_VFIDf_SET(c,r,f) \ 11103 (r).vlan_maptable_3[0]=(((r).vlan_maptable_3[0] & ~((buint32_t)0xfff)) | \ 11104 (((buint32_t)f) & 0xfff)) 11105 11106 #define bcm84756_a0_VLAN_MAPTABLE_3r_VLAN_VIDf_GET(c,r) \ 11107 ((((r).vlan_maptable_3[0]) >> 16) & 0xfff) 11108 11109 #define bcm84756_a0_VLAN_MAPTABLE_3r_VLAN_VIDf_SET(c,r,f) \ 11110 (r).vlan_maptable_3[0]=(((r).vlan_maptable_3[0] & ~((buint32_t)0xfff << 16)) | \ 11111 ((((buint32_t)f) & 0xfff) << 16)) 11112 11113 11114 /* 11115 * These macros can be used to access VLAN_MAPTABLE_3. 11116 */ 11117 #define bcm84756_a0_READ_VLAN_MAPTABLE_3r(c,r) \ 11118 BFCMAP_REG32_READ((c),bcm84756_a0_VLAN_MAPTABLE_3r((c)),&((r)._vlan_maptable_3)) 11119 11120 #define bcm84756_a0_WRITE_VLAN_MAPTABLE_3r(c,r) \ 11121 BFCMAP_REG32_WRITE((c),bcm84756_a0_VLAN_MAPTABLE_3r((c)),&((r)._vlan_maptable_3)) 11122 11123 /******************************************************************************* 11124 * End of 'bcm84756_a0_VLAN_MAPTABLE_3r' 11125 */ 11126 11127 11128 11129 11130 /******************************************************************************* 11131 * CHIP: bcm84756_a0 11132 * REGISTER: VLAN_MAPTABLE_30 11133 * BLOCKS: SECPORT 11134 * DESCRIPTION : 11135 * Egress Mapping Table Entry, entry 30. 11136 * 11137 * SIZE: 32 11138 * 11139 * FIELDS DESCRIPTION: 11140 * VSAN_VFID : 11141 * Lookup table entry. 11142 * 11143 * VLAN_VID : 11144 * Lookup table entry. 11145 */ 11146 #define bcm84756_a0_VLAN_MAPTABLE_30r(c) \ 11147 (0x1310003a + (BFCMAP_PORT((c)) << 12)) 11148 11149 #define bcm84756_a0_VLAN_MAPTABLE_30r_SIZE 1 11150 11151 /* 11152 * This structure should be used to declare and program VLAN_MAPTABLE_30. 11153 */ 11154 typedef union bcm84756_a0_VLAN_MAPTABLE_30r_s { 11155 buint32_t v[1]; 11156 buint32_t vlan_maptable_30[1]; 11157 buint32_t _vlan_maptable_30; 11158 } bcm84756_a0_VLAN_MAPTABLE_30r_t; 11159 11160 #define bcm84756_a0_VLAN_MAPTABLE_30r_CLR(r) \ 11161 (r).vlan_maptable_30[0] = 0 11162 11163 #define bcm84756_a0_VLAN_MAPTABLE_30r_SET(r,d) \ 11164 (r).vlan_maptable_30[0] = d 11165 11166 #define bcm84756_a0_VLAN_MAPTABLE_30r_GET(r) \ 11167 (r).vlan_maptable_30[0] 11168 11169 11170 /* 11171 * These macros can be used to access individual fields. 11172 */ 11173 #define bcm84756_a0_VLAN_MAPTABLE_30r_VSAN_VFIDf_GET(c,r) \ 11174 (((r).vlan_maptable_30[0]) & 0xfff) 11175 11176 #define bcm84756_a0_VLAN_MAPTABLE_30r_VSAN_VFIDf_SET(c,r,f) \ 11177 (r).vlan_maptable_30[0]=(((r).vlan_maptable_30[0] & ~((buint32_t)0xfff)) | \ 11178 (((buint32_t)f) & 0xfff)) 11179 11180 #define bcm84756_a0_VLAN_MAPTABLE_30r_VLAN_VIDf_GET(c,r) \ 11181 ((((r).vlan_maptable_30[0]) >> 16) & 0xfff) 11182 11183 #define bcm84756_a0_VLAN_MAPTABLE_30r_VLAN_VIDf_SET(c,r,f) \ 11184 (r).vlan_maptable_30[0]=(((r).vlan_maptable_30[0] & ~((buint32_t)0xfff << 16)) | \ 11185 ((((buint32_t)f) & 0xfff) << 16)) 11186 11187 11188 /* 11189 * These macros can be used to access VLAN_MAPTABLE_30. 11190 */ 11191 #define bcm84756_a0_READ_VLAN_MAPTABLE_30r(c,r) \ 11192 BFCMAP_REG32_READ((c),bcm84756_a0_VLAN_MAPTABLE_30r((c)),&((r)._vlan_maptable_30)) 11193 11194 #define bcm84756_a0_WRITE_VLAN_MAPTABLE_30r(c,r) \ 11195 BFCMAP_REG32_WRITE((c),bcm84756_a0_VLAN_MAPTABLE_30r((c)),&((r)._vlan_maptable_30)) 11196 11197 /******************************************************************************* 11198 * End of 'bcm84756_a0_VLAN_MAPTABLE_30r' 11199 */ 11200 11201 11202 11203 11204 /******************************************************************************* 11205 * CHIP: bcm84756_a0 11206 * REGISTER: VLAN_MAPTABLE_31 11207 * BLOCKS: SECPORT 11208 * DESCRIPTION : 11209 * Egress Mapping Table Entry, entry 31. 11210 * 11211 * SIZE: 32 11212 * 11213 * FIELDS DESCRIPTION: 11214 * VSAN_VFID : 11215 * Lookup table entry. 11216 * 11217 * VLAN_VID : 11218 * Lookup table entry. 11219 */ 11220 #define bcm84756_a0_VLAN_MAPTABLE_31r(c) \ 11221 (0x1310003b + (BFCMAP_PORT((c)) << 12)) 11222 11223 #define bcm84756_a0_VLAN_MAPTABLE_31r_SIZE 1 11224 11225 /* 11226 * This structure should be used to declare and program VLAN_MAPTABLE_31. 11227 */ 11228 typedef union bcm84756_a0_VLAN_MAPTABLE_31r_s { 11229 buint32_t v[1]; 11230 buint32_t vlan_maptable_31[1]; 11231 buint32_t _vlan_maptable_31; 11232 } bcm84756_a0_VLAN_MAPTABLE_31r_t; 11233 11234 #define bcm84756_a0_VLAN_MAPTABLE_31r_CLR(r) \ 11235 (r).vlan_maptable_31[0] = 0 11236 11237 #define bcm84756_a0_VLAN_MAPTABLE_31r_SET(r,d) \ 11238 (r).vlan_maptable_31[0] = d 11239 11240 #define bcm84756_a0_VLAN_MAPTABLE_31r_GET(r) \ 11241 (r).vlan_maptable_31[0] 11242 11243 11244 /* 11245 * These macros can be used to access individual fields. 11246 */ 11247 #define bcm84756_a0_VLAN_MAPTABLE_31r_VSAN_VFIDf_GET(c,r) \ 11248 (((r).vlan_maptable_31[0]) & 0xfff) 11249 11250 #define bcm84756_a0_VLAN_MAPTABLE_31r_VSAN_VFIDf_SET(c,r,f) \ 11251 (r).vlan_maptable_31[0]=(((r).vlan_maptable_31[0] & ~((buint32_t)0xfff)) | \ 11252 (((buint32_t)f) & 0xfff)) 11253 11254 #define bcm84756_a0_VLAN_MAPTABLE_31r_VLAN_VIDf_GET(c,r) \ 11255 ((((r).vlan_maptable_31[0]) >> 16) & 0xfff) 11256 11257 #define bcm84756_a0_VLAN_MAPTABLE_31r_VLAN_VIDf_SET(c,r,f) \ 11258 (r).vlan_maptable_31[0]=(((r).vlan_maptable_31[0] & ~((buint32_t)0xfff << 16)) | \ 11259 ((((buint32_t)f) & 0xfff) << 16)) 11260 11261 11262 /* 11263 * These macros can be used to access VLAN_MAPTABLE_31. 11264 */ 11265 #define bcm84756_a0_READ_VLAN_MAPTABLE_31r(c,r) \ 11266 BFCMAP_REG32_READ((c),bcm84756_a0_VLAN_MAPTABLE_31r((c)),&((r)._vlan_maptable_31)) 11267 11268 #define bcm84756_a0_WRITE_VLAN_MAPTABLE_31r(c,r) \ 11269 BFCMAP_REG32_WRITE((c),bcm84756_a0_VLAN_MAPTABLE_31r((c)),&((r)._vlan_maptable_31)) 11270 11271 /******************************************************************************* 11272 * End of 'bcm84756_a0_VLAN_MAPTABLE_31r' 11273 */ 11274 11275 11276 11277 11278 /******************************************************************************* 11279 * CHIP: bcm84756_a0 11280 * REGISTER: VLAN_MAPTABLE_32 11281 * BLOCKS: SECPORT 11282 * DESCRIPTION : 11283 * Egress Mapping Table Entry, entry 32. 11284 * 11285 * SIZE: 32 11286 * 11287 * FIELDS DESCRIPTION: 11288 * VSAN_VFID : 11289 * Lookup table entry. 11290 * 11291 * VLAN_VID : 11292 * Lookup table entry. 11293 */ 11294 #define bcm84756_a0_VLAN_MAPTABLE_32r(c) \ 11295 (0x1310003c + (BFCMAP_PORT((c)) << 12)) 11296 11297 #define bcm84756_a0_VLAN_MAPTABLE_32r_SIZE 1 11298 11299 /* 11300 * This structure should be used to declare and program VLAN_MAPTABLE_32. 11301 */ 11302 typedef union bcm84756_a0_VLAN_MAPTABLE_32r_s { 11303 buint32_t v[1]; 11304 buint32_t vlan_maptable_32[1]; 11305 buint32_t _vlan_maptable_32; 11306 } bcm84756_a0_VLAN_MAPTABLE_32r_t; 11307 11308 #define bcm84756_a0_VLAN_MAPTABLE_32r_CLR(r) \ 11309 (r).vlan_maptable_32[0] = 0 11310 11311 #define bcm84756_a0_VLAN_MAPTABLE_32r_SET(r,d) \ 11312 (r).vlan_maptable_32[0] = d 11313 11314 #define bcm84756_a0_VLAN_MAPTABLE_32r_GET(r) \ 11315 (r).vlan_maptable_32[0] 11316 11317 11318 /* 11319 * These macros can be used to access individual fields. 11320 */ 11321 #define bcm84756_a0_VLAN_MAPTABLE_32r_VSAN_VFIDf_GET(c,r) \ 11322 (((r).vlan_maptable_32[0]) & 0xfff) 11323 11324 #define bcm84756_a0_VLAN_MAPTABLE_32r_VSAN_VFIDf_SET(c,r,f) \ 11325 (r).vlan_maptable_32[0]=(((r).vlan_maptable_32[0] & ~((buint32_t)0xfff)) | \ 11326 (((buint32_t)f) & 0xfff)) 11327 11328 #define bcm84756_a0_VLAN_MAPTABLE_32r_VLAN_VIDf_GET(c,r) \ 11329 ((((r).vlan_maptable_32[0]) >> 16) & 0xfff) 11330 11331 #define bcm84756_a0_VLAN_MAPTABLE_32r_VLAN_VIDf_SET(c,r,f) \ 11332 (r).vlan_maptable_32[0]=(((r).vlan_maptable_32[0] & ~((buint32_t)0xfff << 16)) | \ 11333 ((((buint32_t)f) & 0xfff) << 16)) 11334 11335 11336 /* 11337 * These macros can be used to access VLAN_MAPTABLE_32. 11338 */ 11339 #define bcm84756_a0_READ_VLAN_MAPTABLE_32r(c,r) \ 11340 BFCMAP_REG32_READ((c),bcm84756_a0_VLAN_MAPTABLE_32r((c)),&((r)._vlan_maptable_32)) 11341 11342 #define bcm84756_a0_WRITE_VLAN_MAPTABLE_32r(c,r) \ 11343 BFCMAP_REG32_WRITE((c),bcm84756_a0_VLAN_MAPTABLE_32r((c)),&((r)._vlan_maptable_32)) 11344 11345 /******************************************************************************* 11346 * End of 'bcm84756_a0_VLAN_MAPTABLE_32r' 11347 */ 11348 11349 11350 11351 11352 /******************************************************************************* 11353 * CHIP: bcm84756_a0 11354 * REGISTER: VLAN_MAPTABLE_33 11355 * BLOCKS: SECPORT 11356 * DESCRIPTION : 11357 * Egress Mapping Table Entry, entry 33. 11358 * 11359 * SIZE: 32 11360 * 11361 * FIELDS DESCRIPTION: 11362 * VSAN_VFID : 11363 * Lookup table entry. 11364 * 11365 * VLAN_VID : 11366 * Lookup table entry. 11367 */ 11368 #define bcm84756_a0_VLAN_MAPTABLE_33r(c) \ 11369 (0x1310003d + (BFCMAP_PORT((c)) << 12)) 11370 11371 #define bcm84756_a0_VLAN_MAPTABLE_33r_SIZE 1 11372 11373 /* 11374 * This structure should be used to declare and program VLAN_MAPTABLE_33. 11375 */ 11376 typedef union bcm84756_a0_VLAN_MAPTABLE_33r_s { 11377 buint32_t v[1]; 11378 buint32_t vlan_maptable_33[1]; 11379 buint32_t _vlan_maptable_33; 11380 } bcm84756_a0_VLAN_MAPTABLE_33r_t; 11381 11382 #define bcm84756_a0_VLAN_MAPTABLE_33r_CLR(r) \ 11383 (r).vlan_maptable_33[0] = 0 11384 11385 #define bcm84756_a0_VLAN_MAPTABLE_33r_SET(r,d) \ 11386 (r).vlan_maptable_33[0] = d 11387 11388 #define bcm84756_a0_VLAN_MAPTABLE_33r_GET(r) \ 11389 (r).vlan_maptable_33[0] 11390 11391 11392 /* 11393 * These macros can be used to access individual fields. 11394 */ 11395 #define bcm84756_a0_VLAN_MAPTABLE_33r_VSAN_VFIDf_GET(c,r) \ 11396 (((r).vlan_maptable_33[0]) & 0xfff) 11397 11398 #define bcm84756_a0_VLAN_MAPTABLE_33r_VSAN_VFIDf_SET(c,r,f) \ 11399 (r).vlan_maptable_33[0]=(((r).vlan_maptable_33[0] & ~((buint32_t)0xfff)) | \ 11400 (((buint32_t)f) & 0xfff)) 11401 11402 #define bcm84756_a0_VLAN_MAPTABLE_33r_VLAN_VIDf_GET(c,r) \ 11403 ((((r).vlan_maptable_33[0]) >> 16) & 0xfff) 11404 11405 #define bcm84756_a0_VLAN_MAPTABLE_33r_VLAN_VIDf_SET(c,r,f) \ 11406 (r).vlan_maptable_33[0]=(((r).vlan_maptable_33[0] & ~((buint32_t)0xfff << 16)) | \ 11407 ((((buint32_t)f) & 0xfff) << 16)) 11408 11409 11410 /* 11411 * These macros can be used to access VLAN_MAPTABLE_33. 11412 */ 11413 #define bcm84756_a0_READ_VLAN_MAPTABLE_33r(c,r) \ 11414 BFCMAP_REG32_READ((c),bcm84756_a0_VLAN_MAPTABLE_33r((c)),&((r)._vlan_maptable_33)) 11415 11416 #define bcm84756_a0_WRITE_VLAN_MAPTABLE_33r(c,r) \ 11417 BFCMAP_REG32_WRITE((c),bcm84756_a0_VLAN_MAPTABLE_33r((c)),&((r)._vlan_maptable_33)) 11418 11419 /******************************************************************************* 11420 * End of 'bcm84756_a0_VLAN_MAPTABLE_33r' 11421 */ 11422 11423 11424 11425 11426 /******************************************************************************* 11427 * CHIP: bcm84756_a0 11428 * REGISTER: VLAN_MAPTABLE_34 11429 * BLOCKS: SECPORT 11430 * DESCRIPTION : 11431 * Egress Mapping Table Entry, entry 34. 11432 * 11433 * SIZE: 32 11434 * 11435 * FIELDS DESCRIPTION: 11436 * VSAN_VFID : 11437 * Lookup table entry. 11438 * 11439 * VLAN_VID : 11440 * Lookup table entry. 11441 */ 11442 #define bcm84756_a0_VLAN_MAPTABLE_34r(c) \ 11443 (0x1310003e + (BFCMAP_PORT((c)) << 12)) 11444 11445 #define bcm84756_a0_VLAN_MAPTABLE_34r_SIZE 1 11446 11447 /* 11448 * This structure should be used to declare and program VLAN_MAPTABLE_34. 11449 */ 11450 typedef union bcm84756_a0_VLAN_MAPTABLE_34r_s { 11451 buint32_t v[1]; 11452 buint32_t vlan_maptable_34[1]; 11453 buint32_t _vlan_maptable_34; 11454 } bcm84756_a0_VLAN_MAPTABLE_34r_t; 11455 11456 #define bcm84756_a0_VLAN_MAPTABLE_34r_CLR(r) \ 11457 (r).vlan_maptable_34[0] = 0 11458 11459 #define bcm84756_a0_VLAN_MAPTABLE_34r_SET(r,d) \ 11460 (r).vlan_maptable_34[0] = d 11461 11462 #define bcm84756_a0_VLAN_MAPTABLE_34r_GET(r) \ 11463 (r).vlan_maptable_34[0] 11464 11465 11466 /* 11467 * These macros can be used to access individual fields. 11468 */ 11469 #define bcm84756_a0_VLAN_MAPTABLE_34r_VSAN_VFIDf_GET(c,r) \ 11470 (((r).vlan_maptable_34[0]) & 0xfff) 11471 11472 #define bcm84756_a0_VLAN_MAPTABLE_34r_VSAN_VFIDf_SET(c,r,f) \ 11473 (r).vlan_maptable_34[0]=(((r).vlan_maptable_34[0] & ~((buint32_t)0xfff)) | \ 11474 (((buint32_t)f) & 0xfff)) 11475 11476 #define bcm84756_a0_VLAN_MAPTABLE_34r_VLAN_VIDf_GET(c,r) \ 11477 ((((r).vlan_maptable_34[0]) >> 16) & 0xfff) 11478 11479 #define bcm84756_a0_VLAN_MAPTABLE_34r_VLAN_VIDf_SET(c,r,f) \ 11480 (r).vlan_maptable_34[0]=(((r).vlan_maptable_34[0] & ~((buint32_t)0xfff << 16)) | \ 11481 ((((buint32_t)f) & 0xfff) << 16)) 11482 11483 11484 /* 11485 * These macros can be used to access VLAN_MAPTABLE_34. 11486 */ 11487 #define bcm84756_a0_READ_VLAN_MAPTABLE_34r(c,r) \ 11488 BFCMAP_REG32_READ((c),bcm84756_a0_VLAN_MAPTABLE_34r((c)),&((r)._vlan_maptable_34)) 11489 11490 #define bcm84756_a0_WRITE_VLAN_MAPTABLE_34r(c,r) \ 11491 BFCMAP_REG32_WRITE((c),bcm84756_a0_VLAN_MAPTABLE_34r((c)),&((r)._vlan_maptable_34)) 11492 11493 /******************************************************************************* 11494 * End of 'bcm84756_a0_VLAN_MAPTABLE_34r' 11495 */ 11496 11497 11498 11499 11500 /******************************************************************************* 11501 * CHIP: bcm84756_a0 11502 * REGISTER: VLAN_MAPTABLE_35 11503 * BLOCKS: SECPORT 11504 * DESCRIPTION : 11505 * Egress Mapping Table Entry, entry 35. 11506 * 11507 * SIZE: 32 11508 * 11509 * FIELDS DESCRIPTION: 11510 * VSAN_VFID : 11511 * Lookup table entry. 11512 * 11513 * VLAN_VID : 11514 * Lookup table entry. 11515 */ 11516 #define bcm84756_a0_VLAN_MAPTABLE_35r(c) \ 11517 (0x1310003f + (BFCMAP_PORT((c)) << 12)) 11518 11519 #define bcm84756_a0_VLAN_MAPTABLE_35r_SIZE 1 11520 11521 /* 11522 * This structure should be used to declare and program VLAN_MAPTABLE_35. 11523 */ 11524 typedef union bcm84756_a0_VLAN_MAPTABLE_35r_s { 11525 buint32_t v[1]; 11526 buint32_t vlan_maptable_35[1]; 11527 buint32_t _vlan_maptable_35; 11528 } bcm84756_a0_VLAN_MAPTABLE_35r_t; 11529 11530 #define bcm84756_a0_VLAN_MAPTABLE_35r_CLR(r) \ 11531 (r).vlan_maptable_35[0] = 0 11532 11533 #define bcm84756_a0_VLAN_MAPTABLE_35r_SET(r,d) \ 11534 (r).vlan_maptable_35[0] = d 11535 11536 #define bcm84756_a0_VLAN_MAPTABLE_35r_GET(r) \ 11537 (r).vlan_maptable_35[0] 11538 11539 11540 /* 11541 * These macros can be used to access individual fields. 11542 */ 11543 #define bcm84756_a0_VLAN_MAPTABLE_35r_VSAN_VFIDf_GET(c,r) \ 11544 (((r).vlan_maptable_35[0]) & 0xfff) 11545 11546 #define bcm84756_a0_VLAN_MAPTABLE_35r_VSAN_VFIDf_SET(c,r,f) \ 11547 (r).vlan_maptable_35[0]=(((r).vlan_maptable_35[0] & ~((buint32_t)0xfff)) | \ 11548 (((buint32_t)f) & 0xfff)) 11549 11550 #define bcm84756_a0_VLAN_MAPTABLE_35r_VLAN_VIDf_GET(c,r) \ 11551 ((((r).vlan_maptable_35[0]) >> 16) & 0xfff) 11552 11553 #define bcm84756_a0_VLAN_MAPTABLE_35r_VLAN_VIDf_SET(c,r,f) \ 11554 (r).vlan_maptable_35[0]=(((r).vlan_maptable_35[0] & ~((buint32_t)0xfff << 16)) | \ 11555 ((((buint32_t)f) & 0xfff) << 16)) 11556 11557 11558 /* 11559 * These macros can be used to access VLAN_MAPTABLE_35. 11560 */ 11561 #define bcm84756_a0_READ_VLAN_MAPTABLE_35r(c,r) \ 11562 BFCMAP_REG32_READ((c),bcm84756_a0_VLAN_MAPTABLE_35r((c)),&((r)._vlan_maptable_35)) 11563 11564 #define bcm84756_a0_WRITE_VLAN_MAPTABLE_35r(c,r) \ 11565 BFCMAP_REG32_WRITE((c),bcm84756_a0_VLAN_MAPTABLE_35r((c)),&((r)._vlan_maptable_35)) 11566 11567 /******************************************************************************* 11568 * End of 'bcm84756_a0_VLAN_MAPTABLE_35r' 11569 */ 11570 11571 11572 11573 11574 /******************************************************************************* 11575 * CHIP: bcm84756_a0 11576 * REGISTER: VLAN_MAPTABLE_36 11577 * BLOCKS: SECPORT 11578 * DESCRIPTION : 11579 * Egress Mapping Table Entry, entry 36. 11580 * 11581 * SIZE: 32 11582 * 11583 * FIELDS DESCRIPTION: 11584 * VSAN_VFID : 11585 * Lookup table entry. 11586 * 11587 * VLAN_VID : 11588 * Lookup table entry. 11589 */ 11590 #define bcm84756_a0_VLAN_MAPTABLE_36r(c) \ 11591 (0x13100040 + (BFCMAP_PORT((c)) << 12)) 11592 11593 #define bcm84756_a0_VLAN_MAPTABLE_36r_SIZE 1 11594 11595 /* 11596 * This structure should be used to declare and program VLAN_MAPTABLE_36. 11597 */ 11598 typedef union bcm84756_a0_VLAN_MAPTABLE_36r_s { 11599 buint32_t v[1]; 11600 buint32_t vlan_maptable_36[1]; 11601 buint32_t _vlan_maptable_36; 11602 } bcm84756_a0_VLAN_MAPTABLE_36r_t; 11603 11604 #define bcm84756_a0_VLAN_MAPTABLE_36r_CLR(r) \ 11605 (r).vlan_maptable_36[0] = 0 11606 11607 #define bcm84756_a0_VLAN_MAPTABLE_36r_SET(r,d) \ 11608 (r).vlan_maptable_36[0] = d 11609 11610 #define bcm84756_a0_VLAN_MAPTABLE_36r_GET(r) \ 11611 (r).vlan_maptable_36[0] 11612 11613 11614 /* 11615 * These macros can be used to access individual fields. 11616 */ 11617 #define bcm84756_a0_VLAN_MAPTABLE_36r_VSAN_VFIDf_GET(c,r) \ 11618 (((r).vlan_maptable_36[0]) & 0xfff) 11619 11620 #define bcm84756_a0_VLAN_MAPTABLE_36r_VSAN_VFIDf_SET(c,r,f) \ 11621 (r).vlan_maptable_36[0]=(((r).vlan_maptable_36[0] & ~((buint32_t)0xfff)) | \ 11622 (((buint32_t)f) & 0xfff)) 11623 11624 #define bcm84756_a0_VLAN_MAPTABLE_36r_VLAN_VIDf_GET(c,r) \ 11625 ((((r).vlan_maptable_36[0]) >> 16) & 0xfff) 11626 11627 #define bcm84756_a0_VLAN_MAPTABLE_36r_VLAN_VIDf_SET(c,r,f) \ 11628 (r).vlan_maptable_36[0]=(((r).vlan_maptable_36[0] & ~((buint32_t)0xfff << 16)) | \ 11629 ((((buint32_t)f) & 0xfff) << 16)) 11630 11631 11632 /* 11633 * These macros can be used to access VLAN_MAPTABLE_36. 11634 */ 11635 #define bcm84756_a0_READ_VLAN_MAPTABLE_36r(c,r) \ 11636 BFCMAP_REG32_READ((c),bcm84756_a0_VLAN_MAPTABLE_36r((c)),&((r)._vlan_maptable_36)) 11637 11638 #define bcm84756_a0_WRITE_VLAN_MAPTABLE_36r(c,r) \ 11639 BFCMAP_REG32_WRITE((c),bcm84756_a0_VLAN_MAPTABLE_36r((c)),&((r)._vlan_maptable_36)) 11640 11641 /******************************************************************************* 11642 * End of 'bcm84756_a0_VLAN_MAPTABLE_36r' 11643 */ 11644 11645 11646 11647 11648 /******************************************************************************* 11649 * CHIP: bcm84756_a0 11650 * REGISTER: VLAN_MAPTABLE_37 11651 * BLOCKS: SECPORT 11652 * DESCRIPTION : 11653 * Egress Mapping Table Entry, entry 37. 11654 * 11655 * SIZE: 32 11656 * 11657 * FIELDS DESCRIPTION: 11658 * VSAN_VFID : 11659 * Lookup table entry. 11660 * 11661 * VLAN_VID : 11662 * Lookup table entry. 11663 */ 11664 #define bcm84756_a0_VLAN_MAPTABLE_37r(c) \ 11665 (0x13100041 + (BFCMAP_PORT((c)) << 12)) 11666 11667 #define bcm84756_a0_VLAN_MAPTABLE_37r_SIZE 1 11668 11669 /* 11670 * This structure should be used to declare and program VLAN_MAPTABLE_37. 11671 */ 11672 typedef union bcm84756_a0_VLAN_MAPTABLE_37r_s { 11673 buint32_t v[1]; 11674 buint32_t vlan_maptable_37[1]; 11675 buint32_t _vlan_maptable_37; 11676 } bcm84756_a0_VLAN_MAPTABLE_37r_t; 11677 11678 #define bcm84756_a0_VLAN_MAPTABLE_37r_CLR(r) \ 11679 (r).vlan_maptable_37[0] = 0 11680 11681 #define bcm84756_a0_VLAN_MAPTABLE_37r_SET(r,d) \ 11682 (r).vlan_maptable_37[0] = d 11683 11684 #define bcm84756_a0_VLAN_MAPTABLE_37r_GET(r) \ 11685 (r).vlan_maptable_37[0] 11686 11687 11688 /* 11689 * These macros can be used to access individual fields. 11690 */ 11691 #define bcm84756_a0_VLAN_MAPTABLE_37r_VSAN_VFIDf_GET(c,r) \ 11692 (((r).vlan_maptable_37[0]) & 0xfff) 11693 11694 #define bcm84756_a0_VLAN_MAPTABLE_37r_VSAN_VFIDf_SET(c,r,f) \ 11695 (r).vlan_maptable_37[0]=(((r).vlan_maptable_37[0] & ~((buint32_t)0xfff)) | \ 11696 (((buint32_t)f) & 0xfff)) 11697 11698 #define bcm84756_a0_VLAN_MAPTABLE_37r_VLAN_VIDf_GET(c,r) \ 11699 ((((r).vlan_maptable_37[0]) >> 16) & 0xfff) 11700 11701 #define bcm84756_a0_VLAN_MAPTABLE_37r_VLAN_VIDf_SET(c,r,f) \ 11702 (r).vlan_maptable_37[0]=(((r).vlan_maptable_37[0] & ~((buint32_t)0xfff << 16)) | \ 11703 ((((buint32_t)f) & 0xfff) << 16)) 11704 11705 11706 /* 11707 * These macros can be used to access VLAN_MAPTABLE_37. 11708 */ 11709 #define bcm84756_a0_READ_VLAN_MAPTABLE_37r(c,r) \ 11710 BFCMAP_REG32_READ((c),bcm84756_a0_VLAN_MAPTABLE_37r((c)),&((r)._vlan_maptable_37)) 11711 11712 #define bcm84756_a0_WRITE_VLAN_MAPTABLE_37r(c,r) \ 11713 BFCMAP_REG32_WRITE((c),bcm84756_a0_VLAN_MAPTABLE_37r((c)),&((r)._vlan_maptable_37)) 11714 11715 /******************************************************************************* 11716 * End of 'bcm84756_a0_VLAN_MAPTABLE_37r' 11717 */ 11718 11719 11720 11721 11722 /******************************************************************************* 11723 * CHIP: bcm84756_a0 11724 * REGISTER: VLAN_MAPTABLE_38 11725 * BLOCKS: SECPORT 11726 * DESCRIPTION : 11727 * Egress Mapping Table Entry, entry 38. 11728 * 11729 * SIZE: 32 11730 * 11731 * FIELDS DESCRIPTION: 11732 * VSAN_VFID : 11733 * Lookup table entry. 11734 * 11735 * VLAN_VID : 11736 * Lookup table entry. 11737 */ 11738 #define bcm84756_a0_VLAN_MAPTABLE_38r(c) \ 11739 (0x13100042 + (BFCMAP_PORT((c)) << 12)) 11740 11741 #define bcm84756_a0_VLAN_MAPTABLE_38r_SIZE 1 11742 11743 /* 11744 * This structure should be used to declare and program VLAN_MAPTABLE_38. 11745 */ 11746 typedef union bcm84756_a0_VLAN_MAPTABLE_38r_s { 11747 buint32_t v[1]; 11748 buint32_t vlan_maptable_38[1]; 11749 buint32_t _vlan_maptable_38; 11750 } bcm84756_a0_VLAN_MAPTABLE_38r_t; 11751 11752 #define bcm84756_a0_VLAN_MAPTABLE_38r_CLR(r) \ 11753 (r).vlan_maptable_38[0] = 0 11754 11755 #define bcm84756_a0_VLAN_MAPTABLE_38r_SET(r,d) \ 11756 (r).vlan_maptable_38[0] = d 11757 11758 #define bcm84756_a0_VLAN_MAPTABLE_38r_GET(r) \ 11759 (r).vlan_maptable_38[0] 11760 11761 11762 /* 11763 * These macros can be used to access individual fields. 11764 */ 11765 #define bcm84756_a0_VLAN_MAPTABLE_38r_VSAN_VFIDf_GET(c,r) \ 11766 (((r).vlan_maptable_38[0]) & 0xfff) 11767 11768 #define bcm84756_a0_VLAN_MAPTABLE_38r_VSAN_VFIDf_SET(c,r,f) \ 11769 (r).vlan_maptable_38[0]=(((r).vlan_maptable_38[0] & ~((buint32_t)0xfff)) | \ 11770 (((buint32_t)f) & 0xfff)) 11771 11772 #define bcm84756_a0_VLAN_MAPTABLE_38r_VLAN_VIDf_GET(c,r) \ 11773 ((((r).vlan_maptable_38[0]) >> 16) & 0xfff) 11774 11775 #define bcm84756_a0_VLAN_MAPTABLE_38r_VLAN_VIDf_SET(c,r,f) \ 11776 (r).vlan_maptable_38[0]=(((r).vlan_maptable_38[0] & ~((buint32_t)0xfff << 16)) | \ 11777 ((((buint32_t)f) & 0xfff) << 16)) 11778 11779 11780 /* 11781 * These macros can be used to access VLAN_MAPTABLE_38. 11782 */ 11783 #define bcm84756_a0_READ_VLAN_MAPTABLE_38r(c,r) \ 11784 BFCMAP_REG32_READ((c),bcm84756_a0_VLAN_MAPTABLE_38r((c)),&((r)._vlan_maptable_38)) 11785 11786 #define bcm84756_a0_WRITE_VLAN_MAPTABLE_38r(c,r) \ 11787 BFCMAP_REG32_WRITE((c),bcm84756_a0_VLAN_MAPTABLE_38r((c)),&((r)._vlan_maptable_38)) 11788 11789 /******************************************************************************* 11790 * End of 'bcm84756_a0_VLAN_MAPTABLE_38r' 11791 */ 11792 11793 11794 11795 11796 /******************************************************************************* 11797 * CHIP: bcm84756_a0 11798 * REGISTER: VLAN_MAPTABLE_39 11799 * BLOCKS: SECPORT 11800 * DESCRIPTION : 11801 * Egress Mapping Table Entry, entry 39. 11802 * 11803 * SIZE: 32 11804 * 11805 * FIELDS DESCRIPTION: 11806 * VSAN_VFID : 11807 * Lookup table entry. 11808 * 11809 * VLAN_VID : 11810 * Lookup table entry. 11811 */ 11812 #define bcm84756_a0_VLAN_MAPTABLE_39r(c) \ 11813 (0x13100043 + (BFCMAP_PORT((c)) << 12)) 11814 11815 #define bcm84756_a0_VLAN_MAPTABLE_39r_SIZE 1 11816 11817 /* 11818 * This structure should be used to declare and program VLAN_MAPTABLE_39. 11819 */ 11820 typedef union bcm84756_a0_VLAN_MAPTABLE_39r_s { 11821 buint32_t v[1]; 11822 buint32_t vlan_maptable_39[1]; 11823 buint32_t _vlan_maptable_39; 11824 } bcm84756_a0_VLAN_MAPTABLE_39r_t; 11825 11826 #define bcm84756_a0_VLAN_MAPTABLE_39r_CLR(r) \ 11827 (r).vlan_maptable_39[0] = 0 11828 11829 #define bcm84756_a0_VLAN_MAPTABLE_39r_SET(r,d) \ 11830 (r).vlan_maptable_39[0] = d 11831 11832 #define bcm84756_a0_VLAN_MAPTABLE_39r_GET(r) \ 11833 (r).vlan_maptable_39[0] 11834 11835 11836 /* 11837 * These macros can be used to access individual fields. 11838 */ 11839 #define bcm84756_a0_VLAN_MAPTABLE_39r_VSAN_VFIDf_GET(c,r) \ 11840 (((r).vlan_maptable_39[0]) & 0xfff) 11841 11842 #define bcm84756_a0_VLAN_MAPTABLE_39r_VSAN_VFIDf_SET(c,r,f) \ 11843 (r).vlan_maptable_39[0]=(((r).vlan_maptable_39[0] & ~((buint32_t)0xfff)) | \ 11844 (((buint32_t)f) & 0xfff)) 11845 11846 #define bcm84756_a0_VLAN_MAPTABLE_39r_VLAN_VIDf_GET(c,r) \ 11847 ((((r).vlan_maptable_39[0]) >> 16) & 0xfff) 11848 11849 #define bcm84756_a0_VLAN_MAPTABLE_39r_VLAN_VIDf_SET(c,r,f) \ 11850 (r).vlan_maptable_39[0]=(((r).vlan_maptable_39[0] & ~((buint32_t)0xfff << 16)) | \ 11851 ((((buint32_t)f) & 0xfff) << 16)) 11852 11853 11854 /* 11855 * These macros can be used to access VLAN_MAPTABLE_39. 11856 */ 11857 #define bcm84756_a0_READ_VLAN_MAPTABLE_39r(c,r) \ 11858 BFCMAP_REG32_READ((c),bcm84756_a0_VLAN_MAPTABLE_39r((c)),&((r)._vlan_maptable_39)) 11859 11860 #define bcm84756_a0_WRITE_VLAN_MAPTABLE_39r(c,r) \ 11861 BFCMAP_REG32_WRITE((c),bcm84756_a0_VLAN_MAPTABLE_39r((c)),&((r)._vlan_maptable_39)) 11862 11863 /******************************************************************************* 11864 * End of 'bcm84756_a0_VLAN_MAPTABLE_39r' 11865 */ 11866 11867 11868 11869 11870 /******************************************************************************* 11871 * CHIP: bcm84756_a0 11872 * REGISTER: VLAN_MAPTABLE_4 11873 * BLOCKS: SECPORT 11874 * DESCRIPTION : 11875 * Egress Mapping Table Entry, entry 4. 11876 * 11877 * SIZE: 32 11878 * 11879 * FIELDS DESCRIPTION: 11880 * VSAN_VFID : 11881 * Lookup table entry. 11882 * 11883 * VLAN_VID : 11884 * Lookup table entry. 11885 */ 11886 #define bcm84756_a0_VLAN_MAPTABLE_4r(c) \ 11887 (0x13100020 + (BFCMAP_PORT((c)) << 12)) 11888 11889 #define bcm84756_a0_VLAN_MAPTABLE_4r_SIZE 1 11890 11891 /* 11892 * This structure should be used to declare and program VLAN_MAPTABLE_4. 11893 */ 11894 typedef union bcm84756_a0_VLAN_MAPTABLE_4r_s { 11895 buint32_t v[1]; 11896 buint32_t vlan_maptable_4[1]; 11897 buint32_t _vlan_maptable_4; 11898 } bcm84756_a0_VLAN_MAPTABLE_4r_t; 11899 11900 #define bcm84756_a0_VLAN_MAPTABLE_4r_CLR(r) \ 11901 (r).vlan_maptable_4[0] = 0 11902 11903 #define bcm84756_a0_VLAN_MAPTABLE_4r_SET(r,d) \ 11904 (r).vlan_maptable_4[0] = d 11905 11906 #define bcm84756_a0_VLAN_MAPTABLE_4r_GET(r) \ 11907 (r).vlan_maptable_4[0] 11908 11909 11910 /* 11911 * These macros can be used to access individual fields. 11912 */ 11913 #define bcm84756_a0_VLAN_MAPTABLE_4r_VSAN_VFIDf_GET(c,r) \ 11914 (((r).vlan_maptable_4[0]) & 0xfff) 11915 11916 #define bcm84756_a0_VLAN_MAPTABLE_4r_VSAN_VFIDf_SET(c,r,f) \ 11917 (r).vlan_maptable_4[0]=(((r).vlan_maptable_4[0] & ~((buint32_t)0xfff)) | \ 11918 (((buint32_t)f) & 0xfff)) 11919 11920 #define bcm84756_a0_VLAN_MAPTABLE_4r_VLAN_VIDf_GET(c,r) \ 11921 ((((r).vlan_maptable_4[0]) >> 16) & 0xfff) 11922 11923 #define bcm84756_a0_VLAN_MAPTABLE_4r_VLAN_VIDf_SET(c,r,f) \ 11924 (r).vlan_maptable_4[0]=(((r).vlan_maptable_4[0] & ~((buint32_t)0xfff << 16)) | \ 11925 ((((buint32_t)f) & 0xfff) << 16)) 11926 11927 11928 /* 11929 * These macros can be used to access VLAN_MAPTABLE_4. 11930 */ 11931 #define bcm84756_a0_READ_VLAN_MAPTABLE_4r(c,r) \ 11932 BFCMAP_REG32_READ((c),bcm84756_a0_VLAN_MAPTABLE_4r((c)),&((r)._vlan_maptable_4)) 11933 11934 #define bcm84756_a0_WRITE_VLAN_MAPTABLE_4r(c,r) \ 11935 BFCMAP_REG32_WRITE((c),bcm84756_a0_VLAN_MAPTABLE_4r((c)),&((r)._vlan_maptable_4)) 11936 11937 /******************************************************************************* 11938 * End of 'bcm84756_a0_VLAN_MAPTABLE_4r' 11939 */ 11940 11941 11942 11943 11944 /******************************************************************************* 11945 * CHIP: bcm84756_a0 11946 * REGISTER: VLAN_MAPTABLE_40 11947 * BLOCKS: SECPORT 11948 * DESCRIPTION : 11949 * Egress Mapping Table Entry, entry 40. 11950 * 11951 * SIZE: 32 11952 * 11953 * FIELDS DESCRIPTION: 11954 * VSAN_VFID : 11955 * Lookup table entry. 11956 * 11957 * VLAN_VID : 11958 * Lookup table entry. 11959 */ 11960 #define bcm84756_a0_VLAN_MAPTABLE_40r(c) \ 11961 (0x13100044 + (BFCMAP_PORT((c)) << 12)) 11962 11963 #define bcm84756_a0_VLAN_MAPTABLE_40r_SIZE 1 11964 11965 /* 11966 * This structure should be used to declare and program VLAN_MAPTABLE_40. 11967 */ 11968 typedef union bcm84756_a0_VLAN_MAPTABLE_40r_s { 11969 buint32_t v[1]; 11970 buint32_t vlan_maptable_40[1]; 11971 buint32_t _vlan_maptable_40; 11972 } bcm84756_a0_VLAN_MAPTABLE_40r_t; 11973 11974 #define bcm84756_a0_VLAN_MAPTABLE_40r_CLR(r) \ 11975 (r).vlan_maptable_40[0] = 0 11976 11977 #define bcm84756_a0_VLAN_MAPTABLE_40r_SET(r,d) \ 11978 (r).vlan_maptable_40[0] = d 11979 11980 #define bcm84756_a0_VLAN_MAPTABLE_40r_GET(r) \ 11981 (r).vlan_maptable_40[0] 11982 11983 11984 /* 11985 * These macros can be used to access individual fields. 11986 */ 11987 #define bcm84756_a0_VLAN_MAPTABLE_40r_VSAN_VFIDf_GET(c,r) \ 11988 (((r).vlan_maptable_40[0]) & 0xfff) 11989 11990 #define bcm84756_a0_VLAN_MAPTABLE_40r_VSAN_VFIDf_SET(c,r,f) \ 11991 (r).vlan_maptable_40[0]=(((r).vlan_maptable_40[0] & ~((buint32_t)0xfff)) | \ 11992 (((buint32_t)f) & 0xfff)) 11993 11994 #define bcm84756_a0_VLAN_MAPTABLE_40r_VLAN_VIDf_GET(c,r) \ 11995 ((((r).vlan_maptable_40[0]) >> 16) & 0xfff) 11996 11997 #define bcm84756_a0_VLAN_MAPTABLE_40r_VLAN_VIDf_SET(c,r,f) \ 11998 (r).vlan_maptable_40[0]=(((r).vlan_maptable_40[0] & ~((buint32_t)0xfff << 16)) | \ 11999 ((((buint32_t)f) & 0xfff) << 16)) 12000 12001 12002 /* 12003 * These macros can be used to access VLAN_MAPTABLE_40. 12004 */ 12005 #define bcm84756_a0_READ_VLAN_MAPTABLE_40r(c,r) \ 12006 BFCMAP_REG32_READ((c),bcm84756_a0_VLAN_MAPTABLE_40r((c)),&((r)._vlan_maptable_40)) 12007 12008 #define bcm84756_a0_WRITE_VLAN_MAPTABLE_40r(c,r) \ 12009 BFCMAP_REG32_WRITE((c),bcm84756_a0_VLAN_MAPTABLE_40r((c)),&((r)._vlan_maptable_40)) 12010 12011 /******************************************************************************* 12012 * End of 'bcm84756_a0_VLAN_MAPTABLE_40r' 12013 */ 12014 12015 12016 12017 12018 /******************************************************************************* 12019 * CHIP: bcm84756_a0 12020 * REGISTER: VLAN_MAPTABLE_41 12021 * BLOCKS: SECPORT 12022 * DESCRIPTION : 12023 * Egress Mapping Table Entry, entry 41. 12024 * 12025 * SIZE: 32 12026 * 12027 * FIELDS DESCRIPTION: 12028 * VSAN_VFID : 12029 * Lookup table entry. 12030 * 12031 * VLAN_VID : 12032 * Lookup table entry. 12033 */ 12034 #define bcm84756_a0_VLAN_MAPTABLE_41r(c) \ 12035 (0x13100045 + (BFCMAP_PORT((c)) << 12)) 12036 12037 #define bcm84756_a0_VLAN_MAPTABLE_41r_SIZE 1 12038 12039 /* 12040 * This structure should be used to declare and program VLAN_MAPTABLE_41. 12041 */ 12042 typedef union bcm84756_a0_VLAN_MAPTABLE_41r_s { 12043 buint32_t v[1]; 12044 buint32_t vlan_maptable_41[1]; 12045 buint32_t _vlan_maptable_41; 12046 } bcm84756_a0_VLAN_MAPTABLE_41r_t; 12047 12048 #define bcm84756_a0_VLAN_MAPTABLE_41r_CLR(r) \ 12049 (r).vlan_maptable_41[0] = 0 12050 12051 #define bcm84756_a0_VLAN_MAPTABLE_41r_SET(r,d) \ 12052 (r).vlan_maptable_41[0] = d 12053 12054 #define bcm84756_a0_VLAN_MAPTABLE_41r_GET(r) \ 12055 (r).vlan_maptable_41[0] 12056 12057 12058 /* 12059 * These macros can be used to access individual fields. 12060 */ 12061 #define bcm84756_a0_VLAN_MAPTABLE_41r_VSAN_VFIDf_GET(c,r) \ 12062 (((r).vlan_maptable_41[0]) & 0xfff) 12063 12064 #define bcm84756_a0_VLAN_MAPTABLE_41r_VSAN_VFIDf_SET(c,r,f) \ 12065 (r).vlan_maptable_41[0]=(((r).vlan_maptable_41[0] & ~((buint32_t)0xfff)) | \ 12066 (((buint32_t)f) & 0xfff)) 12067 12068 #define bcm84756_a0_VLAN_MAPTABLE_41r_VLAN_VIDf_GET(c,r) \ 12069 ((((r).vlan_maptable_41[0]) >> 16) & 0xfff) 12070 12071 #define bcm84756_a0_VLAN_MAPTABLE_41r_VLAN_VIDf_SET(c,r,f) \ 12072 (r).vlan_maptable_41[0]=(((r).vlan_maptable_41[0] & ~((buint32_t)0xfff << 16)) | \ 12073 ((((buint32_t)f) & 0xfff) << 16)) 12074 12075 12076 /* 12077 * These macros can be used to access VLAN_MAPTABLE_41. 12078 */ 12079 #define bcm84756_a0_READ_VLAN_MAPTABLE_41r(c,r) \ 12080 BFCMAP_REG32_READ((c),bcm84756_a0_VLAN_MAPTABLE_41r((c)),&((r)._vlan_maptable_41)) 12081 12082 #define bcm84756_a0_WRITE_VLAN_MAPTABLE_41r(c,r) \ 12083 BFCMAP_REG32_WRITE((c),bcm84756_a0_VLAN_MAPTABLE_41r((c)),&((r)._vlan_maptable_41)) 12084 12085 /******************************************************************************* 12086 * End of 'bcm84756_a0_VLAN_MAPTABLE_41r' 12087 */ 12088 12089 12090 12091 12092 /******************************************************************************* 12093 * CHIP: bcm84756_a0 12094 * REGISTER: VLAN_MAPTABLE_42 12095 * BLOCKS: SECPORT 12096 * DESCRIPTION : 12097 * Egress Mapping Table Entry, entry 42. 12098 * 12099 * SIZE: 32 12100 * 12101 * FIELDS DESCRIPTION: 12102 * VSAN_VFID : 12103 * Lookup table entry. 12104 * 12105 * VLAN_VID : 12106 * Lookup table entry. 12107 */ 12108 #define bcm84756_a0_VLAN_MAPTABLE_42r(c) \ 12109 (0x13100046 + (BFCMAP_PORT((c)) << 12)) 12110 12111 #define bcm84756_a0_VLAN_MAPTABLE_42r_SIZE 1 12112 12113 /* 12114 * This structure should be used to declare and program VLAN_MAPTABLE_42. 12115 */ 12116 typedef union bcm84756_a0_VLAN_MAPTABLE_42r_s { 12117 buint32_t v[1]; 12118 buint32_t vlan_maptable_42[1]; 12119 buint32_t _vlan_maptable_42; 12120 } bcm84756_a0_VLAN_MAPTABLE_42r_t; 12121 12122 #define bcm84756_a0_VLAN_MAPTABLE_42r_CLR(r) \ 12123 (r).vlan_maptable_42[0] = 0 12124 12125 #define bcm84756_a0_VLAN_MAPTABLE_42r_SET(r,d) \ 12126 (r).vlan_maptable_42[0] = d 12127 12128 #define bcm84756_a0_VLAN_MAPTABLE_42r_GET(r) \ 12129 (r).vlan_maptable_42[0] 12130 12131 12132 /* 12133 * These macros can be used to access individual fields. 12134 */ 12135 #define bcm84756_a0_VLAN_MAPTABLE_42r_VSAN_VFIDf_GET(c,r) \ 12136 (((r).vlan_maptable_42[0]) & 0xfff) 12137 12138 #define bcm84756_a0_VLAN_MAPTABLE_42r_VSAN_VFIDf_SET(c,r,f) \ 12139 (r).vlan_maptable_42[0]=(((r).vlan_maptable_42[0] & ~((buint32_t)0xfff)) | \ 12140 (((buint32_t)f) & 0xfff)) 12141 12142 #define bcm84756_a0_VLAN_MAPTABLE_42r_VLAN_VIDf_GET(c,r) \ 12143 ((((r).vlan_maptable_42[0]) >> 16) & 0xfff) 12144 12145 #define bcm84756_a0_VLAN_MAPTABLE_42r_VLAN_VIDf_SET(c,r,f) \ 12146 (r).vlan_maptable_42[0]=(((r).vlan_maptable_42[0] & ~((buint32_t)0xfff << 16)) | \ 12147 ((((buint32_t)f) & 0xfff) << 16)) 12148 12149 12150 /* 12151 * These macros can be used to access VLAN_MAPTABLE_42. 12152 */ 12153 #define bcm84756_a0_READ_VLAN_MAPTABLE_42r(c,r) \ 12154 BFCMAP_REG32_READ((c),bcm84756_a0_VLAN_MAPTABLE_42r((c)),&((r)._vlan_maptable_42)) 12155 12156 #define bcm84756_a0_WRITE_VLAN_MAPTABLE_42r(c,r) \ 12157 BFCMAP_REG32_WRITE((c),bcm84756_a0_VLAN_MAPTABLE_42r((c)),&((r)._vlan_maptable_42)) 12158 12159 /******************************************************************************* 12160 * End of 'bcm84756_a0_VLAN_MAPTABLE_42r' 12161 */ 12162 12163 12164 12165 12166 /******************************************************************************* 12167 * CHIP: bcm84756_a0 12168 * REGISTER: VLAN_MAPTABLE_43 12169 * BLOCKS: SECPORT 12170 * DESCRIPTION : 12171 * Egress Mapping Table Entry, entry 43. 12172 * 12173 * SIZE: 32 12174 * 12175 * FIELDS DESCRIPTION: 12176 * VSAN_VFID : 12177 * Lookup table entry. 12178 * 12179 * VLAN_VID : 12180 * Lookup table entry. 12181 */ 12182 #define bcm84756_a0_VLAN_MAPTABLE_43r(c) \ 12183 (0x13100047 + (BFCMAP_PORT((c)) << 12)) 12184 12185 #define bcm84756_a0_VLAN_MAPTABLE_43r_SIZE 1 12186 12187 /* 12188 * This structure should be used to declare and program VLAN_MAPTABLE_43. 12189 */ 12190 typedef union bcm84756_a0_VLAN_MAPTABLE_43r_s { 12191 buint32_t v[1]; 12192 buint32_t vlan_maptable_43[1]; 12193 buint32_t _vlan_maptable_43; 12194 } bcm84756_a0_VLAN_MAPTABLE_43r_t; 12195 12196 #define bcm84756_a0_VLAN_MAPTABLE_43r_CLR(r) \ 12197 (r).vlan_maptable_43[0] = 0 12198 12199 #define bcm84756_a0_VLAN_MAPTABLE_43r_SET(r,d) \ 12200 (r).vlan_maptable_43[0] = d 12201 12202 #define bcm84756_a0_VLAN_MAPTABLE_43r_GET(r) \ 12203 (r).vlan_maptable_43[0] 12204 12205 12206 /* 12207 * These macros can be used to access individual fields. 12208 */ 12209 #define bcm84756_a0_VLAN_MAPTABLE_43r_VSAN_VFIDf_GET(c,r) \ 12210 (((r).vlan_maptable_43[0]) & 0xfff) 12211 12212 #define bcm84756_a0_VLAN_MAPTABLE_43r_VSAN_VFIDf_SET(c,r,f) \ 12213 (r).vlan_maptable_43[0]=(((r).vlan_maptable_43[0] & ~((buint32_t)0xfff)) | \ 12214 (((buint32_t)f) & 0xfff)) 12215 12216 #define bcm84756_a0_VLAN_MAPTABLE_43r_VLAN_VIDf_GET(c,r) \ 12217 ((((r).vlan_maptable_43[0]) >> 16) & 0xfff) 12218 12219 #define bcm84756_a0_VLAN_MAPTABLE_43r_VLAN_VIDf_SET(c,r,f) \ 12220 (r).vlan_maptable_43[0]=(((r).vlan_maptable_43[0] & ~((buint32_t)0xfff << 16)) | \ 12221 ((((buint32_t)f) & 0xfff) << 16)) 12222 12223 12224 /* 12225 * These macros can be used to access VLAN_MAPTABLE_43. 12226 */ 12227 #define bcm84756_a0_READ_VLAN_MAPTABLE_43r(c,r) \ 12228 BFCMAP_REG32_READ((c),bcm84756_a0_VLAN_MAPTABLE_43r((c)),&((r)._vlan_maptable_43)) 12229 12230 #define bcm84756_a0_WRITE_VLAN_MAPTABLE_43r(c,r) \ 12231 BFCMAP_REG32_WRITE((c),bcm84756_a0_VLAN_MAPTABLE_43r((c)),&((r)._vlan_maptable_43)) 12232 12233 /******************************************************************************* 12234 * End of 'bcm84756_a0_VLAN_MAPTABLE_43r' 12235 */ 12236 12237 12238 12239 12240 /******************************************************************************* 12241 * CHIP: bcm84756_a0 12242 * REGISTER: VLAN_MAPTABLE_44 12243 * BLOCKS: SECPORT 12244 * DESCRIPTION : 12245 * Egress Mapping Table Entry, entry 44. 12246 * 12247 * SIZE: 32 12248 * 12249 * FIELDS DESCRIPTION: 12250 * VSAN_VFID : 12251 * Lookup table entry. 12252 * 12253 * VLAN_VID : 12254 * Lookup table entry. 12255 */ 12256 #define bcm84756_a0_VLAN_MAPTABLE_44r(c) \ 12257 (0x13100048 + (BFCMAP_PORT((c)) << 12)) 12258 12259 #define bcm84756_a0_VLAN_MAPTABLE_44r_SIZE 1 12260 12261 /* 12262 * This structure should be used to declare and program VLAN_MAPTABLE_44. 12263 */ 12264 typedef union bcm84756_a0_VLAN_MAPTABLE_44r_s { 12265 buint32_t v[1]; 12266 buint32_t vlan_maptable_44[1]; 12267 buint32_t _vlan_maptable_44; 12268 } bcm84756_a0_VLAN_MAPTABLE_44r_t; 12269 12270 #define bcm84756_a0_VLAN_MAPTABLE_44r_CLR(r) \ 12271 (r).vlan_maptable_44[0] = 0 12272 12273 #define bcm84756_a0_VLAN_MAPTABLE_44r_SET(r,d) \ 12274 (r).vlan_maptable_44[0] = d 12275 12276 #define bcm84756_a0_VLAN_MAPTABLE_44r_GET(r) \ 12277 (r).vlan_maptable_44[0] 12278 12279 12280 /* 12281 * These macros can be used to access individual fields. 12282 */ 12283 #define bcm84756_a0_VLAN_MAPTABLE_44r_VSAN_VFIDf_GET(c,r) \ 12284 (((r).vlan_maptable_44[0]) & 0xfff) 12285 12286 #define bcm84756_a0_VLAN_MAPTABLE_44r_VSAN_VFIDf_SET(c,r,f) \ 12287 (r).vlan_maptable_44[0]=(((r).vlan_maptable_44[0] & ~((buint32_t)0xfff)) | \ 12288 (((buint32_t)f) & 0xfff)) 12289 12290 #define bcm84756_a0_VLAN_MAPTABLE_44r_VLAN_VIDf_GET(c,r) \ 12291 ((((r).vlan_maptable_44[0]) >> 16) & 0xfff) 12292 12293 #define bcm84756_a0_VLAN_MAPTABLE_44r_VLAN_VIDf_SET(c,r,f) \ 12294 (r).vlan_maptable_44[0]=(((r).vlan_maptable_44[0] & ~((buint32_t)0xfff << 16)) | \ 12295 ((((buint32_t)f) & 0xfff) << 16)) 12296 12297 12298 /* 12299 * These macros can be used to access VLAN_MAPTABLE_44. 12300 */ 12301 #define bcm84756_a0_READ_VLAN_MAPTABLE_44r(c,r) \ 12302 BFCMAP_REG32_READ((c),bcm84756_a0_VLAN_MAPTABLE_44r((c)),&((r)._vlan_maptable_44)) 12303 12304 #define bcm84756_a0_WRITE_VLAN_MAPTABLE_44r(c,r) \ 12305 BFCMAP_REG32_WRITE((c),bcm84756_a0_VLAN_MAPTABLE_44r((c)),&((r)._vlan_maptable_44)) 12306 12307 /******************************************************************************* 12308 * End of 'bcm84756_a0_VLAN_MAPTABLE_44r' 12309 */ 12310 12311 12312 12313 12314 /******************************************************************************* 12315 * CHIP: bcm84756_a0 12316 * REGISTER: VLAN_MAPTABLE_45 12317 * BLOCKS: SECPORT 12318 * DESCRIPTION : 12319 * Egress Mapping Table Entry, entry 45. 12320 * 12321 * SIZE: 32 12322 * 12323 * FIELDS DESCRIPTION: 12324 * VSAN_VFID : 12325 * Lookup table entry. 12326 * 12327 * VLAN_VID : 12328 * Lookup table entry. 12329 */ 12330 #define bcm84756_a0_VLAN_MAPTABLE_45r(c) \ 12331 (0x13100049 + (BFCMAP_PORT((c)) << 12)) 12332 12333 #define bcm84756_a0_VLAN_MAPTABLE_45r_SIZE 1 12334 12335 /* 12336 * This structure should be used to declare and program VLAN_MAPTABLE_45. 12337 */ 12338 typedef union bcm84756_a0_VLAN_MAPTABLE_45r_s { 12339 buint32_t v[1]; 12340 buint32_t vlan_maptable_45[1]; 12341 buint32_t _vlan_maptable_45; 12342 } bcm84756_a0_VLAN_MAPTABLE_45r_t; 12343 12344 #define bcm84756_a0_VLAN_MAPTABLE_45r_CLR(r) \ 12345 (r).vlan_maptable_45[0] = 0 12346 12347 #define bcm84756_a0_VLAN_MAPTABLE_45r_SET(r,d) \ 12348 (r).vlan_maptable_45[0] = d 12349 12350 #define bcm84756_a0_VLAN_MAPTABLE_45r_GET(r) \ 12351 (r).vlan_maptable_45[0] 12352 12353 12354 /* 12355 * These macros can be used to access individual fields. 12356 */ 12357 #define bcm84756_a0_VLAN_MAPTABLE_45r_VSAN_VFIDf_GET(c,r) \ 12358 (((r).vlan_maptable_45[0]) & 0xfff) 12359 12360 #define bcm84756_a0_VLAN_MAPTABLE_45r_VSAN_VFIDf_SET(c,r,f) \ 12361 (r).vlan_maptable_45[0]=(((r).vlan_maptable_45[0] & ~((buint32_t)0xfff)) | \ 12362 (((buint32_t)f) & 0xfff)) 12363 12364 #define bcm84756_a0_VLAN_MAPTABLE_45r_VLAN_VIDf_GET(c,r) \ 12365 ((((r).vlan_maptable_45[0]) >> 16) & 0xfff) 12366 12367 #define bcm84756_a0_VLAN_MAPTABLE_45r_VLAN_VIDf_SET(c,r,f) \ 12368 (r).vlan_maptable_45[0]=(((r).vlan_maptable_45[0] & ~((buint32_t)0xfff << 16)) | \ 12369 ((((buint32_t)f) & 0xfff) << 16)) 12370 12371 12372 /* 12373 * These macros can be used to access VLAN_MAPTABLE_45. 12374 */ 12375 #define bcm84756_a0_READ_VLAN_MAPTABLE_45r(c,r) \ 12376 BFCMAP_REG32_READ((c),bcm84756_a0_VLAN_MAPTABLE_45r((c)),&((r)._vlan_maptable_45)) 12377 12378 #define bcm84756_a0_WRITE_VLAN_MAPTABLE_45r(c,r) \ 12379 BFCMAP_REG32_WRITE((c),bcm84756_a0_VLAN_MAPTABLE_45r((c)),&((r)._vlan_maptable_45)) 12380 12381 /******************************************************************************* 12382 * End of 'bcm84756_a0_VLAN_MAPTABLE_45r' 12383 */ 12384 12385 12386 12387 12388 /******************************************************************************* 12389 * CHIP: bcm84756_a0 12390 * REGISTER: VLAN_MAPTABLE_46 12391 * BLOCKS: SECPORT 12392 * DESCRIPTION : 12393 * Egress Mapping Table Entry, entry 46. 12394 * 12395 * SIZE: 32 12396 * 12397 * FIELDS DESCRIPTION: 12398 * VSAN_VFID : 12399 * Lookup table entry. 12400 * 12401 * VLAN_VID : 12402 * Lookup table entry. 12403 */ 12404 #define bcm84756_a0_VLAN_MAPTABLE_46r(c) \ 12405 (0x1310004a + (BFCMAP_PORT((c)) << 12)) 12406 12407 #define bcm84756_a0_VLAN_MAPTABLE_46r_SIZE 1 12408 12409 /* 12410 * This structure should be used to declare and program VLAN_MAPTABLE_46. 12411 */ 12412 typedef union bcm84756_a0_VLAN_MAPTABLE_46r_s { 12413 buint32_t v[1]; 12414 buint32_t vlan_maptable_46[1]; 12415 buint32_t _vlan_maptable_46; 12416 } bcm84756_a0_VLAN_MAPTABLE_46r_t; 12417 12418 #define bcm84756_a0_VLAN_MAPTABLE_46r_CLR(r) \ 12419 (r).vlan_maptable_46[0] = 0 12420 12421 #define bcm84756_a0_VLAN_MAPTABLE_46r_SET(r,d) \ 12422 (r).vlan_maptable_46[0] = d 12423 12424 #define bcm84756_a0_VLAN_MAPTABLE_46r_GET(r) \ 12425 (r).vlan_maptable_46[0] 12426 12427 12428 /* 12429 * These macros can be used to access individual fields. 12430 */ 12431 #define bcm84756_a0_VLAN_MAPTABLE_46r_VSAN_VFIDf_GET(c,r) \ 12432 (((r).vlan_maptable_46[0]) & 0xfff) 12433 12434 #define bcm84756_a0_VLAN_MAPTABLE_46r_VSAN_VFIDf_SET(c,r,f) \ 12435 (r).vlan_maptable_46[0]=(((r).vlan_maptable_46[0] & ~((buint32_t)0xfff)) | \ 12436 (((buint32_t)f) & 0xfff)) 12437 12438 #define bcm84756_a0_VLAN_MAPTABLE_46r_VLAN_VIDf_GET(c,r) \ 12439 ((((r).vlan_maptable_46[0]) >> 16) & 0xfff) 12440 12441 #define bcm84756_a0_VLAN_MAPTABLE_46r_VLAN_VIDf_SET(c,r,f) \ 12442 (r).vlan_maptable_46[0]=(((r).vlan_maptable_46[0] & ~((buint32_t)0xfff << 16)) | \ 12443 ((((buint32_t)f) & 0xfff) << 16)) 12444 12445 12446 /* 12447 * These macros can be used to access VLAN_MAPTABLE_46. 12448 */ 12449 #define bcm84756_a0_READ_VLAN_MAPTABLE_46r(c,r) \ 12450 BFCMAP_REG32_READ((c),bcm84756_a0_VLAN_MAPTABLE_46r((c)),&((r)._vlan_maptable_46)) 12451 12452 #define bcm84756_a0_WRITE_VLAN_MAPTABLE_46r(c,r) \ 12453 BFCMAP_REG32_WRITE((c),bcm84756_a0_VLAN_MAPTABLE_46r((c)),&((r)._vlan_maptable_46)) 12454 12455 /******************************************************************************* 12456 * End of 'bcm84756_a0_VLAN_MAPTABLE_46r' 12457 */ 12458 12459 12460 12461 12462 /******************************************************************************* 12463 * CHIP: bcm84756_a0 12464 * REGISTER: VLAN_MAPTABLE_47 12465 * BLOCKS: SECPORT 12466 * DESCRIPTION : 12467 * Egress Mapping Table Entry, entry 47. 12468 * 12469 * SIZE: 32 12470 * 12471 * FIELDS DESCRIPTION: 12472 * VSAN_VFID : 12473 * Lookup table entry. 12474 * 12475 * VLAN_VID : 12476 * Lookup table entry. 12477 */ 12478 #define bcm84756_a0_VLAN_MAPTABLE_47r(c) \ 12479 (0x1310004b + (BFCMAP_PORT((c)) << 12)) 12480 12481 #define bcm84756_a0_VLAN_MAPTABLE_47r_SIZE 1 12482 12483 /* 12484 * This structure should be used to declare and program VLAN_MAPTABLE_47. 12485 */ 12486 typedef union bcm84756_a0_VLAN_MAPTABLE_47r_s { 12487 buint32_t v[1]; 12488 buint32_t vlan_maptable_47[1]; 12489 buint32_t _vlan_maptable_47; 12490 } bcm84756_a0_VLAN_MAPTABLE_47r_t; 12491 12492 #define bcm84756_a0_VLAN_MAPTABLE_47r_CLR(r) \ 12493 (r).vlan_maptable_47[0] = 0 12494 12495 #define bcm84756_a0_VLAN_MAPTABLE_47r_SET(r,d) \ 12496 (r).vlan_maptable_47[0] = d 12497 12498 #define bcm84756_a0_VLAN_MAPTABLE_47r_GET(r) \ 12499 (r).vlan_maptable_47[0] 12500 12501 12502 /* 12503 * These macros can be used to access individual fields. 12504 */ 12505 #define bcm84756_a0_VLAN_MAPTABLE_47r_VSAN_VFIDf_GET(c,r) \ 12506 (((r).vlan_maptable_47[0]) & 0xfff) 12507 12508 #define bcm84756_a0_VLAN_MAPTABLE_47r_VSAN_VFIDf_SET(c,r,f) \ 12509 (r).vlan_maptable_47[0]=(((r).vlan_maptable_47[0] & ~((buint32_t)0xfff)) | \ 12510 (((buint32_t)f) & 0xfff)) 12511 12512 #define bcm84756_a0_VLAN_MAPTABLE_47r_VLAN_VIDf_GET(c,r) \ 12513 ((((r).vlan_maptable_47[0]) >> 16) & 0xfff) 12514 12515 #define bcm84756_a0_VLAN_MAPTABLE_47r_VLAN_VIDf_SET(c,r,f) \ 12516 (r).vlan_maptable_47[0]=(((r).vlan_maptable_47[0] & ~((buint32_t)0xfff << 16)) | \ 12517 ((((buint32_t)f) & 0xfff) << 16)) 12518 12519 12520 /* 12521 * These macros can be used to access VLAN_MAPTABLE_47. 12522 */ 12523 #define bcm84756_a0_READ_VLAN_MAPTABLE_47r(c,r) \ 12524 BFCMAP_REG32_READ((c),bcm84756_a0_VLAN_MAPTABLE_47r((c)),&((r)._vlan_maptable_47)) 12525 12526 #define bcm84756_a0_WRITE_VLAN_MAPTABLE_47r(c,r) \ 12527 BFCMAP_REG32_WRITE((c),bcm84756_a0_VLAN_MAPTABLE_47r((c)),&((r)._vlan_maptable_47)) 12528 12529 /******************************************************************************* 12530 * End of 'bcm84756_a0_VLAN_MAPTABLE_47r' 12531 */ 12532 12533 12534 12535 12536 /******************************************************************************* 12537 * CHIP: bcm84756_a0 12538 * REGISTER: VLAN_MAPTABLE_48 12539 * BLOCKS: SECPORT 12540 * DESCRIPTION : 12541 * Egress Mapping Table Entry, entry 48. 12542 * 12543 * SIZE: 32 12544 * 12545 * FIELDS DESCRIPTION: 12546 * VSAN_VFID : 12547 * Lookup table entry. 12548 * 12549 * VLAN_VID : 12550 * Lookup table entry. 12551 */ 12552 #define bcm84756_a0_VLAN_MAPTABLE_48r(c) \ 12553 (0x1310004c + (BFCMAP_PORT((c)) << 12)) 12554 12555 #define bcm84756_a0_VLAN_MAPTABLE_48r_SIZE 1 12556 12557 /* 12558 * This structure should be used to declare and program VLAN_MAPTABLE_48. 12559 */ 12560 typedef union bcm84756_a0_VLAN_MAPTABLE_48r_s { 12561 buint32_t v[1]; 12562 buint32_t vlan_maptable_48[1]; 12563 buint32_t _vlan_maptable_48; 12564 } bcm84756_a0_VLAN_MAPTABLE_48r_t; 12565 12566 #define bcm84756_a0_VLAN_MAPTABLE_48r_CLR(r) \ 12567 (r).vlan_maptable_48[0] = 0 12568 12569 #define bcm84756_a0_VLAN_MAPTABLE_48r_SET(r,d) \ 12570 (r).vlan_maptable_48[0] = d 12571 12572 #define bcm84756_a0_VLAN_MAPTABLE_48r_GET(r) \ 12573 (r).vlan_maptable_48[0] 12574 12575 12576 /* 12577 * These macros can be used to access individual fields. 12578 */ 12579 #define bcm84756_a0_VLAN_MAPTABLE_48r_VSAN_VFIDf_GET(c,r) \ 12580 (((r).vlan_maptable_48[0]) & 0xfff) 12581 12582 #define bcm84756_a0_VLAN_MAPTABLE_48r_VSAN_VFIDf_SET(c,r,f) \ 12583 (r).vlan_maptable_48[0]=(((r).vlan_maptable_48[0] & ~((buint32_t)0xfff)) | \ 12584 (((buint32_t)f) & 0xfff)) 12585 12586 #define bcm84756_a0_VLAN_MAPTABLE_48r_VLAN_VIDf_GET(c,r) \ 12587 ((((r).vlan_maptable_48[0]) >> 16) & 0xfff) 12588 12589 #define bcm84756_a0_VLAN_MAPTABLE_48r_VLAN_VIDf_SET(c,r,f) \ 12590 (r).vlan_maptable_48[0]=(((r).vlan_maptable_48[0] & ~((buint32_t)0xfff << 16)) | \ 12591 ((((buint32_t)f) & 0xfff) << 16)) 12592 12593 12594 /* 12595 * These macros can be used to access VLAN_MAPTABLE_48. 12596 */ 12597 #define bcm84756_a0_READ_VLAN_MAPTABLE_48r(c,r) \ 12598 BFCMAP_REG32_READ((c),bcm84756_a0_VLAN_MAPTABLE_48r((c)),&((r)._vlan_maptable_48)) 12599 12600 #define bcm84756_a0_WRITE_VLAN_MAPTABLE_48r(c,r) \ 12601 BFCMAP_REG32_WRITE((c),bcm84756_a0_VLAN_MAPTABLE_48r((c)),&((r)._vlan_maptable_48)) 12602 12603 /******************************************************************************* 12604 * End of 'bcm84756_a0_VLAN_MAPTABLE_48r' 12605 */ 12606 12607 12608 12609 12610 /******************************************************************************* 12611 * CHIP: bcm84756_a0 12612 * REGISTER: VLAN_MAPTABLE_49 12613 * BLOCKS: SECPORT 12614 * DESCRIPTION : 12615 * Egress Mapping Table Entry, entry 49. 12616 * 12617 * SIZE: 32 12618 * 12619 * FIELDS DESCRIPTION: 12620 * VSAN_VFID : 12621 * Lookup table entry. 12622 * 12623 * VLAN_VID : 12624 * Lookup table entry. 12625 */ 12626 #define bcm84756_a0_VLAN_MAPTABLE_49r(c) \ 12627 (0x1310004d + (BFCMAP_PORT((c)) << 12)) 12628 12629 #define bcm84756_a0_VLAN_MAPTABLE_49r_SIZE 1 12630 12631 /* 12632 * This structure should be used to declare and program VLAN_MAPTABLE_49. 12633 */ 12634 typedef union bcm84756_a0_VLAN_MAPTABLE_49r_s { 12635 buint32_t v[1]; 12636 buint32_t vlan_maptable_49[1]; 12637 buint32_t _vlan_maptable_49; 12638 } bcm84756_a0_VLAN_MAPTABLE_49r_t; 12639 12640 #define bcm84756_a0_VLAN_MAPTABLE_49r_CLR(r) \ 12641 (r).vlan_maptable_49[0] = 0 12642 12643 #define bcm84756_a0_VLAN_MAPTABLE_49r_SET(r,d) \ 12644 (r).vlan_maptable_49[0] = d 12645 12646 #define bcm84756_a0_VLAN_MAPTABLE_49r_GET(r) \ 12647 (r).vlan_maptable_49[0] 12648 12649 12650 /* 12651 * These macros can be used to access individual fields. 12652 */ 12653 #define bcm84756_a0_VLAN_MAPTABLE_49r_VSAN_VFIDf_GET(c,r) \ 12654 (((r).vlan_maptable_49[0]) & 0xfff) 12655 12656 #define bcm84756_a0_VLAN_MAPTABLE_49r_VSAN_VFIDf_SET(c,r,f) \ 12657 (r).vlan_maptable_49[0]=(((r).vlan_maptable_49[0] & ~((buint32_t)0xfff)) | \ 12658 (((buint32_t)f) & 0xfff)) 12659 12660 #define bcm84756_a0_VLAN_MAPTABLE_49r_VLAN_VIDf_GET(c,r) \ 12661 ((((r).vlan_maptable_49[0]) >> 16) & 0xfff) 12662 12663 #define bcm84756_a0_VLAN_MAPTABLE_49r_VLAN_VIDf_SET(c,r,f) \ 12664 (r).vlan_maptable_49[0]=(((r).vlan_maptable_49[0] & ~((buint32_t)0xfff << 16)) | \ 12665 ((((buint32_t)f) & 0xfff) << 16)) 12666 12667 12668 /* 12669 * These macros can be used to access VLAN_MAPTABLE_49. 12670 */ 12671 #define bcm84756_a0_READ_VLAN_MAPTABLE_49r(c,r) \ 12672 BFCMAP_REG32_READ((c),bcm84756_a0_VLAN_MAPTABLE_49r((c)),&((r)._vlan_maptable_49)) 12673 12674 #define bcm84756_a0_WRITE_VLAN_MAPTABLE_49r(c,r) \ 12675 BFCMAP_REG32_WRITE((c),bcm84756_a0_VLAN_MAPTABLE_49r((c)),&((r)._vlan_maptable_49)) 12676 12677 /******************************************************************************* 12678 * End of 'bcm84756_a0_VLAN_MAPTABLE_49r' 12679 */ 12680 12681 12682 12683 12684 /******************************************************************************* 12685 * CHIP: bcm84756_a0 12686 * REGISTER: VLAN_MAPTABLE_5 12687 * BLOCKS: SECPORT 12688 * DESCRIPTION : 12689 * Egress Mapping Table Entry, entry 5. 12690 * 12691 * SIZE: 32 12692 * 12693 * FIELDS DESCRIPTION: 12694 * VSAN_VFID : 12695 * Lookup table entry. 12696 * 12697 * VLAN_VID : 12698 * Lookup table entry. 12699 */ 12700 #define bcm84756_a0_VLAN_MAPTABLE_5r(c) \ 12701 (0x13100021 + (BFCMAP_PORT((c)) << 12)) 12702 12703 #define bcm84756_a0_VLAN_MAPTABLE_5r_SIZE 1 12704 12705 /* 12706 * This structure should be used to declare and program VLAN_MAPTABLE_5. 12707 */ 12708 typedef union bcm84756_a0_VLAN_MAPTABLE_5r_s { 12709 buint32_t v[1]; 12710 buint32_t vlan_maptable_5[1]; 12711 buint32_t _vlan_maptable_5; 12712 } bcm84756_a0_VLAN_MAPTABLE_5r_t; 12713 12714 #define bcm84756_a0_VLAN_MAPTABLE_5r_CLR(r) \ 12715 (r).vlan_maptable_5[0] = 0 12716 12717 #define bcm84756_a0_VLAN_MAPTABLE_5r_SET(r,d) \ 12718 (r).vlan_maptable_5[0] = d 12719 12720 #define bcm84756_a0_VLAN_MAPTABLE_5r_GET(r) \ 12721 (r).vlan_maptable_5[0] 12722 12723 12724 /* 12725 * These macros can be used to access individual fields. 12726 */ 12727 #define bcm84756_a0_VLAN_MAPTABLE_5r_VSAN_VFIDf_GET(c,r) \ 12728 (((r).vlan_maptable_5[0]) & 0xfff) 12729 12730 #define bcm84756_a0_VLAN_MAPTABLE_5r_VSAN_VFIDf_SET(c,r,f) \ 12731 (r).vlan_maptable_5[0]=(((r).vlan_maptable_5[0] & ~((buint32_t)0xfff)) | \ 12732 (((buint32_t)f) & 0xfff)) 12733 12734 #define bcm84756_a0_VLAN_MAPTABLE_5r_VLAN_VIDf_GET(c,r) \ 12735 ((((r).vlan_maptable_5[0]) >> 16) & 0xfff) 12736 12737 #define bcm84756_a0_VLAN_MAPTABLE_5r_VLAN_VIDf_SET(c,r,f) \ 12738 (r).vlan_maptable_5[0]=(((r).vlan_maptable_5[0] & ~((buint32_t)0xfff << 16)) | \ 12739 ((((buint32_t)f) & 0xfff) << 16)) 12740 12741 12742 /* 12743 * These macros can be used to access VLAN_MAPTABLE_5. 12744 */ 12745 #define bcm84756_a0_READ_VLAN_MAPTABLE_5r(c,r) \ 12746 BFCMAP_REG32_READ((c),bcm84756_a0_VLAN_MAPTABLE_5r((c)),&((r)._vlan_maptable_5)) 12747 12748 #define bcm84756_a0_WRITE_VLAN_MAPTABLE_5r(c,r) \ 12749 BFCMAP_REG32_WRITE((c),bcm84756_a0_VLAN_MAPTABLE_5r((c)),&((r)._vlan_maptable_5)) 12750 12751 /******************************************************************************* 12752 * End of 'bcm84756_a0_VLAN_MAPTABLE_5r' 12753 */ 12754 12755 12756 12757 12758 /******************************************************************************* 12759 * CHIP: bcm84756_a0 12760 * REGISTER: VLAN_MAPTABLE_50 12761 * BLOCKS: SECPORT 12762 * DESCRIPTION : 12763 * Egress Mapping Table Entry, entry 50. 12764 * 12765 * SIZE: 32 12766 * 12767 * FIELDS DESCRIPTION: 12768 * VSAN_VFID : 12769 * Lookup table entry. 12770 * 12771 * VLAN_VID : 12772 * Lookup table entry. 12773 */ 12774 #define bcm84756_a0_VLAN_MAPTABLE_50r(c) \ 12775 (0x1310004e + (BFCMAP_PORT((c)) << 12)) 12776 12777 #define bcm84756_a0_VLAN_MAPTABLE_50r_SIZE 1 12778 12779 /* 12780 * This structure should be used to declare and program VLAN_MAPTABLE_50. 12781 */ 12782 typedef union bcm84756_a0_VLAN_MAPTABLE_50r_s { 12783 buint32_t v[1]; 12784 buint32_t vlan_maptable_50[1]; 12785 buint32_t _vlan_maptable_50; 12786 } bcm84756_a0_VLAN_MAPTABLE_50r_t; 12787 12788 #define bcm84756_a0_VLAN_MAPTABLE_50r_CLR(r) \ 12789 (r).vlan_maptable_50[0] = 0 12790 12791 #define bcm84756_a0_VLAN_MAPTABLE_50r_SET(r,d) \ 12792 (r).vlan_maptable_50[0] = d 12793 12794 #define bcm84756_a0_VLAN_MAPTABLE_50r_GET(r) \ 12795 (r).vlan_maptable_50[0] 12796 12797 12798 /* 12799 * These macros can be used to access individual fields. 12800 */ 12801 #define bcm84756_a0_VLAN_MAPTABLE_50r_VSAN_VFIDf_GET(c,r) \ 12802 (((r).vlan_maptable_50[0]) & 0xfff) 12803 12804 #define bcm84756_a0_VLAN_MAPTABLE_50r_VSAN_VFIDf_SET(c,r,f) \ 12805 (r).vlan_maptable_50[0]=(((r).vlan_maptable_50[0] & ~((buint32_t)0xfff)) | \ 12806 (((buint32_t)f) & 0xfff)) 12807 12808 #define bcm84756_a0_VLAN_MAPTABLE_50r_VLAN_VIDf_GET(c,r) \ 12809 ((((r).vlan_maptable_50[0]) >> 16) & 0xfff) 12810 12811 #define bcm84756_a0_VLAN_MAPTABLE_50r_VLAN_VIDf_SET(c,r,f) \ 12812 (r).vlan_maptable_50[0]=(((r).vlan_maptable_50[0] & ~((buint32_t)0xfff << 16)) | \ 12813 ((((buint32_t)f) & 0xfff) << 16)) 12814 12815 12816 /* 12817 * These macros can be used to access VLAN_MAPTABLE_50. 12818 */ 12819 #define bcm84756_a0_READ_VLAN_MAPTABLE_50r(c,r) \ 12820 BFCMAP_REG32_READ((c),bcm84756_a0_VLAN_MAPTABLE_50r((c)),&((r)._vlan_maptable_50)) 12821 12822 #define bcm84756_a0_WRITE_VLAN_MAPTABLE_50r(c,r) \ 12823 BFCMAP_REG32_WRITE((c),bcm84756_a0_VLAN_MAPTABLE_50r((c)),&((r)._vlan_maptable_50)) 12824 12825 /******************************************************************************* 12826 * End of 'bcm84756_a0_VLAN_MAPTABLE_50r' 12827 */ 12828 12829 12830 12831 12832 /******************************************************************************* 12833 * CHIP: bcm84756_a0 12834 * REGISTER: VLAN_MAPTABLE_51 12835 * BLOCKS: SECPORT 12836 * DESCRIPTION : 12837 * Egress Mapping Table Entry, entry 51. 12838 * 12839 * SIZE: 32 12840 * 12841 * FIELDS DESCRIPTION: 12842 * VSAN_VFID : 12843 * Lookup table entry. 12844 * 12845 * VLAN_VID : 12846 * Lookup table entry. 12847 */ 12848 #define bcm84756_a0_VLAN_MAPTABLE_51r(c) \ 12849 (0x1310004f + (BFCMAP_PORT((c)) << 12)) 12850 12851 #define bcm84756_a0_VLAN_MAPTABLE_51r_SIZE 1 12852 12853 /* 12854 * This structure should be used to declare and program VLAN_MAPTABLE_51. 12855 */ 12856 typedef union bcm84756_a0_VLAN_MAPTABLE_51r_s { 12857 buint32_t v[1]; 12858 buint32_t vlan_maptable_51[1]; 12859 buint32_t _vlan_maptable_51; 12860 } bcm84756_a0_VLAN_MAPTABLE_51r_t; 12861 12862 #define bcm84756_a0_VLAN_MAPTABLE_51r_CLR(r) \ 12863 (r).vlan_maptable_51[0] = 0 12864 12865 #define bcm84756_a0_VLAN_MAPTABLE_51r_SET(r,d) \ 12866 (r).vlan_maptable_51[0] = d 12867 12868 #define bcm84756_a0_VLAN_MAPTABLE_51r_GET(r) \ 12869 (r).vlan_maptable_51[0] 12870 12871 12872 /* 12873 * These macros can be used to access individual fields. 12874 */ 12875 #define bcm84756_a0_VLAN_MAPTABLE_51r_VSAN_VFIDf_GET(c,r) \ 12876 (((r).vlan_maptable_51[0]) & 0xfff) 12877 12878 #define bcm84756_a0_VLAN_MAPTABLE_51r_VSAN_VFIDf_SET(c,r,f) \ 12879 (r).vlan_maptable_51[0]=(((r).vlan_maptable_51[0] & ~((buint32_t)0xfff)) | \ 12880 (((buint32_t)f) & 0xfff)) 12881 12882 #define bcm84756_a0_VLAN_MAPTABLE_51r_VLAN_VIDf_GET(c,r) \ 12883 ((((r).vlan_maptable_51[0]) >> 16) & 0xfff) 12884 12885 #define bcm84756_a0_VLAN_MAPTABLE_51r_VLAN_VIDf_SET(c,r,f) \ 12886 (r).vlan_maptable_51[0]=(((r).vlan_maptable_51[0] & ~((buint32_t)0xfff << 16)) | \ 12887 ((((buint32_t)f) & 0xfff) << 16)) 12888 12889 12890 /* 12891 * These macros can be used to access VLAN_MAPTABLE_51. 12892 */ 12893 #define bcm84756_a0_READ_VLAN_MAPTABLE_51r(c,r) \ 12894 BFCMAP_REG32_READ((c),bcm84756_a0_VLAN_MAPTABLE_51r((c)),&((r)._vlan_maptable_51)) 12895 12896 #define bcm84756_a0_WRITE_VLAN_MAPTABLE_51r(c,r) \ 12897 BFCMAP_REG32_WRITE((c),bcm84756_a0_VLAN_MAPTABLE_51r((c)),&((r)._vlan_maptable_51)) 12898 12899 /******************************************************************************* 12900 * End of 'bcm84756_a0_VLAN_MAPTABLE_51r' 12901 */ 12902 12903 12904 12905 12906 /******************************************************************************* 12907 * CHIP: bcm84756_a0 12908 * REGISTER: VLAN_MAPTABLE_52 12909 * BLOCKS: SECPORT 12910 * DESCRIPTION : 12911 * Egress Mapping Table Entry, entry 52. 12912 * 12913 * SIZE: 32 12914 * 12915 * FIELDS DESCRIPTION: 12916 * VSAN_VFID : 12917 * Lookup table entry. 12918 * 12919 * VLAN_VID : 12920 * Lookup table entry. 12921 */ 12922 #define bcm84756_a0_VLAN_MAPTABLE_52r(c) \ 12923 (0x13100050 + (BFCMAP_PORT((c)) << 12)) 12924 12925 #define bcm84756_a0_VLAN_MAPTABLE_52r_SIZE 1 12926 12927 /* 12928 * This structure should be used to declare and program VLAN_MAPTABLE_52. 12929 */ 12930 typedef union bcm84756_a0_VLAN_MAPTABLE_52r_s { 12931 buint32_t v[1]; 12932 buint32_t vlan_maptable_52[1]; 12933 buint32_t _vlan_maptable_52; 12934 } bcm84756_a0_VLAN_MAPTABLE_52r_t; 12935 12936 #define bcm84756_a0_VLAN_MAPTABLE_52r_CLR(r) \ 12937 (r).vlan_maptable_52[0] = 0 12938 12939 #define bcm84756_a0_VLAN_MAPTABLE_52r_SET(r,d) \ 12940 (r).vlan_maptable_52[0] = d 12941 12942 #define bcm84756_a0_VLAN_MAPTABLE_52r_GET(r) \ 12943 (r).vlan_maptable_52[0] 12944 12945 12946 /* 12947 * These macros can be used to access individual fields. 12948 */ 12949 #define bcm84756_a0_VLAN_MAPTABLE_52r_VSAN_VFIDf_GET(c,r) \ 12950 (((r).vlan_maptable_52[0]) & 0xfff) 12951 12952 #define bcm84756_a0_VLAN_MAPTABLE_52r_VSAN_VFIDf_SET(c,r,f) \ 12953 (r).vlan_maptable_52[0]=(((r).vlan_maptable_52[0] & ~((buint32_t)0xfff)) | \ 12954 (((buint32_t)f) & 0xfff)) 12955 12956 #define bcm84756_a0_VLAN_MAPTABLE_52r_VLAN_VIDf_GET(c,r) \ 12957 ((((r).vlan_maptable_52[0]) >> 16) & 0xfff) 12958 12959 #define bcm84756_a0_VLAN_MAPTABLE_52r_VLAN_VIDf_SET(c,r,f) \ 12960 (r).vlan_maptable_52[0]=(((r).vlan_maptable_52[0] & ~((buint32_t)0xfff << 16)) | \ 12961 ((((buint32_t)f) & 0xfff) << 16)) 12962 12963 12964 /* 12965 * These macros can be used to access VLAN_MAPTABLE_52. 12966 */ 12967 #define bcm84756_a0_READ_VLAN_MAPTABLE_52r(c,r) \ 12968 BFCMAP_REG32_READ((c),bcm84756_a0_VLAN_MAPTABLE_52r((c)),&((r)._vlan_maptable_52)) 12969 12970 #define bcm84756_a0_WRITE_VLAN_MAPTABLE_52r(c,r) \ 12971 BFCMAP_REG32_WRITE((c),bcm84756_a0_VLAN_MAPTABLE_52r((c)),&((r)._vlan_maptable_52)) 12972 12973 /******************************************************************************* 12974 * End of 'bcm84756_a0_VLAN_MAPTABLE_52r' 12975 */ 12976 12977 12978 12979 12980 /******************************************************************************* 12981 * CHIP: bcm84756_a0 12982 * REGISTER: VLAN_MAPTABLE_53 12983 * BLOCKS: SECPORT 12984 * DESCRIPTION : 12985 * Egress Mapping Table Entry, entry 53. 12986 * 12987 * SIZE: 32 12988 * 12989 * FIELDS DESCRIPTION: 12990 * VSAN_VFID : 12991 * Lookup table entry. 12992 * 12993 * VLAN_VID : 12994 * Lookup table entry. 12995 */ 12996 #define bcm84756_a0_VLAN_MAPTABLE_53r(c) \ 12997 (0x13100051 + (BFCMAP_PORT((c)) << 12)) 12998 12999 #define bcm84756_a0_VLAN_MAPTABLE_53r_SIZE 1 13000 13001 /* 13002 * This structure should be used to declare and program VLAN_MAPTABLE_53. 13003 */ 13004 typedef union bcm84756_a0_VLAN_MAPTABLE_53r_s { 13005 buint32_t v[1]; 13006 buint32_t vlan_maptable_53[1]; 13007 buint32_t _vlan_maptable_53; 13008 } bcm84756_a0_VLAN_MAPTABLE_53r_t; 13009 13010 #define bcm84756_a0_VLAN_MAPTABLE_53r_CLR(r) \ 13011 (r).vlan_maptable_53[0] = 0 13012 13013 #define bcm84756_a0_VLAN_MAPTABLE_53r_SET(r,d) \ 13014 (r).vlan_maptable_53[0] = d 13015 13016 #define bcm84756_a0_VLAN_MAPTABLE_53r_GET(r) \ 13017 (r).vlan_maptable_53[0] 13018 13019 13020 /* 13021 * These macros can be used to access individual fields. 13022 */ 13023 #define bcm84756_a0_VLAN_MAPTABLE_53r_VSAN_VFIDf_GET(c,r) \ 13024 (((r).vlan_maptable_53[0]) & 0xfff) 13025 13026 #define bcm84756_a0_VLAN_MAPTABLE_53r_VSAN_VFIDf_SET(c,r,f) \ 13027 (r).vlan_maptable_53[0]=(((r).vlan_maptable_53[0] & ~((buint32_t)0xfff)) | \ 13028 (((buint32_t)f) & 0xfff)) 13029 13030 #define bcm84756_a0_VLAN_MAPTABLE_53r_VLAN_VIDf_GET(c,r) \ 13031 ((((r).vlan_maptable_53[0]) >> 16) & 0xfff) 13032 13033 #define bcm84756_a0_VLAN_MAPTABLE_53r_VLAN_VIDf_SET(c,r,f) \ 13034 (r).vlan_maptable_53[0]=(((r).vlan_maptable_53[0] & ~((buint32_t)0xfff << 16)) | \ 13035 ((((buint32_t)f) & 0xfff) << 16)) 13036 13037 13038 /* 13039 * These macros can be used to access VLAN_MAPTABLE_53. 13040 */ 13041 #define bcm84756_a0_READ_VLAN_MAPTABLE_53r(c,r) \ 13042 BFCMAP_REG32_READ((c),bcm84756_a0_VLAN_MAPTABLE_53r((c)),&((r)._vlan_maptable_53)) 13043 13044 #define bcm84756_a0_WRITE_VLAN_MAPTABLE_53r(c,r) \ 13045 BFCMAP_REG32_WRITE((c),bcm84756_a0_VLAN_MAPTABLE_53r((c)),&((r)._vlan_maptable_53)) 13046 13047 /******************************************************************************* 13048 * End of 'bcm84756_a0_VLAN_MAPTABLE_53r' 13049 */ 13050 13051 13052 13053 13054 /******************************************************************************* 13055 * CHIP: bcm84756_a0 13056 * REGISTER: VLAN_MAPTABLE_54 13057 * BLOCKS: SECPORT 13058 * DESCRIPTION : 13059 * Egress Mapping Table Entry, entry 54. 13060 * 13061 * SIZE: 32 13062 * 13063 * FIELDS DESCRIPTION: 13064 * VSAN_VFID : 13065 * Lookup table entry. 13066 * 13067 * VLAN_VID : 13068 * Lookup table entry. 13069 */ 13070 #define bcm84756_a0_VLAN_MAPTABLE_54r(c) \ 13071 (0x13100052 + (BFCMAP_PORT((c)) << 12)) 13072 13073 #define bcm84756_a0_VLAN_MAPTABLE_54r_SIZE 1 13074 13075 /* 13076 * This structure should be used to declare and program VLAN_MAPTABLE_54. 13077 */ 13078 typedef union bcm84756_a0_VLAN_MAPTABLE_54r_s { 13079 buint32_t v[1]; 13080 buint32_t vlan_maptable_54[1]; 13081 buint32_t _vlan_maptable_54; 13082 } bcm84756_a0_VLAN_MAPTABLE_54r_t; 13083 13084 #define bcm84756_a0_VLAN_MAPTABLE_54r_CLR(r) \ 13085 (r).vlan_maptable_54[0] = 0 13086 13087 #define bcm84756_a0_VLAN_MAPTABLE_54r_SET(r,d) \ 13088 (r).vlan_maptable_54[0] = d 13089 13090 #define bcm84756_a0_VLAN_MAPTABLE_54r_GET(r) \ 13091 (r).vlan_maptable_54[0] 13092 13093 13094 /* 13095 * These macros can be used to access individual fields. 13096 */ 13097 #define bcm84756_a0_VLAN_MAPTABLE_54r_VSAN_VFIDf_GET(c,r) \ 13098 (((r).vlan_maptable_54[0]) & 0xfff) 13099 13100 #define bcm84756_a0_VLAN_MAPTABLE_54r_VSAN_VFIDf_SET(c,r,f) \ 13101 (r).vlan_maptable_54[0]=(((r).vlan_maptable_54[0] & ~((buint32_t)0xfff)) | \ 13102 (((buint32_t)f) & 0xfff)) 13103 13104 #define bcm84756_a0_VLAN_MAPTABLE_54r_VLAN_VIDf_GET(c,r) \ 13105 ((((r).vlan_maptable_54[0]) >> 16) & 0xfff) 13106 13107 #define bcm84756_a0_VLAN_MAPTABLE_54r_VLAN_VIDf_SET(c,r,f) \ 13108 (r).vlan_maptable_54[0]=(((r).vlan_maptable_54[0] & ~((buint32_t)0xfff << 16)) | \ 13109 ((((buint32_t)f) & 0xfff) << 16)) 13110 13111 13112 /* 13113 * These macros can be used to access VLAN_MAPTABLE_54. 13114 */ 13115 #define bcm84756_a0_READ_VLAN_MAPTABLE_54r(c,r) \ 13116 BFCMAP_REG32_READ((c),bcm84756_a0_VLAN_MAPTABLE_54r((c)),&((r)._vlan_maptable_54)) 13117 13118 #define bcm84756_a0_WRITE_VLAN_MAPTABLE_54r(c,r) \ 13119 BFCMAP_REG32_WRITE((c),bcm84756_a0_VLAN_MAPTABLE_54r((c)),&((r)._vlan_maptable_54)) 13120 13121 /******************************************************************************* 13122 * End of 'bcm84756_a0_VLAN_MAPTABLE_54r' 13123 */ 13124 13125 13126 13127 13128 /******************************************************************************* 13129 * CHIP: bcm84756_a0 13130 * REGISTER: VLAN_MAPTABLE_55 13131 * BLOCKS: SECPORT 13132 * DESCRIPTION : 13133 * Egress Mapping Table Entry, entry 55. 13134 * 13135 * SIZE: 32 13136 * 13137 * FIELDS DESCRIPTION: 13138 * VSAN_VFID : 13139 * Lookup table entry. 13140 * 13141 * VLAN_VID : 13142 * Lookup table entry. 13143 */ 13144 #define bcm84756_a0_VLAN_MAPTABLE_55r(c) \ 13145 (0x13100053 + (BFCMAP_PORT((c)) << 12)) 13146 13147 #define bcm84756_a0_VLAN_MAPTABLE_55r_SIZE 1 13148 13149 /* 13150 * This structure should be used to declare and program VLAN_MAPTABLE_55. 13151 */ 13152 typedef union bcm84756_a0_VLAN_MAPTABLE_55r_s { 13153 buint32_t v[1]; 13154 buint32_t vlan_maptable_55[1]; 13155 buint32_t _vlan_maptable_55; 13156 } bcm84756_a0_VLAN_MAPTABLE_55r_t; 13157 13158 #define bcm84756_a0_VLAN_MAPTABLE_55r_CLR(r) \ 13159 (r).vlan_maptable_55[0] = 0 13160 13161 #define bcm84756_a0_VLAN_MAPTABLE_55r_SET(r,d) \ 13162 (r).vlan_maptable_55[0] = d 13163 13164 #define bcm84756_a0_VLAN_MAPTABLE_55r_GET(r) \ 13165 (r).vlan_maptable_55[0] 13166 13167 13168 /* 13169 * These macros can be used to access individual fields. 13170 */ 13171 #define bcm84756_a0_VLAN_MAPTABLE_55r_VSAN_VFIDf_GET(c,r) \ 13172 (((r).vlan_maptable_55[0]) & 0xfff) 13173 13174 #define bcm84756_a0_VLAN_MAPTABLE_55r_VSAN_VFIDf_SET(c,r,f) \ 13175 (r).vlan_maptable_55[0]=(((r).vlan_maptable_55[0] & ~((buint32_t)0xfff)) | \ 13176 (((buint32_t)f) & 0xfff)) 13177 13178 #define bcm84756_a0_VLAN_MAPTABLE_55r_VLAN_VIDf_GET(c,r) \ 13179 ((((r).vlan_maptable_55[0]) >> 16) & 0xfff) 13180 13181 #define bcm84756_a0_VLAN_MAPTABLE_55r_VLAN_VIDf_SET(c,r,f) \ 13182 (r).vlan_maptable_55[0]=(((r).vlan_maptable_55[0] & ~((buint32_t)0xfff << 16)) | \ 13183 ((((buint32_t)f) & 0xfff) << 16)) 13184 13185 13186 /* 13187 * These macros can be used to access VLAN_MAPTABLE_55. 13188 */ 13189 #define bcm84756_a0_READ_VLAN_MAPTABLE_55r(c,r) \ 13190 BFCMAP_REG32_READ((c),bcm84756_a0_VLAN_MAPTABLE_55r((c)),&((r)._vlan_maptable_55)) 13191 13192 #define bcm84756_a0_WRITE_VLAN_MAPTABLE_55r(c,r) \ 13193 BFCMAP_REG32_WRITE((c),bcm84756_a0_VLAN_MAPTABLE_55r((c)),&((r)._vlan_maptable_55)) 13194 13195 /******************************************************************************* 13196 * End of 'bcm84756_a0_VLAN_MAPTABLE_55r' 13197 */ 13198 13199 13200 13201 13202 /******************************************************************************* 13203 * CHIP: bcm84756_a0 13204 * REGISTER: VLAN_MAPTABLE_56 13205 * BLOCKS: SECPORT 13206 * DESCRIPTION : 13207 * Egress Mapping Table Entry, entry 56. 13208 * 13209 * SIZE: 32 13210 * 13211 * FIELDS DESCRIPTION: 13212 * VSAN_VFID : 13213 * Lookup table entry. 13214 * 13215 * VLAN_VID : 13216 * Lookup table entry. 13217 */ 13218 #define bcm84756_a0_VLAN_MAPTABLE_56r(c) \ 13219 (0x13100054 + (BFCMAP_PORT((c)) << 12)) 13220 13221 #define bcm84756_a0_VLAN_MAPTABLE_56r_SIZE 1 13222 13223 /* 13224 * This structure should be used to declare and program VLAN_MAPTABLE_56. 13225 */ 13226 typedef union bcm84756_a0_VLAN_MAPTABLE_56r_s { 13227 buint32_t v[1]; 13228 buint32_t vlan_maptable_56[1]; 13229 buint32_t _vlan_maptable_56; 13230 } bcm84756_a0_VLAN_MAPTABLE_56r_t; 13231 13232 #define bcm84756_a0_VLAN_MAPTABLE_56r_CLR(r) \ 13233 (r).vlan_maptable_56[0] = 0 13234 13235 #define bcm84756_a0_VLAN_MAPTABLE_56r_SET(r,d) \ 13236 (r).vlan_maptable_56[0] = d 13237 13238 #define bcm84756_a0_VLAN_MAPTABLE_56r_GET(r) \ 13239 (r).vlan_maptable_56[0] 13240 13241 13242 /* 13243 * These macros can be used to access individual fields. 13244 */ 13245 #define bcm84756_a0_VLAN_MAPTABLE_56r_VSAN_VFIDf_GET(c,r) \ 13246 (((r).vlan_maptable_56[0]) & 0xfff) 13247 13248 #define bcm84756_a0_VLAN_MAPTABLE_56r_VSAN_VFIDf_SET(c,r,f) \ 13249 (r).vlan_maptable_56[0]=(((r).vlan_maptable_56[0] & ~((buint32_t)0xfff)) | \ 13250 (((buint32_t)f) & 0xfff)) 13251 13252 #define bcm84756_a0_VLAN_MAPTABLE_56r_VLAN_VIDf_GET(c,r) \ 13253 ((((r).vlan_maptable_56[0]) >> 16) & 0xfff) 13254 13255 #define bcm84756_a0_VLAN_MAPTABLE_56r_VLAN_VIDf_SET(c,r,f) \ 13256 (r).vlan_maptable_56[0]=(((r).vlan_maptable_56[0] & ~((buint32_t)0xfff << 16)) | \ 13257 ((((buint32_t)f) & 0xfff) << 16)) 13258 13259 13260 /* 13261 * These macros can be used to access VLAN_MAPTABLE_56. 13262 */ 13263 #define bcm84756_a0_READ_VLAN_MAPTABLE_56r(c,r) \ 13264 BFCMAP_REG32_READ((c),bcm84756_a0_VLAN_MAPTABLE_56r((c)),&((r)._vlan_maptable_56)) 13265 13266 #define bcm84756_a0_WRITE_VLAN_MAPTABLE_56r(c,r) \ 13267 BFCMAP_REG32_WRITE((c),bcm84756_a0_VLAN_MAPTABLE_56r((c)),&((r)._vlan_maptable_56)) 13268 13269 /******************************************************************************* 13270 * End of 'bcm84756_a0_VLAN_MAPTABLE_56r' 13271 */ 13272 13273 13274 13275 13276 /******************************************************************************* 13277 * CHIP: bcm84756_a0 13278 * REGISTER: VLAN_MAPTABLE_57 13279 * BLOCKS: SECPORT 13280 * DESCRIPTION : 13281 * Egress Mapping Table Entry, entry 57. 13282 * 13283 * SIZE: 32 13284 * 13285 * FIELDS DESCRIPTION: 13286 * VSAN_VFID : 13287 * Lookup table entry. 13288 * 13289 * VLAN_VID : 13290 * Lookup table entry. 13291 */ 13292 #define bcm84756_a0_VLAN_MAPTABLE_57r(c) \ 13293 (0x13100055 + (BFCMAP_PORT((c)) << 12)) 13294 13295 #define bcm84756_a0_VLAN_MAPTABLE_57r_SIZE 1 13296 13297 /* 13298 * This structure should be used to declare and program VLAN_MAPTABLE_57. 13299 */ 13300 typedef union bcm84756_a0_VLAN_MAPTABLE_57r_s { 13301 buint32_t v[1]; 13302 buint32_t vlan_maptable_57[1]; 13303 buint32_t _vlan_maptable_57; 13304 } bcm84756_a0_VLAN_MAPTABLE_57r_t; 13305 13306 #define bcm84756_a0_VLAN_MAPTABLE_57r_CLR(r) \ 13307 (r).vlan_maptable_57[0] = 0 13308 13309 #define bcm84756_a0_VLAN_MAPTABLE_57r_SET(r,d) \ 13310 (r).vlan_maptable_57[0] = d 13311 13312 #define bcm84756_a0_VLAN_MAPTABLE_57r_GET(r) \ 13313 (r).vlan_maptable_57[0] 13314 13315 13316 /* 13317 * These macros can be used to access individual fields. 13318 */ 13319 #define bcm84756_a0_VLAN_MAPTABLE_57r_VSAN_VFIDf_GET(c,r) \ 13320 (((r).vlan_maptable_57[0]) & 0xfff) 13321 13322 #define bcm84756_a0_VLAN_MAPTABLE_57r_VSAN_VFIDf_SET(c,r,f) \ 13323 (r).vlan_maptable_57[0]=(((r).vlan_maptable_57[0] & ~((buint32_t)0xfff)) | \ 13324 (((buint32_t)f) & 0xfff)) 13325 13326 #define bcm84756_a0_VLAN_MAPTABLE_57r_VLAN_VIDf_GET(c,r) \ 13327 ((((r).vlan_maptable_57[0]) >> 16) & 0xfff) 13328 13329 #define bcm84756_a0_VLAN_MAPTABLE_57r_VLAN_VIDf_SET(c,r,f) \ 13330 (r).vlan_maptable_57[0]=(((r).vlan_maptable_57[0] & ~((buint32_t)0xfff << 16)) | \ 13331 ((((buint32_t)f) & 0xfff) << 16)) 13332 13333 13334 /* 13335 * These macros can be used to access VLAN_MAPTABLE_57. 13336 */ 13337 #define bcm84756_a0_READ_VLAN_MAPTABLE_57r(c,r) \ 13338 BFCMAP_REG32_READ((c),bcm84756_a0_VLAN_MAPTABLE_57r((c)),&((r)._vlan_maptable_57)) 13339 13340 #define bcm84756_a0_WRITE_VLAN_MAPTABLE_57r(c,r) \ 13341 BFCMAP_REG32_WRITE((c),bcm84756_a0_VLAN_MAPTABLE_57r((c)),&((r)._vlan_maptable_57)) 13342 13343 /******************************************************************************* 13344 * End of 'bcm84756_a0_VLAN_MAPTABLE_57r' 13345 */ 13346 13347 13348 13349 13350 /******************************************************************************* 13351 * CHIP: bcm84756_a0 13352 * REGISTER: VLAN_MAPTABLE_58 13353 * BLOCKS: SECPORT 13354 * DESCRIPTION : 13355 * Egress Mapping Table Entry, entry 58. 13356 * 13357 * SIZE: 32 13358 * 13359 * FIELDS DESCRIPTION: 13360 * VSAN_VFID : 13361 * Lookup table entry. 13362 * 13363 * VLAN_VID : 13364 * Lookup table entry. 13365 */ 13366 #define bcm84756_a0_VLAN_MAPTABLE_58r(c) \ 13367 (0x13100056 + (BFCMAP_PORT((c)) << 12)) 13368 13369 #define bcm84756_a0_VLAN_MAPTABLE_58r_SIZE 1 13370 13371 /* 13372 * This structure should be used to declare and program VLAN_MAPTABLE_58. 13373 */ 13374 typedef union bcm84756_a0_VLAN_MAPTABLE_58r_s { 13375 buint32_t v[1]; 13376 buint32_t vlan_maptable_58[1]; 13377 buint32_t _vlan_maptable_58; 13378 } bcm84756_a0_VLAN_MAPTABLE_58r_t; 13379 13380 #define bcm84756_a0_VLAN_MAPTABLE_58r_CLR(r) \ 13381 (r).vlan_maptable_58[0] = 0 13382 13383 #define bcm84756_a0_VLAN_MAPTABLE_58r_SET(r,d) \ 13384 (r).vlan_maptable_58[0] = d 13385 13386 #define bcm84756_a0_VLAN_MAPTABLE_58r_GET(r) \ 13387 (r).vlan_maptable_58[0] 13388 13389 13390 /* 13391 * These macros can be used to access individual fields. 13392 */ 13393 #define bcm84756_a0_VLAN_MAPTABLE_58r_VSAN_VFIDf_GET(c,r) \ 13394 (((r).vlan_maptable_58[0]) & 0xfff) 13395 13396 #define bcm84756_a0_VLAN_MAPTABLE_58r_VSAN_VFIDf_SET(c,r,f) \ 13397 (r).vlan_maptable_58[0]=(((r).vlan_maptable_58[0] & ~((buint32_t)0xfff)) | \ 13398 (((buint32_t)f) & 0xfff)) 13399 13400 #define bcm84756_a0_VLAN_MAPTABLE_58r_VLAN_VIDf_GET(c,r) \ 13401 ((((r).vlan_maptable_58[0]) >> 16) & 0xfff) 13402 13403 #define bcm84756_a0_VLAN_MAPTABLE_58r_VLAN_VIDf_SET(c,r,f) \ 13404 (r).vlan_maptable_58[0]=(((r).vlan_maptable_58[0] & ~((buint32_t)0xfff << 16)) | \ 13405 ((((buint32_t)f) & 0xfff) << 16)) 13406 13407 13408 /* 13409 * These macros can be used to access VLAN_MAPTABLE_58. 13410 */ 13411 #define bcm84756_a0_READ_VLAN_MAPTABLE_58r(c,r) \ 13412 BFCMAP_REG32_READ((c),bcm84756_a0_VLAN_MAPTABLE_58r((c)),&((r)._vlan_maptable_58)) 13413 13414 #define bcm84756_a0_WRITE_VLAN_MAPTABLE_58r(c,r) \ 13415 BFCMAP_REG32_WRITE((c),bcm84756_a0_VLAN_MAPTABLE_58r((c)),&((r)._vlan_maptable_58)) 13416 13417 /******************************************************************************* 13418 * End of 'bcm84756_a0_VLAN_MAPTABLE_58r' 13419 */ 13420 13421 13422 13423 13424 /******************************************************************************* 13425 * CHIP: bcm84756_a0 13426 * REGISTER: VLAN_MAPTABLE_59 13427 * BLOCKS: SECPORT 13428 * DESCRIPTION : 13429 * Egress Mapping Table Entry, entry 59. 13430 * 13431 * SIZE: 32 13432 * 13433 * FIELDS DESCRIPTION: 13434 * VSAN_VFID : 13435 * Lookup table entry. 13436 * 13437 * VLAN_VID : 13438 * Lookup table entry. 13439 */ 13440 #define bcm84756_a0_VLAN_MAPTABLE_59r(c) \ 13441 (0x13100057 + (BFCMAP_PORT((c)) << 12)) 13442 13443 #define bcm84756_a0_VLAN_MAPTABLE_59r_SIZE 1 13444 13445 /* 13446 * This structure should be used to declare and program VLAN_MAPTABLE_59. 13447 */ 13448 typedef union bcm84756_a0_VLAN_MAPTABLE_59r_s { 13449 buint32_t v[1]; 13450 buint32_t vlan_maptable_59[1]; 13451 buint32_t _vlan_maptable_59; 13452 } bcm84756_a0_VLAN_MAPTABLE_59r_t; 13453 13454 #define bcm84756_a0_VLAN_MAPTABLE_59r_CLR(r) \ 13455 (r).vlan_maptable_59[0] = 0 13456 13457 #define bcm84756_a0_VLAN_MAPTABLE_59r_SET(r,d) \ 13458 (r).vlan_maptable_59[0] = d 13459 13460 #define bcm84756_a0_VLAN_MAPTABLE_59r_GET(r) \ 13461 (r).vlan_maptable_59[0] 13462 13463 13464 /* 13465 * These macros can be used to access individual fields. 13466 */ 13467 #define bcm84756_a0_VLAN_MAPTABLE_59r_VSAN_VFIDf_GET(c,r) \ 13468 (((r).vlan_maptable_59[0]) & 0xfff) 13469 13470 #define bcm84756_a0_VLAN_MAPTABLE_59r_VSAN_VFIDf_SET(c,r,f) \ 13471 (r).vlan_maptable_59[0]=(((r).vlan_maptable_59[0] & ~((buint32_t)0xfff)) | \ 13472 (((buint32_t)f) & 0xfff)) 13473 13474 #define bcm84756_a0_VLAN_MAPTABLE_59r_VLAN_VIDf_GET(c,r) \ 13475 ((((r).vlan_maptable_59[0]) >> 16) & 0xfff) 13476 13477 #define bcm84756_a0_VLAN_MAPTABLE_59r_VLAN_VIDf_SET(c,r,f) \ 13478 (r).vlan_maptable_59[0]=(((r).vlan_maptable_59[0] & ~((buint32_t)0xfff << 16)) | \ 13479 ((((buint32_t)f) & 0xfff) << 16)) 13480 13481 13482 /* 13483 * These macros can be used to access VLAN_MAPTABLE_59. 13484 */ 13485 #define bcm84756_a0_READ_VLAN_MAPTABLE_59r(c,r) \ 13486 BFCMAP_REG32_READ((c),bcm84756_a0_VLAN_MAPTABLE_59r((c)),&((r)._vlan_maptable_59)) 13487 13488 #define bcm84756_a0_WRITE_VLAN_MAPTABLE_59r(c,r) \ 13489 BFCMAP_REG32_WRITE((c),bcm84756_a0_VLAN_MAPTABLE_59r((c)),&((r)._vlan_maptable_59)) 13490 13491 /******************************************************************************* 13492 * End of 'bcm84756_a0_VLAN_MAPTABLE_59r' 13493 */ 13494 13495 13496 13497 13498 /******************************************************************************* 13499 * CHIP: bcm84756_a0 13500 * REGISTER: VLAN_MAPTABLE_6 13501 * BLOCKS: SECPORT 13502 * DESCRIPTION : 13503 * Egress Mapping Table Entry, entry 6. 13504 * 13505 * SIZE: 32 13506 * 13507 * FIELDS DESCRIPTION: 13508 * VSAN_VFID : 13509 * Lookup table entry. 13510 * 13511 * VLAN_VID : 13512 * Lookup table entry. 13513 */ 13514 #define bcm84756_a0_VLAN_MAPTABLE_6r(c) \ 13515 (0x13100022 + (BFCMAP_PORT((c)) << 12)) 13516 13517 #define bcm84756_a0_VLAN_MAPTABLE_6r_SIZE 1 13518 13519 /* 13520 * This structure should be used to declare and program VLAN_MAPTABLE_6. 13521 */ 13522 typedef union bcm84756_a0_VLAN_MAPTABLE_6r_s { 13523 buint32_t v[1]; 13524 buint32_t vlan_maptable_6[1]; 13525 buint32_t _vlan_maptable_6; 13526 } bcm84756_a0_VLAN_MAPTABLE_6r_t; 13527 13528 #define bcm84756_a0_VLAN_MAPTABLE_6r_CLR(r) \ 13529 (r).vlan_maptable_6[0] = 0 13530 13531 #define bcm84756_a0_VLAN_MAPTABLE_6r_SET(r,d) \ 13532 (r).vlan_maptable_6[0] = d 13533 13534 #define bcm84756_a0_VLAN_MAPTABLE_6r_GET(r) \ 13535 (r).vlan_maptable_6[0] 13536 13537 13538 /* 13539 * These macros can be used to access individual fields. 13540 */ 13541 #define bcm84756_a0_VLAN_MAPTABLE_6r_VSAN_VFIDf_GET(c,r) \ 13542 (((r).vlan_maptable_6[0]) & 0xfff) 13543 13544 #define bcm84756_a0_VLAN_MAPTABLE_6r_VSAN_VFIDf_SET(c,r,f) \ 13545 (r).vlan_maptable_6[0]=(((r).vlan_maptable_6[0] & ~((buint32_t)0xfff)) | \ 13546 (((buint32_t)f) & 0xfff)) 13547 13548 #define bcm84756_a0_VLAN_MAPTABLE_6r_VLAN_VIDf_GET(c,r) \ 13549 ((((r).vlan_maptable_6[0]) >> 16) & 0xfff) 13550 13551 #define bcm84756_a0_VLAN_MAPTABLE_6r_VLAN_VIDf_SET(c,r,f) \ 13552 (r).vlan_maptable_6[0]=(((r).vlan_maptable_6[0] & ~((buint32_t)0xfff << 16)) | \ 13553 ((((buint32_t)f) & 0xfff) << 16)) 13554 13555 13556 /* 13557 * These macros can be used to access VLAN_MAPTABLE_6. 13558 */ 13559 #define bcm84756_a0_READ_VLAN_MAPTABLE_6r(c,r) \ 13560 BFCMAP_REG32_READ((c),bcm84756_a0_VLAN_MAPTABLE_6r((c)),&((r)._vlan_maptable_6)) 13561 13562 #define bcm84756_a0_WRITE_VLAN_MAPTABLE_6r(c,r) \ 13563 BFCMAP_REG32_WRITE((c),bcm84756_a0_VLAN_MAPTABLE_6r((c)),&((r)._vlan_maptable_6)) 13564 13565 /******************************************************************************* 13566 * End of 'bcm84756_a0_VLAN_MAPTABLE_6r' 13567 */ 13568 13569 13570 13571 13572 /******************************************************************************* 13573 * CHIP: bcm84756_a0 13574 * REGISTER: VLAN_MAPTABLE_60 13575 * BLOCKS: SECPORT 13576 * DESCRIPTION : 13577 * Egress Mapping Table Entry, entry 60. 13578 * 13579 * SIZE: 32 13580 * 13581 * FIELDS DESCRIPTION: 13582 * VSAN_VFID : 13583 * Lookup table entry. 13584 * 13585 * VLAN_VID : 13586 * Lookup table entry. 13587 */ 13588 #define bcm84756_a0_VLAN_MAPTABLE_60r(c) \ 13589 (0x13100058 + (BFCMAP_PORT((c)) << 12)) 13590 13591 #define bcm84756_a0_VLAN_MAPTABLE_60r_SIZE 1 13592 13593 /* 13594 * This structure should be used to declare and program VLAN_MAPTABLE_60. 13595 */ 13596 typedef union bcm84756_a0_VLAN_MAPTABLE_60r_s { 13597 buint32_t v[1]; 13598 buint32_t vlan_maptable_60[1]; 13599 buint32_t _vlan_maptable_60; 13600 } bcm84756_a0_VLAN_MAPTABLE_60r_t; 13601 13602 #define bcm84756_a0_VLAN_MAPTABLE_60r_CLR(r) \ 13603 (r).vlan_maptable_60[0] = 0 13604 13605 #define bcm84756_a0_VLAN_MAPTABLE_60r_SET(r,d) \ 13606 (r).vlan_maptable_60[0] = d 13607 13608 #define bcm84756_a0_VLAN_MAPTABLE_60r_GET(r) \ 13609 (r).vlan_maptable_60[0] 13610 13611 13612 /* 13613 * These macros can be used to access individual fields. 13614 */ 13615 #define bcm84756_a0_VLAN_MAPTABLE_60r_VSAN_VFIDf_GET(c,r) \ 13616 (((r).vlan_maptable_60[0]) & 0xfff) 13617 13618 #define bcm84756_a0_VLAN_MAPTABLE_60r_VSAN_VFIDf_SET(c,r,f) \ 13619 (r).vlan_maptable_60[0]=(((r).vlan_maptable_60[0] & ~((buint32_t)0xfff)) | \ 13620 (((buint32_t)f) & 0xfff)) 13621 13622 #define bcm84756_a0_VLAN_MAPTABLE_60r_VLAN_VIDf_GET(c,r) \ 13623 ((((r).vlan_maptable_60[0]) >> 16) & 0xfff) 13624 13625 #define bcm84756_a0_VLAN_MAPTABLE_60r_VLAN_VIDf_SET(c,r,f) \ 13626 (r).vlan_maptable_60[0]=(((r).vlan_maptable_60[0] & ~((buint32_t)0xfff << 16)) | \ 13627 ((((buint32_t)f) & 0xfff) << 16)) 13628 13629 13630 /* 13631 * These macros can be used to access VLAN_MAPTABLE_60. 13632 */ 13633 #define bcm84756_a0_READ_VLAN_MAPTABLE_60r(c,r) \ 13634 BFCMAP_REG32_READ((c),bcm84756_a0_VLAN_MAPTABLE_60r((c)),&((r)._vlan_maptable_60)) 13635 13636 #define bcm84756_a0_WRITE_VLAN_MAPTABLE_60r(c,r) \ 13637 BFCMAP_REG32_WRITE((c),bcm84756_a0_VLAN_MAPTABLE_60r((c)),&((r)._vlan_maptable_60)) 13638 13639 /******************************************************************************* 13640 * End of 'bcm84756_a0_VLAN_MAPTABLE_60r' 13641 */ 13642 13643 13644 13645 13646 /******************************************************************************* 13647 * CHIP: bcm84756_a0 13648 * REGISTER: VLAN_MAPTABLE_61 13649 * BLOCKS: SECPORT 13650 * DESCRIPTION : 13651 * Egress Mapping Table Entry, entry 61. 13652 * 13653 * SIZE: 32 13654 * 13655 * FIELDS DESCRIPTION: 13656 * VSAN_VFID : 13657 * Lookup table entry. 13658 * 13659 * VLAN_VID : 13660 * Lookup table entry. 13661 */ 13662 #define bcm84756_a0_VLAN_MAPTABLE_61r(c) \ 13663 (0x13100059 + (BFCMAP_PORT((c)) << 12)) 13664 13665 #define bcm84756_a0_VLAN_MAPTABLE_61r_SIZE 1 13666 13667 /* 13668 * This structure should be used to declare and program VLAN_MAPTABLE_61. 13669 */ 13670 typedef union bcm84756_a0_VLAN_MAPTABLE_61r_s { 13671 buint32_t v[1]; 13672 buint32_t vlan_maptable_61[1]; 13673 buint32_t _vlan_maptable_61; 13674 } bcm84756_a0_VLAN_MAPTABLE_61r_t; 13675 13676 #define bcm84756_a0_VLAN_MAPTABLE_61r_CLR(r) \ 13677 (r).vlan_maptable_61[0] = 0 13678 13679 #define bcm84756_a0_VLAN_MAPTABLE_61r_SET(r,d) \ 13680 (r).vlan_maptable_61[0] = d 13681 13682 #define bcm84756_a0_VLAN_MAPTABLE_61r_GET(r) \ 13683 (r).vlan_maptable_61[0] 13684 13685 13686 /* 13687 * These macros can be used to access individual fields. 13688 */ 13689 #define bcm84756_a0_VLAN_MAPTABLE_61r_VSAN_VFIDf_GET(c,r) \ 13690 (((r).vlan_maptable_61[0]) & 0xfff) 13691 13692 #define bcm84756_a0_VLAN_MAPTABLE_61r_VSAN_VFIDf_SET(c,r,f) \ 13693 (r).vlan_maptable_61[0]=(((r).vlan_maptable_61[0] & ~((buint32_t)0xfff)) | \ 13694 (((buint32_t)f) & 0xfff)) 13695 13696 #define bcm84756_a0_VLAN_MAPTABLE_61r_VLAN_VIDf_GET(c,r) \ 13697 ((((r).vlan_maptable_61[0]) >> 16) & 0xfff) 13698 13699 #define bcm84756_a0_VLAN_MAPTABLE_61r_VLAN_VIDf_SET(c,r,f) \ 13700 (r).vlan_maptable_61[0]=(((r).vlan_maptable_61[0] & ~((buint32_t)0xfff << 16)) | \ 13701 ((((buint32_t)f) & 0xfff) << 16)) 13702 13703 13704 /* 13705 * These macros can be used to access VLAN_MAPTABLE_61. 13706 */ 13707 #define bcm84756_a0_READ_VLAN_MAPTABLE_61r(c,r) \ 13708 BFCMAP_REG32_READ((c),bcm84756_a0_VLAN_MAPTABLE_61r((c)),&((r)._vlan_maptable_61)) 13709 13710 #define bcm84756_a0_WRITE_VLAN_MAPTABLE_61r(c,r) \ 13711 BFCMAP_REG32_WRITE((c),bcm84756_a0_VLAN_MAPTABLE_61r((c)),&((r)._vlan_maptable_61)) 13712 13713 /******************************************************************************* 13714 * End of 'bcm84756_a0_VLAN_MAPTABLE_61r' 13715 */ 13716 13717 13718 13719 13720 /******************************************************************************* 13721 * CHIP: bcm84756_a0 13722 * REGISTER: VLAN_MAPTABLE_62 13723 * BLOCKS: SECPORT 13724 * DESCRIPTION : 13725 * Egress Mapping Table Entry, entry 62. 13726 * 13727 * SIZE: 32 13728 * 13729 * FIELDS DESCRIPTION: 13730 * VSAN_VFID : 13731 * Lookup table entry. 13732 * 13733 * VLAN_VID : 13734 * Lookup table entry. 13735 */ 13736 #define bcm84756_a0_VLAN_MAPTABLE_62r(c) \ 13737 (0x1310005a + (BFCMAP_PORT((c)) << 12)) 13738 13739 #define bcm84756_a0_VLAN_MAPTABLE_62r_SIZE 1 13740 13741 /* 13742 * This structure should be used to declare and program VLAN_MAPTABLE_62. 13743 */ 13744 typedef union bcm84756_a0_VLAN_MAPTABLE_62r_s { 13745 buint32_t v[1]; 13746 buint32_t vlan_maptable_62[1]; 13747 buint32_t _vlan_maptable_62; 13748 } bcm84756_a0_VLAN_MAPTABLE_62r_t; 13749 13750 #define bcm84756_a0_VLAN_MAPTABLE_62r_CLR(r) \ 13751 (r).vlan_maptable_62[0] = 0 13752 13753 #define bcm84756_a0_VLAN_MAPTABLE_62r_SET(r,d) \ 13754 (r).vlan_maptable_62[0] = d 13755 13756 #define bcm84756_a0_VLAN_MAPTABLE_62r_GET(r) \ 13757 (r).vlan_maptable_62[0] 13758 13759 13760 /* 13761 * These macros can be used to access individual fields. 13762 */ 13763 #define bcm84756_a0_VLAN_MAPTABLE_62r_VSAN_VFIDf_GET(c,r) \ 13764 (((r).vlan_maptable_62[0]) & 0xfff) 13765 13766 #define bcm84756_a0_VLAN_MAPTABLE_62r_VSAN_VFIDf_SET(c,r,f) \ 13767 (r).vlan_maptable_62[0]=(((r).vlan_maptable_62[0] & ~((buint32_t)0xfff)) | \ 13768 (((buint32_t)f) & 0xfff)) 13769 13770 #define bcm84756_a0_VLAN_MAPTABLE_62r_VLAN_VIDf_GET(c,r) \ 13771 ((((r).vlan_maptable_62[0]) >> 16) & 0xfff) 13772 13773 #define bcm84756_a0_VLAN_MAPTABLE_62r_VLAN_VIDf_SET(c,r,f) \ 13774 (r).vlan_maptable_62[0]=(((r).vlan_maptable_62[0] & ~((buint32_t)0xfff << 16)) | \ 13775 ((((buint32_t)f) & 0xfff) << 16)) 13776 13777 13778 /* 13779 * These macros can be used to access VLAN_MAPTABLE_62. 13780 */ 13781 #define bcm84756_a0_READ_VLAN_MAPTABLE_62r(c,r) \ 13782 BFCMAP_REG32_READ((c),bcm84756_a0_VLAN_MAPTABLE_62r((c)),&((r)._vlan_maptable_62)) 13783 13784 #define bcm84756_a0_WRITE_VLAN_MAPTABLE_62r(c,r) \ 13785 BFCMAP_REG32_WRITE((c),bcm84756_a0_VLAN_MAPTABLE_62r((c)),&((r)._vlan_maptable_62)) 13786 13787 /******************************************************************************* 13788 * End of 'bcm84756_a0_VLAN_MAPTABLE_62r' 13789 */ 13790 13791 13792 13793 13794 /******************************************************************************* 13795 * CHIP: bcm84756_a0 13796 * REGISTER: VLAN_MAPTABLE_63 13797 * BLOCKS: SECPORT 13798 * DESCRIPTION : 13799 * Egress Mapping Table Entry, entry 63. 13800 * 13801 * SIZE: 32 13802 * 13803 * FIELDS DESCRIPTION: 13804 * VSAN_VFID : 13805 * Lookup table entry. 13806 * 13807 * VLAN_VID : 13808 * Lookup table entry. 13809 */ 13810 #define bcm84756_a0_VLAN_MAPTABLE_63r(c) \ 13811 (0x1310005b + (BFCMAP_PORT((c)) << 12)) 13812 13813 #define bcm84756_a0_VLAN_MAPTABLE_63r_SIZE 1 13814 13815 /* 13816 * This structure should be used to declare and program VLAN_MAPTABLE_63. 13817 */ 13818 typedef union bcm84756_a0_VLAN_MAPTABLE_63r_s { 13819 buint32_t v[1]; 13820 buint32_t vlan_maptable_63[1]; 13821 buint32_t _vlan_maptable_63; 13822 } bcm84756_a0_VLAN_MAPTABLE_63r_t; 13823 13824 #define bcm84756_a0_VLAN_MAPTABLE_63r_CLR(r) \ 13825 (r).vlan_maptable_63[0] = 0 13826 13827 #define bcm84756_a0_VLAN_MAPTABLE_63r_SET(r,d) \ 13828 (r).vlan_maptable_63[0] = d 13829 13830 #define bcm84756_a0_VLAN_MAPTABLE_63r_GET(r) \ 13831 (r).vlan_maptable_63[0] 13832 13833 13834 /* 13835 * These macros can be used to access individual fields. 13836 */ 13837 #define bcm84756_a0_VLAN_MAPTABLE_63r_VSAN_VFIDf_GET(c,r) \ 13838 (((r).vlan_maptable_63[0]) & 0xfff) 13839 13840 #define bcm84756_a0_VLAN_MAPTABLE_63r_VSAN_VFIDf_SET(c,r,f) \ 13841 (r).vlan_maptable_63[0]=(((r).vlan_maptable_63[0] & ~((buint32_t)0xfff)) | \ 13842 (((buint32_t)f) & 0xfff)) 13843 13844 #define bcm84756_a0_VLAN_MAPTABLE_63r_VLAN_VIDf_GET(c,r) \ 13845 ((((r).vlan_maptable_63[0]) >> 16) & 0xfff) 13846 13847 #define bcm84756_a0_VLAN_MAPTABLE_63r_VLAN_VIDf_SET(c,r,f) \ 13848 (r).vlan_maptable_63[0]=(((r).vlan_maptable_63[0] & ~((buint32_t)0xfff << 16)) | \ 13849 ((((buint32_t)f) & 0xfff) << 16)) 13850 13851 13852 /* 13853 * These macros can be used to access VLAN_MAPTABLE_63. 13854 */ 13855 #define bcm84756_a0_READ_VLAN_MAPTABLE_63r(c,r) \ 13856 BFCMAP_REG32_READ((c),bcm84756_a0_VLAN_MAPTABLE_63r((c)),&((r)._vlan_maptable_63)) 13857 13858 #define bcm84756_a0_WRITE_VLAN_MAPTABLE_63r(c,r) \ 13859 BFCMAP_REG32_WRITE((c),bcm84756_a0_VLAN_MAPTABLE_63r((c)),&((r)._vlan_maptable_63)) 13860 13861 /******************************************************************************* 13862 * End of 'bcm84756_a0_VLAN_MAPTABLE_63r' 13863 */ 13864 13865 13866 13867 13868 /******************************************************************************* 13869 * CHIP: bcm84756_a0 13870 * REGISTER: VLAN_MAPTABLE_7 13871 * BLOCKS: SECPORT 13872 * DESCRIPTION : 13873 * Egress Mapping Table Entry, entry 7. 13874 * 13875 * SIZE: 32 13876 * 13877 * FIELDS DESCRIPTION: 13878 * VSAN_VFID : 13879 * Lookup table entry. 13880 * 13881 * VLAN_VID : 13882 * Lookup table entry. 13883 */ 13884 #define bcm84756_a0_VLAN_MAPTABLE_7r(c) \ 13885 (0x13100023 + (BFCMAP_PORT((c)) << 12)) 13886 13887 #define bcm84756_a0_VLAN_MAPTABLE_7r_SIZE 1 13888 13889 /* 13890 * This structure should be used to declare and program VLAN_MAPTABLE_7. 13891 */ 13892 typedef union bcm84756_a0_VLAN_MAPTABLE_7r_s { 13893 buint32_t v[1]; 13894 buint32_t vlan_maptable_7[1]; 13895 buint32_t _vlan_maptable_7; 13896 } bcm84756_a0_VLAN_MAPTABLE_7r_t; 13897 13898 #define bcm84756_a0_VLAN_MAPTABLE_7r_CLR(r) \ 13899 (r).vlan_maptable_7[0] = 0 13900 13901 #define bcm84756_a0_VLAN_MAPTABLE_7r_SET(r,d) \ 13902 (r).vlan_maptable_7[0] = d 13903 13904 #define bcm84756_a0_VLAN_MAPTABLE_7r_GET(r) \ 13905 (r).vlan_maptable_7[0] 13906 13907 13908 /* 13909 * These macros can be used to access individual fields. 13910 */ 13911 #define bcm84756_a0_VLAN_MAPTABLE_7r_VSAN_VFIDf_GET(c,r) \ 13912 (((r).vlan_maptable_7[0]) & 0xfff) 13913 13914 #define bcm84756_a0_VLAN_MAPTABLE_7r_VSAN_VFIDf_SET(c,r,f) \ 13915 (r).vlan_maptable_7[0]=(((r).vlan_maptable_7[0] & ~((buint32_t)0xfff)) | \ 13916 (((buint32_t)f) & 0xfff)) 13917 13918 #define bcm84756_a0_VLAN_MAPTABLE_7r_VLAN_VIDf_GET(c,r) \ 13919 ((((r).vlan_maptable_7[0]) >> 16) & 0xfff) 13920 13921 #define bcm84756_a0_VLAN_MAPTABLE_7r_VLAN_VIDf_SET(c,r,f) \ 13922 (r).vlan_maptable_7[0]=(((r).vlan_maptable_7[0] & ~((buint32_t)0xfff << 16)) | \ 13923 ((((buint32_t)f) & 0xfff) << 16)) 13924 13925 13926 /* 13927 * These macros can be used to access VLAN_MAPTABLE_7. 13928 */ 13929 #define bcm84756_a0_READ_VLAN_MAPTABLE_7r(c,r) \ 13930 BFCMAP_REG32_READ((c),bcm84756_a0_VLAN_MAPTABLE_7r((c)),&((r)._vlan_maptable_7)) 13931 13932 #define bcm84756_a0_WRITE_VLAN_MAPTABLE_7r(c,r) \ 13933 BFCMAP_REG32_WRITE((c),bcm84756_a0_VLAN_MAPTABLE_7r((c)),&((r)._vlan_maptable_7)) 13934 13935 /******************************************************************************* 13936 * End of 'bcm84756_a0_VLAN_MAPTABLE_7r' 13937 */ 13938 13939 13940 13941 13942 /******************************************************************************* 13943 * CHIP: bcm84756_a0 13944 * REGISTER: VLAN_MAPTABLE_8 13945 * BLOCKS: SECPORT 13946 * DESCRIPTION : 13947 * Egress Mapping Table Entry, entry 8. 13948 * 13949 * SIZE: 32 13950 * 13951 * FIELDS DESCRIPTION: 13952 * VSAN_VFID : 13953 * Lookup table entry. 13954 * 13955 * VLAN_VID : 13956 * Lookup table entry. 13957 */ 13958 #define bcm84756_a0_VLAN_MAPTABLE_8r(c) \ 13959 (0x13100024 + (BFCMAP_PORT((c)) << 12)) 13960 13961 #define bcm84756_a0_VLAN_MAPTABLE_8r_SIZE 1 13962 13963 /* 13964 * This structure should be used to declare and program VLAN_MAPTABLE_8. 13965 */ 13966 typedef union bcm84756_a0_VLAN_MAPTABLE_8r_s { 13967 buint32_t v[1]; 13968 buint32_t vlan_maptable_8[1]; 13969 buint32_t _vlan_maptable_8; 13970 } bcm84756_a0_VLAN_MAPTABLE_8r_t; 13971 13972 #define bcm84756_a0_VLAN_MAPTABLE_8r_CLR(r) \ 13973 (r).vlan_maptable_8[0] = 0 13974 13975 #define bcm84756_a0_VLAN_MAPTABLE_8r_SET(r,d) \ 13976 (r).vlan_maptable_8[0] = d 13977 13978 #define bcm84756_a0_VLAN_MAPTABLE_8r_GET(r) \ 13979 (r).vlan_maptable_8[0] 13980 13981 13982 /* 13983 * These macros can be used to access individual fields. 13984 */ 13985 #define bcm84756_a0_VLAN_MAPTABLE_8r_VSAN_VFIDf_GET(c,r) \ 13986 (((r).vlan_maptable_8[0]) & 0xfff) 13987 13988 #define bcm84756_a0_VLAN_MAPTABLE_8r_VSAN_VFIDf_SET(c,r,f) \ 13989 (r).vlan_maptable_8[0]=(((r).vlan_maptable_8[0] & ~((buint32_t)0xfff)) | \ 13990 (((buint32_t)f) & 0xfff)) 13991 13992 #define bcm84756_a0_VLAN_MAPTABLE_8r_VLAN_VIDf_GET(c,r) \ 13993 ((((r).vlan_maptable_8[0]) >> 16) & 0xfff) 13994 13995 #define bcm84756_a0_VLAN_MAPTABLE_8r_VLAN_VIDf_SET(c,r,f) \ 13996 (r).vlan_maptable_8[0]=(((r).vlan_maptable_8[0] & ~((buint32_t)0xfff << 16)) | \ 13997 ((((buint32_t)f) & 0xfff) << 16)) 13998 13999 14000 /* 14001 * These macros can be used to access VLAN_MAPTABLE_8. 14002 */ 14003 #define bcm84756_a0_READ_VLAN_MAPTABLE_8r(c,r) \ 14004 BFCMAP_REG32_READ((c),bcm84756_a0_VLAN_MAPTABLE_8r((c)),&((r)._vlan_maptable_8)) 14005 14006 #define bcm84756_a0_WRITE_VLAN_MAPTABLE_8r(c,r) \ 14007 BFCMAP_REG32_WRITE((c),bcm84756_a0_VLAN_MAPTABLE_8r((c)),&((r)._vlan_maptable_8)) 14008 14009 /******************************************************************************* 14010 * End of 'bcm84756_a0_VLAN_MAPTABLE_8r' 14011 */ 14012 14013 14014 14015 14016 /******************************************************************************* 14017 * CHIP: bcm84756_a0 14018 * REGISTER: VLAN_MAPTABLE_9 14019 * BLOCKS: SECPORT 14020 * DESCRIPTION : 14021 * Egress Mapping Table Entry, entry 9. 14022 * 14023 * SIZE: 32 14024 * 14025 * FIELDS DESCRIPTION: 14026 * VSAN_VFID : 14027 * Lookup table entry. 14028 * 14029 * VLAN_VID : 14030 * Lookup table entry. 14031 */ 14032 #define bcm84756_a0_VLAN_MAPTABLE_9r(c) \ 14033 (0x13100025 + (BFCMAP_PORT((c)) << 12)) 14034 14035 #define bcm84756_a0_VLAN_MAPTABLE_9r_SIZE 1 14036 14037 /* 14038 * This structure should be used to declare and program VLAN_MAPTABLE_9. 14039 */ 14040 typedef union bcm84756_a0_VLAN_MAPTABLE_9r_s { 14041 buint32_t v[1]; 14042 buint32_t vlan_maptable_9[1]; 14043 buint32_t _vlan_maptable_9; 14044 } bcm84756_a0_VLAN_MAPTABLE_9r_t; 14045 14046 #define bcm84756_a0_VLAN_MAPTABLE_9r_CLR(r) \ 14047 (r).vlan_maptable_9[0] = 0 14048 14049 #define bcm84756_a0_VLAN_MAPTABLE_9r_SET(r,d) \ 14050 (r).vlan_maptable_9[0] = d 14051 14052 #define bcm84756_a0_VLAN_MAPTABLE_9r_GET(r) \ 14053 (r).vlan_maptable_9[0] 14054 14055 14056 /* 14057 * These macros can be used to access individual fields. 14058 */ 14059 #define bcm84756_a0_VLAN_MAPTABLE_9r_VSAN_VFIDf_GET(c,r) \ 14060 (((r).vlan_maptable_9[0]) & 0xfff) 14061 14062 #define bcm84756_a0_VLAN_MAPTABLE_9r_VSAN_VFIDf_SET(c,r,f) \ 14063 (r).vlan_maptable_9[0]=(((r).vlan_maptable_9[0] & ~((buint32_t)0xfff)) | \ 14064 (((buint32_t)f) & 0xfff)) 14065 14066 #define bcm84756_a0_VLAN_MAPTABLE_9r_VLAN_VIDf_GET(c,r) \ 14067 ((((r).vlan_maptable_9[0]) >> 16) & 0xfff) 14068 14069 #define bcm84756_a0_VLAN_MAPTABLE_9r_VLAN_VIDf_SET(c,r,f) \ 14070 (r).vlan_maptable_9[0]=(((r).vlan_maptable_9[0] & ~((buint32_t)0xfff << 16)) | \ 14071 ((((buint32_t)f) & 0xfff) << 16)) 14072 14073 14074 /* 14075 * These macros can be used to access VLAN_MAPTABLE_9. 14076 */ 14077 #define bcm84756_a0_READ_VLAN_MAPTABLE_9r(c,r) \ 14078 BFCMAP_REG32_READ((c),bcm84756_a0_VLAN_MAPTABLE_9r((c)),&((r)._vlan_maptable_9)) 14079 14080 #define bcm84756_a0_WRITE_VLAN_MAPTABLE_9r(c,r) \ 14081 BFCMAP_REG32_WRITE((c),bcm84756_a0_VLAN_MAPTABLE_9r((c)),&((r)._vlan_maptable_9)) 14082 14083 /******************************************************************************* 14084 * End of 'bcm84756_a0_VLAN_MAPTABLE_9r' 14085 */ 14086 14087 #define IS_C0_CHIP(c) (BFCMAP_PORT_DEVICE_CONTROL(c)->core_type == BFCMAP_CORE_BCM84756_C0) 14088 14089 14090 /******************************************************************************* 14091 * CHIP: bcm84756_c0 14092 * REGISTER: MPORT_EGRESS_DATA_TRUNCATION_THD 14093 * BLOCKS: SECPORT 14094 * DESCRIPTION : 14095 * Mport Egress data FIFO truncation Threshold 14096 * 14097 * SIZE: 32 14098 * 14099 * FIELDS DESCRIPTION: 14100 * MPORT_EGRESS_DATA_TRUNCATION_THD : 14101 * Mport Egress data FIFO truncation Threshold in terms of 128-bit block. 14102 * There is a 32KB egress SAF packet buffer. If the egress SAF buffer 14103 * usage is more than this threshold, the current transmitting packet will 14104 * be truncated. The rest of the packets will be dropped. 14105 */ 14106 #define bcm84756_c0_MPORT_EGRESS_DATA_TRUNCATION_THDr(c) \ 14107 (0x02100008 + (BFCMAP_PORT((c)) << 12)) 14108 14109 #define bcm84756_c0_MPORT_EGRESS_DATA_TRUNCATION_THDr_SIZE 1 14110 14111 /* 14112 * This structure should be used to declare and program MPORT_EGRESS_DATA_TRUNCATION_THD. 14113 */ 14114 typedef union bcm84756_c0_MPORT_EGRESS_DATA_TRUNCATION_THDr_s { 14115 buint32_t v[1]; 14116 buint32_t mport_egress_data_truncation_thd[1]; 14117 buint32_t _mport_egress_data_truncation_thd; 14118 } bcm84756_c0_MPORT_EGRESS_DATA_TRUNCATION_THDr_t; 14119 14120 #define bcm84756_c0_MPORT_EGRESS_DATA_TRUNCATION_THDr_CLR(r) \ 14121 (r).mport_egress_data_truncation_thd[0] = 0 14122 14123 #define bcm84756_c0_MPORT_EGRESS_DATA_TRUNCATION_THDr_SET(r,d) \ 14124 (r).mport_egress_data_truncation_thd[0] = d 14125 14126 #define bcm84756_c0_MPORT_EGRESS_DATA_TRUNCATION_THDr_GET(r) \ 14127 (r).mport_egress_data_truncation_thd[0] 14128 14129 /* 14130 * These macros can be used to access individual fields. 14131 */ 14132 #define bcm84756_c0_MPORT_EGRESS_DATA_TRUNCATION_THDr_MPORT_EGRESS_DATA_TRUNCATION_THDf_GET(c,r) \ 14133 (((r).mport_egress_data_truncation_thd[0]) & 0xfff) 14134 14135 #define bcm84756_c0_MPORT_EGRESS_DATA_TRUNCATION_THDr_MPORT_EGRESS_DATA_TRUNCATION_THDf_SET(c,r,f) \ 14136 (r).mport_egress_data_truncation_thd[0]=(((r).mport_egress_data_truncation_thd[0] & ~((buint32_t)0xfff)) | \ 14137 (((buint32_t)f) & 0xfff)) 14138 14139 /* 14140 * These macros can be used to access MPORT_EGRESS_DATA_TRUNCATION_THD. 14141 */ 14142 #define bcm84756_c0_READ_MPORT_EGRESS_DATA_TRUNCATION_THDr(c,r) \ 14143 BFCMAP_REG32_READ((c),bcm84756_c0_MPORT_EGRESS_DATA_TRUNCATION_THDr((c)),&((r)._mport_egress_data_truncation_thd)) 14144 14145 #define bcm84756_c0_WRITE_MPORT_EGRESS_DATA_TRUNCATION_THDr(c,r) \ 14146 BFCMAP_REG32_WRITE((c),bcm84756_c0_MPORT_EGRESS_DATA_TRUNCATION_THDr((c)),&((r)._mport_egress_data_truncation_thd)) 14147 14148 /******************************************************************************* 14149 * End of 'bcm84756_c0_MPORT_EGRESS_DATA_TRUNCATION_THDr' 14150 */ 14151 14152 /******************************************************************************* 14153 * CHIP: bcm84756_c0 14154 * REGISTER: MPORT_EGRESS_HDR_TRUNCATION_THD 14155 * BLOCKS: SECPORT 14156 * DESCRIPTION : 14157 * Mport Egress header FIFO truncation Threshold 14158 * 14159 * SIZE: 32 14160 * 14161 * FIELDS DESCRIPTION: 14162 * MPORT_EGRESS_HDR_TRUNCATION_THD : 14163 * Mport Egress header FIFO truncation Threshold. There is a 512-entry 14164 * egress SAF header buffer. If the egress SAF header buffer usage is more 14165 * than this threshold, the current transmitting packet will be truncated. 14166 * The rest of the packets will be dropped. 14167 */ 14168 #define bcm84756_c0_MPORT_EGRESS_HDR_TRUNCATION_THDr(c) \ 14169 (0x0210000a + (BFCMAP_PORT((c)) << 12)) 14170 14171 #define bcm84756_c0_MPORT_EGRESS_HDR_TRUNCATION_THDr_SIZE 1 14172 14173 /* 14174 * This structure should be used to declare and program MPORT_EGRESS_HDR_TRUNCATION_THD. 14175 */ 14176 typedef union bcm84756_c0_MPORT_EGRESS_HDR_TRUNCATION_THDr_s { 14177 buint32_t v[1]; 14178 buint32_t mport_egress_hdr_truncation_thd[1]; 14179 buint32_t _mport_egress_hdr_truncation_thd; 14180 } bcm84756_c0_MPORT_EGRESS_HDR_TRUNCATION_THDr_t; 14181 14182 #define bcm84756_c0_MPORT_EGRESS_HDR_TRUNCATION_THDr_CLR(r) \ 14183 (r).mport_egress_hdr_truncation_thd[0] = 0 14184 14185 #define bcm84756_c0_MPORT_EGRESS_HDR_TRUNCATION_THDr_SET(r,d) \ 14186 (r).mport_egress_hdr_truncation_thd[0] = d 14187 14188 #define bcm84756_c0_MPORT_EGRESS_HDR_TRUNCATION_THDr_GET(r) \ 14189 (r).mport_egress_hdr_truncation_thd[0] 14190 14191 14192 /* 14193 * These macros can be used to access individual fields. 14194 */ 14195 #define bcm84756_c0_MPORT_EGRESS_HDR_TRUNCATION_THDr_MPORT_EGRESS_HDR_TRUNCATION_THDf_GET(c,r) \ 14196 (((r).mport_egress_hdr_truncation_thd[0]) & 0x3ff) 14197 14198 #define bcm84756_c0_MPORT_EGRESS_HDR_TRUNCATION_THDr_MPORT_EGRESS_HDR_TRUNCATION_THDf_SET(c,r,f) \ 14199 (r).mport_egress_hdr_truncation_thd[0]=(((r).mport_egress_hdr_truncation_thd[0] & ~((buint32_t)0x3ff)) | \ 14200 (((buint32_t)f) & 0x3ff)) 14201 14202 14203 /* 14204 * These macros can be used to access MPORT_EGRESS_HDR_TRUNCATION_THD. 14205 */ 14206 #define bcm84756_c0_READ_MPORT_EGRESS_HDR_TRUNCATION_THDr(c,r) \ 14207 BFCMAP_REG32_READ((c),bcm84756_c0_MPORT_EGRESS_HDR_TRUNCATION_THDr((c)),&((r)._mport_egress_hdr_truncation_thd)) 14208 14209 #define bcm84756_c0_WRITE_MPORT_EGRESS_HDR_TRUNCATION_THDr(c,r) \ 14210 BFCMAP_REG32_WRITE((c),bcm84756_c0_MPORT_EGRESS_HDR_TRUNCATION_THDr((c)),&((r)._mport_egress_hdr_truncation_thd)) 14211 14212 /******************************************************************************* 14213 * End of 'bcm84756_c0_MPORT_EGRESS_HDR_TRUNCATION_THDr' 14214 */ 14215 14216 /******************************************************************************* 14217 * CHIP: bcm84756_a0 14218 * REGISTER: MPORT_SW_XPORT_RSV_MASK 14219 * BLOCKS: SECPORT 14220 * DESCRIPTION : 14221 * Switch side MAC packet rx error mask 14222 * 14223 * SIZE: 32 14224 * 14225 * FIELDS DESCRIPTION: 14226 * XPORT_RSV_MASK : 14227 * Mask bits for UniMAC RSV[33:16] and XMAC RSV[37:16]. 1 indicates purge 14228 * is enabled for the respective error condition if (XPORT RSV MASK[21:0] 14229 * & RSV[37:16]) == 1. It's recommended to program 0x1045d for UniMAC at 14230 * non-10G link speed, and 0x10054 for XMAC at 10G link speed. 14231 */ 14232 #define bcm84756_a0_MPORT_SW_XPORT_RSV_MASKr(c) \ 14233 (0x02100037 + (BFCMAP_PORT((c)) << 12)) 14234 14235 #define bcm84756_a0_MPORT_SW_XPORT_RSV_MASKr_SIZE 1 14236 14237 /* 14238 * This structure should be used to declare and program MPORT_SW_XPORT_RSV_MASK. 14239 */ 14240 typedef union bcm84756_a0_MPORT_SW_XPORT_RSV_MASKr_s { 14241 buint32_t v[1]; 14242 buint32_t mport_sw_xport_rsv_mask[1]; 14243 buint32_t _mport_sw_xport_rsv_mask; 14244 } bcm84756_a0_MPORT_SW_XPORT_RSV_MASKr_t; 14245 14246 #define bcm84756_a0_MPORT_SW_XPORT_RSV_MASKr_CLR(r) \ 14247 (r).mport_sw_xport_rsv_mask[0] = 0 14248 14249 #define bcm84756_a0_MPORT_SW_XPORT_RSV_MASKr_SET(r,d) \ 14250 (r).mport_sw_xport_rsv_mask[0] = d 14251 14252 #define bcm84756_a0_MPORT_SW_XPORT_RSV_MASKr_GET(r) \ 14253 (r).mport_sw_xport_rsv_mask[0] 14254 14255 14256 /* 14257 * These macros can be used to access individual fields. 14258 */ 14259 #define bcm84756_a0_MPORT_SW_XPORT_RSV_MASKr_XPORT_RSV_MASKf_GET(c,r) \ 14260 (((r).mport_sw_xport_rsv_mask[0]) & 0x3fffff) 14261 14262 #define bcm84756_a0_MPORT_SW_XPORT_RSV_MASKr_XPORT_RSV_MASKf_SET(c,r,f) \ 14263 (r).mport_sw_xport_rsv_mask[0]=(((r).mport_sw_xport_rsv_mask[0] & ~((buint32_t)0x3fffff)) | \ 14264 (((buint32_t)f) & 0x3fffff)) 14265 14266 14267 /* 14268 * These macros can be used to access MPORT_SW_XPORT_RSV_MASK. 14269 */ 14270 #define bcm84756_a0_READ_MPORT_SW_XPORT_RSV_MASKr(c,r) \ 14271 BFCMAP_REG32_READ((c),bcm84756_a0_MPORT_SW_XPORT_RSV_MASKr((c)),&((r)._mport_sw_xport_rsv_mask)) 14272 14273 #define bcm84756_a0_WRITE_MPORT_SW_XPORT_RSV_MASKr(c,r) \ 14274 BFCMAP_REG32_WRITE((c),bcm84756_a0_MPORT_SW_XPORT_RSV_MASKr((c)),&((r)._mport_sw_xport_rsv_mask)) 14275 14276 /******************************************************************************* 14277 * End of 'bcm84756_a0_MPORT_SW_XPORT_RSV_MASKr' 14278 */ 14279 14280 14281 #endif /* __bcm84756_a0_DEFS_H__ */