openbcm

Git mirror of https://github.com/Broadcom-Network-Switching-Software/OpenBCM
git clone git://git.finwo.net/mirror/broadcom/openbcm
Log | Files | Refs | README

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__ */