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

cm.c (250653B)


      1 /*
      2  * 
      3  * This license is set out in https://raw.githubusercontent.com/Broadcom-Network-Switching-Software/OpenBCM/master/Legal/LICENSE file.
      4  * 
      5  * Copyright 2007-2019 Broadcom Inc. All rights reserved.
      6  *
      7  * File:        cm.c
      8  * Purpose:     Configuration Manager
      9  *
     10  * This module provides an OS-independent abstraction for the low-level
     11  * manipulation of StrataSwitch devices and other system resources
     12  * needed by the driver.
     13  *
     14  * See <soc/cmtypes.h> for a description and requirements of the vectors.
     15  */
     16 #include <shared/bsl.h>
     17 
     18 #include <assert.h>
     19 #include <sal/core/libc.h>
     20 #include <sal/core/spl.h>
     21 #include <sal/core/sync.h>
     22 #include <soc/devids.h>
     23 #include <soc/cmext.h>
     24 #include <soc/cm.h>
     25 #include <soc/drv.h>
     26 #ifdef BCM_DNX_SUPPORT
     27 #include <soc/dnx/drv.h>
     28 #endif
     29 #ifdef BCM_DNXF_SUPPORT
     30 #include <soc/dnxf/cmn/dnxf_drv.h>
     31 #endif
     32 #if defined (BCM_PETRA_SUPPORT)
     33 #include <soc/dpp/drv.h>
     34 #endif
     35 #ifdef BCM_DFE_SUPPORT
     36 #include <soc/dfe/cmn/dfe_drv.h>
     37 #endif
     38 
     39 #include <sal/core/memlog.h>
     40 
     41 #if defined(BCM_ESW_SUPPORT) || defined(BCM_SAND_SUPPORT)
     42 #define IHOST_S0_ADDR_START 0x19000000
     43 #define IHOST_S0_ADDR_END  0x1901FFFF
     44 #define IHOST_ACP_ADDR_START 0x19020000
     45 #define IHOST_ACP_ADDR_END  0x19022FFF
     46 
     47 #define IS_IHOST_S0_ADDR(addr) ((addr >= IHOST_S0_ADDR_START) && (addr <= IHOST_S0_ADDR_END))
     48 #define IS_IHOST_ACP_ADDR(addr) ((addr >= IHOST_ACP_ADDR_START) && (addr <= IHOST_ACP_ADDR_END))
     49 #endif
     50 
     51 cm_device_t                     soc_cm_device[SOC_MAX_NUM_DEVICES];
     52 int                             soc_cm_device_count;
     53 
     54 /*
     55  * Table of all recognized chip IDs.
     56  *
     57  * There are fewer drivers than real chip IDs because some drivers
     58  * support more than one chip.  This table maps each real chip ID onto a
     59  * driver chip ID.  The driver IDs can be zero if equal to real IDs.
     60  *
     61  * Entries may be added to the table via soc_cm_id_to_driver_id_add().
     62  */
     63 
     64 static soc_cm_device_info_t soc_device_info[] = {
     65 
     66 #if defined(BCM_HERCULES15_SUPPORT)
     67     {   /* Hercules 1.5 with 8 ports */
     68         BCM5675_DEVICE_ID, BCM5675_A0_REV_ID,
     69         "BCM5675_A0",
     70         BCM5675_DEVICE_ID, BCM5675_A0_REV_ID,
     71         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
     72     },
     73     {   /* Hercules 1.5 with 4 ports */
     74         BCM5676_DEVICE_ID, BCM5676_A0_REV_ID,
     75         "BCM5676_A0",
     76         BCM5675_DEVICE_ID, BCM5675_A0_REV_ID,
     77         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
     78     },
     79     {   /* Hercules 1.5 with 8 ports */
     80         BCM5675_DEVICE_ID, BCM5675_A1_REV_ID,
     81         "BCM5675_A1",
     82         BCM5675_DEVICE_ID, BCM5675_A0_REV_ID,
     83         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
     84     },
     85     {   /* Hercules 1.5 with 4 ports */
     86         BCM5676_DEVICE_ID, BCM5676_A1_REV_ID,
     87         "BCM5676_A1",
     88         BCM5675_DEVICE_ID, BCM5675_A0_REV_ID,
     89         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
     90     },
     91 #endif /* BCM_HERCULES15_SUPPORT */
     92 #if defined(BCM_FIREBOLT_SUPPORT)
     93     {   /* Helix */
     94         BCM56300_DEVICE_ID, BCM56300_A0_REV_ID,
     95         "BCM56300_A0",
     96         BCM56504_DEVICE_ID, BCM56504_A0_REV_ID,
     97         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
     98     },
     99     {   /* Helix */
    100         BCM56301_DEVICE_ID, BCM56301_A0_REV_ID,
    101         "BCM56301_A0",
    102         BCM56504_DEVICE_ID, BCM56504_A0_REV_ID,
    103         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
    104     },
    105     {   /* Helix */
    106         BCM56302_DEVICE_ID, BCM56302_A0_REV_ID,
    107         "BCM56302_A0",
    108         BCM56504_DEVICE_ID, BCM56504_A0_REV_ID,
    109         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
    110     },
    111     {   /* Helix */
    112         BCM56303_DEVICE_ID, BCM56303_A0_REV_ID,
    113         "BCM56303_A0",
    114         BCM56504_DEVICE_ID, BCM56504_A0_REV_ID,
    115         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
    116     },
    117 #if defined(BCM_HELIX1_SUPPORT)
    118     {   /* Helix */
    119         BCM56304_DEVICE_ID, BCM56304_A0_REV_ID,
    120         "BCM56304_A0",
    121         BCM56504_DEVICE_ID, BCM56504_A0_REV_ID,
    122         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
    123     },
    124 #endif
    125     {   /* Helix */
    126         BCM56305_DEVICE_ID, BCM56305_A0_REV_ID,
    127         "BCM56305_A0",
    128         BCM56504_DEVICE_ID, BCM56504_A0_REV_ID,
    129         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
    130     },
    131     {   /* Helix */
    132         BCM56306_DEVICE_ID, BCM56306_A0_REV_ID,
    133         "BCM56306_A0",
    134         BCM56504_DEVICE_ID, BCM56504_A0_REV_ID,
    135         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
    136     },
    137     {   /* Helix */
    138         BCM56307_DEVICE_ID, BCM56307_A0_REV_ID,
    139         "BCM56307_A0",
    140         BCM56504_DEVICE_ID, BCM56504_A0_REV_ID,
    141         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
    142     },
    143     {   /* Helix */
    144         BCM56308_DEVICE_ID, BCM56308_A0_REV_ID,
    145         "BCM56308_A0",
    146         BCM56504_DEVICE_ID, BCM56504_A0_REV_ID,
    147         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
    148     },
    149     {   /* Helix */
    150         BCM56309_DEVICE_ID, BCM56309_A0_REV_ID,
    151         "BCM56309_A0",
    152         BCM56504_DEVICE_ID, BCM56503_A0_REV_ID,
    153         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
    154     },
    155     {   /* Helix */
    156         BCM56300_DEVICE_ID, BCM56300_A1_REV_ID,
    157         "BCM56300_A1",
    158         BCM56504_DEVICE_ID, BCM56504_A0_REV_ID,
    159         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
    160     },
    161     {   /* Helix */
    162         BCM56301_DEVICE_ID, BCM56301_A1_REV_ID,
    163         "BCM56301_A1",
    164         BCM56504_DEVICE_ID, BCM56504_A0_REV_ID,
    165         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
    166     },
    167     {   /* Helix */
    168         BCM56302_DEVICE_ID, BCM56302_A1_REV_ID,
    169         "BCM56302_A1",
    170         BCM56504_DEVICE_ID, BCM56504_A0_REV_ID,
    171         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
    172     },
    173     {   /* Helix */
    174         BCM56303_DEVICE_ID, BCM56303_A1_REV_ID,
    175         "BCM56303_A1",
    176         BCM56504_DEVICE_ID, BCM56504_A0_REV_ID,
    177         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
    178     },
    179 #if defined(BCM_HELIX1_SUPPORT)
    180     {   /* Helix */
    181         BCM56304_DEVICE_ID, BCM56304_A1_REV_ID,
    182         "BCM56304_A1",
    183         BCM56504_DEVICE_ID, BCM56504_A0_REV_ID,
    184         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
    185     },
    186 #endif
    187     {   /* Helix */
    188         BCM56305_DEVICE_ID, BCM56305_A1_REV_ID,
    189         "BCM56305_A1",
    190         BCM56504_DEVICE_ID, BCM56504_A0_REV_ID,
    191         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
    192     },
    193     {   /* Helix */
    194         BCM56306_DEVICE_ID, BCM56306_A1_REV_ID,
    195         "BCM56306_A1",
    196         BCM56504_DEVICE_ID, BCM56504_A0_REV_ID,
    197         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
    198     },
    199     {   /* Helix */
    200         BCM56307_DEVICE_ID, BCM56307_A1_REV_ID,
    201         "BCM56307_A1",
    202         BCM56504_DEVICE_ID, BCM56504_A0_REV_ID,
    203         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
    204     },
    205     {   /* Helix */
    206         BCM56308_DEVICE_ID, BCM56308_A1_REV_ID,
    207         "BCM56308_A1",
    208         BCM56504_DEVICE_ID, BCM56504_A0_REV_ID,
    209         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
    210     },
    211     {   /* Helix */
    212         BCM56309_DEVICE_ID, BCM56309_A1_REV_ID,
    213         "BCM56309_A1",
    214         BCM56504_DEVICE_ID, BCM56503_A0_REV_ID,
    215         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
    216     },
    217 #if defined(BCM_FELIX1_SUPPORT)
    218     {   /* Felix */
    219         BCM56100_DEVICE_ID, BCM56100_A0_REV_ID,
    220         "BCM56100_A0",
    221         BCM56102_DEVICE_ID, BCM56102_A0_REV_ID,
    222         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
    223     },
    224     {   /* Felix */
    225         BCM56101_DEVICE_ID, BCM56101_A0_REV_ID,
    226         "BCM56101_A0",
    227         BCM56102_DEVICE_ID, BCM56102_A0_REV_ID,
    228         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
    229     },
    230     {   /* Felix */
    231         BCM56102_DEVICE_ID, BCM56102_A0_REV_ID,
    232         "BCM56102_A0",
    233         BCM56102_DEVICE_ID, BCM56102_A0_REV_ID,
    234         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
    235     },
    236     {   /* Felix */
    237         BCM56105_DEVICE_ID, BCM56105_A0_REV_ID,
    238         "BCM56105_A0",
    239         BCM56102_DEVICE_ID, BCM56102_A0_REV_ID,
    240         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
    241     },
    242     {   /* Felix */
    243         BCM56106_DEVICE_ID, BCM56106_A0_REV_ID,
    244         "BCM56106_A0",
    245         BCM56102_DEVICE_ID, BCM56102_A0_REV_ID,
    246         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
    247     },
    248     {   /* Felix */
    249         BCM56107_DEVICE_ID, BCM56107_A0_REV_ID,
    250         "BCM56107_A0",
    251         BCM56102_DEVICE_ID, BCM56102_A0_REV_ID,
    252         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
    253     },
    254     {   /* Felix */
    255         BCM56100_DEVICE_ID, BCM56100_A1_REV_ID,
    256         "BCM56100_A1",
    257         BCM56102_DEVICE_ID, BCM56102_A0_REV_ID,
    258         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
    259     },
    260     {   /* Felix */
    261         BCM56101_DEVICE_ID, BCM56101_A1_REV_ID,
    262         "BCM56101_A1",
    263         BCM56102_DEVICE_ID, BCM56102_A0_REV_ID,
    264         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
    265     },
    266     {   /* Felix */
    267         BCM56102_DEVICE_ID, BCM56102_A1_REV_ID,
    268         "BCM56102_A1",
    269         BCM56102_DEVICE_ID, BCM56102_A0_REV_ID,
    270         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
    271     },
    272     {   /* Felix */
    273         BCM56105_DEVICE_ID, BCM56105_A1_REV_ID,
    274         "BCM56105_A1",
    275         BCM56102_DEVICE_ID, BCM56102_A0_REV_ID,
    276         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
    277     },
    278     {   /* Felix */
    279         BCM56106_DEVICE_ID, BCM56106_A1_REV_ID,
    280         "BCM56106_A1",
    281         BCM56102_DEVICE_ID, BCM56102_A0_REV_ID,
    282         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
    283     },
    284     {   /* Felix */
    285         BCM56107_DEVICE_ID, BCM56107_A1_REV_ID,
    286         "BCM56107_A1",
    287         BCM56102_DEVICE_ID, BCM56102_A0_REV_ID,
    288         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
    289     },
    290 #endif
    291 #if defined(BCM_FELIX15_SUPPORT)
    292     {   /* Felix15 */
    293         BCM56110_DEVICE_ID, BCM56110_A0_REV_ID,
    294         "BCM56110_A0",
    295         BCM56112_DEVICE_ID, BCM56112_A0_REV_ID,
    296         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
    297     },
    298     {   /* Felix15 */
    299         BCM56111_DEVICE_ID, BCM56111_A0_REV_ID,
    300         "BCM56111_A0",
    301         BCM56112_DEVICE_ID, BCM56112_A0_REV_ID,
    302         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
    303     },
    304     {   /* Felix15 */
    305         BCM56112_DEVICE_ID, BCM56112_A0_REV_ID,
    306         "BCM56112_A0",
    307         BCM56112_DEVICE_ID, BCM56112_A0_REV_ID,
    308         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
    309     },
    310     {   /* Felix15 */
    311         BCM56115_DEVICE_ID, BCM56115_A0_REV_ID,
    312         "BCM56115_A0",
    313         BCM56112_DEVICE_ID, BCM56112_A0_REV_ID,
    314         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
    315     },
    316     {   /* Felix15 */
    317         BCM56116_DEVICE_ID, BCM56116_A0_REV_ID,
    318         "BCM56116_A0",
    319         BCM56112_DEVICE_ID, BCM56112_A0_REV_ID,
    320         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
    321     },
    322     {   /* Felix15 */
    323         BCM56117_DEVICE_ID, BCM56117_A0_REV_ID,
    324         "BCM56117_A0",
    325         BCM56112_DEVICE_ID, BCM56112_A0_REV_ID,
    326         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
    327     },
    328 #endif /* BCM_FELIX15_SUPPORT */
    329 #if defined(BCM_HELIX1_SUPPORT)
    330     {
    331         BCM53300_DEVICE_ID, BCM53300_A0_REV_ID,
    332         "BCM53300_A0",
    333         BCM56304_DEVICE_ID, BCM56304_B0_REV_ID,
    334         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
    335     },
    336     {
    337         BCM53301_DEVICE_ID, BCM53301_A0_REV_ID,
    338         "BCM53301_A0",
    339         BCM56304_DEVICE_ID, BCM56304_B0_REV_ID,
    340         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
    341     },
    342     {
    343         BCM53302_DEVICE_ID, BCM53302_A0_REV_ID,
    344         "BCM53302_A0",
    345         BCM56304_DEVICE_ID, BCM56304_B0_REV_ID,
    346         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
    347     },
    348     {
    349         BCM53300_DEVICE_ID, BCM53300_A1_REV_ID,
    350         "BCM53300_A0",
    351         BCM56304_DEVICE_ID, BCM56304_B0_REV_ID,
    352         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
    353     },
    354     {
    355         BCM53301_DEVICE_ID, BCM53301_A1_REV_ID,
    356         "BCM53301_A0",
    357         BCM56304_DEVICE_ID, BCM56304_B0_REV_ID,
    358         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
    359     },
    360     {
    361         BCM53302_DEVICE_ID, BCM53302_A1_REV_ID,
    362         "BCM53302_A0",
    363         BCM56304_DEVICE_ID, BCM56304_B0_REV_ID,
    364         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
    365     },
    366     {   /* Helix */
    367         BCM56300_DEVICE_ID, BCM56300_B0_REV_ID,
    368         "BCM56300_B0",
    369         BCM56304_DEVICE_ID, BCM56304_B0_REV_ID,
    370         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
    371     },
    372     {   /* Helix */
    373         BCM56301_DEVICE_ID, BCM56301_B0_REV_ID,
    374         "BCM56301_B0",
    375         BCM56304_DEVICE_ID, BCM56304_B0_REV_ID,
    376         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
    377     },
    378     {   /* Helix */
    379         BCM56302_DEVICE_ID, BCM56302_B0_REV_ID,
    380         "BCM56302_B0",
    381         BCM56304_DEVICE_ID, BCM56304_B0_REV_ID,
    382         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
    383     },
    384     {   /* Helix */
    385         BCM56303_DEVICE_ID, BCM56303_B0_REV_ID,
    386         "BCM56303_B0",
    387         BCM56304_DEVICE_ID, BCM56304_B0_REV_ID,
    388         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
    389     },
    390     {   /* Helix */
    391         BCM56304_DEVICE_ID, BCM56304_B0_REV_ID,
    392         "BCM56304_B0",
    393         BCM56304_DEVICE_ID, BCM56304_B0_REV_ID,
    394         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
    395     },
    396     {   /* Helix */
    397         BCM56305_DEVICE_ID, BCM56305_B0_REV_ID,
    398         "BCM56305_B0",
    399         BCM56304_DEVICE_ID, BCM56304_B0_REV_ID,
    400         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
    401     },
    402     {   /* Helix */
    403         BCM56306_DEVICE_ID, BCM56306_B0_REV_ID,
    404         "BCM56306_B0",
    405         BCM56304_DEVICE_ID, BCM56304_B0_REV_ID,
    406         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
    407     },
    408     {   /* Helix */
    409         BCM56307_DEVICE_ID, BCM56307_B0_REV_ID,
    410         "BCM56307_B0",
    411         BCM56304_DEVICE_ID, BCM56304_B0_REV_ID,
    412         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
    413     },
    414     {   /* Helix */
    415         BCM56308_DEVICE_ID, BCM56308_B0_REV_ID,
    416         "BCM56308_B0",
    417         BCM56304_DEVICE_ID, BCM56304_B0_REV_ID,
    418         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
    419     },
    420     {   /* Helix */
    421         BCM56309_DEVICE_ID, BCM56309_B0_REV_ID,
    422         "BCM56309_B0",
    423         BCM56304_DEVICE_ID, BCM56304_B0_REV_ID,
    424         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
    425     },
    426     {   /* Helix */
    427         BCM56300_DEVICE_ID, BCM56300_B1_REV_ID,
    428         "BCM56300_B1",
    429         BCM56304_DEVICE_ID, BCM56304_B0_REV_ID,
    430         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
    431     },
    432     {   /* Helix */
    433         BCM56301_DEVICE_ID, BCM56301_B1_REV_ID,
    434         "BCM56301_B1",
    435         BCM56304_DEVICE_ID, BCM56304_B0_REV_ID,
    436         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
    437     },
    438     {   /* Helix */
    439         BCM56302_DEVICE_ID, BCM56302_B1_REV_ID,
    440         "BCM56302_B1",
    441         BCM56304_DEVICE_ID, BCM56304_B0_REV_ID,
    442         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
    443     },
    444     {   /* Helix */
    445         BCM56303_DEVICE_ID, BCM56303_B1_REV_ID,
    446         "BCM56303_B1",
    447         BCM56304_DEVICE_ID, BCM56304_B0_REV_ID,
    448         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
    449     },
    450     {   /* Helix */
    451         BCM56304_DEVICE_ID, BCM56304_B1_REV_ID,
    452         "BCM56304_B1",
    453         BCM56304_DEVICE_ID, BCM56304_B0_REV_ID,
    454         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
    455     },
    456     {   /* Helix */
    457         BCM56305_DEVICE_ID, BCM56305_B1_REV_ID,
    458         "BCM56305_B1",
    459         BCM56304_DEVICE_ID, BCM56304_B0_REV_ID,
    460         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
    461     },
    462     {   /* Helix */
    463         BCM56306_DEVICE_ID, BCM56306_B1_REV_ID,
    464         "BCM56306_B1",
    465         BCM56304_DEVICE_ID, BCM56304_B0_REV_ID,
    466         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
    467     },
    468     {   /* Helix */
    469         BCM56307_DEVICE_ID, BCM56307_B1_REV_ID,
    470         "BCM56307_B1",
    471         BCM56304_DEVICE_ID, BCM56304_B0_REV_ID,
    472         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
    473     },
    474     {   /* Helix */
    475         BCM56308_DEVICE_ID, BCM56308_B1_REV_ID,
    476         "BCM56308_B1",
    477         BCM56304_DEVICE_ID, BCM56304_B0_REV_ID,
    478         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
    479     },
    480     {   /* Helix */
    481         BCM56309_DEVICE_ID, BCM56309_B1_REV_ID,
    482         "BCM56309_B1",
    483         BCM56304_DEVICE_ID, BCM56304_B0_REV_ID,
    484         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
    485     },
    486 #endif
    487     {   /* Helix15 */
    488         BCM56310_DEVICE_ID, BCM56310_A0_REV_ID,
    489         "BCM56310_A0",
    490         BCM56314_DEVICE_ID, BCM56314_A0_REV_ID,
    491         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
    492     },
    493     {   /* Helix15 */
    494         BCM56311_DEVICE_ID, BCM56311_A0_REV_ID,
    495         "BCM56311_A0",
    496         BCM56314_DEVICE_ID, BCM56314_A0_REV_ID,
    497         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
    498     },
    499     {   /* Helix15 */
    500         BCM56312_DEVICE_ID, BCM56312_A0_REV_ID,
    501         "BCM56312_A0",
    502         BCM56314_DEVICE_ID, BCM56314_A0_REV_ID,
    503         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
    504     },
    505     {   /* Helix15 */
    506         BCM56313_DEVICE_ID, BCM56313_A0_REV_ID,
    507         "BCM56313_A0",
    508         BCM56314_DEVICE_ID, BCM56314_A0_REV_ID,
    509         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
    510     },
    511     {   /* Helix15 */
    512         BCM56314_DEVICE_ID, BCM56314_A0_REV_ID,
    513         "BCM56314_A0",
    514         BCM56314_DEVICE_ID, BCM56314_A0_REV_ID,
    515         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
    516     },
    517     {   /* Helix15 */
    518         BCM56315_DEVICE_ID, BCM56315_A0_REV_ID,
    519         "BCM56315_A0",
    520         BCM56314_DEVICE_ID, BCM56314_A0_REV_ID,
    521         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
    522     },
    523     {   /* Helix15 */
    524         BCM56316_DEVICE_ID, BCM56316_A0_REV_ID,
    525         "BCM56316_A0",
    526         BCM56314_DEVICE_ID, BCM56314_A0_REV_ID,
    527         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
    528     },
    529     {   /* Helix15 */
    530         BCM56317_DEVICE_ID, BCM56317_A0_REV_ID,
    531         "BCM56317_A0",
    532         BCM56314_DEVICE_ID, BCM56314_A0_REV_ID,
    533         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
    534     },
    535     {   /* Helix15 */
    536         BCM56318_DEVICE_ID, BCM56318_A0_REV_ID,
    537         "BCM56318_A0",
    538         BCM56314_DEVICE_ID, BCM56314_A0_REV_ID,
    539         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
    540     },
    541     {   /* Helix15 */
    542         BCM56319_DEVICE_ID, BCM56319_A0_REV_ID,
    543         "BCM56319_A0",
    544         BCM56314_DEVICE_ID, BCM56314_A0_REV_ID,
    545         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
    546     },
    547     {   /* FB-Helix */
    548         BCM56404_DEVICE_ID, BCM56404_A0_REV_ID,
    549         "BCM56304_A0",
    550         BCM56504_DEVICE_ID, BCM56504_A0_REV_ID,
    551         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
    552     },
    553     {   /* Firebolt */
    554         BCM56500_DEVICE_ID, BCM56500_A0_REV_ID,
    555         "BCM56500_A0",
    556         BCM56504_DEVICE_ID, BCM56504_A0_REV_ID,
    557         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
    558     },
    559     {   /* Firebolt */
    560         BCM56501_DEVICE_ID, BCM56501_A0_REV_ID,
    561         "BCM56501_A0",
    562         BCM56504_DEVICE_ID, BCM56504_A0_REV_ID,
    563         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
    564     },
    565     {   /* Firebolt */
    566         BCM56502_DEVICE_ID, BCM56502_A0_REV_ID,
    567         "BCM56502_A0",
    568         BCM56504_DEVICE_ID, BCM56504_A0_REV_ID,
    569         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
    570     },
    571     {   /* Firebolt */
    572         BCM56503_DEVICE_ID, BCM56503_A0_REV_ID,
    573         "BCM56503_A0",
    574         BCM56504_DEVICE_ID, BCM56504_A0_REV_ID,
    575         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
    576     },
    577     {   /* Firebolt */
    578         BCM56504_DEVICE_ID, BCM56504_A0_REV_ID,
    579         "BCM56504_A0",
    580         BCM56504_DEVICE_ID, BCM56504_A0_REV_ID,
    581         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
    582     },
    583     {   /* Firebolt */
    584         BCM56505_DEVICE_ID, BCM56505_A0_REV_ID,
    585         "BCM56505_A0",
    586         BCM56504_DEVICE_ID, BCM56504_A0_REV_ID,
    587         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
    588     },
    589     {   /* Firebolt */
    590         BCM56506_DEVICE_ID, BCM56506_A0_REV_ID,
    591         "BCM56506_A0",
    592         BCM56504_DEVICE_ID, BCM56504_A0_REV_ID,
    593         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
    594     },
    595     {   /* Firebolt */
    596         BCM56507_DEVICE_ID, BCM56507_A0_REV_ID,
    597         "BCM56507_A0",
    598         BCM56504_DEVICE_ID, BCM56504_A0_REV_ID,
    599         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
    600     },
    601     {   /* Firebolt */
    602         BCM56508_DEVICE_ID, BCM56508_A0_REV_ID,
    603         "BCM56508_A0",
    604         BCM56504_DEVICE_ID, BCM56504_A0_REV_ID,
    605         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
    606     },
    607     {   /* Firebolt */
    608         BCM56509_DEVICE_ID, BCM56509_A0_REV_ID,
    609         "BCM56509_A0",
    610         BCM56504_DEVICE_ID, BCM56504_A0_REV_ID,
    611         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
    612     },
    613     {   /* FB-Helix */
    614         BCM56404_DEVICE_ID, BCM56404_A1_REV_ID,
    615         "BCM56304_A1",
    616         BCM56504_DEVICE_ID, BCM56504_A0_REV_ID,
    617         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
    618     },
    619     {   /* Firebolt */
    620         BCM56500_DEVICE_ID, BCM56500_A1_REV_ID,
    621         "BCM56500_A1",
    622         BCM56504_DEVICE_ID, BCM56504_A0_REV_ID,
    623         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
    624     },
    625     {   /* Firebolt */
    626         BCM56501_DEVICE_ID, BCM56501_A1_REV_ID,
    627         "BCM56501_A1",
    628         BCM56504_DEVICE_ID, BCM56504_A0_REV_ID,
    629         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
    630     },
    631     {   /* Firebolt */
    632         BCM56502_DEVICE_ID, BCM56502_A1_REV_ID,
    633         "BCM56502_A1",
    634         BCM56504_DEVICE_ID, BCM56504_A0_REV_ID,
    635         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
    636     },
    637     {   /* Firebolt */
    638         BCM56503_DEVICE_ID, BCM56503_A1_REV_ID,
    639         "BCM56503_A1",
    640         BCM56504_DEVICE_ID, BCM56504_A0_REV_ID,
    641         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
    642     },
    643     {   /* Firebolt */
    644         BCM56504_DEVICE_ID, BCM56504_A1_REV_ID,
    645         "BCM56504_A1",
    646         BCM56504_DEVICE_ID, BCM56504_A0_REV_ID,
    647         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
    648     },
    649     {   /* Firebolt */
    650         BCM56505_DEVICE_ID, BCM56505_A1_REV_ID,
    651         "BCM56505_A1",
    652         BCM56504_DEVICE_ID, BCM56504_A0_REV_ID,
    653         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
    654     },
    655     {   /* Firebolt */
    656         BCM56506_DEVICE_ID, BCM56506_A1_REV_ID,
    657         "BCM56506_A1",
    658         BCM56504_DEVICE_ID, BCM56504_A0_REV_ID,
    659         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
    660     },
    661     {   /* Firebolt */
    662         BCM56507_DEVICE_ID, BCM56507_A1_REV_ID,
    663         "BCM56507_A1",
    664         BCM56504_DEVICE_ID, BCM56504_A0_REV_ID,
    665         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
    666     },
    667     {   /* Firebolt */
    668         BCM56508_DEVICE_ID, BCM56508_A1_REV_ID,
    669         "BCM56508_A1",
    670         BCM56504_DEVICE_ID, BCM56504_A0_REV_ID,
    671         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
    672     },
    673     {   /* Firebolt */
    674         BCM56509_DEVICE_ID, BCM56509_A1_REV_ID,
    675         "BCM56509_A1",
    676         BCM56504_DEVICE_ID, BCM56504_A0_REV_ID,
    677         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
    678     },
    679     {   /* Firebolt B0 */
    680         BCM56500_DEVICE_ID, BCM56500_B0_REV_ID,
    681         "BCM56500_B0",
    682         BCM56504_DEVICE_ID, BCM56504_B0_REV_ID,
    683         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
    684     },
    685     {   /* Firebolt B0 */
    686         BCM56501_DEVICE_ID, BCM56501_B0_REV_ID,
    687         "BCM56501_B0",
    688         BCM56504_DEVICE_ID, BCM56504_B0_REV_ID,
    689         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
    690     },
    691     {   /* Firebolt B0 */
    692         BCM56502_DEVICE_ID, BCM56502_B0_REV_ID,
    693         "BCM56502_B0",
    694         BCM56504_DEVICE_ID, BCM56504_B0_REV_ID,
    695         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
    696     },
    697     {   /* Firebolt B0 */
    698         BCM56503_DEVICE_ID, BCM56503_B0_REV_ID,
    699         "BCM56503_B0",
    700         BCM56504_DEVICE_ID, BCM56504_B0_REV_ID,
    701         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
    702     },
    703     {   /* Firebolt B0 */
    704         BCM56504_DEVICE_ID, BCM56504_B0_REV_ID,
    705         "BCM56504_B0",
    706         BCM56504_DEVICE_ID, BCM56504_B0_REV_ID,
    707         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
    708     },
    709     {   /* Firebolt B0 */
    710         BCM56505_DEVICE_ID, BCM56505_B0_REV_ID,
    711         "BCM56505_B0",
    712         BCM56504_DEVICE_ID, BCM56504_B0_REV_ID,
    713         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
    714     },
    715     {   /* Firebolt B0 */
    716         BCM56506_DEVICE_ID, BCM56506_B0_REV_ID,
    717         "BCM56506_B0",
    718         BCM56504_DEVICE_ID, BCM56504_B0_REV_ID,
    719         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
    720     },
    721     {   /* Firebolt B0 */
    722         BCM56507_DEVICE_ID, BCM56507_B0_REV_ID,
    723         "BCM56507_B0",
    724         BCM56504_DEVICE_ID, BCM56504_B0_REV_ID,
    725         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
    726     },
    727     {   /* Firebolt B0 */
    728         BCM56508_DEVICE_ID, BCM56508_B0_REV_ID,
    729         "BCM56508_B0",
    730         BCM56504_DEVICE_ID, BCM56504_B0_REV_ID,
    731         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
    732     },
    733     {   /* Firebolt B0 */
    734         BCM56509_DEVICE_ID, BCM56509_B0_REV_ID,
    735         "BCM56509_B0",
    736         BCM56504_DEVICE_ID, BCM56504_B0_REV_ID,
    737         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
    738     },
    739     {   /* Firebolt B1 */
    740         BCM56500_DEVICE_ID, BCM56500_B1_REV_ID,
    741         "BCM56500_B1",
    742         BCM56504_DEVICE_ID, BCM56504_B0_REV_ID,
    743         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
    744     },
    745     {   /* Firebolt B1 */
    746         BCM56501_DEVICE_ID, BCM56501_B1_REV_ID,
    747         "BCM56501_B1",
    748         BCM56504_DEVICE_ID, BCM56504_B0_REV_ID,
    749         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
    750     },
    751     {   /* Firebolt B1 */
    752         BCM56502_DEVICE_ID, BCM56502_B1_REV_ID,
    753         "BCM56502_B1",
    754         BCM56504_DEVICE_ID, BCM56504_B0_REV_ID,
    755         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
    756     },
    757     {   /* Firebolt B1 */
    758         BCM56503_DEVICE_ID, BCM56503_B1_REV_ID,
    759         "BCM56503_B1",
    760         BCM56504_DEVICE_ID, BCM56504_B0_REV_ID,
    761         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
    762     },
    763     {   /* Firebolt B1 */
    764         BCM56504_DEVICE_ID, BCM56504_B1_REV_ID,
    765         "BCM56504_B1",
    766         BCM56504_DEVICE_ID, BCM56504_B0_REV_ID,
    767         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
    768     },
    769     {   /* Firebolt B1 */
    770         BCM56505_DEVICE_ID, BCM56505_B1_REV_ID,
    771         "BCM56505_B1",
    772         BCM56504_DEVICE_ID, BCM56504_B0_REV_ID,
    773         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
    774     },
    775     {   /* Firebolt B1 */
    776         BCM56506_DEVICE_ID, BCM56506_B1_REV_ID,
    777         "BCM56506_B1",
    778         BCM56504_DEVICE_ID, BCM56504_B0_REV_ID,
    779         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
    780     },
    781     {   /* Firebolt B1 */
    782         BCM56507_DEVICE_ID, BCM56507_B1_REV_ID,
    783         "BCM56507_B1",
    784         BCM56504_DEVICE_ID, BCM56504_B0_REV_ID,
    785         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
    786     },
    787     {   /* Firebolt B1 */
    788         BCM56508_DEVICE_ID, BCM56508_B1_REV_ID,
    789         "BCM56508_B1",
    790         BCM56504_DEVICE_ID, BCM56504_B0_REV_ID,
    791         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
    792     },
    793     {   /* Firebolt B1 */
    794         BCM56509_DEVICE_ID, BCM56509_B1_REV_ID,
    795         "BCM56509_B1",
    796         BCM56504_DEVICE_ID, BCM56504_B0_REV_ID,
    797         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
    798     },
    799     {   /* Firebolt B2 */
    800         BCM56500_DEVICE_ID, BCM56500_B2_REV_ID,
    801         "BCM56500_B2",
    802         BCM56504_DEVICE_ID, BCM56504_B0_REV_ID,
    803         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
    804     },
    805     {   /* Firebolt B2 */
    806         BCM56501_DEVICE_ID, BCM56501_B2_REV_ID,
    807         "BCM56501_B2",
    808         BCM56504_DEVICE_ID, BCM56504_B0_REV_ID,
    809         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
    810     },
    811     {   /* Firebolt B2 */
    812         BCM56502_DEVICE_ID, BCM56502_B2_REV_ID,
    813         "BCM56502_B2",
    814         BCM56504_DEVICE_ID, BCM56504_B0_REV_ID,
    815         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
    816     },
    817     {   /* Firebolt B2 */
    818         BCM56503_DEVICE_ID, BCM56503_B2_REV_ID,
    819         "BCM56503_B2",
    820         BCM56504_DEVICE_ID, BCM56504_B0_REV_ID,
    821         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
    822     },
    823     {   /* Firebolt B2 */
    824         BCM56504_DEVICE_ID, BCM56504_B2_REV_ID,
    825         "BCM56504_B2",
    826         BCM56504_DEVICE_ID, BCM56504_B0_REV_ID,
    827         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
    828     },
    829     {   /* Firebolt B2 */
    830         BCM56505_DEVICE_ID, BCM56505_B2_REV_ID,
    831         "BCM56505_B2",
    832         BCM56504_DEVICE_ID, BCM56504_B0_REV_ID,
    833         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
    834     },
    835     {   /* Firebolt B2 */
    836         BCM56506_DEVICE_ID, BCM56506_B2_REV_ID,
    837         "BCM56506_B2",
    838         BCM56504_DEVICE_ID, BCM56504_B0_REV_ID,
    839         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
    840     },
    841     {   /* Firebolt B2 */
    842         BCM56507_DEVICE_ID, BCM56507_B2_REV_ID,
    843         "BCM56507_B2",
    844         BCM56504_DEVICE_ID, BCM56504_B0_REV_ID,
    845         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
    846     },
    847     {   /* Firebolt B2 */
    848         BCM56508_DEVICE_ID, BCM56508_B2_REV_ID,
    849         "BCM56508_B2",
    850         BCM56504_DEVICE_ID, BCM56504_B0_REV_ID,
    851         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
    852     },
    853     {   /* Firebolt B2 */
    854         BCM56509_DEVICE_ID, BCM56509_B2_REV_ID,
    855         "BCM56509_B2",
    856         BCM56504_DEVICE_ID, BCM56504_B0_REV_ID,
    857         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
    858     },
    859 #endif /* BCM_FIREBOLT_SUPPORT */
    860 
    861 #if defined(BCM_RAPTOR1_SUPPORT)
    862     {   /* Raptor */
    863         BCM56218X_DEVICE_ID, BCM56218X_A0_REV_ID,
    864         "BCM56218_A0",
    865         BCM56218_DEVICE_ID, BCM56218_A0_REV_ID,
    866         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
    867     },
    868     {   /* Raptor */
    869         BCM56218_DEVICE_ID, BCM56218_A0_REV_ID,
    870         "BCM56218_A0",
    871         BCM56218_DEVICE_ID, BCM56218_A0_REV_ID,
    872         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
    873     },
    874     {   /* Raptor */
    875         BCM56219_DEVICE_ID, BCM56219_A0_REV_ID,
    876         "BCM56219_A0",
    877         BCM56218_DEVICE_ID, BCM56218_A0_REV_ID,
    878         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
    879     },
    880     {   /* Raptor */
    881         BCM56218R_DEVICE_ID, BCM56218R_A0_REV_ID,
    882         "BCM56218R_A0",
    883         BCM56218_DEVICE_ID, BCM56218_A0_REV_ID,
    884         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
    885     },
    886     {   /* Raptor */
    887         BCM56219R_DEVICE_ID, BCM56219R_A0_REV_ID,
    888         "BCM56219R_A0",
    889         BCM56218_DEVICE_ID, BCM56218_A0_REV_ID,
    890         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
    891     },
    892     {   /* Raptor */
    893         BCM56214_DEVICE_ID, BCM56214_A0_REV_ID,
    894         "BCM56214_A0",
    895         BCM56218_DEVICE_ID, BCM56218_A0_REV_ID,
    896         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
    897     },
    898     {   /* Raptor */
    899         BCM56215_DEVICE_ID, BCM56215_A0_REV_ID,
    900         "BCM56215_A0",
    901         BCM56218_DEVICE_ID, BCM56218_A0_REV_ID,
    902         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
    903     },
    904     {   /* Raptor */
    905         BCM56214R_DEVICE_ID, BCM56214R_A0_REV_ID,
    906         "BCM56214R_A0",
    907         BCM56218_DEVICE_ID, BCM56218_A0_REV_ID,
    908         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
    909     },
    910     {   /* Raptor */
    911         BCM56215R_DEVICE_ID, BCM56215R_A0_REV_ID,
    912         "BCM56215R_A0",
    913         BCM56218_DEVICE_ID, BCM56218_A0_REV_ID,
    914         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
    915     },
    916     {   /* Raptor */
    917         BCM56216_DEVICE_ID, BCM56216_A0_REV_ID,
    918         "BCM56216_A0",
    919         BCM56218_DEVICE_ID, BCM56218_A0_REV_ID,
    920         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
    921     },
    922     {   /* Raptor */
    923         BCM56217_DEVICE_ID, BCM56217_A0_REV_ID,
    924         "BCM56217_A0",
    925         BCM56218_DEVICE_ID, BCM56218_A0_REV_ID,
    926         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
    927     },
    928     {   /* Raptor */
    929         BCM56212_DEVICE_ID, BCM56212_A0_REV_ID,
    930         "BCM56212_A0",
    931         BCM56218_DEVICE_ID, BCM56218_A0_REV_ID,
    932         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
    933     },
    934     {   /* Raptor */
    935         BCM56213_DEVICE_ID, BCM56213_A0_REV_ID,
    936         "BCM56213_A0",
    937         BCM56218_DEVICE_ID, BCM56218_A0_REV_ID,
    938         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
    939     },
    940     {   /* Raptor */
    941         BCM53718_DEVICE_ID, BCM53718_A0_REV_ID,
    942         "BCM53718_A0",
    943         BCM56218_DEVICE_ID, BCM56218_A0_REV_ID,
    944         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
    945     },
    946     {   /* Raptor */
    947         BCM53714_DEVICE_ID, BCM53714_A0_REV_ID,
    948         "BCM53714_A0",
    949         BCM56218_DEVICE_ID, BCM56218_A0_REV_ID,
    950         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
    951     },
    952     {   /* Raptor */
    953         BCM53716_DEVICE_ID, BCM53716_A0_REV_ID,
    954         "BCM53716_A0",
    955         BCM56218_DEVICE_ID, BCM56218_A0_REV_ID,
    956         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
    957     },
    958     {   /* Raptor */
    959         BCM56018_DEVICE_ID, BCM56018_A0_REV_ID,
    960         "BCM56018_A0",
    961         BCM56218_DEVICE_ID, BCM56218_A0_REV_ID,
    962         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
    963     },
    964     {   /* Raptor */
    965         BCM56014_DEVICE_ID, BCM56014_A0_REV_ID,
    966         "BCM56014_A0",
    967         BCM56218_DEVICE_ID, BCM56218_A0_REV_ID,
    968         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
    969     },
    970     {   /* Raptor */
    971         BCM56218X_DEVICE_ID, BCM56218X_A1_REV_ID,
    972         "BCM56218_A1",
    973         BCM56218_DEVICE_ID, BCM56218_A0_REV_ID,
    974         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
    975     },
    976     {   /* Raptor */
    977         BCM56218_DEVICE_ID, BCM56218_A1_REV_ID,
    978         "BCM56218_A1",
    979         BCM56218_DEVICE_ID, BCM56218_A0_REV_ID,
    980         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
    981     },
    982     {   /* Raptor */
    983         BCM56219_DEVICE_ID, BCM56219_A1_REV_ID,
    984         "BCM56219_A1",
    985         BCM56218_DEVICE_ID, BCM56218_A0_REV_ID,
    986         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
    987     },
    988     {   /* Raptor */
    989         BCM56218R_DEVICE_ID, BCM56218R_A1_REV_ID,
    990         "BCM56218R_A1",
    991         BCM56218_DEVICE_ID, BCM56218_A0_REV_ID,
    992         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
    993     },
    994     {   /* Raptor */
    995         BCM56219R_DEVICE_ID, BCM56219R_A1_REV_ID,
    996         "BCM56219R_A1",
    997         BCM56218_DEVICE_ID, BCM56218_A0_REV_ID,
    998         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
    999     },
   1000     {   /* Raptor */
   1001         BCM56214_DEVICE_ID, BCM56214_A1_REV_ID,
   1002         "BCM56214_A1",
   1003         BCM56218_DEVICE_ID, BCM56218_A0_REV_ID,
   1004         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   1005     },
   1006     {   /* Raptor */
   1007         BCM56215_DEVICE_ID, BCM56215_A1_REV_ID,
   1008         "BCM56215_A1",
   1009         BCM56218_DEVICE_ID, BCM56218_A0_REV_ID,
   1010         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   1011     },
   1012     {   /* Raptor */
   1013         BCM56214R_DEVICE_ID, BCM56214R_A1_REV_ID,
   1014         "BCM56214R_A1",
   1015         BCM56218_DEVICE_ID, BCM56218_A0_REV_ID,
   1016         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   1017     },
   1018     {   /* Raptor */
   1019         BCM56215R_DEVICE_ID, BCM56215R_A1_REV_ID,
   1020         "BCM56215R_A1",
   1021         BCM56218_DEVICE_ID, BCM56218_A0_REV_ID,
   1022         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   1023     },
   1024     {   /* Raptor */
   1025         BCM56216_DEVICE_ID, BCM56216_A1_REV_ID,
   1026         "BCM56216_A1",
   1027         BCM56218_DEVICE_ID, BCM56218_A0_REV_ID,
   1028         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   1029     },
   1030     {   /* Raptor */
   1031         BCM56217_DEVICE_ID, BCM56217_A1_REV_ID,
   1032         "BCM56217_A1",
   1033         BCM56218_DEVICE_ID, BCM56218_A0_REV_ID,
   1034         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   1035     },
   1036     {   /* Raptor */
   1037         BCM56212_DEVICE_ID, BCM56212_A1_REV_ID,
   1038         "BCM56212_A1",
   1039         BCM56218_DEVICE_ID, BCM56218_A0_REV_ID,
   1040         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   1041     },
   1042     {   /* Raptor */
   1043         BCM56213_DEVICE_ID, BCM56213_A1_REV_ID,
   1044         "BCM56213_A1",
   1045         BCM56218_DEVICE_ID, BCM56218_A0_REV_ID,
   1046         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   1047     },
   1048     {   /* Raptor */
   1049         BCM53718_DEVICE_ID, BCM53718_A1_REV_ID,
   1050         "BCM53718_A1",
   1051         BCM56218_DEVICE_ID, BCM56218_A0_REV_ID,
   1052         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   1053     },
   1054     {   /* Raptor */
   1055         BCM53714_DEVICE_ID, BCM53714_A1_REV_ID,
   1056         "BCM53714_A1",
   1057         BCM56218_DEVICE_ID, BCM56218_A0_REV_ID,
   1058         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   1059     },
   1060     {   /* Raptor */
   1061         BCM53716_DEVICE_ID, BCM53716_A1_REV_ID,
   1062         "BCM53716_A1",
   1063         BCM56218_DEVICE_ID, BCM56218_A0_REV_ID,
   1064         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   1065     },
   1066     {   /* Raptor */
   1067         BCM56018_DEVICE_ID, BCM56018_A1_REV_ID,
   1068         "BCM56018_A1",
   1069         BCM56218_DEVICE_ID, BCM56218_A0_REV_ID,
   1070         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   1071     },
   1072     {   /* Raptor */
   1073         BCM56014_DEVICE_ID, BCM56014_A1_REV_ID,
   1074         "BCM56014_A1",
   1075         BCM56218_DEVICE_ID, BCM56218_A0_REV_ID,
   1076         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   1077     },
   1078     {   /* Raptor */
   1079         BCM56218_DEVICE_ID, BCM56218_A2_REV_ID,
   1080         "BCM56218_A2",
   1081         BCM56218_DEVICE_ID, BCM56218_A0_REV_ID,
   1082         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   1083     },
   1084     {   /* Raptor */
   1085         BCM56218X_DEVICE_ID, BCM56218X_A2_REV_ID,
   1086         "BCM56218_A2",
   1087         BCM56218_DEVICE_ID, BCM56218_A0_REV_ID,
   1088         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   1089     },
   1090     {   /* Raptor */
   1091         BCM56219_DEVICE_ID, BCM56219_A2_REV_ID,
   1092         "BCM56219_A2",
   1093         BCM56218_DEVICE_ID, BCM56218_A0_REV_ID,
   1094         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   1095     },
   1096     {   /* Raptor */
   1097         BCM56218R_DEVICE_ID, BCM56218R_A2_REV_ID,
   1098         "BCM56218R_A2",
   1099         BCM56218_DEVICE_ID, BCM56218_A0_REV_ID,
   1100         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   1101     },
   1102     {   /* Raptor */
   1103         BCM56219R_DEVICE_ID, BCM56219R_A2_REV_ID,
   1104         "BCM56219R_A2",
   1105         BCM56218_DEVICE_ID, BCM56218_A0_REV_ID,
   1106         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   1107     },
   1108     {   /* Raptor */
   1109         BCM56214_DEVICE_ID, BCM56214_A2_REV_ID,
   1110         "BCM56214_A2",
   1111         BCM56218_DEVICE_ID, BCM56218_A0_REV_ID,
   1112         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   1113     },
   1114     {   /* Raptor */
   1115         BCM56215_DEVICE_ID, BCM56215_A2_REV_ID,
   1116         "BCM56215_A2",
   1117         BCM56218_DEVICE_ID, BCM56218_A0_REV_ID,
   1118         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   1119     },
   1120     {   /* Raptor */
   1121         BCM56214R_DEVICE_ID, BCM56214R_A2_REV_ID,
   1122         "BCM56214R_A2",
   1123         BCM56218_DEVICE_ID, BCM56218_A0_REV_ID,
   1124         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   1125     },
   1126     {   /* Raptor */
   1127         BCM56215R_DEVICE_ID, BCM56215R_A2_REV_ID,
   1128         "BCM56215R_A2",
   1129         BCM56218_DEVICE_ID, BCM56218_A0_REV_ID,
   1130         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   1131     },
   1132     {   /* Raptor */
   1133         BCM56216_DEVICE_ID, BCM56216_A2_REV_ID,
   1134         "BCM56216_A2",
   1135         BCM56218_DEVICE_ID, BCM56218_A0_REV_ID,
   1136         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   1137     },
   1138     {   /* Raptor */
   1139         BCM56217_DEVICE_ID, BCM56217_A2_REV_ID,
   1140         "BCM56217_A2",
   1141         BCM56218_DEVICE_ID, BCM56218_A0_REV_ID,
   1142         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   1143     },
   1144     {   /* Raptor */
   1145         BCM56212_DEVICE_ID, BCM56212_A2_REV_ID,
   1146         "BCM56212_A2",
   1147         BCM56218_DEVICE_ID, BCM56218_A0_REV_ID,
   1148         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   1149     },
   1150     {   /* Raptor */
   1151         BCM56213_DEVICE_ID, BCM56213_A2_REV_ID,
   1152         "BCM56213_A2",
   1153         BCM56218_DEVICE_ID, BCM56218_A0_REV_ID,
   1154         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   1155     },
   1156     {   /* Raptor */
   1157         BCM53718_DEVICE_ID, BCM53718_A2_REV_ID,
   1158         "BCM53718_A2",
   1159         BCM56218_DEVICE_ID, BCM56218_A0_REV_ID,
   1160         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   1161     },
   1162     {   /* Raptor */
   1163         BCM53714_DEVICE_ID, BCM53714_A2_REV_ID,
   1164         "BCM53714_A2",
   1165         BCM56218_DEVICE_ID, BCM56218_A0_REV_ID,
   1166         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   1167     },
   1168     {   /* Raptor */
   1169         BCM53716_DEVICE_ID, BCM53716_A2_REV_ID,
   1170         "BCM53716_A2",
   1171         BCM56218_DEVICE_ID, BCM56218_A0_REV_ID,
   1172         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   1173     },
   1174     {   /* Raptor */
   1175         BCM56018_DEVICE_ID, BCM56018_A2_REV_ID,
   1176         "BCM56018_A2",
   1177         BCM56218_DEVICE_ID, BCM56218_A0_REV_ID,
   1178         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   1179     },
   1180     {   /* Raptor */
   1181         BCM56014_DEVICE_ID, BCM56014_A2_REV_ID,
   1182         "BCM56014_A2",
   1183         BCM56218_DEVICE_ID, BCM56218_A0_REV_ID,
   1184         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   1185     },
   1186 #endif /* BCM_RAPTOR1_SUPPORT */
   1187 
   1188 #if defined(BCM_GOLDWING_SUPPORT)
   1189     {   /* Goldwing */
   1190         BCM56580_DEVICE_ID, BCM56580_A0_REV_ID,
   1191         "BCM56580_A0",
   1192         BCM56800_DEVICE_ID, BCM56800_A0_REV_ID,
   1193         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   1194     },
   1195 #endif /* BCM_GOLDWING_SUPPORT */
   1196 #if defined(BCM_HUMV_SUPPORT)
   1197     {   /* HUMV */
   1198         BCM56700_DEVICE_ID, BCM56700_A0_REV_ID,
   1199         "BCM56700_A0",
   1200         BCM56800_DEVICE_ID, BCM56800_A0_REV_ID,
   1201         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   1202     },
   1203     {   /* HUMV */
   1204         BCM56701_DEVICE_ID, BCM56701_A0_REV_ID,
   1205         "BCM56701_A0",
   1206         BCM56800_DEVICE_ID, BCM56800_A0_REV_ID,
   1207         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   1208     },
   1209 #endif /* BCM_HUMV_SUPPORT */
   1210 #if defined(BCM_BRADLEY1_SUPPORT)
   1211     /* Without HumV and Goldwing */
   1212     {   /* Bradley */
   1213         BCM56800_DEVICE_ID, BCM56800_A0_REV_ID,
   1214         "BCM56800_A0",
   1215         BCM56800_DEVICE_ID, BCM56800_A0_REV_ID,
   1216         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   1217     },
   1218     {   /* Bradley */
   1219         BCM56801_DEVICE_ID, BCM56801_A0_REV_ID,
   1220         "BCM56801_A0",
   1221         BCM56800_DEVICE_ID, BCM56800_A0_REV_ID,
   1222         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   1223     },
   1224     {   /* Bradley */
   1225         BCM56802_DEVICE_ID, BCM56802_A0_REV_ID,
   1226         "BCM56802_A0",
   1227         BCM56800_DEVICE_ID, BCM56800_A0_REV_ID,
   1228         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   1229     },
   1230     {   /* Bradley */
   1231         BCM56803_DEVICE_ID, BCM56803_A0_REV_ID,
   1232         "BCM56803_A0",
   1233         BCM56800_DEVICE_ID, BCM56800_A0_REV_ID,
   1234         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   1235     },
   1236 #endif /* BCM_BRADLEY1_SUPPORT */
   1237     {   /* Firebolt2 */
   1238         BCM56510_DEVICE_ID, BCM56510_A0_REV_ID,
   1239         "BCM56510_A0",
   1240         BCM56514_DEVICE_ID, BCM56514_A0_REV_ID,
   1241         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   1242     },
   1243     {   /* Firebolt2 */
   1244         BCM56511_DEVICE_ID, BCM56511_A0_REV_ID,
   1245         "BCM56511_A0",
   1246         BCM56514_DEVICE_ID, BCM56514_A0_REV_ID,
   1247         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   1248     },
   1249     {   /* Firebolt2 */
   1250         BCM56512_DEVICE_ID, BCM56512_A0_REV_ID,
   1251         "BCM56512_A0",
   1252         BCM56514_DEVICE_ID, BCM56514_A0_REV_ID,
   1253         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   1254     },
   1255     {   /* Firebolt2 */
   1256         BCM56513_DEVICE_ID, BCM56513_A0_REV_ID,
   1257         "BCM56513_A0",
   1258         BCM56514_DEVICE_ID, BCM56514_A0_REV_ID,
   1259         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   1260     },
   1261     {   /* Firebolt2 */
   1262         BCM56514_DEVICE_ID, BCM56514_A0_REV_ID,
   1263         "BCM56514_A0",
   1264         BCM56514_DEVICE_ID, BCM56514_A0_REV_ID,
   1265         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   1266     },
   1267     {   /* Firebolt2 */
   1268         BCM56516_DEVICE_ID, BCM56516_A0_REV_ID,
   1269         "BCM56516_A0",
   1270         BCM56514_DEVICE_ID, BCM56514_A0_REV_ID,
   1271         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   1272     },
   1273     {   /* Firebolt2 */
   1274         BCM56517_DEVICE_ID, BCM56517_A0_REV_ID,
   1275         "BCM56517_A0",
   1276         BCM56514_DEVICE_ID, BCM56514_A0_REV_ID,
   1277         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   1278     },
   1279     {   /* Firebolt2 */
   1280         BCM56518_DEVICE_ID, BCM56518_A0_REV_ID,
   1281         "BCM56518_A0",
   1282         BCM56514_DEVICE_ID, BCM56514_A0_REV_ID,
   1283         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   1284     },
   1285     {   /* Firebolt2 */
   1286         BCM56519_DEVICE_ID, BCM56519_A0_REV_ID,
   1287         "BCM56519_A0",
   1288         BCM56514_DEVICE_ID, BCM56514_A0_REV_ID,
   1289         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   1290     },
   1291     {   /* Triumph */
   1292         BCM56620_DEVICE_ID, BCM56620_A0_REV_ID,
   1293         "BCM56620_A0",
   1294         BCM56680_DEVICE_ID, BCM56680_A0_REV_ID,
   1295         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   1296     },
   1297     {   /* Triumph */
   1298         BCM56620_DEVICE_ID, BCM56620_A1_REV_ID,
   1299         "BCM56620_A1",
   1300         BCM56680_DEVICE_ID, BCM56680_A0_REV_ID,
   1301         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   1302     },
   1303     {   /* Triumph */
   1304         BCM56620_DEVICE_ID, BCM56620_B0_REV_ID,
   1305         "BCM56620_B0",
   1306         BCM56680_DEVICE_ID, BCM56680_B0_REV_ID,
   1307         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   1308     },
   1309     {   /* Triumph */
   1310         BCM56620_DEVICE_ID, BCM56620_B1_REV_ID,
   1311         "BCM56620_B1",
   1312         BCM56680_DEVICE_ID, BCM56680_B0_REV_ID,
   1313         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   1314     },
   1315     {   /* Triumph */
   1316         BCM56620_DEVICE_ID, BCM56620_B2_REV_ID,
   1317         "BCM56620_B2",
   1318         BCM56680_DEVICE_ID, BCM56680_B0_REV_ID,
   1319         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   1320     },
   1321     {   /* Triumph */
   1322         BCM56624_DEVICE_ID, BCM56624_A0_REV_ID,
   1323         "BCM56624_A0",
   1324         BCM56624_DEVICE_ID, BCM56624_A0_REV_ID,
   1325         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   1326     },
   1327     {   /* Triumph */
   1328         BCM56624_DEVICE_ID, BCM56624_A1_REV_ID,
   1329         "BCM56624_A1",
   1330         BCM56624_DEVICE_ID, BCM56624_A0_REV_ID,
   1331         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   1332     },
   1333     {   /* Triumph */
   1334         BCM56624_DEVICE_ID, BCM56624_B0_REV_ID,
   1335         "BCM56624_B0",
   1336         BCM56624_DEVICE_ID, BCM56624_B0_REV_ID,
   1337         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   1338     },
   1339     {   /* Triumph */
   1340         BCM56624_DEVICE_ID, BCM56624_B1_REV_ID,
   1341         "BCM56624_B1",
   1342         BCM56624_DEVICE_ID, BCM56624_B0_REV_ID,
   1343         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   1344     },
   1345     {   /* Triumph */
   1346         BCM56624_DEVICE_ID, BCM56624_B2_REV_ID,
   1347         "BCM56624_B2",
   1348         BCM56624_DEVICE_ID, BCM56624_B0_REV_ID,
   1349         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   1350     },
   1351     {   /* Triumph */
   1352         BCM56626_DEVICE_ID, BCM56626_A0_REV_ID,
   1353         "BCM56626_A0",
   1354         BCM56624_DEVICE_ID, BCM56624_A0_REV_ID,
   1355         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   1356     },
   1357     {   /* Triumph */
   1358         BCM56626_DEVICE_ID, BCM56626_A1_REV_ID,
   1359         "BCM56626_A1",
   1360         BCM56624_DEVICE_ID, BCM56624_A0_REV_ID,
   1361         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   1362     },
   1363     {   /* Triumph */
   1364         BCM56626_DEVICE_ID, BCM56626_B0_REV_ID,
   1365         "BCM56626_B0",
   1366         BCM56624_DEVICE_ID, BCM56624_B0_REV_ID,
   1367         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   1368     },
   1369     {   /* Triumph */
   1370         BCM56626_DEVICE_ID, BCM56626_B1_REV_ID,
   1371         "BCM56626_B1",
   1372         BCM56624_DEVICE_ID, BCM56624_B0_REV_ID,
   1373         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   1374     },
   1375     {   /* Triumph */
   1376         BCM56626_DEVICE_ID, BCM56626_B2_REV_ID,
   1377         "BCM56626_B2",
   1378         BCM56624_DEVICE_ID, BCM56624_B0_REV_ID,
   1379         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   1380     },
   1381     {   /* Triumph */
   1382         BCM56628_DEVICE_ID, BCM56628_A0_REV_ID,
   1383         "BCM56628_A0",
   1384         BCM56624_DEVICE_ID, BCM56624_A0_REV_ID,
   1385         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   1386     },
   1387     {   /* Triumph */
   1388         BCM56628_DEVICE_ID, BCM56628_A1_REV_ID,
   1389         "BCM56628_A1",
   1390         BCM56624_DEVICE_ID, BCM56624_A0_REV_ID,
   1391         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   1392     },
   1393     {   /* Triumph */
   1394         BCM56628_DEVICE_ID, BCM56628_B0_REV_ID,
   1395         "BCM56628_B0",
   1396         BCM56624_DEVICE_ID, BCM56624_B0_REV_ID,
   1397         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   1398     },
   1399     {   /* Triumph */
   1400         BCM56628_DEVICE_ID, BCM56628_B1_REV_ID,
   1401         "BCM56628_B1",
   1402         BCM56624_DEVICE_ID, BCM56624_B0_REV_ID,
   1403         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   1404     },
   1405     {   /* Triumph */
   1406         BCM56628_DEVICE_ID, BCM56628_B2_REV_ID,
   1407         "BCM56628_B2",
   1408         BCM56624_DEVICE_ID, BCM56624_B0_REV_ID,
   1409         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   1410     },
   1411     {   /* Triumph */
   1412         BCM56629_DEVICE_ID, BCM56629_A0_REV_ID,
   1413         "BCM56629_A0",
   1414         BCM56624_DEVICE_ID, BCM56624_A0_REV_ID,
   1415         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   1416     },
   1417     {   /* Triumph */
   1418         BCM56629_DEVICE_ID, BCM56629_A1_REV_ID,
   1419         "BCM56629_A1",
   1420         BCM56624_DEVICE_ID, BCM56624_A0_REV_ID,
   1421         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   1422     },
   1423     {   /* Triumph */
   1424         BCM56629_DEVICE_ID, BCM56629_B0_REV_ID,
   1425         "BCM56629_B0",
   1426         BCM56624_DEVICE_ID, BCM56624_B0_REV_ID,
   1427         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   1428     },
   1429     {   /* Triumph */
   1430         BCM56629_DEVICE_ID, BCM56629_B1_REV_ID,
   1431         "BCM56629_B1",
   1432         BCM56624_DEVICE_ID, BCM56624_B0_REV_ID,
   1433         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   1434     },
   1435     {   /* Triumph */
   1436         BCM56629_DEVICE_ID, BCM56629_B2_REV_ID,
   1437         "BCM56629_B2",
   1438         BCM56624_DEVICE_ID, BCM56624_B0_REV_ID,
   1439         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   1440     },
   1441     {   /* Valkyrie */
   1442         BCM56680_DEVICE_ID, BCM56680_A0_REV_ID,
   1443         "BCM56680_A0",
   1444         BCM56680_DEVICE_ID, BCM56680_A0_REV_ID,
   1445         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   1446     },
   1447     {   /* Valkyrie */
   1448         BCM56680_DEVICE_ID, BCM56680_A1_REV_ID,
   1449         "BCM56680_A1",
   1450         BCM56680_DEVICE_ID, BCM56680_A0_REV_ID,
   1451         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   1452     },
   1453     {   /* Valkyrie */
   1454         BCM56680_DEVICE_ID, BCM56680_B0_REV_ID,
   1455         "BCM56680_B0",
   1456         BCM56680_DEVICE_ID, BCM56680_B0_REV_ID,
   1457         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   1458     },
   1459     {   /* Valkyrie */
   1460         BCM56680_DEVICE_ID, BCM56680_B1_REV_ID,
   1461         "BCM56680_B1",
   1462         BCM56680_DEVICE_ID, BCM56680_B0_REV_ID,
   1463         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   1464     },
   1465     {   /* Valkyrie */
   1466         BCM56680_DEVICE_ID, BCM56680_B2_REV_ID,
   1467         "BCM56680_B2",
   1468         BCM56680_DEVICE_ID, BCM56680_B0_REV_ID,
   1469         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   1470     },
   1471     {   /* Valkyrie */
   1472         BCM56684_DEVICE_ID, BCM56684_A0_REV_ID,
   1473         "BCM56684_A0",
   1474         BCM56680_DEVICE_ID, BCM56680_A0_REV_ID,
   1475         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   1476     },
   1477     {   /* Valkyrie */
   1478         BCM56684_DEVICE_ID, BCM56684_A1_REV_ID,
   1479         "BCM56684_A1",
   1480         BCM56680_DEVICE_ID, BCM56680_A0_REV_ID,
   1481         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   1482     },
   1483     {   /* Valkyrie */
   1484         BCM56684_DEVICE_ID, BCM56684_B0_REV_ID,
   1485         "BCM56684_B0",
   1486         BCM56680_DEVICE_ID, BCM56680_B0_REV_ID,
   1487         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   1488     },
   1489     {   /* Valkyrie */
   1490         BCM56684_DEVICE_ID, BCM56684_B1_REV_ID,
   1491         "BCM56684_B1",
   1492         BCM56680_DEVICE_ID, BCM56680_B0_REV_ID,
   1493         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   1494     },
   1495     {   /* Valkyrie */
   1496         BCM56684_DEVICE_ID, BCM56684_B2_REV_ID,
   1497         "BCM56684_B2",
   1498         BCM56680_DEVICE_ID, BCM56680_B0_REV_ID,
   1499         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   1500     },
   1501     {   /* Valkyrie */
   1502         BCM56686_DEVICE_ID, BCM56686_B0_REV_ID,
   1503         "BCM56686_B0",
   1504         BCM56680_DEVICE_ID, BCM56680_B0_REV_ID,
   1505         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   1506     },
   1507     {   /* Valkyrie */
   1508         BCM56686_DEVICE_ID, BCM56686_B1_REV_ID,
   1509         "BCM56686_B1",
   1510         BCM56680_DEVICE_ID, BCM56680_B0_REV_ID,
   1511         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   1512     },
   1513     {   /* Valkyrie */
   1514         BCM56686_DEVICE_ID, BCM56686_B2_REV_ID,
   1515         "BCM56686_B2",
   1516         BCM56680_DEVICE_ID, BCM56680_B0_REV_ID,
   1517         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   1518     },
   1519 # if defined(BCM_RAVEN_SUPPORT)
   1520     {   /* Raven */
   1521 
   1522         BCM56224_DEVICE_ID, BCM56224_A0_REV_ID,
   1523         "BCM56224_A0",
   1524         BCM56224_DEVICE_ID, BCM56224_A0_REV_ID,
   1525         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   1526     },
   1527     {   /* Raven */
   1528 
   1529         BCM56225_DEVICE_ID, BCM56225_A0_REV_ID,
   1530         "BCM56225_A0",
   1531         BCM56224_DEVICE_ID, BCM56224_A0_REV_ID,
   1532         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   1533     },
   1534     {   /* Raven */
   1535 
   1536         BCM56226_DEVICE_ID, BCM56226_A0_REV_ID,
   1537         "BCM56226_A0",
   1538         BCM56224_DEVICE_ID, BCM56224_A0_REV_ID,
   1539         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   1540     },
   1541     {   /* Raven */
   1542 
   1543         BCM56227_DEVICE_ID, BCM56227_A0_REV_ID,
   1544         "BCM56227_A0",
   1545         BCM56224_DEVICE_ID, BCM56224_A0_REV_ID,
   1546         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   1547     },
   1548     {   /* Raven */
   1549 
   1550         BCM56228_DEVICE_ID, BCM56228_A0_REV_ID,
   1551         "BCM56228_A0",
   1552         BCM56224_DEVICE_ID, BCM56224_A0_REV_ID,
   1553         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   1554     },
   1555     {   /* Raven */
   1556 
   1557         BCM56229_DEVICE_ID, BCM56229_A0_REV_ID,
   1558         "BCM56229_A0",
   1559         BCM56224_DEVICE_ID, BCM56224_A0_REV_ID,
   1560         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   1561     },
   1562     {   /* Raven */
   1563 
   1564         BCM56024_DEVICE_ID, BCM56024_A0_REV_ID,
   1565         "BCM56024_A0",
   1566         BCM56224_DEVICE_ID, BCM56224_A0_REV_ID,
   1567         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   1568     },
   1569     {   /* Raven */
   1570 
   1571         BCM56025_DEVICE_ID, BCM56025_A0_REV_ID,
   1572         "BCM56025_A0",
   1573         BCM56224_DEVICE_ID, BCM56224_A0_REV_ID,
   1574         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   1575     },
   1576     {   /* Raven */
   1577 
   1578         BCM56224_DEVICE_ID, BCM56224_B0_REV_ID,
   1579         "BCM56224_B0",
   1580         BCM56224_DEVICE_ID, BCM56224_B0_REV_ID,
   1581         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   1582     },
   1583     {   /* Raven */
   1584 
   1585         BCM56225_DEVICE_ID, BCM56225_B0_REV_ID,
   1586         "BCM56225_B0",
   1587         BCM56224_DEVICE_ID, BCM56224_B0_REV_ID,
   1588         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   1589     },
   1590     {   /* Raven */
   1591 
   1592         BCM56226_DEVICE_ID, BCM56226_B0_REV_ID,
   1593         "BCM56226_B0",
   1594         BCM56224_DEVICE_ID, BCM56224_B0_REV_ID,
   1595         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   1596     },
   1597     {   /* Raven */
   1598 
   1599         BCM56227_DEVICE_ID, BCM56227_B0_REV_ID,
   1600         "BCM56227_B0",
   1601         BCM56224_DEVICE_ID, BCM56224_B0_REV_ID,
   1602         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   1603     },
   1604     {   /* Raven */
   1605 
   1606         BCM56228_DEVICE_ID, BCM56228_B0_REV_ID,
   1607         "BCM56228_B0",
   1608         BCM56224_DEVICE_ID, BCM56224_B0_REV_ID,
   1609         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   1610     },
   1611     {   /* Raven */
   1612 
   1613         BCM56229_DEVICE_ID, BCM56229_B0_REV_ID,
   1614         "BCM56229_B0",
   1615         BCM56224_DEVICE_ID, BCM56224_B0_REV_ID,
   1616         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   1617     },
   1618     {   /* Raven */
   1619 
   1620         BCM56024_DEVICE_ID, BCM56024_B0_REV_ID,
   1621         "BCM56024_B0",
   1622         BCM56224_DEVICE_ID, BCM56224_B0_REV_ID,
   1623         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   1624     },
   1625     {   /* Raven */
   1626 
   1627         BCM56025_DEVICE_ID, BCM56025_B0_REV_ID,
   1628         "BCM56025_B0",
   1629         BCM56224_DEVICE_ID, BCM56224_B0_REV_ID,
   1630         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   1631     },
   1632     {   /* Raven */
   1633 
   1634         BCM53724_DEVICE_ID, BCM53724_B0_REV_ID,
   1635         "BCM53724_B0",
   1636         BCM56224_DEVICE_ID, BCM56224_B0_REV_ID,
   1637         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   1638     },
   1639     {   /* Raven */
   1640 
   1641         BCM53726_DEVICE_ID, BCM53726_B0_REV_ID,
   1642         "BCM53726_B0",
   1643         BCM56224_DEVICE_ID, BCM56224_B0_REV_ID,
   1644         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   1645     },
   1646 #endif
   1647 #if defined(BCM_SCORPION_SUPPORT)
   1648     {   /* Scorpion */
   1649         BCM56820_DEVICE_ID, BCM56820_A0_REV_ID,
   1650         "BCM56820_A0",
   1651         BCM56820_DEVICE_ID, BCM56820_A0_REV_ID,
   1652         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   1653     },
   1654     {   /* Scorpion */
   1655         BCM56820_DEVICE_ID, BCM56820_B0_REV_ID,
   1656         "BCM56820_B0",
   1657         BCM56820_DEVICE_ID, BCM56820_A0_REV_ID,
   1658         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   1659     },
   1660     {   /* Scorpion */
   1661         BCM56821_DEVICE_ID, BCM56821_A0_REV_ID,
   1662         "BCM56821_A0",
   1663         BCM56820_DEVICE_ID, BCM56820_A0_REV_ID,
   1664         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   1665     },
   1666     {   /* Scorpion */
   1667         BCM56821_DEVICE_ID, BCM56821_B0_REV_ID,
   1668         "BCM56821_B0",
   1669         BCM56820_DEVICE_ID, BCM56820_A0_REV_ID,
   1670         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   1671     },
   1672     {   /* Scorpion */
   1673         BCM56822_DEVICE_ID, BCM56822_A0_REV_ID,
   1674         "BCM56822_A0",
   1675         BCM56820_DEVICE_ID, BCM56820_A0_REV_ID,
   1676         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   1677     },
   1678     {   /* Scorpion */
   1679         BCM56822_DEVICE_ID, BCM56822_B0_REV_ID,
   1680         "BCM56822_B0",
   1681         BCM56820_DEVICE_ID, BCM56820_A0_REV_ID,
   1682         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   1683     },
   1684     {   /* Scorpion */
   1685         BCM56823_DEVICE_ID, BCM56823_A0_REV_ID,
   1686         "BCM56823_A0",
   1687         BCM56820_DEVICE_ID, BCM56820_A0_REV_ID,
   1688         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   1689     },
   1690     {   /* Scorpion */
   1691         BCM56823_DEVICE_ID, BCM56823_B0_REV_ID,
   1692         "BCM56823_B0",
   1693         BCM56820_DEVICE_ID, BCM56820_A0_REV_ID,
   1694         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   1695     },
   1696     {   /* Scorpion */
   1697         BCM56825_DEVICE_ID, BCM56825_B0_REV_ID,
   1698         "BCM56825_B0",
   1699         BCM56820_DEVICE_ID, BCM56820_A0_REV_ID,
   1700         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   1701     },
   1702 #if defined(BCM_CONQUEROR_SUPPORT)
   1703     {   /* HUMV plus */
   1704         BCM56720_DEVICE_ID, BCM56720_A0_REV_ID,
   1705         "BCM56720_A0",
   1706         BCM56725_DEVICE_ID, BCM56725_A0_REV_ID,
   1707         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   1708     },
   1709     {   /* HUMV plus */
   1710         BCM56720_DEVICE_ID, BCM56720_B0_REV_ID,
   1711         "BCM56720_B0",
   1712         BCM56725_DEVICE_ID, BCM56725_A0_REV_ID,
   1713         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   1714     },
   1715     {   /* HUMV plus */
   1716         BCM56721_DEVICE_ID, BCM56721_A0_REV_ID,
   1717         "BCM56721_A0",
   1718         BCM56725_DEVICE_ID, BCM56725_A0_REV_ID,
   1719         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   1720     },
   1721     {   /* HUMV plus */
   1722         BCM56721_DEVICE_ID, BCM56721_B0_REV_ID,
   1723         "BCM56721_B0",
   1724         BCM56725_DEVICE_ID, BCM56725_A0_REV_ID,
   1725         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   1726     },
   1727     {   /* Conqueror */
   1728         BCM56725_DEVICE_ID, BCM56725_A0_REV_ID,
   1729         "BCM56725_A0",
   1730         BCM56725_DEVICE_ID, BCM56725_A0_REV_ID,
   1731         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   1732     },
   1733     {   /* Conqueror */
   1734         BCM56725_DEVICE_ID, BCM56725_B0_REV_ID,
   1735         "BCM56725_B0",
   1736         BCM56725_DEVICE_ID, BCM56725_A0_REV_ID,
   1737         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   1738     },
   1739 #endif /* BCM_CONQUEROR_SUPPORT */
   1740 #endif
   1741 
   1742 #if defined(BCM_HAWKEYE_SUPPORT)
   1743     {   /* Hawkeye */
   1744         BCM53312_DEVICE_ID, BCM53312_A0_REV_ID,
   1745         "BCM53312_A0",
   1746         BCM53314_DEVICE_ID, BCM53314_A0_REV_ID,
   1747         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   1748     },
   1749     {   /* Hawkeye */
   1750         BCM53312_DEVICE_ID, BCM53312_B0_REV_ID,
   1751         "BCM53312_B0",
   1752         BCM53314_DEVICE_ID, BCM53314_A0_REV_ID,
   1753         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   1754     },
   1755     {   /* Hawkeye */
   1756         BCM53313_DEVICE_ID, BCM53313_A0_REV_ID,
   1757         "BCM53313_A0",
   1758         BCM53314_DEVICE_ID, BCM53314_A0_REV_ID,
   1759         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   1760     },
   1761     {   /* Hawkeye */
   1762         BCM53313_DEVICE_ID, BCM53313_B0_REV_ID,
   1763         "BCM53313_B0",
   1764         BCM53314_DEVICE_ID, BCM53314_A0_REV_ID,
   1765         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   1766     },
   1767     {   /* Hawkeye */
   1768         BCM53314_DEVICE_ID, BCM53314_A0_REV_ID,
   1769         "BCM53314_A0",
   1770         BCM53314_DEVICE_ID, BCM53314_A0_REV_ID,
   1771         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   1772     },
   1773     {   /* Hawkeye */
   1774         BCM53314_DEVICE_ID, BCM53314_B0_REV_ID,
   1775         "BCM53314_B0",
   1776         BCM53314_DEVICE_ID, BCM53314_A0_REV_ID,
   1777         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   1778     },
   1779     {   /* Hawkeye EEE */
   1780         BCM53322_DEVICE_ID, BCM53322_A0_REV_ID,
   1781         "BCM53322_A0",
   1782         BCM53324_DEVICE_ID, BCM53324_A0_REV_ID,
   1783         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   1784     },
   1785     {   /* Hawkeye EEE */
   1786         BCM53323_DEVICE_ID, BCM53323_A0_REV_ID,
   1787         "BCM53323_A0",
   1788         BCM53324_DEVICE_ID, BCM53324_A0_REV_ID,
   1789         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   1790     },
   1791     {   /* Hawkeye EEE */
   1792         BCM53324_DEVICE_ID, BCM53324_A0_REV_ID,
   1793         "BCM53324_A0",
   1794         BCM53324_DEVICE_ID, BCM53324_A0_REV_ID,
   1795         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   1796     },
   1797 #endif
   1798 
   1799 #if defined(BCM_TRIUMPH2_SUPPORT)
   1800     {   /* Triumph2 */
   1801 
   1802         BCM56630_DEVICE_ID, BCM56630_A0_REV_ID,
   1803         "BCM56630_A0",
   1804         BCM56524_DEVICE_ID, BCM56524_A0_REV_ID,
   1805         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   1806     },
   1807     {   /* Triumph2 */
   1808 
   1809         BCM56630_DEVICE_ID, BCM56630_B0_REV_ID,
   1810         "BCM56630_B0",
   1811         BCM56524_DEVICE_ID, BCM56524_B0_REV_ID,
   1812         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   1813     },
   1814     {   /* Triumph2 */
   1815 
   1816         BCM56634_DEVICE_ID, BCM56634_A0_REV_ID,
   1817         "BCM56634_A0",
   1818         BCM56634_DEVICE_ID, BCM56634_A0_REV_ID,
   1819         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   1820     },
   1821     {   /* Triumph2 */
   1822 
   1823         BCM56634_DEVICE_ID, BCM56634_B0_REV_ID,
   1824         "BCM56634_B0",
   1825         BCM56634_DEVICE_ID, BCM56634_B0_REV_ID,
   1826         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   1827     },
   1828     {   /* Triumph2 */
   1829 
   1830         BCM56636_DEVICE_ID, BCM56636_A0_REV_ID,
   1831         "BCM56636_A0",
   1832         BCM56634_DEVICE_ID, BCM56634_A0_REV_ID,
   1833         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   1834     },
   1835     {   /* Triumph2 */
   1836 
   1837         BCM56636_DEVICE_ID, BCM56636_B0_REV_ID,
   1838         "BCM56636_B0",
   1839         BCM56634_DEVICE_ID, BCM56634_B0_REV_ID,
   1840         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   1841     },
   1842     {   /* Triumph2 */
   1843 
   1844         BCM56638_DEVICE_ID, BCM56638_A0_REV_ID,
   1845         "BCM56638_A0",
   1846         BCM56634_DEVICE_ID, BCM56634_A0_REV_ID,
   1847         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   1848     },
   1849     {   /* Triumph2 */
   1850 
   1851         BCM56638_DEVICE_ID, BCM56638_B0_REV_ID,
   1852         "BCM56638_B0",
   1853         BCM56634_DEVICE_ID, BCM56634_B0_REV_ID,
   1854         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   1855     },
   1856     {   /* Triumph2 */
   1857 
   1858         BCM56639_DEVICE_ID, BCM56639_A0_REV_ID,
   1859         "BCM56639_A0",
   1860         BCM56634_DEVICE_ID, BCM56634_A0_REV_ID,
   1861         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   1862     },
   1863     {   /* Triumph2 */
   1864 
   1865         BCM56639_DEVICE_ID, BCM56639_B0_REV_ID,
   1866         "BCM56639_B0",
   1867         BCM56634_DEVICE_ID, BCM56634_B0_REV_ID,
   1868         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   1869     },
   1870     {   /* Firebolt 3 */
   1871 
   1872         BCM56538_DEVICE_ID, BCM56538_B0_REV_ID,
   1873         "BCM56538_B0",
   1874         BCM56634_DEVICE_ID, BCM56634_B0_REV_ID,
   1875         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   1876     },
   1877 #endif
   1878 #if defined(BCM_VALKYRIE2_SUPPORT)
   1879     {   /* Valkyrie2 */
   1880 
   1881         BCM56685_DEVICE_ID, BCM56685_A0_REV_ID,
   1882         "BCM56685_A0",
   1883         BCM56685_DEVICE_ID, BCM56685_A0_REV_ID,
   1884         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   1885     },
   1886     {   /* Valkyrie2 */
   1887 
   1888         BCM56685_DEVICE_ID, BCM56685_B0_REV_ID,
   1889         "BCM56685_B0",
   1890         BCM56685_DEVICE_ID, BCM56685_B0_REV_ID,
   1891         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   1892     },
   1893     {   /* Valkyrie2 */
   1894 
   1895         BCM56689_DEVICE_ID, BCM56689_A0_REV_ID,
   1896         "BCM56689_A0",
   1897         BCM56685_DEVICE_ID, BCM56685_A0_REV_ID,
   1898         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   1899     },
   1900     {   /* Valkyrie2 */
   1901 
   1902         BCM56689_DEVICE_ID, BCM56689_B0_REV_ID,
   1903         "BCM56689_B0",
   1904         BCM56685_DEVICE_ID, BCM56685_B0_REV_ID,
   1905         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   1906     },
   1907 #endif
   1908 #if defined(BCM_APOLLO_SUPPORT)
   1909     {   /* Apollo */
   1910 
   1911         BCM56520_DEVICE_ID, BCM56520_A0_REV_ID,
   1912         "BCM56520_A0",
   1913         BCM56524_DEVICE_ID, BCM56524_A0_REV_ID,
   1914         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   1915     },
   1916     {   /* Apollo */
   1917 
   1918         BCM56520_DEVICE_ID, BCM56520_B0_REV_ID,
   1919         "BCM56520_B0",
   1920         BCM56524_DEVICE_ID, BCM56524_B0_REV_ID,
   1921         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   1922     },
   1923 
   1924     {   /* Apollo */
   1925 
   1926         BCM56521_DEVICE_ID, BCM56521_A0_REV_ID,
   1927         "BCM56521_A0",
   1928         BCM56524_DEVICE_ID, BCM56524_A0_REV_ID,
   1929         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   1930     },
   1931     {   /* Apollo */
   1932 
   1933         BCM56521_DEVICE_ID, BCM56521_B0_REV_ID,
   1934         "BCM56521_B0",
   1935         BCM56524_DEVICE_ID, BCM56524_B0_REV_ID,
   1936         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   1937     },
   1938     {   /* Apollo */
   1939 
   1940         BCM56522_DEVICE_ID, BCM56522_A0_REV_ID,
   1941         "BCM56522_A0",
   1942         BCM56524_DEVICE_ID, BCM56524_A0_REV_ID,
   1943         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   1944     },
   1945     {   /* Apollo */
   1946 
   1947         BCM56522_DEVICE_ID, BCM56522_B0_REV_ID,
   1948         "BCM56522_B0",
   1949         BCM56524_DEVICE_ID, BCM56524_B0_REV_ID,
   1950         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   1951     },
   1952     {   /* Apollo */
   1953 
   1954         BCM56524_DEVICE_ID, BCM56524_A0_REV_ID,
   1955         "BCM56524_A0",
   1956         BCM56524_DEVICE_ID, BCM56524_A0_REV_ID,
   1957         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   1958     },
   1959     {   /* Apollo */
   1960 
   1961         BCM56524_DEVICE_ID, BCM56524_B0_REV_ID,
   1962         "BCM56524_B0",
   1963         BCM56524_DEVICE_ID, BCM56524_B0_REV_ID,
   1964         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   1965     },
   1966     {   /* Apollo */
   1967 
   1968         BCM56526_DEVICE_ID, BCM56526_A0_REV_ID,
   1969         "BCM56526_A0",
   1970         BCM56524_DEVICE_ID, BCM56524_A0_REV_ID,
   1971         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   1972     },
   1973     {   /* Apollo */
   1974 
   1975         BCM56526_DEVICE_ID, BCM56526_B0_REV_ID,
   1976         "BCM56526_B0",
   1977         BCM56524_DEVICE_ID, BCM56524_B0_REV_ID,
   1978         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   1979     },
   1980     {   /* Firebolt 3 */
   1981 
   1982         BCM56534_DEVICE_ID, BCM56534_B0_REV_ID,
   1983         "BCM56534_B0",
   1984         BCM56524_DEVICE_ID, BCM56524_B0_REV_ID,
   1985         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   1986     },
   1987 #endif
   1988 
   1989 #if defined(BCM_ENDURO_SUPPORT)
   1990     {   /* Enduro */
   1991         BCM56331_DEVICE_ID, BCM56331_A0_REV_ID,
   1992         "BCM56331_A0",
   1993         BCM56334_DEVICE_ID, BCM56334_A0_REV_ID,
   1994         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   1995     },
   1996     {  /* Enduro */
   1997         BCM56331_DEVICE_ID, BCM56331_B0_REV_ID,
   1998         "BCM56331_B0",
   1999         BCM56334_DEVICE_ID, BCM56334_B0_REV_ID,
   2000         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   2001     },
   2002     {   /* Enduro */
   2003         BCM56331_DEVICE_ID, BCM56331_B1_REV_ID,
   2004         "BCM56331_B1",
   2005         BCM56334_DEVICE_ID, BCM56334_B0_REV_ID,
   2006         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   2007     },
   2008     {   /* Enduro */
   2009         BCM56333_DEVICE_ID, BCM56333_A0_REV_ID,
   2010         "BCM56333_A0",
   2011         BCM56334_DEVICE_ID, BCM56334_A0_REV_ID,
   2012         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   2013     },
   2014     {  /* Enduro */
   2015         BCM56333_DEVICE_ID, BCM56333_B0_REV_ID,
   2016         "BCM56333_B0",
   2017         BCM56334_DEVICE_ID, BCM56334_B0_REV_ID,
   2018         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   2019     },
   2020     {  /* Enduro */
   2021         BCM56333_DEVICE_ID, BCM56333_B1_REV_ID,
   2022         "BCM56333_B1",
   2023         BCM56334_DEVICE_ID, BCM56334_B0_REV_ID,
   2024         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   2025     },
   2026     {  /* Enduro - Default */
   2027         BCM56334_DEVICE_ID, BCM56334_A0_REV_ID,
   2028         "BCM56334_A0",
   2029         BCM56334_DEVICE_ID, BCM56334_A0_REV_ID,
   2030         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   2031     },
   2032     {   /* Enduro */
   2033         BCM56334_DEVICE_ID, BCM56334_B0_REV_ID,
   2034         "BCM56334_B0",
   2035         BCM56334_DEVICE_ID, BCM56334_B0_REV_ID,
   2036         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   2037     },
   2038     {   /* Enduro */
   2039         BCM56334_DEVICE_ID, BCM56334_B1_REV_ID,
   2040         "BCM56334_B1",
   2041         BCM56334_DEVICE_ID, BCM56334_B0_REV_ID,
   2042         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   2043     },
   2044     {   /* Enduro */
   2045         BCM56338_DEVICE_ID, BCM56338_A0_REV_ID,
   2046         "BCM56338_A0",
   2047         BCM56334_DEVICE_ID, BCM56334_A0_REV_ID,
   2048         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   2049     },
   2050     {  /* Enduro */
   2051         BCM56338_DEVICE_ID, BCM56338_B0_REV_ID,
   2052         "BCM56338_B0",
   2053         BCM56334_DEVICE_ID, BCM56334_B0_REV_ID,
   2054         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   2055     },
   2056     {  /* Enduro */
   2057         BCM56338_DEVICE_ID, BCM56338_B1_REV_ID,
   2058         "BCM56338_B1",
   2059         BCM56334_DEVICE_ID, BCM56334_B0_REV_ID,
   2060         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   2061     },
   2062     {  /* Helix3 */
   2063         BCM56320_DEVICE_ID, BCM56320_A0_REV_ID,
   2064         "BCM56320_A0",
   2065         BCM56334_DEVICE_ID, BCM56334_A0_REV_ID,
   2066         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   2067     },
   2068     {  /* Helix3 */
   2069         BCM56320_DEVICE_ID, BCM56320_B0_REV_ID,
   2070         "BCM56320_B0",
   2071         BCM56334_DEVICE_ID, BCM56334_B0_REV_ID,
   2072         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   2073     },
   2074     {  /* Helix3 */
   2075         BCM56320_DEVICE_ID, BCM56320_B1_REV_ID,
   2076         "BCM56320_B1",
   2077         BCM56334_DEVICE_ID, BCM56334_B0_REV_ID,
   2078         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   2079     },
   2080     {  /* Helix3 */
   2081         BCM56321_DEVICE_ID, BCM56321_A0_REV_ID,
   2082         "BCM56321_A0",
   2083         BCM56334_DEVICE_ID, BCM56334_A0_REV_ID,
   2084         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   2085     },
   2086     {  /* Helix3 */
   2087         BCM56321_DEVICE_ID, BCM56321_B0_REV_ID,
   2088         "BCM56321_B0",
   2089         BCM56334_DEVICE_ID, BCM56334_B0_REV_ID,
   2090         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   2091     },
   2092     {  /* Helix3 */
   2093         BCM56321_DEVICE_ID, BCM56321_B1_REV_ID,
   2094         "BCM56321_B1",
   2095         BCM56334_DEVICE_ID, BCM56334_B0_REV_ID,
   2096         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   2097     },
   2098     {   /* Dagger  */
   2099         BCM56230_DEVICE_ID, BCM56230_B1_REV_ID,
   2100         "BCM56230_B1",
   2101         BCM56334_DEVICE_ID, BCM56334_B0_REV_ID,
   2102         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   2103     },
   2104     {   /* Dagger  */
   2105         BCM56231_DEVICE_ID, BCM56231_B1_REV_ID,
   2106         "BCM56231_B1",
   2107         BCM56334_DEVICE_ID, BCM56334_B0_REV_ID,
   2108         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   2109     },
   2110 #endif
   2111 
   2112 #if defined(BCM_HURRICANE1_SUPPORT)
   2113     {   /* Hurricane */
   2114         BCM56140_DEVICE_ID, BCM56140_A0_REV_ID,
   2115         "BCM56140_A0",
   2116         BCM56142_DEVICE_ID, BCM56142_A0_REV_ID,
   2117         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   2118     },
   2119     {   /* Hurricane */
   2120         BCM56142_DEVICE_ID, BCM56142_A0_REV_ID,
   2121         "BCM56142_A0",
   2122         BCM56142_DEVICE_ID, BCM56142_A0_REV_ID,
   2123         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   2124     },
   2125     {   /* Hurricane */
   2126         BCM56143_DEVICE_ID, BCM56143_A0_REV_ID,
   2127         "BCM56143_A0",
   2128         BCM56142_DEVICE_ID, BCM56142_A0_REV_ID,
   2129         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   2130     },
   2131     {   /* Hurricane */
   2132         BCM56144_DEVICE_ID, BCM56144_A0_REV_ID,
   2133         "BCM56144_A0",
   2134         BCM56142_DEVICE_ID, BCM56142_A0_REV_ID,
   2135         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   2136     },
   2137     {   /* Hurricane */
   2138         BCM56146_DEVICE_ID, BCM56146_A0_REV_ID,
   2139         "BCM56146_A0",
   2140         BCM56142_DEVICE_ID, BCM56142_A0_REV_ID,
   2141         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   2142     },
   2143     {   /* Hurricane */
   2144         BCM56147_DEVICE_ID, BCM56147_A0_REV_ID,
   2145         "BCM56147_A0",
   2146         BCM56142_DEVICE_ID, BCM56142_A0_REV_ID,
   2147         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   2148     },
   2149     {   /* Hurricane */
   2150         BCM56149_DEVICE_ID, BCM56149_A0_REV_ID,
   2151         "BCM56149_A0",
   2152         BCM56142_DEVICE_ID, BCM56142_A0_REV_ID,
   2153         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   2154     },
   2155 #endif
   2156 
   2157 #if defined(BCM_HURRICANE2_SUPPORT)
   2158     {   /* Hurricane 2 */
   2159         BCM56150_DEVICE_ID, BCM56150_A0_REV_ID,
   2160         "BCM56150_A0",
   2161         BCM56150_DEVICE_ID, BCM56150_A0_REV_ID,
   2162         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   2163     },
   2164     {   /* Hurricane 2 */
   2165         BCM56151_DEVICE_ID, BCM56151_A0_REV_ID,
   2166         "BCM56151_A0",
   2167         BCM56150_DEVICE_ID, BCM56150_A0_REV_ID,
   2168         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   2169     },
   2170     {   /* Hurricane 2 */
   2171         BCM56152_DEVICE_ID, BCM56152_A0_REV_ID,
   2172         "BCM56152_A0",
   2173         BCM56150_DEVICE_ID, BCM56150_A0_REV_ID,
   2174         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   2175     },
   2176     {   /* Wolfhound */
   2177         BCM53342_DEVICE_ID, BCM53342_A0_REV_ID,
   2178         "BCM53342_A0",
   2179         BCM56150_DEVICE_ID, BCM56150_A0_REV_ID,
   2180         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   2181     },
   2182     {   /* Wolfhound */
   2183         BCM53343_DEVICE_ID, BCM53343_A0_REV_ID,
   2184         "BCM53343_A0",
   2185         BCM56150_DEVICE_ID, BCM56150_A0_REV_ID,
   2186         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   2187     },
   2188     {   /* Wolfhound */
   2189         BCM53344_DEVICE_ID, BCM53344_A0_REV_ID,
   2190         "BCM53344_A0",
   2191         BCM56150_DEVICE_ID, BCM56150_A0_REV_ID,
   2192         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   2193     },
   2194     {   /* Wolfhound */
   2195         BCM53346_DEVICE_ID, BCM53346_A0_REV_ID,
   2196         "BCM53346_A0",
   2197         BCM56150_DEVICE_ID, BCM56150_A0_REV_ID,
   2198         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   2199     },
   2200     {    /* Wolfhound */
   2201         BCM53347_DEVICE_ID, BCM53347_A0_REV_ID,
   2202         "BCM53347_A0",
   2203         BCM56150_DEVICE_ID, BCM56150_A0_REV_ID,
   2204         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   2205     },
   2206     {   /* Foxhound */
   2207         BCM53333_DEVICE_ID, BCM53333_A0_REV_ID,
   2208         "BCM53333_A0",
   2209         BCM56150_DEVICE_ID, BCM56150_A0_REV_ID,
   2210         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   2211     },
   2212     {   /* Foxhound */
   2213         BCM53334_DEVICE_ID, BCM53334_A0_REV_ID,
   2214         "BCM53334_A0",
   2215         BCM56150_DEVICE_ID, BCM56150_A0_REV_ID,
   2216         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   2217     },
   2218     {   /* Deerhound */
   2219         BCM53393_DEVICE_ID, BCM53393_A0_REV_ID,
   2220         "BCM53393_A0",
   2221         BCM56150_DEVICE_ID, BCM56150_A0_REV_ID,
   2222         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   2223     },
   2224     {   /* Deerhound */
   2225         BCM53394_DEVICE_ID, BCM53394_A0_REV_ID,
   2226         "BCM53394_A0",
   2227         BCM56150_DEVICE_ID, BCM56150_A0_REV_ID,
   2228         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   2229     },
   2230 #endif
   2231 
   2232 #if defined(BCM_GREYHOUND_SUPPORT)
   2233     {   /* Greyhound */
   2234         BCM53400_DEVICE_ID, BCM53400_A0_REV_ID,
   2235         "BCM53400_A0",
   2236         BCM53400_DEVICE_ID, BCM53400_A0_REV_ID,
   2237         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   2238     },
   2239     {   /* Greyhound */
   2240         BCM53401_DEVICE_ID, BCM53401_A0_REV_ID,
   2241         "BCM53401_A0",
   2242         BCM53400_DEVICE_ID, BCM53400_A0_REV_ID,
   2243         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   2244     },
   2245     {   /* Greyhound */
   2246         BCM53411_DEVICE_ID, BCM53401_A0_REV_ID,
   2247         "BCM53411_A0",
   2248         BCM53400_DEVICE_ID, BCM53400_A0_REV_ID,
   2249         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   2250     },
   2251     {   /* Greyhound */
   2252         BCM53402_DEVICE_ID, BCM53402_A0_REV_ID,
   2253         "BCM53402_A0",
   2254         BCM53400_DEVICE_ID, BCM53400_A0_REV_ID,
   2255         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   2256     },
   2257     {   /* Greyhound */
   2258         BCM53412_DEVICE_ID, BCM53402_A0_REV_ID,
   2259         "BCM53412_A0",
   2260         BCM53400_DEVICE_ID, BCM53400_A0_REV_ID,
   2261         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   2262     },
   2263     {   /* Greyhound */
   2264         BCM53403_DEVICE_ID, BCM53403_A0_REV_ID,
   2265         "BCM53403_A0",
   2266         BCM53400_DEVICE_ID, BCM53400_A0_REV_ID,
   2267         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   2268     },
   2269     {   /* Greyhound */
   2270         BCM53413_DEVICE_ID, BCM53403_A0_REV_ID,
   2271         "BCM53413_A0",
   2272         BCM53400_DEVICE_ID, BCM53400_A0_REV_ID,
   2273         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   2274     },
   2275     {   /* Greyhound */
   2276         BCM53404_DEVICE_ID, BCM53404_A0_REV_ID,
   2277         "BCM53404_A0",
   2278         BCM53400_DEVICE_ID, BCM53400_A0_REV_ID,
   2279         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   2280     },
   2281     {   /* Greyhound */
   2282         BCM53414_DEVICE_ID, BCM53404_A0_REV_ID,
   2283         "BCM53414_A0",
   2284         BCM53400_DEVICE_ID, BCM53400_A0_REV_ID,
   2285         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   2286     },
   2287     {   /* Greyhound */
   2288         BCM53405_DEVICE_ID, BCM53405_A0_REV_ID,
   2289         "BCM53405_A0",
   2290         BCM53400_DEVICE_ID, BCM53400_A0_REV_ID,
   2291         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   2292     },
   2293     {   /* Greyhound */
   2294         BCM53415_DEVICE_ID, BCM53405_A0_REV_ID,
   2295         "BCM53415_A0",
   2296         BCM53400_DEVICE_ID, BCM53400_A0_REV_ID,
   2297         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   2298     },
   2299     {   /* Greyhound */
   2300         BCM53406_DEVICE_ID, BCM53406_A0_REV_ID,
   2301         "BCM53406_A0",
   2302         BCM53400_DEVICE_ID, BCM53400_A0_REV_ID,
   2303         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   2304     },
   2305     {   /* Greyhound */
   2306         BCM53416_DEVICE_ID, BCM53406_A0_REV_ID,
   2307         "BCM53416_A0",
   2308         BCM53400_DEVICE_ID, BCM53400_A0_REV_ID,
   2309         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   2310     },
   2311     {   /* Greyhound */
   2312         BCM53408_DEVICE_ID, BCM53408_A0_REV_ID,
   2313         "BCM53408_A0",
   2314         BCM53400_DEVICE_ID, BCM53400_A0_REV_ID,
   2315         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   2316     },
   2317     {   /* Greyhound */
   2318         BCM53418_DEVICE_ID, BCM53408_A0_REV_ID,
   2319         "BCM53418_A0",
   2320         BCM53400_DEVICE_ID, BCM53400_A0_REV_ID,
   2321         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   2322     },
   2323     {   /* Ranger2 */
   2324         BCM56060_DEVICE_ID, BCM56060_A0_REV_ID,
   2325         "BCM56060_A0",
   2326         BCM53400_DEVICE_ID, BCM53400_A0_REV_ID,
   2327         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   2328     },
   2329     {   /* Ranger2 */
   2330         BCM56062_DEVICE_ID, BCM56062_A0_REV_ID,
   2331         "BCM56062_A0",
   2332         BCM53400_DEVICE_ID, BCM53400_A0_REV_ID,
   2333         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   2334     },
   2335     {   /* Ranger2 */
   2336         BCM56063_DEVICE_ID, BCM56063_A0_REV_ID,
   2337         "BCM56063_A0",
   2338         BCM53400_DEVICE_ID, BCM53400_A0_REV_ID,
   2339         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   2340     },
   2341     {   /* Ranger2 */
   2342         BCM56064_DEVICE_ID, BCM56064_A0_REV_ID,
   2343         "BCM56064_A0",
   2344         BCM53400_DEVICE_ID, BCM53400_A0_REV_ID,
   2345         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   2346     },
   2347     {   /* Ranger2 */
   2348         BCM56065_DEVICE_ID, BCM56065_A0_REV_ID,
   2349         "BCM56065_A0",
   2350         BCM53400_DEVICE_ID, BCM53400_A0_REV_ID,
   2351         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   2352     },    
   2353     {   /* Ranger2 */
   2354         BCM56066_DEVICE_ID, BCM56066_A0_REV_ID,
   2355         "BCM56066_A0",
   2356         BCM53400_DEVICE_ID, BCM53400_A0_REV_ID,
   2357         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   2358     },
   2359     {   /* Elkhound */
   2360         BCM53454_DEVICE_ID, BCM53454_A0_REV_ID,
   2361         "BCM53454_A0",
   2362         BCM53400_DEVICE_ID, BCM53400_A0_REV_ID,
   2363         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   2364     },
   2365     {   /* Elkhound */
   2366         BCM53455_DEVICE_ID, BCM53454_A0_REV_ID,
   2367         "BCM53455_A0",
   2368         BCM53400_DEVICE_ID, BCM53400_A0_REV_ID,
   2369         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   2370     },
   2371     {   /* Elkhound */
   2372         BCM53456_DEVICE_ID, BCM53456_A0_REV_ID,
   2373         "BCM53456_A0",
   2374         BCM53400_DEVICE_ID, BCM53400_A0_REV_ID,
   2375         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   2376     },
   2377     {   /* Elkhound */
   2378         BCM53457_DEVICE_ID, BCM53456_A0_REV_ID,
   2379         "BCM53457_A0",
   2380         BCM53400_DEVICE_ID, BCM53400_A0_REV_ID,
   2381         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   2382     },
   2383     {   /* Bloodhound */
   2384         BCM53422_DEVICE_ID, BCM53422_A0_REV_ID,
   2385         "BCM53422_A0",
   2386         BCM53400_DEVICE_ID, BCM53400_A0_REV_ID,
   2387         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   2388     },
   2389     {   /* Bloodhound */
   2390         BCM53424_DEVICE_ID, BCM53424_A0_REV_ID,
   2391         "BCM53424_A0",
   2392         BCM53400_DEVICE_ID, BCM53400_A0_REV_ID,
   2393         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   2394     },
   2395     {   /* Bloodhound */
   2396         BCM53426_DEVICE_ID, BCM53426_A0_REV_ID,
   2397         "BCM53426_A0",
   2398         BCM53400_DEVICE_ID, BCM53400_A0_REV_ID,
   2399         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   2400     },
   2401     {   /* Greyhound Lite w/o L3 */
   2402         BCM53365_DEVICE_ID, BCM53365_A0_REV_ID,
   2403         "BCM53365_A0",
   2404         BCM53400_DEVICE_ID, BCM53400_A0_REV_ID,
   2405         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   2406     },
   2407     {   /* Greyhound */
   2408         BCM53369_DEVICE_ID, BCM53369_A0_REV_ID,
   2409         "BCM53369_A0",
   2410         BCM53400_DEVICE_ID, BCM53400_A0_REV_ID,
   2411         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   2412     },
   2413 #endif
   2414 #if defined(BCM_HURRICANE3_SUPPORT)
   2415     {   /* Hurricane3 */
   2416         BCM56160_DEVICE_ID, BCM56160_A0_REV_ID,
   2417         "BCM56160_A0",
   2418         BCM56160_DEVICE_ID, BCM56160_A0_REV_ID,
   2419         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   2420     },
   2421     {   /* Hurricane3 */
   2422         BCM56160_DEVICE_ID, BCM56160_B0_REV_ID,
   2423         "BCM56160_B0",
   2424         BCM56160_DEVICE_ID, BCM56160_A0_REV_ID,
   2425         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   2426     },
   2427     {   /* Hurricane3 */
   2428         BCM56162_DEVICE_ID, BCM56162_A0_REV_ID,
   2429         "BCM56162_A0",
   2430         BCM56160_DEVICE_ID, BCM56160_A0_REV_ID,
   2431         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   2432     },
   2433     {   /* Hurricane3 */
   2434         BCM56162_DEVICE_ID, BCM56162_B0_REV_ID,
   2435         "BCM56162_B0",
   2436         BCM56160_DEVICE_ID, BCM56160_A0_REV_ID,
   2437         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   2438     },
   2439     {   /* Hurricane3 Lite */
   2440         BCM56163_DEVICE_ID, BCM56163_A0_REV_ID,
   2441         "BCM56163_A0",
   2442         BCM56160_DEVICE_ID, BCM56160_A0_REV_ID,
   2443         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   2444     },
   2445     {   /* Hurricane3 Lite */
   2446         BCM56163_DEVICE_ID, BCM56163_B0_REV_ID,
   2447         "BCM56163_B0",
   2448         BCM56160_DEVICE_ID, BCM56160_A0_REV_ID,
   2449         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   2450     },
   2451     {   /* Hurricane3 Lite */
   2452         BCM56164_DEVICE_ID, BCM56164_A0_REV_ID,
   2453         "BCM56164_A0",
   2454         BCM56160_DEVICE_ID, BCM56160_A0_REV_ID,
   2455         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   2456     },
   2457     {   /* Hurricane3 Lite */
   2458         BCM56164_DEVICE_ID, BCM56164_B0_REV_ID,
   2459         "BCM56164_B0",
   2460         BCM56160_DEVICE_ID, BCM56160_A0_REV_ID,
   2461         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   2462     },
   2463     {   /* Hurricane3 Lite */
   2464         BCM56166_DEVICE_ID, BCM56166_A0_REV_ID,
   2465         "BCM56166_A0",
   2466         BCM56160_DEVICE_ID, BCM56160_A0_REV_ID,
   2467         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   2468     },
   2469     {   /* Hurricane3 Lite */
   2470         BCM56166_DEVICE_ID, BCM56166_B0_REV_ID,
   2471         "BCM56166_B0",
   2472         BCM56160_DEVICE_ID, BCM56160_A0_REV_ID,
   2473         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   2474     },
   2475     {   /* Buckhound */
   2476         BCM53440_DEVICE_ID, BCM53440_A0_REV_ID,
   2477         "BCM53440_A0",
   2478         BCM56160_DEVICE_ID, BCM56160_A0_REV_ID,
   2479         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   2480     },
   2481     {   /* Buckhound */
   2482         BCM53440_DEVICE_ID, BCM53440_B0_REV_ID,
   2483         "BCM53440_B0",
   2484         BCM56160_DEVICE_ID, BCM56160_A0_REV_ID,
   2485         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   2486     },
   2487     {   /* Buckhound */
   2488         BCM53443_DEVICE_ID, BCM53443_A0_REV_ID,
   2489         "BCM53443_A0",
   2490         BCM56160_DEVICE_ID, BCM56160_A0_REV_ID,
   2491         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   2492     },
   2493     {   /* Buckhound */
   2494         BCM53443_DEVICE_ID, BCM53443_B0_REV_ID,
   2495         "BCM53443_B0",
   2496         BCM56160_DEVICE_ID, BCM56160_A0_REV_ID,
   2497         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   2498     },
   2499     {   /* Buckhound */
   2500         BCM53442_DEVICE_ID, BCM53442_A0_REV_ID,
   2501         "BCM53442_A0",
   2502         BCM56160_DEVICE_ID, BCM56160_A0_REV_ID,
   2503         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   2504     },
   2505     {   /* Buckhound */
   2506         BCM53442_DEVICE_ID, BCM53442_B0_REV_ID,
   2507         "BCM53442_B0",
   2508         BCM56160_DEVICE_ID, BCM56160_A0_REV_ID,
   2509         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   2510     },
   2511     {   /* Foxhound2 */
   2512         BCM53434_DEVICE_ID, BCM53434_A0_REV_ID,
   2513         "BCM53434_A0",
   2514         BCM56160_DEVICE_ID, BCM56160_A0_REV_ID,
   2515         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   2516     },
   2517     {   /* Foxhound2 */
   2518         BCM53434_DEVICE_ID, BCM53434_B0_REV_ID,
   2519         "BCM53434_B0",
   2520         BCM56160_DEVICE_ID, BCM56160_A0_REV_ID,
   2521         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   2522     },
   2523     {   /* Wolfhound2 */
   2524         BCM53540_DEVICE_ID, BCM53540_A0_REV_ID,
   2525         "BCM53540_A0",
   2526         BCM53540_DEVICE_ID, BCM53540_A0_REV_ID,
   2527         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   2528     },
   2529     {   /* Wolfhound2 */
   2530         BCM53547_DEVICE_ID, BCM53547_A0_REV_ID,
   2531         "BCM53547_A0",
   2532         BCM53540_DEVICE_ID, BCM53540_A0_REV_ID,
   2533         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   2534     },
   2535     {   /* Wolfhound2 */
   2536         BCM53548_DEVICE_ID, BCM53548_A0_REV_ID,
   2537         "BCM53548_A0",
   2538         BCM53540_DEVICE_ID, BCM53540_A0_REV_ID,
   2539         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   2540     },
   2541     {   /* Wolfhound2 */
   2542         BCM53549_DEVICE_ID, BCM53549_A0_REV_ID,
   2543         "BCM53549_A0",
   2544         BCM53540_DEVICE_ID, BCM53540_A0_REV_ID,
   2545         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   2546     },
   2547 #endif
   2548 #if defined(BCM_GREYHOUND2_SUPPORT)
   2549     {   /* Hurricane3-MG */
   2550         BCM56170_DEVICE_ID, BCM56170_A0_REV_ID,
   2551         "BCM56170_A0",
   2552         BCM53570_DEVICE_ID, BCM53570_A0_REV_ID,
   2553         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   2554     },
   2555     {   /* Hurricane3-MG */
   2556         BCM56170_DEVICE_ID, BCM56170_B0_REV_ID,
   2557         "BCM56170_B0",
   2558         BCM53570_DEVICE_ID, BCM53570_B0_REV_ID,
   2559         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   2560     },
   2561     {   /* Hurricane3-MG */
   2562         BCM56172_DEVICE_ID, BCM56172_A0_REV_ID,
   2563         "BCM56172_A0",
   2564         BCM53570_DEVICE_ID, BCM53570_A0_REV_ID,
   2565         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   2566     },
   2567     {   /* Hurricane3-MG */
   2568         BCM56172_DEVICE_ID, BCM56172_B0_REV_ID,
   2569         "BCM56172_B0",
   2570         BCM53570_DEVICE_ID, BCM53570_B0_REV_ID,
   2571         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   2572     },
   2573     {   /* Hurricane3-MG */
   2574         BCM56174_DEVICE_ID, BCM56174_A0_REV_ID,
   2575         "BCM56174_A0",
   2576         BCM53570_DEVICE_ID, BCM53570_A0_REV_ID,
   2577         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   2578     },
   2579     {   /* Hurricane3-MG */
   2580         BCM56174_DEVICE_ID, BCM56174_B0_REV_ID,
   2581         "BCM56174_B0",
   2582         BCM53570_DEVICE_ID, BCM53570_B0_REV_ID,
   2583         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   2584     },
   2585     {   /* Quartz, Greyhound2 */
   2586         BCM53570_DEVICE_ID, BCM53570_A0_REV_ID,
   2587         "BCM53570_A0",
   2588         BCM53570_DEVICE_ID, BCM53570_A0_REV_ID,
   2589         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   2590     },
   2591     {   /* Quartz, Greyhound2 */
   2592         BCM53570_DEVICE_ID, BCM53570_B0_REV_ID,
   2593         "BCM53570_B0",
   2594         BCM53570_DEVICE_ID, BCM53570_B0_REV_ID,
   2595         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   2596     },
   2597     {   /* Quartz, Greyhound2 */
   2598         BCM53575_DEVICE_ID, BCM53575_A0_REV_ID,
   2599         "BCM53575_A0",
   2600         BCM53570_DEVICE_ID, BCM53570_A0_REV_ID,
   2601         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   2602     },
   2603     {   /* Quartz, Greyhound2 */
   2604         BCM53575_DEVICE_ID, BCM53575_B0_REV_ID,
   2605         "BCM53575_B0",
   2606         BCM53570_DEVICE_ID, BCM53570_B0_REV_ID,
   2607         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   2608     },
   2609 #endif /* BCM_GREYHOUND2_SUPPORT */
   2610 #if defined(BCM_TRIDENT_SUPPORT)
   2611     {   /* Trident */
   2612         BCM56840_DEVICE_ID, BCM56840_A0_REV_ID,
   2613         "BCM56840_A0",
   2614         BCM56840_DEVICE_ID, BCM56840_A0_REV_ID,
   2615         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   2616     },
   2617     {   /* Trident */
   2618         BCM56840_DEVICE_ID, BCM56840_A1_REV_ID,
   2619         "BCM56840_A1",
   2620         BCM56840_DEVICE_ID, BCM56840_A0_REV_ID,
   2621         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   2622     },
   2623     {   /* Trident */
   2624         BCM56840_DEVICE_ID, BCM56840_A2_REV_ID,
   2625         "BCM56840_A2",
   2626         BCM56840_DEVICE_ID, BCM56840_A0_REV_ID,
   2627         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   2628     },
   2629     {   /* Trident */
   2630         BCM56840_DEVICE_ID, BCM56840_A3_REV_ID,
   2631         "BCM56840_A3",
   2632         BCM56840_DEVICE_ID, BCM56840_A0_REV_ID,
   2633         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   2634     },
   2635     {   /* Trident */
   2636         BCM56840_DEVICE_ID, BCM56840_A4_REV_ID,
   2637         "BCM56840_A4",
   2638         BCM56840_DEVICE_ID, BCM56840_A0_REV_ID,
   2639         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   2640     },
   2641     {   /* Trident */
   2642         BCM56840_DEVICE_ID, BCM56840_B0_REV_ID,
   2643         "BCM56840_B0",
   2644         BCM56840_DEVICE_ID, BCM56840_A0_REV_ID,
   2645         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   2646     },
   2647     {   /* Trident */
   2648         BCM56840_DEVICE_ID, BCM56840_B1_REV_ID,
   2649         "BCM56840_B1",
   2650         BCM56840_DEVICE_ID, BCM56840_A0_REV_ID,
   2651         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   2652     },
   2653     {   /* Trident */
   2654         BCM56841_DEVICE_ID, BCM56841_A0_REV_ID,
   2655         "BCM56841_A0",
   2656         BCM56840_DEVICE_ID, BCM56840_A0_REV_ID,
   2657         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   2658     },
   2659     {   /* Trident */
   2660         BCM56841_DEVICE_ID, BCM56841_A1_REV_ID,
   2661         "BCM56841_A1",
   2662         BCM56840_DEVICE_ID, BCM56840_A0_REV_ID,
   2663         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   2664     },
   2665     {   /* Trident */
   2666         BCM56841_DEVICE_ID, BCM56841_A2_REV_ID,
   2667         "BCM56841_A2",
   2668         BCM56840_DEVICE_ID, BCM56840_A0_REV_ID,
   2669         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   2670     },
   2671     {   /* Trident */
   2672         BCM56841_DEVICE_ID, BCM56841_A3_REV_ID,
   2673         "BCM56841_A3",
   2674         BCM56840_DEVICE_ID, BCM56840_A0_REV_ID,
   2675         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   2676     },
   2677     {   /* Trident */
   2678         BCM56841_DEVICE_ID, BCM56841_A4_REV_ID,
   2679         "BCM56841_A4",
   2680         BCM56840_DEVICE_ID, BCM56840_A0_REV_ID,
   2681         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   2682     },
   2683     {   /* Trident */
   2684         BCM56841_DEVICE_ID, BCM56841_B0_REV_ID,
   2685         "BCM56841_B0",
   2686         BCM56840_DEVICE_ID, BCM56840_A0_REV_ID,
   2687         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   2688     },
   2689     {   /* Trident */
   2690         BCM56841_DEVICE_ID, BCM56841_B1_REV_ID,
   2691         "BCM56841_B1",
   2692         BCM56840_DEVICE_ID, BCM56840_A0_REV_ID,
   2693         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   2694     },
   2695     {   /* Trident */
   2696         BCM56843_DEVICE_ID, BCM56843_A0_REV_ID,
   2697         "BCM56843_A0",
   2698         BCM56840_DEVICE_ID, BCM56840_A0_REV_ID,
   2699         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   2700     },
   2701     {   /* Trident */
   2702         BCM56843_DEVICE_ID, BCM56843_A1_REV_ID,
   2703         "BCM56843_A1",
   2704         BCM56840_DEVICE_ID, BCM56840_A0_REV_ID,
   2705         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   2706     },
   2707     {   /* Trident */
   2708         BCM56843_DEVICE_ID, BCM56843_A2_REV_ID,
   2709         "BCM56843_A2",
   2710         BCM56840_DEVICE_ID, BCM56840_A0_REV_ID,
   2711         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   2712     },
   2713     {   /* Trident */
   2714         BCM56843_DEVICE_ID, BCM56843_A3_REV_ID,
   2715         "BCM56843_A3",
   2716         BCM56840_DEVICE_ID, BCM56840_A0_REV_ID,
   2717         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   2718     },
   2719     {   /* Trident */
   2720         BCM56843_DEVICE_ID, BCM56843_A4_REV_ID,
   2721         "BCM56843_A4",
   2722         BCM56840_DEVICE_ID, BCM56840_A0_REV_ID,
   2723         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   2724     },
   2725     {   /* Trident */
   2726         BCM56843_DEVICE_ID, BCM56843_B0_REV_ID,
   2727         "BCM56843_B0",
   2728         BCM56840_DEVICE_ID, BCM56840_A0_REV_ID,
   2729         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   2730     },
   2731     {   /* Trident */
   2732         BCM56843_DEVICE_ID, BCM56843_B1_REV_ID,
   2733         "BCM56843_B1",
   2734         BCM56840_DEVICE_ID, BCM56840_A0_REV_ID,
   2735         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   2736     },
   2737     {   /* Trident */
   2738         BCM56845_DEVICE_ID, BCM56845_A0_REV_ID,
   2739         "BCM56845_A0",
   2740         BCM56840_DEVICE_ID, BCM56840_A0_REV_ID,
   2741         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   2742     },
   2743     {   /* Trident */
   2744         BCM56845_DEVICE_ID, BCM56845_A1_REV_ID,
   2745         "BCM56845_A1",
   2746         BCM56840_DEVICE_ID, BCM56840_A0_REV_ID,
   2747         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   2748     },
   2749     {   /* Trident */
   2750         BCM56845_DEVICE_ID, BCM56845_A2_REV_ID,
   2751         "BCM56845_A2",
   2752         BCM56840_DEVICE_ID, BCM56840_A0_REV_ID,
   2753         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   2754     },
   2755     {   /* Trident */
   2756         BCM56845_DEVICE_ID, BCM56845_A3_REV_ID,
   2757         "BCM56845_A3",
   2758         BCM56840_DEVICE_ID, BCM56840_A0_REV_ID,
   2759         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   2760     },
   2761     {   /* Trident */
   2762         BCM56845_DEVICE_ID, BCM56845_A4_REV_ID,
   2763         "BCM56845_A4",
   2764         BCM56840_DEVICE_ID, BCM56840_A0_REV_ID,
   2765         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   2766     },
   2767     {   /* Trident */
   2768         BCM56845_DEVICE_ID, BCM56845_B0_REV_ID,
   2769         "BCM56845_B0",
   2770         BCM56840_DEVICE_ID, BCM56840_A0_REV_ID,
   2771         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   2772     },
   2773     {   /* Trident */
   2774         BCM56845_DEVICE_ID, BCM56845_B1_REV_ID,
   2775         "BCM56845_B1",
   2776         BCM56840_DEVICE_ID, BCM56840_A0_REV_ID,
   2777         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   2778     },
   2779     {   /* Titan */
   2780         BCM56743_DEVICE_ID, BCM56743_A0_REV_ID,
   2781         "BCM56743_A0",
   2782         BCM56840_DEVICE_ID, BCM56840_A0_REV_ID,
   2783         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   2784     },
   2785     {   /* Titan */
   2786         BCM56743_DEVICE_ID, BCM56743_A1_REV_ID,
   2787         "BCM56743_A1",
   2788         BCM56840_DEVICE_ID, BCM56840_A0_REV_ID,
   2789         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   2790     },
   2791     {   /* Titan */
   2792         BCM56743_DEVICE_ID, BCM56743_A2_REV_ID,
   2793         "BCM56743_A2",
   2794         BCM56840_DEVICE_ID, BCM56840_A0_REV_ID,
   2795         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   2796     },
   2797     {   /* Titan */
   2798         BCM56743_DEVICE_ID, BCM56743_A3_REV_ID,
   2799         "BCM56743_A3",
   2800         BCM56840_DEVICE_ID, BCM56840_A0_REV_ID,
   2801         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   2802     },
   2803     {   /* Titan */
   2804         BCM56743_DEVICE_ID, BCM56743_A4_REV_ID,
   2805         "BCM56743_A4",
   2806         BCM56840_DEVICE_ID, BCM56840_A0_REV_ID,
   2807         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   2808     },
   2809     {   /* Titan */
   2810         BCM56743_DEVICE_ID, BCM56743_B0_REV_ID,
   2811         "BCM56743_B0",
   2812         BCM56840_DEVICE_ID, BCM56840_A0_REV_ID,
   2813         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   2814     },
   2815     {   /* Titan */
   2816         BCM56743_DEVICE_ID, BCM56743_B1_REV_ID,
   2817         "BCM56743_B1",
   2818         BCM56840_DEVICE_ID, BCM56840_A0_REV_ID,
   2819         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   2820     },
   2821     {   /* Titan */
   2822         BCM56745_DEVICE_ID, BCM56745_A0_REV_ID,
   2823         "BCM56745_A0",
   2824         BCM56840_DEVICE_ID, BCM56840_A0_REV_ID,
   2825         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   2826     },
   2827     {   /* Titan */
   2828         BCM56745_DEVICE_ID, BCM56745_A1_REV_ID,
   2829         "BCM56745_A1",
   2830         BCM56840_DEVICE_ID, BCM56840_A0_REV_ID,
   2831         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   2832     },
   2833     {   /* Titan */
   2834         BCM56745_DEVICE_ID, BCM56745_A2_REV_ID,
   2835         "BCM56745_A2",
   2836         BCM56840_DEVICE_ID, BCM56840_A0_REV_ID,
   2837         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   2838     },
   2839     {   /* Titan */
   2840         BCM56745_DEVICE_ID, BCM56745_A3_REV_ID,
   2841         "BCM56745_A3",
   2842         BCM56840_DEVICE_ID, BCM56840_A0_REV_ID,
   2843         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   2844     },
   2845     {   /* Titan */
   2846         BCM56745_DEVICE_ID, BCM56745_A4_REV_ID,
   2847         "BCM56745_A4",
   2848         BCM56840_DEVICE_ID, BCM56840_A0_REV_ID,
   2849         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   2850     },
   2851     {   /* Titan */
   2852         BCM56745_DEVICE_ID, BCM56745_B0_REV_ID,
   2853         "BCM56745_B0",
   2854         BCM56840_DEVICE_ID, BCM56840_A0_REV_ID,
   2855         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   2856     },
   2857     {   /* Titan */
   2858         BCM56745_DEVICE_ID, BCM56745_B1_REV_ID,
   2859         "BCM56745_B1",
   2860         BCM56840_DEVICE_ID, BCM56840_A0_REV_ID,
   2861         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   2862     },
   2863     {   /* Trident Plus */
   2864         BCM56842_DEVICE_ID, BCM56842_A0_REV_ID,
   2865         "BCM56842_A0",
   2866         BCM56840_DEVICE_ID, BCM56840_B0_REV_ID,
   2867         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   2868     },
   2869     {   /* Trident Plus */
   2870         BCM56842_DEVICE_ID, BCM56842_A1_REV_ID,
   2871         "BCM56842_A1",
   2872         BCM56840_DEVICE_ID, BCM56840_B0_REV_ID,
   2873         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   2874     },
   2875     {   /* Trident Plus */
   2876         BCM56844_DEVICE_ID, BCM56844_A0_REV_ID,
   2877         "BCM56844_A0",
   2878         BCM56840_DEVICE_ID, BCM56840_B0_REV_ID,
   2879         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   2880     },
   2881     {   /* Trident Plus */
   2882         BCM56844_DEVICE_ID, BCM56844_A1_REV_ID,
   2883         "BCM56844_A1",
   2884         BCM56840_DEVICE_ID, BCM56840_B0_REV_ID,
   2885         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   2886     },
   2887     {   /* Trident Plus */
   2888         BCM56846_DEVICE_ID, BCM56846_A0_REV_ID,
   2889         "BCM56846_A0",
   2890         BCM56840_DEVICE_ID, BCM56840_B0_REV_ID,
   2891         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   2892     },
   2893     {   /* Trident Plus */
   2894         BCM56846_DEVICE_ID, BCM56846_A1_REV_ID,
   2895         "BCM56846_A1",
   2896         BCM56840_DEVICE_ID, BCM56840_B0_REV_ID,
   2897         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   2898     },
   2899     {   /* Trident Plus */
   2900         BCM56847_DEVICE_ID, BCM56847_A0_REV_ID,
   2901         "BCM56847_A0",
   2902         BCM56840_DEVICE_ID, BCM56840_B0_REV_ID,
   2903         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   2904     },
   2905     {   /* Trident Plus */
   2906         BCM56847_DEVICE_ID, BCM56847_A1_REV_ID,
   2907         "BCM56847_A1",
   2908         BCM56840_DEVICE_ID, BCM56840_B0_REV_ID,
   2909         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   2910     },
   2911     {   /* Trident Plus */
   2912         BCM56847_DEVICE_ID, BCM56847_A2_REV_ID,
   2913         "BCM56847_A2",
   2914         BCM56840_DEVICE_ID, BCM56840_B0_REV_ID,
   2915         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   2916     },
   2917     {   /* Trident Plus */
   2918         BCM56847_DEVICE_ID, BCM56847_A3_REV_ID,
   2919         "BCM56847_A3",
   2920         BCM56840_DEVICE_ID, BCM56840_B0_REV_ID,
   2921         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   2922     },
   2923     {   /* Trident Plus */
   2924         BCM56847_DEVICE_ID, BCM56847_A4_REV_ID,
   2925         "BCM56847_A4",
   2926         BCM56840_DEVICE_ID, BCM56840_B0_REV_ID,
   2927         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   2928     },
   2929     {   /* Trident Plus */
   2930         BCM56847_DEVICE_ID, BCM56847_B0_REV_ID,
   2931         "BCM56847_B0",
   2932         BCM56840_DEVICE_ID, BCM56840_B0_REV_ID,
   2933         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   2934     },
   2935     {   /* Trident Plus */
   2936         BCM56847_DEVICE_ID, BCM56847_B1_REV_ID,
   2937         "BCM56847_B1",
   2938         BCM56840_DEVICE_ID, BCM56840_B0_REV_ID,
   2939         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   2940     },
   2941     {   /* Trident Plus */
   2942         BCM56549_DEVICE_ID, BCM56549_A0_REV_ID,
   2943         "BCM56549_A0",
   2944         BCM56840_DEVICE_ID, BCM56840_B0_REV_ID,
   2945         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   2946     },
   2947     {   /* Trident Plus */
   2948         BCM56053_DEVICE_ID, BCM56053_A0_REV_ID,
   2949         "BCM56053_A0",
   2950         BCM56840_DEVICE_ID, BCM56840_B0_REV_ID,
   2951         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   2952     },
   2953     {   /* Trident Plus */
   2954         BCM56053_DEVICE_ID, BCM56053_A1_REV_ID,
   2955         "BCM56053_A1",
   2956         BCM56840_DEVICE_ID, BCM56840_B0_REV_ID,
   2957         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   2958     },
   2959     {   /* Trident Plus */
   2960         BCM56549_DEVICE_ID, BCM56549_A1_REV_ID,
   2961         "BCM56549_A1",
   2962         BCM56840_DEVICE_ID, BCM56840_B0_REV_ID,
   2963         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   2964     },
   2965     {   /* Trident Plus */
   2966         BCM56831_DEVICE_ID, BCM56831_A0_REV_ID,
   2967         "BCM56831_A0",
   2968         BCM56840_DEVICE_ID, BCM56840_B0_REV_ID,
   2969         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   2970     },
   2971     {   /* Trident Plus */
   2972         BCM56831_DEVICE_ID, BCM56831_A1_REV_ID,
   2973         "BCM56831_A1",
   2974         BCM56840_DEVICE_ID, BCM56840_B0_REV_ID,
   2975         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   2976     },
   2977     {   /* Trident Plus */
   2978         BCM56835_DEVICE_ID, BCM56835_A0_REV_ID,
   2979         "BCM56835_A0",
   2980         BCM56840_DEVICE_ID, BCM56840_B0_REV_ID,
   2981         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   2982     },
   2983     {   /* Trident Plus */
   2984         BCM56835_DEVICE_ID, BCM56835_A1_REV_ID,
   2985         "BCM56835_A1",
   2986         BCM56840_DEVICE_ID, BCM56840_B0_REV_ID,
   2987         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   2988     },
   2989     {   /* Trident Plus */
   2990         BCM56838_DEVICE_ID, BCM56838_A0_REV_ID,
   2991         "BCM56838_A0",
   2992         BCM56840_DEVICE_ID, BCM56840_B0_REV_ID,
   2993         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   2994     },
   2995     {   /* Trident Plus */
   2996         BCM56838_DEVICE_ID, BCM56838_A1_REV_ID,
   2997         "BCM56838_A1",
   2998         BCM56840_DEVICE_ID, BCM56840_B0_REV_ID,
   2999         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   3000     },
   3001     {   /* Trident Plus */
   3002         BCM56849_DEVICE_ID, BCM56849_A0_REV_ID,
   3003         "BCM56849_A0",
   3004         BCM56840_DEVICE_ID, BCM56840_B0_REV_ID,
   3005         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   3006     },
   3007     {   /* Trident Plus */
   3008         BCM56849_DEVICE_ID, BCM56849_A1_REV_ID,
   3009         "BCM56849_A1",
   3010         BCM56840_DEVICE_ID, BCM56840_B0_REV_ID,
   3011         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   3012     },
   3013     {   /* Titan Plus */
   3014         BCM56742_DEVICE_ID, BCM56742_A0_REV_ID,
   3015         "BCM56742_A0",
   3016         BCM56840_DEVICE_ID, BCM56840_B0_REV_ID,
   3017         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   3018     },
   3019     {   /* Titan Plus */
   3020         BCM56742_DEVICE_ID, BCM56742_A1_REV_ID,
   3021         "BCM56742_A1",
   3022         BCM56840_DEVICE_ID, BCM56840_B0_REV_ID,
   3023         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   3024     },
   3025     {   /* Titan Plus */
   3026         BCM56742_DEVICE_ID, BCM56742_A2_REV_ID,
   3027         "BCM56742_A2",
   3028         BCM56840_DEVICE_ID, BCM56840_B0_REV_ID,
   3029         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   3030     },
   3031     {   /* Titan Plus */
   3032         BCM56744_DEVICE_ID, BCM56744_A0_REV_ID,
   3033         "BCM56744_A0",
   3034         BCM56840_DEVICE_ID, BCM56840_B0_REV_ID,
   3035         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   3036     },
   3037     {   /* Titan Plus */
   3038         BCM56744_DEVICE_ID, BCM56744_A1_REV_ID,
   3039         "BCM56744_A1",
   3040         BCM56840_DEVICE_ID, BCM56840_B0_REV_ID,
   3041         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   3042     },
   3043     {   /* Titan Plus */
   3044         BCM56746_DEVICE_ID, BCM56746_A0_REV_ID,
   3045         "BCM56746_A0",
   3046         BCM56840_DEVICE_ID, BCM56840_B0_REV_ID,
   3047         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   3048     },
   3049     {   /* Titan Plus */
   3050         BCM56746_DEVICE_ID, BCM56746_A1_REV_ID,
   3051         "BCM56746_A1",
   3052         BCM56840_DEVICE_ID, BCM56840_B0_REV_ID,
   3053         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   3054     },
   3055 #endif
   3056 #if defined(BCM_SHADOW_SUPPORT)
   3057     {   /* Shadow */
   3058         BCM88732_DEVICE_ID, BCM88732_A0_REV_ID,
   3059         "BCM88732_A0",
   3060         BCM88732_DEVICE_ID, BCM88732_A0_REV_ID,
   3061         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   3062     },
   3063     {   /* Shadow */
   3064         BCM88732_DEVICE_ID, BCM88732_A1_REV_ID,
   3065         "BCM88732_A1",
   3066         BCM88732_DEVICE_ID, BCM88732_A0_REV_ID,
   3067         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   3068     },
   3069     {   /* Shadow */
   3070         BCM88732_DEVICE_ID, BCM88732_A2_REV_ID,
   3071         "BCM88732_A2",
   3072         BCM88732_DEVICE_ID, BCM88732_A0_REV_ID,
   3073         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   3074     },
   3075     {   /* Shadow */
   3076         BCM88732_DEVICE_ID, BCM88732_B0_REV_ID,
   3077         "BCM88732_B0",
   3078         BCM88732_DEVICE_ID, BCM88732_A0_REV_ID,
   3079         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   3080     },
   3081     {   /* Shadow */
   3082         BCM88732_DEVICE_ID, BCM88732_B1_REV_ID,
   3083         "BCM88732_B1",
   3084         BCM88732_DEVICE_ID, BCM88732_A0_REV_ID,
   3085         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   3086     },
   3087     {   /* Shadow */
   3088         BCM88732_DEVICE_ID, BCM88732_B2_REV_ID,
   3089         "BCM88732_B2",
   3090         BCM88732_DEVICE_ID, BCM88732_A0_REV_ID,
   3091         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   3092     },
   3093 #endif
   3094 
   3095 #if defined(BCM_HELIX4_SUPPORT)
   3096     {   /* FireScout */
   3097         BCM56548H_DEVICE_ID, BCM56548H_A0_REV_ID,
   3098         "BCM56548H_A0",
   3099         BCM56340_DEVICE_ID, BCM56340_A0_REV_ID,
   3100         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   3101     },
   3102     {   /* FireScout */
   3103         BCM56548_DEVICE_ID, BCM56548_A0_REV_ID,
   3104         "BCM56548_A0",
   3105         BCM56340_DEVICE_ID, BCM56340_A0_REV_ID,
   3106         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   3107     },
   3108     {   /* FireScout */
   3109         BCM56547_DEVICE_ID, BCM56547_A0_REV_ID,
   3110         "BCM56547_A0",
   3111         BCM56340_DEVICE_ID, BCM56340_A0_REV_ID,
   3112         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   3113     },
   3114     {   /* Helix4 */
   3115         BCM56346_DEVICE_ID, BCM56346_A0_REV_ID,
   3116         "BCM56346_A0",
   3117         BCM56340_DEVICE_ID, BCM56340_A0_REV_ID,
   3118         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   3119     },
   3120     {   /* Helix4 */
   3121         BCM56345_DEVICE_ID, BCM56345_A0_REV_ID,
   3122         "BCM56345_A0",
   3123         BCM56340_DEVICE_ID, BCM56340_A0_REV_ID,
   3124         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   3125     },
   3126     {   /* Helix4 */
   3127         BCM56344_DEVICE_ID, BCM56344_A0_REV_ID,
   3128         "BCM56344_A0",
   3129         BCM56340_DEVICE_ID, BCM56340_A0_REV_ID,
   3130         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   3131     },
   3132     {   /* Helix4 */
   3133         BCM56342_DEVICE_ID, BCM56342_A0_REV_ID,
   3134         "BCM56342_A0",
   3135         BCM56340_DEVICE_ID, BCM56340_A0_REV_ID,
   3136         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   3137     },
   3138     {   /* Helix4 */
   3139         BCM56340_DEVICE_ID, BCM56340_A0_REV_ID,
   3140         "BCM56340_A0",
   3141         BCM56340_DEVICE_ID, BCM56340_A0_REV_ID,
   3142         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   3143     },
   3144     {   /* Spiral */
   3145         BCM56049_DEVICE_ID, BCM56049_A0_REV_ID,
   3146         "BCM56049_A0",
   3147         BCM56340_DEVICE_ID, BCM56340_A0_REV_ID,
   3148         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   3149     },
   3150     {   /* Spiral */
   3151         BCM56048_DEVICE_ID, BCM56048_A0_REV_ID,
   3152         "BCM56048_A0",
   3153         BCM56340_DEVICE_ID, BCM56340_A0_REV_ID,
   3154         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   3155     },
   3156     {   /* Spiral */
   3157         BCM56047_DEVICE_ID, BCM56047_A0_REV_ID,
   3158         "BCM56047_A0",
   3159         BCM56340_DEVICE_ID, BCM56340_A0_REV_ID,
   3160         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   3161     },
   3162     {   /* Ranger */
   3163         BCM56042_DEVICE_ID, BCM56042_A0_REV_ID,
   3164         "BCM56042_A0",
   3165         BCM56340_DEVICE_ID, BCM56340_A0_REV_ID,
   3166         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   3167     },
   3168     {   /* Ranger */
   3169         BCM56041_DEVICE_ID, BCM56041_A0_REV_ID,
   3170         "BCM56041_A0",
   3171         BCM56340_DEVICE_ID, BCM56340_A0_REV_ID,
   3172         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   3173     },
   3174     {   /* Ranger */
   3175         BCM56040_DEVICE_ID, BCM56040_A0_REV_ID,
   3176         "BCM56040_A0",
   3177         BCM56340_DEVICE_ID, BCM56340_A0_REV_ID,
   3178         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   3179     },
   3180 #endif
   3181 
   3182 #if defined(BCM_TRIUMPH3_SUPPORT)
   3183     {   /* Triumph3 */
   3184         BCM56640_DEVICE_ID, BCM56640_A0_REV_ID,
   3185         "BCM56640_A0",
   3186         BCM56640_DEVICE_ID, BCM56640_A0_REV_ID,
   3187         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   3188     },
   3189     {   /* Triumph3 */
   3190         BCM56640_DEVICE_ID, BCM56640_A1_REV_ID,
   3191         "BCM56640_A1",
   3192         BCM56640_DEVICE_ID, BCM56640_A0_REV_ID,
   3193         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   3194     },
   3195     {   /* Triumph3 */
   3196         BCM56640_DEVICE_ID, BCM56640_B0_REV_ID,
   3197         "BCM56640_B0",
   3198         BCM56640_DEVICE_ID, BCM56640_A0_REV_ID,
   3199         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   3200     },
   3201     {   /* Triumph3 */
   3202         BCM56643_DEVICE_ID, BCM56643_A0_REV_ID,
   3203         "BCM56643_A0",
   3204         BCM56640_DEVICE_ID, BCM56640_A0_REV_ID,
   3205         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   3206     },
   3207     {   /* Triumph3 */
   3208         BCM56643_DEVICE_ID, BCM56643_A1_REV_ID,
   3209         "BCM56643_A1",
   3210         BCM56640_DEVICE_ID, BCM56640_A0_REV_ID,
   3211         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   3212     },
   3213     {   /* Triumph3 */
   3214         BCM56643_DEVICE_ID, BCM56643_B0_REV_ID,
   3215         "BCM56643_B0",
   3216         BCM56640_DEVICE_ID, BCM56640_A0_REV_ID,
   3217         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   3218     },
   3219     {   /* Triumph3 */
   3220         BCM56644_DEVICE_ID, BCM56644_A0_REV_ID,
   3221         "BCM56644_A0",
   3222         BCM56640_DEVICE_ID, BCM56640_A0_REV_ID,
   3223         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   3224     },
   3225     {   /* Triumph3 */
   3226         BCM56644_DEVICE_ID, BCM56644_A1_REV_ID,
   3227         "BCM56644_A1",
   3228         BCM56640_DEVICE_ID, BCM56640_A0_REV_ID,
   3229         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   3230     },
   3231     {   /* Triumph3 */
   3232         BCM56644_DEVICE_ID, BCM56644_B0_REV_ID,
   3233         "BCM56644_B0",
   3234         BCM56640_DEVICE_ID, BCM56640_A0_REV_ID,
   3235         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   3236     },
   3237     {   /* Triumph3 */
   3238         BCM56648_DEVICE_ID, BCM56648_A0_REV_ID,
   3239         "BCM56648_A0",
   3240         BCM56640_DEVICE_ID, BCM56640_A0_REV_ID,
   3241         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   3242     },
   3243     {   /* Triumph3 */
   3244         BCM56648_DEVICE_ID, BCM56648_A1_REV_ID,
   3245         "BCM56648_A1",
   3246         BCM56640_DEVICE_ID, BCM56640_A0_REV_ID,
   3247         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   3248     },
   3249     {   /* Triumph3 */
   3250         BCM56648_DEVICE_ID, BCM56648_B0_REV_ID,
   3251         "BCM56648_B0",
   3252         BCM56640_DEVICE_ID, BCM56640_A0_REV_ID,
   3253         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   3254     },
   3255     {   /* Triumph3 */
   3256         BCM56649_DEVICE_ID, BCM56649_A0_REV_ID,
   3257         "BCM56649_A0",
   3258         BCM56640_DEVICE_ID, BCM56640_A0_REV_ID,
   3259         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   3260     },
   3261     {   /* Triumph3 */
   3262         BCM56649_DEVICE_ID, BCM56649_A1_REV_ID,
   3263         "BCM56649_A1",
   3264         BCM56640_DEVICE_ID, BCM56640_A0_REV_ID,
   3265         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   3266     },
   3267     {   /* Triumph3 */
   3268         BCM56649_DEVICE_ID, BCM56649_B0_REV_ID,
   3269         "BCM56649_B0",
   3270         BCM56640_DEVICE_ID, BCM56640_A0_REV_ID,
   3271         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   3272     },
   3273     {   /* Firebolt4 */
   3274         BCM56545_DEVICE_ID, BCM56545_A0_REV_ID,
   3275         "BCM56545_A0",
   3276         BCM56640_DEVICE_ID, BCM56640_A0_REV_ID,
   3277         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   3278     },
   3279     {   /* Firebolt4 */
   3280         BCM56545_DEVICE_ID, BCM56545_A1_REV_ID,
   3281         "BCM56545_A1",
   3282         BCM56640_DEVICE_ID, BCM56640_A0_REV_ID,
   3283         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   3284     },
   3285     {   /* Firebolt4 */
   3286         BCM56545_DEVICE_ID, BCM56545_B0_REV_ID,
   3287         "BCM56545_B0",
   3288         BCM56640_DEVICE_ID, BCM56640_A0_REV_ID,
   3289         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   3290     },
   3291     {   /* Firebolt4 */
   3292         BCM56546_DEVICE_ID, BCM56546_A0_REV_ID,
   3293         "BCM56546_A0",
   3294         BCM56640_DEVICE_ID, BCM56640_A0_REV_ID,
   3295         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   3296     },
   3297     {   /* Firebolt4 */
   3298         BCM56546_DEVICE_ID, BCM56546_A1_REV_ID,
   3299         "BCM56546_A1",
   3300         BCM56640_DEVICE_ID, BCM56640_A0_REV_ID,
   3301         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   3302     },
   3303     {   /* Firebolt4 */
   3304         BCM56546_DEVICE_ID, BCM56546_B0_REV_ID,
   3305         "BCM56546_B0",
   3306         BCM56640_DEVICE_ID, BCM56640_A0_REV_ID,
   3307         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   3308     },
   3309     {   /* Apollo2 */
   3310         BCM56540_DEVICE_ID, BCM56540_A0_REV_ID,
   3311         "BCM56540_A0",
   3312         BCM56640_DEVICE_ID, BCM56640_A0_REV_ID,
   3313         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   3314     },
   3315     {   /* Apollo2 */
   3316         BCM56540_DEVICE_ID, BCM56540_A1_REV_ID,
   3317         "BCM56540_A1",
   3318         BCM56640_DEVICE_ID, BCM56640_A0_REV_ID,
   3319         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   3320     },
   3321     {   /* Apollo2 */
   3322         BCM56540_DEVICE_ID, BCM56540_B0_REV_ID,
   3323         "BCM56540_B0",
   3324         BCM56640_DEVICE_ID, BCM56640_A0_REV_ID,
   3325         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   3326     },
   3327     {   /* Apollo2 */
   3328         BCM56541_DEVICE_ID, BCM56541_A0_REV_ID,
   3329         "BCM56541_A0",
   3330         BCM56640_DEVICE_ID, BCM56640_A0_REV_ID,
   3331         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   3332     },
   3333     {   /* Apollo2 */
   3334         BCM56541_DEVICE_ID, BCM56541_A1_REV_ID,
   3335         "BCM56541_A1",
   3336         BCM56640_DEVICE_ID, BCM56640_A0_REV_ID,
   3337         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   3338     },
   3339     {   /* Apollo2 */
   3340         BCM56541_DEVICE_ID, BCM56541_B0_REV_ID,
   3341         "BCM56541_B0",
   3342         BCM56640_DEVICE_ID, BCM56640_A0_REV_ID,
   3343         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   3344     },
   3345     {   /* Apollo2 */
   3346         BCM56542_DEVICE_ID, BCM56542_A0_REV_ID,
   3347         "BCM56542_A0",
   3348         BCM56640_DEVICE_ID, BCM56640_A0_REV_ID,
   3349         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   3350     },
   3351     {   /* Apollo2 */
   3352         BCM56542_DEVICE_ID, BCM56542_A1_REV_ID,
   3353         "BCM56542_A1",
   3354         BCM56640_DEVICE_ID, BCM56640_A0_REV_ID,
   3355         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   3356     },
   3357     {   /* Apollo2 */
   3358         BCM56542_DEVICE_ID, BCM56542_B0_REV_ID,
   3359         "BCM56542_B0",
   3360         BCM56640_DEVICE_ID, BCM56640_A0_REV_ID,
   3361         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   3362     },
   3363     {   /* Apollo2 */
   3364         BCM56543_DEVICE_ID, BCM56543_A0_REV_ID,
   3365         "BCM56543_A0",
   3366         BCM56640_DEVICE_ID, BCM56640_A0_REV_ID,
   3367         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   3368     },
   3369     {   /* Apollo2 */
   3370         BCM56543_DEVICE_ID, BCM56543_A1_REV_ID,
   3371         "BCM56543_A1",
   3372         BCM56640_DEVICE_ID, BCM56640_A0_REV_ID,
   3373         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   3374     },
   3375     {   /* Apollo2 */
   3376         BCM56543_DEVICE_ID, BCM56543_B0_REV_ID,
   3377         "BCM56543_B0",
   3378         BCM56640_DEVICE_ID, BCM56640_A0_REV_ID,
   3379         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   3380     },
   3381     {   /* Apollo2 */
   3382         BCM56544_DEVICE_ID, BCM56544_A0_REV_ID,
   3383         "BCM56544_A0",
   3384         BCM56640_DEVICE_ID, BCM56640_A0_REV_ID,
   3385         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   3386     },
   3387     {   /* Apollo2 */
   3388         BCM56544_DEVICE_ID, BCM56544_A1_REV_ID,
   3389         "BCM56544_A1",
   3390         BCM56640_DEVICE_ID, BCM56640_A0_REV_ID,
   3391         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   3392     },
   3393     {   /* Apollo2 */
   3394         BCM56544_DEVICE_ID, BCM56544_B0_REV_ID,
   3395         "BCM56544_B0",
   3396         BCM56640_DEVICE_ID, BCM56640_A0_REV_ID,
   3397         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   3398     },
   3399     {   /* Ranger Plus */
   3400         BCM56044_DEVICE_ID, BCM56044_B0_REV_ID,
   3401         "BCM56044_B0",
   3402         BCM56640_DEVICE_ID, BCM56640_A0_REV_ID,
   3403         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   3404     },
   3405     {   /* Ranger Plus */
   3406         BCM56045_DEVICE_ID, BCM56045_A0_REV_ID,
   3407         "BCM56045_A0",
   3408         BCM56640_DEVICE_ID, BCM56640_A0_REV_ID,
   3409         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   3410     },
   3411     {   /* Ranger Plus */
   3412         BCM56045_DEVICE_ID, BCM56045_A1_REV_ID,
   3413         "BCM56045_A1",
   3414         BCM56640_DEVICE_ID, BCM56640_A0_REV_ID,
   3415         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   3416     },
   3417     {   /* Ranger Plus */
   3418         BCM56045_DEVICE_ID, BCM56045_B0_REV_ID,
   3419         "BCM56045_B0",
   3420         BCM56640_DEVICE_ID, BCM56640_A0_REV_ID,
   3421         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   3422     },
   3423     {   /* Ranger Plus */
   3424         BCM56046_DEVICE_ID, BCM56046_A0_REV_ID,
   3425         "BCM56046_A0",
   3426         BCM56640_DEVICE_ID, BCM56640_A0_REV_ID,
   3427         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   3428     },
   3429     {   /* Ranger Plus */
   3430         BCM56046_DEVICE_ID, BCM56046_A1_REV_ID,
   3431         "BCM56046_A1",
   3432         BCM56640_DEVICE_ID, BCM56640_A0_REV_ID,
   3433         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   3434     },
   3435     {   /* Ranger Plus */
   3436         BCM56046_DEVICE_ID, BCM56046_B0_REV_ID,
   3437         "BCM56046_B0",
   3438         BCM56640_DEVICE_ID, BCM56640_A0_REV_ID,
   3439         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   3440     },
   3441 #endif
   3442 
   3443 #if defined(BCM_KATANA_SUPPORT)
   3444     {   /* Katana */
   3445         BCM56440_DEVICE_ID, BCM56440_A0_REV_ID,
   3446         "BCM56440_A0",
   3447         BCM56440_DEVICE_ID, BCM56440_A0_REV_ID,
   3448         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   3449     },
   3450     {   /* Katana */
   3451         BCM56440_DEVICE_ID, BCM56440_B0_REV_ID,
   3452         "BCM56440_B0",
   3453         BCM56440_DEVICE_ID, BCM56440_B0_REV_ID,
   3454         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   3455     },
   3456     {   /* Katana */
   3457         BCM56441_DEVICE_ID, BCM56441_A0_REV_ID,
   3458         "BCM56441_A0",
   3459         BCM56440_DEVICE_ID, BCM56440_A0_REV_ID,
   3460         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   3461     },
   3462     {   /* Katana */
   3463         BCM56441_DEVICE_ID, BCM56441_B0_REV_ID,
   3464         "BCM56441_B0",
   3465         BCM56440_DEVICE_ID, BCM56440_B0_REV_ID,
   3466         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   3467     },
   3468     {   /* Katana */
   3469         BCM56442_DEVICE_ID, BCM56442_A0_REV_ID,
   3470         "BCM56442_A0",
   3471         BCM56440_DEVICE_ID, BCM56440_A0_REV_ID,
   3472         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   3473     },
   3474     {   /* Katana */
   3475         BCM56442_DEVICE_ID, BCM56442_B0_REV_ID,
   3476         "BCM56442_B0",
   3477         BCM56440_DEVICE_ID, BCM56440_B0_REV_ID,
   3478         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   3479     },
   3480     {   /* Katana */
   3481         BCM56443_DEVICE_ID, BCM56443_A0_REV_ID,
   3482         "BCM56443_A0",
   3483         BCM56440_DEVICE_ID, BCM56440_A0_REV_ID,
   3484         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   3485     },
   3486     {   /* Katana */
   3487         BCM56443_DEVICE_ID, BCM56443_B0_REV_ID,
   3488         "BCM56443_B0",
   3489         BCM56440_DEVICE_ID, BCM56440_B0_REV_ID,
   3490         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   3491     },
   3492     {   /* Enduro-2 */
   3493         BCM56445_DEVICE_ID, BCM56445_A0_REV_ID,
   3494         "BCM56445_A0",
   3495         BCM56440_DEVICE_ID, BCM56440_A0_REV_ID,
   3496         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   3497     },
   3498     {   /* Enduro-2 */
   3499         BCM56445_DEVICE_ID, BCM56445_B0_REV_ID,
   3500         "BCM56445_B0",
   3501         BCM56440_DEVICE_ID, BCM56440_B0_REV_ID,
   3502         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   3503     },
   3504     {   /* Enduro-2 */
   3505         BCM56446_DEVICE_ID, BCM56446_A0_REV_ID,
   3506         "BCM56446_A0",
   3507         BCM56440_DEVICE_ID, BCM56440_A0_REV_ID,
   3508         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   3509     },
   3510     {   /* Enduro-2 */
   3511         BCM56446_DEVICE_ID, BCM56446_B0_REV_ID,
   3512         "BCM56446_B0",
   3513         BCM56440_DEVICE_ID, BCM56440_B0_REV_ID,
   3514         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   3515     },
   3516     {   /* Enduro-2 */
   3517         BCM56447_DEVICE_ID, BCM56447_A0_REV_ID,
   3518         "BCM56447_A0",
   3519         BCM56440_DEVICE_ID, BCM56440_A0_REV_ID,
   3520         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   3521     },
   3522     {   /* Enduro-2 */
   3523         BCM56447_DEVICE_ID, BCM56447_B0_REV_ID,
   3524         "BCM56447_B0",
   3525         BCM56440_DEVICE_ID, BCM56440_B0_REV_ID,
   3526         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   3527     },
   3528     {   /* Enduro-2 */
   3529         BCM56448_DEVICE_ID, BCM56448_A0_REV_ID,
   3530         "BCM56448_A0",
   3531         BCM56440_DEVICE_ID, BCM56440_A0_REV_ID,
   3532         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   3533     },
   3534     {   /* Enduro-2 */
   3535         BCM56448_DEVICE_ID, BCM56448_B0_REV_ID,
   3536         "BCM56448_B0",
   3537         BCM56440_DEVICE_ID, BCM56440_B0_REV_ID,
   3538         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   3539     },
   3540     {   /* Katana-FE */
   3541         BCM56449_DEVICE_ID, BCM56449_A0_REV_ID,
   3542         "BCM56449_A0",
   3543         BCM56440_DEVICE_ID, BCM56440_A0_REV_ID,
   3544         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   3545     },
   3546     {   /* Katana-FE */
   3547         BCM56449_DEVICE_ID, BCM56449_B0_REV_ID,
   3548         "BCM56449_B0",
   3549         BCM56440_DEVICE_ID, BCM56440_B0_REV_ID,
   3550         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   3551     },
   3552     {   /* Saber */
   3553         BCM56240_DEVICE_ID, BCM56240_A0_REV_ID,
   3554         "BCM56240_A0",
   3555         BCM56440_DEVICE_ID, BCM56440_A0_REV_ID,
   3556         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   3557     },
   3558     {   /* Saber */
   3559         BCM56240_DEVICE_ID, BCM56240_B0_REV_ID,
   3560         "BCM56240_B0",
   3561         BCM56440_DEVICE_ID, BCM56440_B0_REV_ID,
   3562         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   3563     },
   3564     {   /* Saber */
   3565         BCM56241_DEVICE_ID, BCM56241_A0_REV_ID,
   3566         "BCM56241_A0",
   3567         BCM56440_DEVICE_ID, BCM56440_A0_REV_ID,
   3568         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   3569     },
   3570     {   /* Saber */
   3571         BCM56241_DEVICE_ID, BCM56241_B0_REV_ID,
   3572         "BCM56241_B0",
   3573         BCM56440_DEVICE_ID, BCM56440_B0_REV_ID,
   3574         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   3575     },
   3576     {   /* Saber */
   3577         BCM56242_DEVICE_ID, BCM56242_A0_REV_ID,
   3578         "BCM56242_A0",
   3579         BCM56440_DEVICE_ID, BCM56440_A0_REV_ID,
   3580         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   3581     },
   3582     {   /* Saber*/
   3583         BCM56242_DEVICE_ID, BCM56242_B0_REV_ID,
   3584         "BCM56242_B0",
   3585         BCM56440_DEVICE_ID, BCM56440_B0_REV_ID,
   3586         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   3587     },
   3588     {   /* Saber */
   3589         BCM56243_DEVICE_ID, BCM56243_A0_REV_ID,
   3590         "BCM56243_A0",
   3591         BCM56440_DEVICE_ID, BCM56440_A0_REV_ID,
   3592         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   3593    },
   3594     {   /* Saber */
   3595         BCM56243_DEVICE_ID, BCM56243_B0_REV_ID,
   3596         "BCM56243_B0",
   3597         BCM56440_DEVICE_ID, BCM56440_B0_REV_ID,
   3598         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   3599     },
   3600     {   /* Saber */
   3601         BCM56245_DEVICE_ID, BCM56245_A0_REV_ID,
   3602         "BCM56245_A0",
   3603         BCM56440_DEVICE_ID, BCM56440_A0_REV_ID,
   3604         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   3605     },
   3606     {   /* Saber */
   3607         BCM56245_DEVICE_ID, BCM56245_B0_REV_ID,
   3608         "BCM56245_B0",
   3609         BCM56440_DEVICE_ID, BCM56440_B0_REV_ID,
   3610         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   3611     },
   3612     {   /* Saber */
   3613         BCM56246_DEVICE_ID, BCM56246_A0_REV_ID,
   3614         "BCM56246_A0",
   3615         BCM56440_DEVICE_ID, BCM56440_A0_REV_ID,
   3616         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   3617     },
   3618     {   /* Saber*/
   3619         BCM56246_DEVICE_ID, BCM56246_B0_REV_ID,
   3620         "BCM56246_B0",
   3621         BCM56440_DEVICE_ID, BCM56440_B0_REV_ID,
   3622         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   3623     },
   3624     {   /* Katana-Access */
   3625         BCM55440_DEVICE_ID, BCM55440_A0_REV_ID,
   3626         "BCM55440_A0",
   3627         BCM56440_DEVICE_ID, BCM56440_A0_REV_ID,
   3628         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   3629     },
   3630     {   /* Katana-Access */
   3631         BCM55440_DEVICE_ID, BCM55440_B0_REV_ID,
   3632         "BCM55440_B0",
   3633         BCM56440_DEVICE_ID, BCM56440_B0_REV_ID,
   3634         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   3635     },
   3636     {   /* Katana-Access */
   3637         BCM55441_DEVICE_ID, BCM55441_A0_REV_ID,
   3638         "BCM55441_A0",
   3639         BCM56440_DEVICE_ID, BCM56440_A0_REV_ID,
   3640         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   3641     },
   3642     {   /* Katana-Access */
   3643         BCM55441_DEVICE_ID, BCM55441_B0_REV_ID,
   3644         "BCM55441_B0",
   3645         BCM56440_DEVICE_ID, BCM56440_B0_REV_ID,
   3646         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   3647     },
   3648 #endif
   3649 
   3650 #if defined(BCM_KATANA2_SUPPORT)
   3651     {   /* Katana 2 1.A0 */
   3652         BCM55450_DEVICE_ID, BCM55450_A0_REV_ID,
   3653         "BCM55450_A0",
   3654         BCM56450_DEVICE_ID, BCM56450_A0_REV_ID,
   3655         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   3656     },
   3657     {   /* Katana 2 1.B0 */
   3658         BCM55450_DEVICE_ID, BCM55450_B0_REV_ID,
   3659         "BCM55450_B0",
   3660         BCM56450_DEVICE_ID, BCM56450_B0_REV_ID,
   3661         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   3662     },
   3663     {   /* Katana 2 1.B1 */
   3664         BCM55450_DEVICE_ID, BCM55450_B1_REV_ID,
   3665         "BCM55450_B1",
   3666         BCM56450_DEVICE_ID, BCM56450_B1_REV_ID,
   3667         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   3668     },
   3669 
   3670     {   /* Katana 2 2.A0 */
   3671         BCM55455_DEVICE_ID, BCM55455_A0_REV_ID,
   3672         "BCM55455_A0",
   3673         BCM56450_DEVICE_ID, BCM56450_A0_REV_ID,
   3674         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   3675     },
   3676     {   /* Katana 2 2.B0 */
   3677         BCM55455_DEVICE_ID, BCM55455_B0_REV_ID,
   3678         "BCM55455_B0",
   3679         BCM56450_DEVICE_ID, BCM56450_B0_REV_ID,
   3680         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   3681     },
   3682     {   /* Katana 2 2.B1 */
   3683         BCM55455_DEVICE_ID, BCM55455_B1_REV_ID,
   3684         "BCM55455_B1",
   3685         BCM56450_DEVICE_ID, BCM56450_B1_REV_ID,
   3686         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   3687     },
   3688 
   3689     {   /* Katana 2 3.A0 */
   3690         BCM56248_DEVICE_ID, BCM56248_A0_REV_ID,
   3691         "BCM56248_A0",
   3692         BCM56450_DEVICE_ID, BCM56450_A0_REV_ID,
   3693         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   3694     },
   3695     {   /* Katana 2 3.B0 */
   3696         BCM56248_DEVICE_ID, BCM56248_B0_REV_ID,
   3697         "BCM56248_B0",
   3698         BCM56450_DEVICE_ID, BCM56450_B0_REV_ID,
   3699         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   3700     },
   3701     {   /* Katana 2 3.B1 */
   3702         BCM56248_DEVICE_ID, BCM56248_B1_REV_ID,
   3703         "BCM56248_B1",
   3704         BCM56450_DEVICE_ID, BCM56450_B1_REV_ID,
   3705         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   3706     },
   3707 
   3708     {   /* Katana 2 4.A0 */
   3709         BCM56450_DEVICE_ID, BCM56450_A0_REV_ID,
   3710         "BCM56450_A0",
   3711         BCM56450_DEVICE_ID, BCM56450_A0_REV_ID,
   3712         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   3713     },
   3714     {   /* Katana 2 4.B0 */
   3715         BCM56450_DEVICE_ID, BCM56450_B0_REV_ID,
   3716         "BCM56450_B0",
   3717         BCM56450_DEVICE_ID, BCM56450_B0_REV_ID,
   3718         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   3719     },
   3720     {   /* Katana 2 4.B1*/
   3721         BCM56450_DEVICE_ID, BCM56450_B1_REV_ID,
   3722         "BCM56450_B1",
   3723         BCM56450_DEVICE_ID, BCM56450_B1_REV_ID,
   3724         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   3725     },
   3726 
   3727     {   /* Katana 2 5.A0 */
   3728         BCM56452_DEVICE_ID, BCM56452_A0_REV_ID,
   3729         "BCM56452_A0",
   3730         BCM56450_DEVICE_ID, BCM56450_A0_REV_ID,
   3731         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   3732     },
   3733     {   /* Katana 2 5.B0 */
   3734         BCM56452_DEVICE_ID, BCM56452_B0_REV_ID,
   3735         "BCM56452_B0",
   3736         BCM56450_DEVICE_ID, BCM56450_B0_REV_ID,
   3737         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   3738     },
   3739     {   /* Katana 2 5.B1 */
   3740         BCM56452_DEVICE_ID, BCM56452_B1_REV_ID,
   3741         "BCM56452_B1",
   3742         BCM56450_DEVICE_ID, BCM56450_B1_REV_ID,
   3743         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   3744     },
   3745 
   3746     {   /* Katana 2 6.A0 */
   3747         BCM56454_DEVICE_ID, BCM56454_A0_REV_ID,
   3748         "BCM56454_A0",
   3749         BCM56450_DEVICE_ID, BCM56450_A0_REV_ID,
   3750         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   3751     },
   3752     {   /* Katana 2 6.B0 */
   3753         BCM56454_DEVICE_ID, BCM56454_B0_REV_ID,
   3754         "BCM56454_B0",
   3755         BCM56450_DEVICE_ID, BCM56450_B0_REV_ID,
   3756         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   3757     },
   3758     {   /* Katana 2 6.B1 */
   3759         BCM56454_DEVICE_ID, BCM56454_B1_REV_ID,
   3760         "BCM56454_B1",
   3761         BCM56450_DEVICE_ID, BCM56450_B1_REV_ID,
   3762         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   3763     },
   3764 
   3765     {   /* Katana 2 7.A0 */
   3766         BCM56455_DEVICE_ID, BCM56455_A0_REV_ID,
   3767         "BCM56455_A0",
   3768         BCM56450_DEVICE_ID, BCM56450_A0_REV_ID,
   3769         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   3770     },
   3771     {   /* Katana 2 7.B0 */
   3772         BCM56455_DEVICE_ID, BCM56455_B0_REV_ID,
   3773         "BCM56455_B0",
   3774         BCM56450_DEVICE_ID, BCM56450_B0_REV_ID,
   3775         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   3776     },
   3777     {   /* Katana 2 7.B1 */
   3778         BCM56455_DEVICE_ID, BCM56455_B1_REV_ID,
   3779         "BCM56455_B1",
   3780         BCM56450_DEVICE_ID, BCM56450_B1_REV_ID,
   3781         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   3782     },
   3783 
   3784     {   /* Katana 2 8.A0 */
   3785         BCM56456_DEVICE_ID, BCM56456_A0_REV_ID,
   3786         "BCM56456_A0",
   3787         BCM56450_DEVICE_ID, BCM56450_A0_REV_ID,
   3788         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   3789     },
   3790     {   /* Katana 2 8.B0 */
   3791         BCM56456_DEVICE_ID, BCM56456_B0_REV_ID,
   3792         "BCM56456_B0",
   3793         BCM56450_DEVICE_ID, BCM56450_B0_REV_ID,
   3794         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   3795     },
   3796     {   /* Katana 2 8.B1 */
   3797         BCM56456_DEVICE_ID, BCM56456_B1_REV_ID,
   3798         "BCM56456_B1",
   3799         BCM56450_DEVICE_ID, BCM56450_B1_REV_ID,
   3800         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   3801     },
   3802 
   3803     {   /* Katana 2 9.A0 */
   3804         BCM56457_DEVICE_ID, BCM56457_A0_REV_ID,
   3805         "BCM56457_A0",
   3806         BCM56450_DEVICE_ID, BCM56450_A0_REV_ID,
   3807         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   3808     },
   3809     {   /* Katana 2 9.B0 */
   3810         BCM56457_DEVICE_ID, BCM56457_B0_REV_ID,
   3811         "BCM56457_B0",
   3812         BCM56450_DEVICE_ID, BCM56450_B0_REV_ID,
   3813         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   3814     },
   3815     {   /* Katana 2 9.B1 */
   3816         BCM56457_DEVICE_ID, BCM56457_B1_REV_ID,
   3817         "BCM56457_B1",
   3818         BCM56450_DEVICE_ID, BCM56450_B1_REV_ID,
   3819         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   3820     },
   3821 
   3822     {   /* Katana 2 10.A0 */
   3823         BCM56458_DEVICE_ID, BCM56458_A0_REV_ID,
   3824         "BCM56458_A0",
   3825         BCM56450_DEVICE_ID, BCM56450_A0_REV_ID,
   3826         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   3827     },
   3828     {   /* Katana 2 10.B0 */
   3829         BCM56458_DEVICE_ID, BCM56458_B0_REV_ID,
   3830         "BCM56458_B0",
   3831         BCM56450_DEVICE_ID, BCM56450_B0_REV_ID,
   3832         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   3833     },
   3834     {   /* Katana 2 10.B1 */
   3835         BCM56458_DEVICE_ID, BCM56458_B1_REV_ID,
   3836         "BCM56458_B1",
   3837         BCM56450_DEVICE_ID, BCM56450_B1_REV_ID,
   3838         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   3839     },
   3840 #endif
   3841 #if defined(BCM_SABER2_SUPPORT)
   3842     {   /* Saber 2 1.A0 */
   3843         BCM56260_DEVICE_ID, BCM56260_A0_REV_ID,
   3844         "BCM56260_A0",
   3845         BCM56260_DEVICE_ID, BCM56260_A0_REV_ID,
   3846         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   3847     },
   3848     {   /* Saber 2 1.B0 */
   3849         BCM56260_DEVICE_ID, BCM56260_B0_REV_ID,
   3850         "BCM56260_B0",
   3851         BCM56260_DEVICE_ID, BCM56260_B0_REV_ID,
   3852         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   3853     },
   3854 
   3855     {   /* Saber 2 2.A0 */
   3856         BCM56261_DEVICE_ID, BCM56261_A0_REV_ID,
   3857         "BCM56261_A0",
   3858         BCM56260_DEVICE_ID, BCM56260_A0_REV_ID,
   3859         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   3860     },
   3861     {   /* Saber 2 2.B0 */
   3862         BCM56261_DEVICE_ID, BCM56261_B0_REV_ID,
   3863         "BCM56261_B0",
   3864         BCM56260_DEVICE_ID, BCM56260_B0_REV_ID,
   3865         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   3866     },
   3867     
   3868     {   /* Saber 2 3.A0 */
   3869         BCM56262_DEVICE_ID, BCM56262_A0_REV_ID,
   3870         "BCM56262_A0",
   3871         BCM56260_DEVICE_ID, BCM56260_A0_REV_ID,
   3872         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   3873     },
   3874     {   /* Saber 2 3.B0 */
   3875         BCM56262_DEVICE_ID, BCM56262_B0_REV_ID,
   3876         "BCM56262_B0",
   3877         BCM56260_DEVICE_ID, BCM56260_B0_REV_ID,
   3878         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   3879     },
   3880 
   3881     {   /* Saber 2 4.A0 */
   3882         BCM56263_DEVICE_ID, BCM56263_A0_REV_ID,
   3883         "BCM56263_A0",
   3884         BCM56260_DEVICE_ID, BCM56260_A0_REV_ID,
   3885         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   3886     },
   3887     {   /* Saber 2 4.B0 */
   3888         BCM56263_DEVICE_ID, BCM56263_B0_REV_ID,
   3889         "BCM56263_B0",
   3890         BCM56260_DEVICE_ID, BCM56260_B0_REV_ID,
   3891         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   3892     },
   3893 
   3894     {   /* Saber 2 5.A0 */
   3895         BCM56265_DEVICE_ID, BCM56265_A0_REV_ID,
   3896         "BCM56265_A0",
   3897         BCM56260_DEVICE_ID, BCM56260_A0_REV_ID,
   3898         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   3899     },
   3900     {   /* Saber 2 5.B0 */
   3901         BCM56265_DEVICE_ID, BCM56265_B0_REV_ID,
   3902         "BCM56265_B0",
   3903         BCM56260_DEVICE_ID, BCM56260_B0_REV_ID,
   3904         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   3905     },
   3906 
   3907     {   /* Saber 2 6.A0 */
   3908         BCM56266_DEVICE_ID, BCM56266_A0_REV_ID,
   3909         "BCM56266_A0",
   3910         BCM56260_DEVICE_ID, BCM56260_A0_REV_ID,
   3911         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   3912     },
   3913     {   /* Saber 2 6.B0 */
   3914         BCM56266_DEVICE_ID, BCM56266_B0_REV_ID,
   3915         "BCM56266_B0",
   3916         BCM56260_DEVICE_ID, BCM56260_B0_REV_ID,
   3917         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   3918     },
   3919     
   3920     {   /* Saber 2 7.A0 */
   3921         BCM56267_DEVICE_ID, BCM56267_A0_REV_ID,
   3922         "BCM56267_A0",
   3923         BCM56260_DEVICE_ID, BCM56260_A0_REV_ID,
   3924         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   3925     },
   3926     {   /* Saber 2 7.B0 */
   3927         BCM56267_DEVICE_ID, BCM56267_B0_REV_ID,
   3928         "BCM56267_B0",
   3929         BCM56260_DEVICE_ID, BCM56260_B0_REV_ID,
   3930         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   3931     },
   3932 
   3933     {   /* Saber 2 8.A0 */
   3934         BCM56268_DEVICE_ID, BCM56268_A0_REV_ID,
   3935         "BCM56268_A0",
   3936         BCM56260_DEVICE_ID, BCM56260_A0_REV_ID,
   3937         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   3938     },
   3939     {   /* Saber 2 8.B0 */
   3940         BCM56268_DEVICE_ID, BCM56268_B0_REV_ID,
   3941         "BCM56268_B0",
   3942         BCM56260_DEVICE_ID, BCM56260_B0_REV_ID,
   3943         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   3944     },
   3945 
   3946     {   /* Saber 2 9.A0 */
   3947         BCM56460_DEVICE_ID, BCM56460_A0_REV_ID,
   3948         "BCM56460_A0",
   3949         BCM56260_DEVICE_ID, BCM56260_A0_REV_ID,
   3950         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   3951     },
   3952     {   /* Saber 2 9.B0 */
   3953         BCM56460_DEVICE_ID, BCM56460_B0_REV_ID,
   3954         "BCM56460_B0",
   3955         BCM56260_DEVICE_ID, BCM56260_B0_REV_ID,
   3956         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   3957     },
   3958     
   3959     {   /* Saber 2 10.A0 */
   3960         BCM56461_DEVICE_ID, BCM56461_A0_REV_ID,
   3961         "BCM56461_A0",
   3962         BCM56260_DEVICE_ID, BCM56260_A0_REV_ID,
   3963         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   3964     },
   3965     {   /* Saber 2 10.B0 */
   3966         BCM56461_DEVICE_ID, BCM56461_B0_REV_ID,
   3967         "BCM56461_B0",
   3968         BCM56260_DEVICE_ID, BCM56260_B0_REV_ID,
   3969         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   3970     },
   3971 
   3972     {   /* Saber 2 11.A0 */
   3973         BCM56462_DEVICE_ID, BCM56462_A0_REV_ID,
   3974         "BCM56462_A0",
   3975         BCM56260_DEVICE_ID, BCM56260_A0_REV_ID,
   3976         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   3977     },
   3978     {   /* Saber 2 11.B0 */
   3979         BCM56462_DEVICE_ID, BCM56462_B0_REV_ID,
   3980         "BCM56462_B0",
   3981         BCM56260_DEVICE_ID, BCM56260_B0_REV_ID,
   3982         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   3983     },
   3984 
   3985     {   /* Saber 2 12.A0 */
   3986         BCM56463_DEVICE_ID, BCM56463_A0_REV_ID,
   3987         "BCM56463_A0",
   3988         BCM56260_DEVICE_ID, BCM56260_A0_REV_ID,
   3989         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   3990     },
   3991     {   /* Saber 2 12.B0 */
   3992         BCM56463_DEVICE_ID, BCM56463_B0_REV_ID,
   3993         "BCM56463_B0",
   3994         BCM56260_DEVICE_ID, BCM56260_B0_REV_ID,
   3995         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   3996     },
   3997 
   3998     {   /* Saber 2 13.A0 */
   3999         BCM56465_DEVICE_ID, BCM56465_A0_REV_ID,
   4000         "BCM56465_A0",
   4001         BCM56260_DEVICE_ID, BCM56260_A0_REV_ID,
   4002         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   4003     },
   4004     {   /* Saber 2 13.B0 */
   4005         BCM56465_DEVICE_ID, BCM56465_B0_REV_ID,
   4006         "BCM56465_B0",
   4007         BCM56260_DEVICE_ID, BCM56260_B0_REV_ID,
   4008         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   4009     },
   4010 
   4011     {   /* Saber 2 14.A0 */
   4012         BCM56466_DEVICE_ID, BCM56466_A0_REV_ID,
   4013         "BCM56466_A0",
   4014         BCM56260_DEVICE_ID, BCM56260_A0_REV_ID,
   4015         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   4016     },
   4017     {   /* Saber 2 14.B0 */
   4018         BCM56466_DEVICE_ID, BCM56466_B0_REV_ID,
   4019         "BCM56466_B0",
   4020         BCM56260_DEVICE_ID, BCM56260_B0_REV_ID,
   4021         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   4022     },
   4023 
   4024     {   /* Saber 2 15.A0 */
   4025         BCM56467_DEVICE_ID, BCM56467_A0_REV_ID,
   4026         "BCM56467_A0",
   4027         BCM56260_DEVICE_ID, BCM56260_A0_REV_ID,
   4028         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   4029     },
   4030     {   /* Saber 2 15.B0 */
   4031         BCM56467_DEVICE_ID, BCM56467_B0_REV_ID,
   4032         "BCM56467_B0",
   4033         BCM56260_DEVICE_ID, BCM56260_B0_REV_ID,
   4034         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   4035     },
   4036 
   4037     {   /* Saber 2 16.A0 */
   4038         BCM56468_DEVICE_ID, BCM56468_A0_REV_ID,
   4039         "BCM56468_A0",
   4040         BCM56260_DEVICE_ID, BCM56260_A0_REV_ID,
   4041         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   4042     },
   4043     {   /* Saber 2 16.B0 */
   4044         BCM56468_DEVICE_ID, BCM56468_B0_REV_ID,
   4045         "BCM56468_B0",
   4046         BCM56260_DEVICE_ID, BCM56260_B0_REV_ID,
   4047         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   4048     },
   4049 
   4050     {   /* Dagger 2 17.B0 */
   4051         BCM56233_DEVICE_ID, BCM56233_B0_REV_ID,
   4052         "BCM56233_B0",
   4053         BCM56260_DEVICE_ID, BCM56260_B0_REV_ID,
   4054         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   4055     },
   4056 #endif
   4057 
   4058 #if defined(BCM_METROLITE_SUPPORT)
   4059     {   /* Metrolite */
   4060         BCM56270_DEVICE_ID, BCM56270_A0_REV_ID,
   4061         "BCM56270_A0",
   4062         BCM56270_DEVICE_ID, BCM56270_A0_REV_ID,
   4063         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   4064     },
   4065     {   /* Metrolite */
   4066         BCM56271_DEVICE_ID, BCM56271_A0_REV_ID,
   4067         "BCM56271_A0",
   4068         BCM56270_DEVICE_ID, BCM56270_A0_REV_ID,
   4069         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   4070     },
   4071     {   /* Metrolite */
   4072         BCM56272_DEVICE_ID, BCM56272_A0_REV_ID,
   4073         "BCM56272_A0",
   4074         BCM56270_DEVICE_ID, BCM56270_A0_REV_ID,
   4075         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   4076     },
   4077 
   4078     {   /* Beagle */
   4079         BCM53460_DEVICE_ID, BCM53460_A0_REV_ID,
   4080         "BCM53460_A0",
   4081         BCM56270_DEVICE_ID, BCM56270_A0_REV_ID,
   4082         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   4083     },
   4084     {   /* Beagle */
   4085         BCM53461_DEVICE_ID, BCM53461_A0_REV_ID,
   4086         "BCM53461_A0",
   4087         BCM56270_DEVICE_ID, BCM56270_A0_REV_ID,
   4088         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   4089     },
   4090 
   4091 #endif
   4092 
   4093 #if defined(BCM_TRIDENT2_SUPPORT)
   4094     {   /* Trident 2 */
   4095         BCM56850_DEVICE_ID, BCM56850_A0_REV_ID,
   4096         "BCM56850_A0",
   4097         BCM56850_DEVICE_ID, BCM56850_A0_REV_ID,
   4098         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   4099     },
   4100     {   /* Trident 2 */
   4101         BCM56850_DEVICE_ID, BCM56850_A1_REV_ID,
   4102         "BCM56850_A1",
   4103         BCM56850_DEVICE_ID, BCM56850_A0_REV_ID,
   4104         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   4105     },
   4106     {   /* Trident 2 */
   4107         BCM56850_DEVICE_ID, BCM56850_A2_REV_ID,
   4108         "BCM56850_A2",
   4109         BCM56850_DEVICE_ID, BCM56850_A0_REV_ID,
   4110         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   4111     },
   4112     {   /* Trident 2 */
   4113         BCM56851_DEVICE_ID, BCM56851_A0_REV_ID,
   4114         "BCM56851_A0",
   4115         BCM56850_DEVICE_ID, BCM56850_A0_REV_ID,
   4116         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   4117     },
   4118     {   /* Trident 2 */
   4119         BCM56851_DEVICE_ID, BCM56851_A1_REV_ID,
   4120         "BCM56851_A1",
   4121         BCM56850_DEVICE_ID, BCM56850_A0_REV_ID,
   4122         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   4123     },
   4124     {   /* Trident 2 */
   4125         BCM56851_DEVICE_ID, BCM56851_A2_REV_ID,
   4126         "BCM56851_A2",
   4127         BCM56850_DEVICE_ID, BCM56850_A0_REV_ID,
   4128         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   4129     },
   4130     {   /* Trident 2 */
   4131         BCM56852_DEVICE_ID, BCM56852_A0_REV_ID,
   4132         "BCM56852_A0",
   4133         BCM56850_DEVICE_ID, BCM56850_A0_REV_ID,
   4134         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   4135     },
   4136     {   /* Trident 2 */
   4137         BCM56852_DEVICE_ID, BCM56852_A1_REV_ID,
   4138         "BCM56852_A1",
   4139         BCM56850_DEVICE_ID, BCM56850_A0_REV_ID,
   4140         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   4141     },
   4142     {   /* Trident 2 */
   4143         BCM56852_DEVICE_ID, BCM56852_A2_REV_ID,
   4144         "BCM56852_A2",
   4145         BCM56850_DEVICE_ID, BCM56850_A0_REV_ID,
   4146         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   4147     },
   4148     {   /* Trident 2 */
   4149         BCM56853_DEVICE_ID, BCM56853_A0_REV_ID,
   4150         "BCM56853_A0",
   4151         BCM56850_DEVICE_ID, BCM56850_A0_REV_ID,
   4152         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   4153     },
   4154     {   /* Trident 2 */
   4155         BCM56853_DEVICE_ID, BCM56853_A1_REV_ID,
   4156         "BCM56853_A1",
   4157         BCM56850_DEVICE_ID, BCM56850_A0_REV_ID,
   4158         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   4159     },
   4160     {   /* Trident 2 */
   4161         BCM56853_DEVICE_ID, BCM56853_A2_REV_ID,
   4162         "BCM56853_A2",
   4163         BCM56850_DEVICE_ID, BCM56850_A0_REV_ID,
   4164         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   4165     },
   4166     {   /* Trident 2 */
   4167         BCM56854_DEVICE_ID, BCM56854_A0_REV_ID,
   4168         "BCM56854_A0",
   4169         BCM56850_DEVICE_ID, BCM56850_A0_REV_ID,
   4170         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   4171     },
   4172     {   /* Trident 2 */
   4173         BCM56854_DEVICE_ID, BCM56854_A1_REV_ID,
   4174         "BCM56854_A1",
   4175         BCM56850_DEVICE_ID, BCM56850_A0_REV_ID,
   4176         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   4177     },
   4178     {   /* Trident 2 */
   4179         BCM56854_DEVICE_ID, BCM56854_A2_REV_ID,
   4180         "BCM56854_A2",
   4181         BCM56850_DEVICE_ID, BCM56850_A0_REV_ID,
   4182         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   4183     },
   4184     {   /* Trident 2 */
   4185         BCM56855_DEVICE_ID, BCM56855_A0_REV_ID,
   4186         "BCM56855_A0",
   4187         BCM56850_DEVICE_ID, BCM56850_A0_REV_ID,
   4188         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   4189     },
   4190     {   /* Trident 2 */
   4191         BCM56855_DEVICE_ID, BCM56855_A1_REV_ID,
   4192         "BCM56855_A1",
   4193         BCM56850_DEVICE_ID, BCM56850_A0_REV_ID,
   4194         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   4195     },
   4196     {   /* Trident 2 */
   4197         BCM56855_DEVICE_ID, BCM56855_A2_REV_ID,
   4198         "BCM56855_A2",
   4199         BCM56850_DEVICE_ID, BCM56850_A0_REV_ID,
   4200         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   4201     },
   4202     {   /* Trident 2 */
   4203         BCM56834_DEVICE_ID, BCM56834_A0_REV_ID,
   4204         "BCM56834_A0",
   4205         BCM56850_DEVICE_ID, BCM56850_A0_REV_ID,
   4206         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   4207     },
   4208     {   /* Trident 2 */
   4209         BCM56834_DEVICE_ID, BCM56834_A1_REV_ID,
   4210         "BCM56834_A1",
   4211         BCM56850_DEVICE_ID, BCM56850_A0_REV_ID,
   4212         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   4213     },
   4214     {   /* Trident 2 */
   4215         BCM56834_DEVICE_ID, BCM56834_A2_REV_ID,
   4216         "BCM56834_A2",
   4217         BCM56850_DEVICE_ID, BCM56850_A0_REV_ID,
   4218         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   4219     },
   4220     {   /* Titan 2 */
   4221         BCM56750_DEVICE_ID, BCM56750_A0_REV_ID,
   4222         "BCM56750_A0",
   4223         BCM56850_DEVICE_ID, BCM56850_A0_REV_ID,
   4224         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   4225     },
   4226     {   /* Titan 2 */
   4227         BCM56750_DEVICE_ID, BCM56750_A1_REV_ID,
   4228         "BCM56750_A1",
   4229         BCM56850_DEVICE_ID, BCM56850_A0_REV_ID,
   4230         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   4231     },
   4232     {   /* Titan 2 */
   4233         BCM56750_DEVICE_ID, BCM56750_A2_REV_ID,
   4234         "BCM56750_A2",
   4235         BCM56850_DEVICE_ID, BCM56850_A0_REV_ID,
   4236         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   4237     },
   4238     {   /* Scorpion 960 */
   4239         BCM56830_DEVICE_ID, BCM56830_A0_REV_ID,
   4240         "BCM56830_A0",
   4241         BCM56850_DEVICE_ID, BCM56850_A0_REV_ID,
   4242         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   4243     },
   4244     {   /* Scorpion 960 */
   4245         BCM56830_DEVICE_ID, BCM56830_A1_REV_ID,
   4246         "BCM56830_A1",
   4247         BCM56850_DEVICE_ID, BCM56850_A0_REV_ID,
   4248         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   4249     },
   4250     {   /* Scorpion 960 */
   4251         BCM56830_DEVICE_ID, BCM56830_A2_REV_ID,
   4252         "BCM56830_A2",
   4253         BCM56850_DEVICE_ID, BCM56850_A0_REV_ID,
   4254         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   4255     },
   4256 #endif /* BCM_TRIDENT2_SUPPORT */
   4257 
   4258 #if defined(BCM_TOMAHAWK_SUPPORT)
   4259     {   /* Tomahawk */
   4260         BCM56960_DEVICE_ID, BCM56960_A0_REV_ID,
   4261         "BCM56960_A0",
   4262         BCM56960_DEVICE_ID, BCM56960_A0_REV_ID,
   4263         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   4264     },
   4265     {   /* Tomahawk B0*/
   4266         BCM56960_DEVICE_ID, BCM56960_B0_REV_ID,
   4267         "BCM56960_B0",
   4268         BCM56960_DEVICE_ID, BCM56960_A0_REV_ID,
   4269         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   4270     },
   4271     {   /* Tomahawk B1*/
   4272         BCM56960_DEVICE_ID, BCM56960_B1_REV_ID,
   4273         "BCM56960_B1",
   4274         BCM56960_DEVICE_ID, BCM56960_A0_REV_ID,
   4275         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   4276     },
   4277     {   /* Tomahawk */
   4278         BCM56961_DEVICE_ID, BCM56961_A0_REV_ID,
   4279         "BCM56961_A0",
   4280         BCM56960_DEVICE_ID, BCM56960_A0_REV_ID,
   4281         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   4282     },
   4283     {   /* Tomahawk B0*/
   4284         BCM56961_DEVICE_ID, BCM56961_B0_REV_ID,
   4285         "BCM56961_B0",
   4286         BCM56960_DEVICE_ID, BCM56960_A0_REV_ID,
   4287         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   4288     },
   4289     {   /* Tomahawk B1*/
   4290         BCM56961_DEVICE_ID, BCM56961_B1_REV_ID,
   4291         "BCM56961_B1",
   4292         BCM56960_DEVICE_ID, BCM56960_A0_REV_ID,
   4293         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   4294     },
   4295     {   /* Tomahawk */
   4296         BCM56962_DEVICE_ID, BCM56962_A0_REV_ID,
   4297         "BCM56962_A0",
   4298         BCM56960_DEVICE_ID, BCM56960_A0_REV_ID,
   4299         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   4300     },
   4301     {   /* Tomahawk B0*/
   4302         BCM56962_DEVICE_ID, BCM56962_B0_REV_ID,
   4303         "BCM56962_B0",
   4304         BCM56960_DEVICE_ID, BCM56960_A0_REV_ID,
   4305         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   4306     },
   4307     {   /* Tomahawk B1*/
   4308         BCM56962_DEVICE_ID, BCM56962_B1_REV_ID,
   4309         "BCM56962_B1",
   4310         BCM56960_DEVICE_ID, BCM56960_A0_REV_ID,
   4311         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   4312     },
   4313     {   /* Tomahawk */
   4314         BCM56963_DEVICE_ID, BCM56963_A0_REV_ID,
   4315         "BCM56963_A0",
   4316         BCM56960_DEVICE_ID, BCM56960_A0_REV_ID,
   4317         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   4318     },
   4319     {   /* Tomahawk B0*/
   4320         BCM56963_DEVICE_ID, BCM56963_B0_REV_ID,
   4321         "BCM56963_B0",
   4322         BCM56960_DEVICE_ID, BCM56960_A0_REV_ID,
   4323         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   4324     },
   4325     {   /* Tomahawk B1*/
   4326         BCM56963_DEVICE_ID, BCM56963_B1_REV_ID,
   4327         "BCM56963_B1",
   4328         BCM56960_DEVICE_ID, BCM56960_A0_REV_ID,
   4329         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   4330     },
   4331     {   /* Tomahawk */
   4332         BCM56930_DEVICE_ID, BCM56930_A0_REV_ID,
   4333         "BCM56930_A0",
   4334         BCM56960_DEVICE_ID, BCM56960_A0_REV_ID,
   4335         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   4336     },
   4337     {   /* Tomahawk B0*/
   4338         BCM56930_DEVICE_ID, BCM56930_B0_REV_ID,
   4339         "BCM56930_B0",
   4340         BCM56960_DEVICE_ID, BCM56960_A0_REV_ID,
   4341         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   4342     },
   4343     {   /* Tomahawk B1*/
   4344         BCM56930_DEVICE_ID, BCM56930_B1_REV_ID,
   4345         "BCM56930_B1",
   4346         BCM56960_DEVICE_ID, BCM56960_A0_REV_ID,
   4347         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   4348     },
   4349     {   /* Titanhawk */
   4350         BCM56968_DEVICE_ID, BCM56968_A0_REV_ID,
   4351         "BCM56968_A0",
   4352         BCM56960_DEVICE_ID, BCM56960_A0_REV_ID,
   4353         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   4354     },
   4355     {   /* Titanhawk B0*/
   4356         BCM56968_DEVICE_ID, BCM56968_B0_REV_ID,
   4357         "BCM56968_B0",
   4358         BCM56960_DEVICE_ID, BCM56960_A0_REV_ID,
   4359         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   4360     },
   4361     {   /* Titanhawk B1*/
   4362         BCM56968_DEVICE_ID, BCM56968_B1_REV_ID,
   4363         "BCM56968_B1",
   4364         BCM56960_DEVICE_ID, BCM56960_A0_REV_ID,
   4365         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   4366     },
   4367     {   /* Ranger3+ */
   4368         BCM56168_DEVICE_ID, BCM56168_A0_REV_ID,
   4369         "BCM56168_A0",
   4370         BCM56960_DEVICE_ID, BCM56960_A0_REV_ID,
   4371         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   4372     },
   4373     {   /* Ranger3+ B0 */
   4374         BCM56168_DEVICE_ID, BCM56168_B0_REV_ID,
   4375         "BCM56168_B0",
   4376         BCM56960_DEVICE_ID, BCM56960_A0_REV_ID,
   4377         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   4378     },
   4379     {   /* Ranger3+ B1 */
   4380         BCM56168_DEVICE_ID, BCM56168_B1_REV_ID,
   4381         "BCM56168_B1",
   4382         BCM56960_DEVICE_ID, BCM56960_A0_REV_ID,
   4383         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   4384     },
   4385     {   /* Ranger3+ */
   4386         BCM56169_DEVICE_ID, BCM56169_A0_REV_ID,
   4387         "BCM56169_A0",
   4388         BCM56960_DEVICE_ID, BCM56960_A0_REV_ID,
   4389         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   4390     },
   4391     {   /* Ranger3+ B0 */
   4392         BCM56169_DEVICE_ID, BCM56169_B0_REV_ID,
   4393         "BCM56169_B0",
   4394         BCM56960_DEVICE_ID, BCM56960_A0_REV_ID,
   4395         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   4396     },
   4397     {   /* Ranger3+ B1 */
   4398         BCM56169_DEVICE_ID, BCM56169_B1_REV_ID,
   4399         "BCM56169_B1",
   4400         BCM56960_DEVICE_ID, BCM56960_A0_REV_ID,
   4401         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   4402     },
   4403 #endif /* BCM_TOMAHAWK_SUPPORT */
   4404 
   4405 #if defined(BCM_TOMAHAWKPLUS_SUPPORT)
   4406     {   /* Tomahawk+ */
   4407         BCM56965_DEVICE_ID, BCM56965_A0_REV_ID,
   4408         "BCM56965_A0",
   4409         BCM56965_DEVICE_ID, BCM56965_A0_REV_ID,
   4410         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   4411     },
   4412     {   /* Tomahawk+ */
   4413         BCM56969_DEVICE_ID, BCM56969_A0_REV_ID,
   4414         "BCM56969_A0",
   4415         BCM56965_DEVICE_ID, BCM56965_A0_REV_ID,
   4416         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   4417     },
   4418     {   /* Tomahawk+ */
   4419         BCM56966_DEVICE_ID, BCM56966_A0_REV_ID,
   4420         "BCM56966_A0",
   4421         BCM56965_DEVICE_ID, BCM56965_A0_REV_ID,
   4422         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   4423     },
   4424     {   /* Tomahawk+ */
   4425         BCM56967_DEVICE_ID, BCM56967_A0_REV_ID,
   4426         "BCM56967_A0",
   4427         BCM56965_DEVICE_ID, BCM56965_A0_REV_ID,
   4428         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   4429     },
   4430     {   /* Tomahawk+ */
   4431         BCM56965_DEVICE_ID, BCM56965_A1_REV_ID,
   4432         "BCM56965_A1",
   4433         BCM56965_DEVICE_ID, BCM56965_A0_REV_ID,
   4434         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   4435     },
   4436     {   /* Tomahawk+ */
   4437         BCM56969_DEVICE_ID, BCM56965_A1_REV_ID,
   4438         "BCM56969_A1",
   4439         BCM56965_DEVICE_ID, BCM56965_A0_REV_ID,
   4440         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   4441     },
   4442     {   /* Tomahawk+ */
   4443         BCM56966_DEVICE_ID, BCM56965_A1_REV_ID,
   4444         "BCM56966_A1",
   4445         BCM56965_DEVICE_ID, BCM56965_A0_REV_ID,
   4446         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   4447     },
   4448     {   /* Tomahawk+ */
   4449         BCM56967_DEVICE_ID, BCM56965_A1_REV_ID,
   4450         "BCM56967_A1",
   4451         BCM56965_DEVICE_ID, BCM56965_A0_REV_ID,
   4452         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   4453     },
   4454 
   4455 #endif /* BCM_TOMAHAWKPLUS_SUPPORT */
   4456 
   4457 #if defined(BCM_TOMAHAWK2_SUPPORT)
   4458     {   /* Tomahawk 2 */
   4459         BCM56970_DEVICE_ID, BCM56970_A0_REV_ID,
   4460         "BCM56970_A0",
   4461         BCM56970_DEVICE_ID, BCM56970_A0_REV_ID,
   4462         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   4463     },
   4464     {   /* Tomahawk 2 */
   4465         BCM56971_DEVICE_ID, BCM56971_A0_REV_ID,
   4466         "BCM56971_A0",
   4467         BCM56970_DEVICE_ID, BCM56970_A0_REV_ID,
   4468         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   4469     },
   4470     {   /* Tomahawk 2 */
   4471         BCM56972_DEVICE_ID, BCM56972_A0_REV_ID,
   4472         "BCM56972_A0",
   4473         BCM56970_DEVICE_ID, BCM56970_A0_REV_ID,
   4474         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   4475     },
   4476     {   /* Tomahawk 2 */
   4477         BCM56974_DEVICE_ID, BCM56974_A0_REV_ID,
   4478         "BCM56974_A0",
   4479         BCM56970_DEVICE_ID, BCM56970_A0_REV_ID,
   4480         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   4481     },
   4482     {   /* Titanhawk 2 */
   4483         BCM56975_DEVICE_ID, BCM56975_A0_REV_ID,
   4484         "BCM56975_A0",
   4485         BCM56970_DEVICE_ID, BCM56970_A0_REV_ID,
   4486         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   4487     },
   4488     {   /* Tomahawk 2 B0*/
   4489         BCM56970_DEVICE_ID, BCM56970_B0_REV_ID,
   4490         "BCM56970_B0",
   4491         BCM56970_DEVICE_ID, BCM56970_A0_REV_ID,
   4492         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   4493     },
   4494     {   /* Tomahawk 2 B0*/
   4495         BCM56971_DEVICE_ID, BCM56971_B0_REV_ID,
   4496         "BCM56971_B0",
   4497         BCM56970_DEVICE_ID, BCM56970_A0_REV_ID,
   4498         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   4499     },
   4500     {   /* Tomahawk 2 B0*/
   4501         BCM56972_DEVICE_ID, BCM56972_B0_REV_ID,
   4502         "BCM56972_B0",
   4503         BCM56970_DEVICE_ID, BCM56970_A0_REV_ID,
   4504         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   4505     },
   4506     {   /* Tomahawk 2 B0*/
   4507         BCM56974_DEVICE_ID, BCM56974_B0_REV_ID,
   4508         "BCM56974_B0",
   4509         BCM56970_DEVICE_ID, BCM56970_A0_REV_ID,
   4510         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   4511     },
   4512     {   /* Titanhawk 2 B0*/
   4513         BCM56975_DEVICE_ID, BCM56975_B0_REV_ID,
   4514         "BCM56975_B0",
   4515         BCM56970_DEVICE_ID, BCM56970_A0_REV_ID,
   4516         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   4517     },
   4518 #endif /* BCM_TOMAHAWK2_SUPPORT */
   4519 
   4520 #if defined(BCM_TOMAHAWK3_SUPPORT)
   4521     {   /* Tomahawak 3*/
   4522         BCM56980_DEVICE_ID, BCM56980_A0_REV_ID,
   4523         "BCM56980_A0",
   4524         BCM56980_DEVICE_ID, BCM56980_A0_REV_ID,
   4525         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   4526     },
   4527     {   /* Tomahawak 3*/
   4528         BCM56981_DEVICE_ID, BCM56981_A0_REV_ID,
   4529         "BCM56981_A0",
   4530         BCM56980_DEVICE_ID, BCM56980_A0_REV_ID,
   4531         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   4532     },
   4533     {   /* Tomahawk 3 */
   4534         BCM56982_DEVICE_ID, BCM56982_A0_REV_ID,
   4535         "BCM56982_A0",
   4536         BCM56980_DEVICE_ID, BCM5698_A0_REV_ID,
   4537         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   4538     },
   4539     {   /* Tomahawk 3 */
   4540         BCM56983_DEVICE_ID, BCM56983_A0_REV_ID,
   4541         "BCM56983_A0",
   4542         BCM56980_DEVICE_ID, BCM5698_A0_REV_ID,
   4543         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   4544     },
   4545     {   /* Tomahawk 3 */
   4546         BCM56984_DEVICE_ID, BCM56984_A0_REV_ID,
   4547         "BCM56984_A0",
   4548         BCM56980_DEVICE_ID, BCM5698_A0_REV_ID,
   4549         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   4550     },
   4551     {   /* Tomahawk 3 B0*/
   4552         BCM56980_DEVICE_ID, BCM56980_B0_REV_ID,
   4553         "BCM56980_B0",
   4554         BCM56980_DEVICE_ID, BCM56980_B0_REV_ID,
   4555         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   4556     },
   4557     {   /* Tomahawk 3 56983 B0*/
   4558         BCM56983_DEVICE_ID, BCM56983_B0_REV_ID,
   4559         "BCM56983_B0",
   4560         BCM56980_DEVICE_ID, BCM5698_B0_REV_ID,
   4561         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   4562     },
   4563     {   /* Tomahawk 3 56982 B0 */
   4564         BCM56982_DEVICE_ID, BCM56982_B0_REV_ID,
   4565         "BCM56982_B0",
   4566         BCM56980_DEVICE_ID, BCM5698_B0_REV_ID,
   4567         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   4568     },
   4569     {   /* Tomahawk 3 56984 B0*/
   4570         BCM56984_DEVICE_ID, BCM56984_B0_REV_ID,
   4571         "BCM56984_B0",
   4572         BCM56980_DEVICE_ID, BCM5698_B0_REV_ID,
   4573         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   4574     },
   4575 #endif /* BCM_TOMAHAWK3_SUPPORT */
   4576 
   4577 #if defined(BCM_TRIDENT2PLUS_SUPPORT)
   4578     {   /* Trident 2 Plus */
   4579         BCM56860_DEVICE_ID, BCM56860_A0_REV_ID,
   4580         "BCM56860_A0",
   4581         BCM56860_DEVICE_ID, BCM56860_A0_REV_ID,
   4582         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   4583     },
   4584     {   /* Trident 2 Plus */
   4585         BCM56861_DEVICE_ID, BCM56861_A0_REV_ID,
   4586         "BCM56861_A0",
   4587         BCM56860_DEVICE_ID, BCM56860_A0_REV_ID,
   4588         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   4589     },
   4590     {   /* Trident 2 Plus */
   4591         BCM56862_DEVICE_ID, BCM56862_A0_REV_ID,
   4592         "BCM56862_A0",
   4593         BCM56860_DEVICE_ID, BCM56860_A0_REV_ID,
   4594         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   4595     },
   4596     {   /* Trident 2 Plus */
   4597         BCM56864_DEVICE_ID, BCM56864_A0_REV_ID,
   4598         "BCM56864_A0",
   4599         BCM56860_DEVICE_ID, BCM56860_A0_REV_ID,
   4600         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   4601     },
   4602     {   /* Trident 2 Plus */
   4603         BCM56865_DEVICE_ID, BCM56865_A0_REV_ID,
   4604         "BCM56865_A0",
   4605         BCM56860_DEVICE_ID, BCM56860_A0_REV_ID,
   4606         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   4607     },
   4608     {   /* Trident 2 Plus */
   4609         BCM56866_DEVICE_ID, BCM56866_A0_REV_ID,
   4610         "BCM56866_A0",
   4611         BCM56860_DEVICE_ID, BCM56860_A0_REV_ID,
   4612         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   4613     },
   4614     {   /* Trident 2 Plus */
   4615         BCM56867_DEVICE_ID, BCM56867_A0_REV_ID,
   4616         "BCM56867_A0",
   4617         BCM56860_DEVICE_ID, BCM56860_A0_REV_ID,
   4618         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   4619     },
   4620     {   /* Trident 2 Plus */
   4621         BCM56868_DEVICE_ID, BCM56868_A0_REV_ID,
   4622         "BCM56868_A0",
   4623         BCM56860_DEVICE_ID, BCM56860_A0_REV_ID,
   4624         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   4625     },
   4626     {   /* Trident 2 Plus */
   4627         BCM56832_DEVICE_ID, BCM56832_A0_REV_ID,
   4628         "BCM56832_A0",
   4629         BCM56860_DEVICE_ID, BCM56860_A0_REV_ID,
   4630         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   4631     },
   4632     {   /* Trident 2 Plus */
   4633         BCM56833_DEVICE_ID, BCM56833_A0_REV_ID,
   4634         "BCM56833_A0",
   4635         BCM56860_DEVICE_ID, BCM56860_A0_REV_ID,
   4636         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   4637     },
   4638     {   /* Trident 2 Plus */
   4639         BCM56836_DEVICE_ID, BCM56836_A0_REV_ID,
   4640         "BCM56836_A0",
   4641         BCM56860_DEVICE_ID, BCM56860_A0_REV_ID,
   4642         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   4643     },
   4644     {   /* Trident 2 Plus */
   4645         BCM56860_DEVICE_ID, BCM56860_A1_REV_ID,
   4646         "BCM56860_A1",
   4647         BCM56860_DEVICE_ID, BCM56860_A0_REV_ID,
   4648         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   4649     },
   4650     {   /* Trident 2 Plus */
   4651         BCM56861_DEVICE_ID, BCM56861_A1_REV_ID,
   4652         "BCM56861_A1",
   4653         BCM56860_DEVICE_ID, BCM56860_A0_REV_ID,
   4654         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   4655     },
   4656     {   /* Trident 2 Plus */
   4657         BCM56862_DEVICE_ID, BCM56862_A1_REV_ID,
   4658         "BCM56862_A1",
   4659         BCM56860_DEVICE_ID, BCM56860_A0_REV_ID,
   4660         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   4661     },
   4662     {   /* Trident 2 Plus */
   4663         BCM56864_DEVICE_ID, BCM56864_A1_REV_ID,
   4664         "BCM56864_A1",
   4665         BCM56860_DEVICE_ID, BCM56860_A0_REV_ID,
   4666         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   4667     },
   4668     {   /* Trident 2 Plus */
   4669         BCM56865_DEVICE_ID, BCM56865_A1_REV_ID,
   4670         "BCM56865_A1",
   4671         BCM56860_DEVICE_ID, BCM56860_A0_REV_ID,
   4672         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   4673     },
   4674     {   /* Trident 2 Plus */
   4675         BCM56866_DEVICE_ID, BCM56866_A1_REV_ID,
   4676         "BCM56866_A1",
   4677         BCM56860_DEVICE_ID, BCM56860_A0_REV_ID,
   4678         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   4679     },
   4680     {   /* Trident 2 Plus */
   4681         BCM56867_DEVICE_ID, BCM56867_A1_REV_ID,
   4682         "BCM56867_A1",
   4683         BCM56860_DEVICE_ID, BCM56860_A0_REV_ID,
   4684         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   4685     },
   4686     {   /* Trident 2 Plus */
   4687         BCM56868_DEVICE_ID, BCM56868_A1_REV_ID,
   4688         "BCM56868_A1",
   4689         BCM56860_DEVICE_ID, BCM56860_A0_REV_ID,
   4690         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   4691     },
   4692     {   /* Trident 2 Plus */
   4693         BCM56832_DEVICE_ID, BCM56832_A1_REV_ID,
   4694         "BCM56832_A1",
   4695         BCM56860_DEVICE_ID, BCM56860_A0_REV_ID,
   4696         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   4697     },
   4698     {   /* Trident 2 Plus */
   4699         BCM56833_DEVICE_ID, BCM56833_A1_REV_ID,
   4700         "BCM56833_A1",
   4701         BCM56860_DEVICE_ID, BCM56860_A0_REV_ID,
   4702         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   4703     },
   4704     {   /* Trident 2 Plus */
   4705         BCM56836_DEVICE_ID, BCM56836_A1_REV_ID,
   4706         "BCM56836_A1",
   4707         BCM56860_DEVICE_ID, BCM56860_A0_REV_ID,
   4708         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   4709     },
   4710 #endif /* BCM_TRIDENT2PLUS_SUPPORT */
   4711 
   4712 #if defined(BCM_TRIDENT3_SUPPORT)
   4713     {   /* Trident3 */
   4714         BCM56870_DEVICE_ID, BCM56870_A0_REV_ID,
   4715         "BCM56870_A0",
   4716         BCM56870_DEVICE_ID, BCM56870_A0_REV_ID,
   4717         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   4718     },
   4719     {   /* Trident3 2T SKU */
   4720         BCM56873_DEVICE_ID, BCM56873_A0_REV_ID,
   4721         "BCM56873_A0",
   4722         BCM56870_DEVICE_ID, BCM56870_A0_REV_ID,
   4723         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   4724     },
   4725 #endif /* BCM_TRIDENT3_SUPPORT */
   4726 
   4727 #if defined(BCM_HELIX5_SUPPORT)
   4728     {   /* Helix5 */
   4729         BCM56370_DEVICE_ID, BCM56370_A0_REV_ID,
   4730         "BCM56370_A0",
   4731         BCM56370_DEVICE_ID, BCM56370_A0_REV_ID,
   4732         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   4733     },
   4734     {   /* Helix5 */
   4735         BCM56371_DEVICE_ID, BCM56371_A0_REV_ID,
   4736         "BCM56371_A0",
   4737         BCM56370_DEVICE_ID, BCM56370_A0_REV_ID,
   4738         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   4739     },
   4740     {   /* Helix5 */
   4741         BCM56372_DEVICE_ID, BCM56372_A0_REV_ID,
   4742         "BCM56372_A0",
   4743         BCM56370_DEVICE_ID, BCM56370_A0_REV_ID,
   4744         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   4745     },
   4746     {   /* Helix5 */
   4747         BCM56374_DEVICE_ID, BCM56374_A0_REV_ID,
   4748         "BCM56374_A0",
   4749         BCM56370_DEVICE_ID, BCM56370_A0_REV_ID,
   4750         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   4751     },
   4752     {   /* Helix5 */
   4753         BCM56375_DEVICE_ID, BCM56375_A0_REV_ID,
   4754         "BCM56375_A0",
   4755         BCM56370_DEVICE_ID, BCM56370_A0_REV_ID,
   4756         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   4757     },
   4758     {   /* Helix5 */
   4759         BCM56376_DEVICE_ID, BCM56376_A0_REV_ID,
   4760         "BCM56376_A0",
   4761         BCM56370_DEVICE_ID, BCM56370_A0_REV_ID,
   4762         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   4763     },
   4764     {   /* Helix5 */
   4765         BCM56377_DEVICE_ID, BCM56377_A0_REV_ID,
   4766         "BCM56377_A0",
   4767         BCM56370_DEVICE_ID, BCM56370_A0_REV_ID,
   4768         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   4769     },
   4770     {   /* Helix5 */
   4771         BCM56577_DEVICE_ID, BCM56577_A0_REV_ID,
   4772         "BCM56577_A0",
   4773         BCM56370_DEVICE_ID, BCM56370_A0_REV_ID,
   4774         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   4775     },
   4776     {   /* Helix5 */
   4777         BCM56578_DEVICE_ID, BCM56578_A0_REV_ID,
   4778         "BCM56578_A0",
   4779         BCM56370_DEVICE_ID, BCM56370_A0_REV_ID,
   4780         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   4781     },
   4782     {   /* Helix5 */
   4783         BCM56579_DEVICE_ID, BCM56579_A0_REV_ID,
   4784         "BCM56579_A0",
   4785         BCM56370_DEVICE_ID, BCM56370_A0_REV_ID,
   4786         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   4787     },
   4788     {   /* Helix5 */
   4789         BCM56370_DEVICE_ID, BCM56370_A1_REV_ID,
   4790         "BCM56370_A1",
   4791         BCM56370_DEVICE_ID, BCM56370_A0_REV_ID,
   4792         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   4793     },
   4794     {   /* Helix5 */
   4795         BCM56371_DEVICE_ID, BCM56371_A1_REV_ID,
   4796         "BCM56371_A1",
   4797         BCM56370_DEVICE_ID, BCM56370_A0_REV_ID,
   4798         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   4799     },
   4800     {   /* Helix5 */
   4801         BCM56372_DEVICE_ID, BCM56372_A1_REV_ID,
   4802         "BCM56372_A1",
   4803         BCM56370_DEVICE_ID, BCM56370_A0_REV_ID,
   4804         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   4805     },
   4806     {   /* Helix5 */
   4807         BCM56374_DEVICE_ID, BCM56374_A1_REV_ID,
   4808         "BCM56374_A1",
   4809         BCM56370_DEVICE_ID, BCM56370_A0_REV_ID,
   4810         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   4811     },
   4812     {   /* Helix5 */
   4813         BCM56375_DEVICE_ID, BCM56375_A1_REV_ID,
   4814         "BCM56375_A1",
   4815         BCM56370_DEVICE_ID, BCM56370_A0_REV_ID,
   4816         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   4817     },
   4818     {   /* Helix5 */
   4819         BCM56376_DEVICE_ID, BCM56376_A1_REV_ID,
   4820         "BCM56376_A1",
   4821         BCM56370_DEVICE_ID, BCM56370_A0_REV_ID,
   4822         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   4823     },
   4824     {   /* Helix5 */
   4825         BCM56377_DEVICE_ID, BCM56377_A1_REV_ID,
   4826         "BCM56377_A1",
   4827         BCM56370_DEVICE_ID, BCM56370_A0_REV_ID,
   4828         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   4829     },
   4830     {   /* Helix5 */
   4831         BCM56577_DEVICE_ID, BCM56577_A1_REV_ID,
   4832         "BCM56577_A1",
   4833         BCM56370_DEVICE_ID, BCM56370_A0_REV_ID,
   4834         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   4835     },
   4836     {   /* Helix5 */
   4837         BCM56578_DEVICE_ID, BCM56578_A1_REV_ID,
   4838         "BCM56578_A1",
   4839         BCM56370_DEVICE_ID, BCM56370_A0_REV_ID,
   4840         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   4841     },
   4842     {   /* Helix5 */
   4843         BCM56579_DEVICE_ID, BCM56579_A1_REV_ID,
   4844         "BCM56579_A1",
   4845         BCM56370_DEVICE_ID, BCM56370_A0_REV_ID,
   4846         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   4847     },
   4848 #endif /* BCM_HELIX5_SUPPORT */
   4849 
   4850 #if defined(BCM_MAVERICK2_SUPPORT)
   4851     {   /* Maverick2 */
   4852         BCM56770_DEVICE_ID, BCM56770_A0_REV_ID,
   4853         "BCM56770_A0",
   4854         BCM56770_DEVICE_ID, BCM56770_A0_REV_ID,
   4855         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   4856     },
   4857     {   /* Maverick2 */
   4858         BCM56771_DEVICE_ID, BCM56771_A0_REV_ID,
   4859         "BCM56771_A0",
   4860         BCM56770_DEVICE_ID, BCM56770_A0_REV_ID,
   4861         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   4862     },
   4863 #endif /* BCM_MAVERICK2_SUPPORT */
   4864 
   4865 #if defined(BCM_APACHE_SUPPORT)
   4866     {   /* Apache */
   4867         BCM56560_DEVICE_ID, BCM56560_A0_REV_ID,
   4868         "BCM56560_A0",
   4869         BCM56560_DEVICE_ID, BCM56560_A0_REV_ID,
   4870         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   4871     },
   4872     {   /* Apache B0 */
   4873         BCM56560_DEVICE_ID, BCM56560_B0_REV_ID,
   4874         "BCM56560_B0",
   4875         BCM56560_DEVICE_ID, BCM56560_B0_REV_ID,
   4876         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   4877     },
   4878     {   /* Apache */
   4879         BCM56561_DEVICE_ID, BCM56561_A0_REV_ID,
   4880         "BCM56561_A0",
   4881         BCM56560_DEVICE_ID, BCM56560_A0_REV_ID,
   4882         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   4883     },
   4884     {   /* Apache B0 */
   4885         BCM56561_DEVICE_ID, BCM56561_B0_REV_ID,
   4886         "BCM56561_B0",
   4887         BCM56560_DEVICE_ID, BCM56560_B0_REV_ID,
   4888         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   4889     },
   4890     {   /* Apache */
   4891         BCM56562_DEVICE_ID, BCM56562_A0_REV_ID,
   4892         "BCM56562_A0",
   4893         BCM56560_DEVICE_ID, BCM56560_A0_REV_ID,
   4894         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   4895     },
   4896     {   /* Apache B0 */
   4897         BCM56562_DEVICE_ID, BCM56562_B0_REV_ID,
   4898         "BCM56562_B0",
   4899         BCM56560_DEVICE_ID, BCM56560_B0_REV_ID,
   4900         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   4901     },
   4902     {   /* FB-5 */
   4903         BCM56565_DEVICE_ID, BCM56565_A0_REV_ID,
   4904         "BCM56565_A0",
   4905         BCM56560_DEVICE_ID, BCM56560_A0_REV_ID,
   4906         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   4907     },
   4908     {   /* FB-5 B0 */
   4909         BCM56565_DEVICE_ID, BCM56565_B0_REV_ID,
   4910         "BCM56565_B0",
   4911         BCM56560_DEVICE_ID, BCM56560_B0_REV_ID,
   4912         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   4913     },
   4914     {   /* FB-5 */
   4915         BCM56566_DEVICE_ID, BCM56566_A0_REV_ID,
   4916         "BCM56566_A0",
   4917         BCM56560_DEVICE_ID, BCM56560_A0_REV_ID,
   4918         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   4919     },
   4920     {   /* FB-5 B0 */
   4921         BCM56566_DEVICE_ID, BCM56566_B0_REV_ID,
   4922         "BCM56566_B0",
   4923         BCM56560_DEVICE_ID, BCM56560_B0_REV_ID,
   4924         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   4925     },
   4926     {   /* FB-5 */
   4927         BCM56567_DEVICE_ID, BCM56567_A0_REV_ID,
   4928         "BCM56567_A0",
   4929         BCM56560_DEVICE_ID, BCM56560_A0_REV_ID,
   4930         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   4931     },
   4932     {   /* FB-5 B0 */
   4933         BCM56567_DEVICE_ID, BCM56567_B0_REV_ID,
   4934         "BCM56567_B0",
   4935         BCM56560_DEVICE_ID, BCM56560_B0_REV_ID,
   4936         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   4937     },
   4938     {   /* FB-5 */
   4939         BCM56568_DEVICE_ID, BCM56568_A0_REV_ID,
   4940         "BCM56568_A0",
   4941         BCM56560_DEVICE_ID, BCM56560_A0_REV_ID,
   4942         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   4943     },
   4944     {   /* FB-5 B0 */
   4945         BCM56568_DEVICE_ID, BCM56568_B0_REV_ID,
   4946         "BCM56568_B0",
   4947         BCM56560_DEVICE_ID, BCM56560_B0_REV_ID,
   4948         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   4949     },
   4950     {   /* Maverick */
   4951         BCM56760_DEVICE_ID, BCM56760_A0_REV_ID,
   4952         "BCM56760_A0",
   4953         BCM56560_DEVICE_ID, BCM56560_A0_REV_ID,
   4954         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   4955     },
   4956     {   /* Maverick B0 */
   4957         BCM56760_DEVICE_ID, BCM56760_B0_REV_ID,
   4958         "BCM56760_B0",
   4959         BCM56560_DEVICE_ID, BCM56560_B0_REV_ID,
   4960         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   4961     },
   4962     {   /* Maverick */
   4963         BCM56761_DEVICE_ID, BCM56761_A0_REV_ID,
   4964         "BCM56761_A0",
   4965         BCM56560_DEVICE_ID, BCM56560_A0_REV_ID,
   4966         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   4967     },
   4968     {   /* Maverick B0 */
   4969         BCM56761_DEVICE_ID, BCM56761_B0_REV_ID,
   4970         "BCM56761_B0",
   4971         BCM56560_DEVICE_ID, BCM56560_B0_REV_ID,
   4972         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   4973     },
   4974     {   /* Maverick */
   4975         BCM56761_DEVICE_ID, BCM56761_A0_REV_ID,
   4976         "BCM56761_A0",
   4977         BCM56560_DEVICE_ID, BCM56560_A0_REV_ID,
   4978         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   4979     },
   4980     {   /* Maverick B0 */
   4981         BCM56761_DEVICE_ID, BCM56761_B0_REV_ID,
   4982         "BCM56761_B0",
   4983         BCM56560_DEVICE_ID, BCM56560_B0_REV_ID,
   4984         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   4985     },
   4986     {   /* Maverick B1 */
   4987         BCM56761_DEVICE_ID, BCM56761_B1_REV_ID,
   4988         "BCM56761_B1",
   4989         BCM56560_DEVICE_ID, BCM56560_B0_REV_ID,
   4990         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   4991     },
   4992     {   /* Maverick */
   4993         BCM56762_DEVICE_ID, BCM56762_A0_REV_ID,
   4994         "BCM56762_A0",
   4995         BCM56560_DEVICE_ID, BCM56560_A0_REV_ID,
   4996         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   4997     },
   4998     {   /* Maverick B0 */
   4999         BCM56762_DEVICE_ID, BCM56762_B0_REV_ID,
   5000         "BCM56762_B0",
   5001         BCM56560_DEVICE_ID, BCM56560_B0_REV_ID,
   5002         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   5003     },
   5004     {   /* Maverick */
   5005         BCM56764_DEVICE_ID, BCM56764_A0_REV_ID,
   5006         "BCM56764_A0",
   5007         BCM56560_DEVICE_ID, BCM56560_A0_REV_ID,
   5008         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   5009     },
   5010     {   /* Maverick B0 */
   5011         BCM56764_DEVICE_ID, BCM56764_B0_REV_ID,
   5012         "BCM56764_B0",
   5013         BCM56560_DEVICE_ID, BCM56560_B0_REV_ID,
   5014         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   5015     },
   5016     {   /* Maverick - TD2+ (50mmx50mm) */
   5017         BCM56765_DEVICE_ID, BCM56765_A0_REV_ID,
   5018         "BCM56765_A0",
   5019         BCM56560_DEVICE_ID, BCM56560_A0_REV_ID,
   5020         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   5021     },
   5022     {   /* Maverick B0 - TD2+ (50mmx50mm) */
   5023         BCM56765_DEVICE_ID, BCM56765_B0_REV_ID,
   5024         "BCM56765_B0",
   5025         BCM56560_DEVICE_ID, BCM56560_B0_REV_ID,
   5026         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   5027     },
   5028     {   /* Maverick - TD+ (50mmx50mm) */
   5029         BCM56766_DEVICE_ID, BCM56766_A0_REV_ID,
   5030         "BCM56766_A0",
   5031         BCM56560_DEVICE_ID, BCM56560_A0_REV_ID,
   5032         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   5033     },
   5034     {   /* Maverick B0 - TD+ (50mmx50mm) */
   5035         BCM56766_DEVICE_ID, BCM56766_B0_REV_ID,
   5036         "BCM56766_B0",
   5037         BCM56560_DEVICE_ID, BCM56560_B0_REV_ID,
   5038         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   5039     },
   5040     {   /* Maverick-880G */
   5041         BCM56768_DEVICE_ID, BCM56768_A0_REV_ID,
   5042         "BCM56768_A0",
   5043         BCM56560_DEVICE_ID, BCM56560_A0_REV_ID,
   5044         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   5045     },
   5046     {   /* Maverick-880G B0 */
   5047         BCM56768_DEVICE_ID, BCM56768_B0_REV_ID,
   5048         "BCM56768_B0",
   5049         BCM56560_DEVICE_ID, BCM56560_B0_REV_ID,
   5050         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   5051     },
   5052     {   /* Ranger 2+ 880G */
   5053         BCM56068_DEVICE_ID, BCM56068_A0_REV_ID,
   5054         "BCM56068_A0",
   5055         BCM56560_DEVICE_ID, BCM56560_A0_REV_ID,
   5056         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   5057     },
   5058     {   /* Ranger 2+ B0 880G*/
   5059         BCM56068_DEVICE_ID, BCM56068_B0_REV_ID,
   5060         "BCM56068_B0",
   5061         BCM56560_DEVICE_ID, BCM56560_B0_REV_ID,
   5062         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   5063     },
   5064     {   /* Ranger 2+ 880G */
   5065         BCM56068_DEVICE_ID, BCM56068_A0_REV_ID,
   5066         "BCM56068_A0",
   5067         BCM56560_DEVICE_ID, BCM56560_A0_REV_ID,
   5068         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   5069     },
   5070     {   /* Ranger 2+ B0 880G*/
   5071         BCM56068_DEVICE_ID, BCM56068_B0_REV_ID,
   5072         "BCM56068_B0",
   5073         BCM56560_DEVICE_ID, BCM56560_B0_REV_ID,
   5074         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   5075     },
   5076     {   /* Ranger 2+ B1 880G*/
   5077         BCM56068_DEVICE_ID, BCM56068_B1_REV_ID,
   5078         "BCM56068_B1",
   5079         BCM56560_DEVICE_ID, BCM56560_B0_REV_ID,
   5080         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   5081     },
   5082     {   /* Ranger 2+ */
   5083         BCM56069_DEVICE_ID, BCM56069_A0_REV_ID,
   5084         "BCM56069_A0",
   5085         BCM56560_DEVICE_ID, BCM56560_A0_REV_ID,
   5086         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   5087     },
   5088     {   /* Ranger 2+ B0 */
   5089         BCM56069_DEVICE_ID, BCM56069_B0_REV_ID,
   5090         "BCM56069_B0",
   5091         BCM56560_DEVICE_ID, BCM56560_B0_REV_ID,
   5092         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   5093     },
   5094 #endif /* BCM_APACHE_SUPPORT */
   5095 #if defined(BCM_MONTEREY_SUPPORT)
   5096     {   /* Monterey */
   5097         BCM56670_DEVICE_ID, BCM56670_A0_REV_ID,
   5098         "BCM56670_A0",
   5099         BCM56670_DEVICE_ID, BCM56670_A0_REV_ID,
   5100         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   5101     },
   5102     {   /* Monterey */
   5103         BCM56671_DEVICE_ID, BCM56671_A0_REV_ID,
   5104         "BCM56671_A0",
   5105         BCM56670_DEVICE_ID, BCM56670_A0_REV_ID,
   5106         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   5107     },
   5108     {   /* Monterey */
   5109         BCM56672_DEVICE_ID, BCM56672_A0_REV_ID,
   5110         "BCM56672_A0",
   5111         BCM56670_DEVICE_ID, BCM56672_A0_REV_ID,
   5112         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   5113     },
   5114     {   /* Monterey */
   5115         BCM56675_DEVICE_ID, BCM56675_A0_REV_ID,
   5116         "BCM56675_A0",
   5117         BCM56670_DEVICE_ID, BCM56670_A0_REV_ID,
   5118         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   5119     },
   5120     {   /* Monterey */
   5121         BCM56670_DEVICE_ID, BCM56670_B0_REV_ID,
   5122         "BCM56670_B0",
   5123         BCM56670_DEVICE_ID, BCM56670_B0_REV_ID,
   5124         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   5125     },
   5126     {   /* Monterey */
   5127         BCM56671_DEVICE_ID, BCM56671_B0_REV_ID,
   5128         "BCM56671_B0",
   5129         BCM56670_DEVICE_ID, BCM56670_B0_REV_ID,
   5130         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   5131     },
   5132     {   /* Monterey */
   5133         BCM56672_DEVICE_ID, BCM56672_B0_REV_ID,
   5134         "BCM56672_B0",
   5135         BCM56670_DEVICE_ID, BCM56670_B0_REV_ID,
   5136         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   5137     },
   5138     {   /* Monterey */
   5139         BCM56675_DEVICE_ID, BCM56675_B0_REV_ID,
   5140         "BCM56675_B0",
   5141         BCM56670_DEVICE_ID, BCM56670_B0_REV_ID,
   5142         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   5143     },
   5144 #endif
   5145 #if defined(BCM_KSCPU_SUPPORT)
   5146     /* CPU device */
   5147     {
   5148         BCM53000PCIE_DEVICE_ID, BCM53000_A0_REV_ID,
   5149         "BCM53000_A0",
   5150         BCM53000PCIE_DEVICE_ID, BCM53000_A0_REV_ID,
   5151         (SOC_PCI_DEV_TYPE | SOC_CPU_DEV_TYPE)
   5152     },
   5153 #endif
   5154 #ifdef BCM_PETRA_SUPPORT
   5155     {
   5156         GEDI_DEVICE_ID, GEDI_REV_ID,
   5157         "GEDI",
   5158         GEDI_DEVICE_ID, GEDI_REV_ID,
   5159         (SOC_EB_DEV_TYPE | SOC_SWITCH_DEV_TYPE | SOC_PCI_DEV_TYPE)
   5160     },
   5161     {
   5162         ARAD_DEVICE_ID, ARAD_A0_REV_ID,
   5163         "BCM88650_A0",
   5164         ARAD_DEVICE_ID, ARAD_A0_REV_ID,
   5165         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   5166     },
   5167     {
   5168         ARAD_DEVICE_ID, ARAD_B0_REV_ID,
   5169         "BCM88650_B0",
   5170         ARAD_DEVICE_ID, ARAD_B0_REV_ID,
   5171         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   5172     },
   5173     {
   5174         ARAD_DEVICE_ID, ARAD_B1_REV_ID,
   5175         "BCM88650_B1",
   5176         ARAD_DEVICE_ID, ARAD_B1_REV_ID,
   5177         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   5178     },
   5179     {
   5180         ARADPLUS_DEVICE_ID, ARADPLUS_A0_REV_ID,
   5181         "BCM88660_A0",
   5182         ARADPLUS_DEVICE_ID, ARADPLUS_A0_REV_ID,
   5183         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   5184     },
   5185     {
   5186         ARDON_DEVICE_ID, ARDON_A0_REV_ID,
   5187         "BCM88202_A0",
   5188         ARDON_DEVICE_ID, ARDON_A0_REV_ID,
   5189         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   5190     },
   5191     {
   5192         ARDON_DEVICE_ID, ARDON_A1_REV_ID,
   5193         "BCM88202_A1",
   5194         ARDON_DEVICE_ID, ARDON_A1_REV_ID,
   5195         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   5196     },
   5197     {
   5198         ARDON_DEVICE_ID, ARDON_A2_REV_ID,
   5199         "BCM88202_A2",
   5200         ARDON_DEVICE_ID, ARDON_A2_REV_ID,
   5201         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   5202     },
   5203     {
   5204         BCM83207_DEVICE_ID, BCM83207_A0_REV_ID,
   5205         "BCM83207_A0",
   5206         BCM83207_DEVICE_ID, BCM83207_A0_REV_ID,
   5207         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   5208     },  
   5209     {
   5210         BCM83208_DEVICE_ID, BCM83208_A0_REV_ID,
   5211         "BCM83208_A0",
   5212         BCM83208_DEVICE_ID, BCM83208_A0_REV_ID,
   5213         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   5214     },
   5215     {
   5216         BCM88350_DEVICE_ID, BCM88350_B1_REV_ID,
   5217         "BCM88350_B1",
   5218         BCM88350_DEVICE_ID, BCM88350_B1_REV_ID,
   5219         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   5220 
   5221     },
   5222     {
   5223         BCM88351_DEVICE_ID, BCM88351_B1_REV_ID,
   5224         "BCM88351_B1",
   5225         BCM88351_DEVICE_ID, BCM88351_B1_REV_ID,
   5226         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   5227 
   5228     },
   5229     {
   5230         BCM88450_DEVICE_ID, BCM88450_B1_REV_ID,
   5231         "BCM88450_B1",
   5232         BCM88450_DEVICE_ID, BCM88450_B1_REV_ID,
   5233         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   5234 
   5235     },
   5236     {
   5237         BCM88451_DEVICE_ID, BCM88451_B1_REV_ID,
   5238         "BCM88451_B1",
   5239         BCM88451_DEVICE_ID, BCM88451_B1_REV_ID,
   5240         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   5241 
   5242     },
   5243     {
   5244         BCM88550_DEVICE_ID, BCM88550_B1_REV_ID,
   5245         "BCM88550_B1",
   5246         BCM88550_DEVICE_ID, BCM88550_B1_REV_ID,
   5247         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   5248 
   5249     },
   5250     {
   5251         BCM88551_DEVICE_ID, BCM88551_B1_REV_ID,
   5252         "BCM88551_B1",
   5253         BCM88551_DEVICE_ID, BCM88551_B1_REV_ID,
   5254         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   5255 
   5256     },
   5257      {
   5258         BCM88552_DEVICE_ID, BCM88552_B1_REV_ID,
   5259         "BCM88552_B1",
   5260         BCM88552_DEVICE_ID, BCM88552_B1_REV_ID,
   5261         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   5262 
   5263     },
   5264     {
   5265         BCM88651_DEVICE_ID, BCM88651_B1_REV_ID,
   5266         "BCM88651_B1",
   5267         BCM88651_DEVICE_ID, BCM88651_B1_REV_ID,
   5268         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   5269 
   5270     },
   5271     {
   5272         BCM88654_DEVICE_ID, BCM88654_B1_REV_ID,
   5273         "BCM88654_B1",
   5274         BCM88654_DEVICE_ID, BCM88654_B1_REV_ID,
   5275         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   5276 
   5277     },
   5278     {
   5279         BCM88360_DEVICE_ID, BCM88360_A0_REV_ID,
   5280         "BCM88360_A0",
   5281         BCM88360_DEVICE_ID, BCM88360_A0_REV_ID,
   5282         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   5283 
   5284     },
   5285     {
   5286         BCM88361_DEVICE_ID, BCM88361_A0_REV_ID,
   5287         "BCM88361_A0",
   5288         BCM88361_DEVICE_ID, BCM88361_A0_REV_ID,
   5289         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   5290 
   5291     },
   5292     {
   5293         BCM88363_DEVICE_ID, BCM88363_A0_REV_ID,
   5294         "BCM88363_A0",
   5295         BCM88363_DEVICE_ID, BCM88363_A0_REV_ID,
   5296         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   5297 
   5298     },
   5299     {
   5300         BCM88460_DEVICE_ID, BCM88460_A0_REV_ID,
   5301         "BCM88460_A0",
   5302         BCM88460_DEVICE_ID, BCM88460_A0_REV_ID,
   5303         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   5304 
   5305     },
   5306     {
   5307         BCM88461_DEVICE_ID, BCM88461_A0_REV_ID,
   5308         "BCM88461_A0",
   5309         BCM88461_DEVICE_ID, BCM88461_A0_REV_ID,
   5310         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   5311 
   5312     },
   5313     {
   5314         BCM88560_DEVICE_ID, BCM88560_A0_REV_ID,
   5315         "BCM88560_A0",
   5316         BCM88560_DEVICE_ID, BCM88560_A0_REV_ID,
   5317         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   5318 
   5319     },
   5320     {
   5321         BCM88561_DEVICE_ID, BCM88561_A0_REV_ID,
   5322         "BCM88561_A0",
   5323         BCM88561_DEVICE_ID, BCM88561_A0_REV_ID,
   5324         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   5325 
   5326     },
   5327      {
   5328         BCM88562_DEVICE_ID, BCM88562_A0_REV_ID,
   5329         "BCM88562_A0",
   5330         BCM88562_DEVICE_ID, BCM88562_A0_REV_ID,
   5331         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   5332 
   5333     },
   5334     {
   5335         BCM88661_DEVICE_ID, BCM88661_A0_REV_ID,
   5336         "BCM88661_A0",
   5337         BCM88661_DEVICE_ID, BCM88661_A0_REV_ID,
   5338         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   5339 
   5340     },
   5341     {
   5342         BCM88664_DEVICE_ID, BCM88664_A0_REV_ID,
   5343         "BCM88664_A0",
   5344         BCM88664_DEVICE_ID, BCM88664_A0_REV_ID,
   5345         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   5346 
   5347     },
   5348     {
   5349         ACP_PCI_DEVICE_ID, ACP_PCI_REV_ID,
   5350         "ACP",
   5351         ACP_PCI_DEVICE_ID, ACP_PCI_REV_ID,
   5352         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   5353     },
   5354 #endif
   5355 #ifdef BCM_JERICHO_SUPPORT
   5356 /* { */
   5357     {
   5358         JERICHO_DEVICE_ID, JERICHO_A0_REV_ID,
   5359         "BCM88675_A0",
   5360         JERICHO_DEVICE_ID, JERICHO_A0_REV_ID,
   5361         (SOC_SWITCH_DEV_TYPE | SOC_PCI_DEV_TYPE)
   5362     },
   5363     {
   5364         JERICHO_DEVICE_ID, JERICHO_B0_REV_ID,
   5365         "BCM88675_B0",
   5366         JERICHO_DEVICE_ID, JERICHO_B0_REV_ID,
   5367         (SOC_SWITCH_DEV_TYPE | SOC_PCI_DEV_TYPE)
   5368     },
   5369     {
   5370         JERICHO_DEVICE_ID, JERICHO_A1_REV_ID,
   5371         "BCM88675_A1",
   5372         JERICHO_DEVICE_ID, JERICHO_A1_REV_ID,
   5373         (SOC_SWITCH_DEV_TYPE | SOC_PCI_DEV_TYPE)
   5374     },
   5375     {
   5376         BCM88670_DEVICE_ID, BCM88670_A0_REV_ID,
   5377         "BCM88670_A0",
   5378         BCM88670_DEVICE_ID, BCM88670_A0_REV_ID,
   5379         (SOC_SWITCH_DEV_TYPE | SOC_PCI_DEV_TYPE)
   5380     },
   5381     {
   5382         BCM88670_DEVICE_ID, BCM88670_B0_REV_ID,
   5383         "BCM88670_B0",
   5384         BCM88670_DEVICE_ID, BCM88670_B0_REV_ID,
   5385         (SOC_SWITCH_DEV_TYPE | SOC_PCI_DEV_TYPE)
   5386     },
   5387     {
   5388         BCM88670_DEVICE_ID, BCM88670_A1_REV_ID,
   5389         "BCM88670_A1",
   5390         BCM88670_DEVICE_ID, BCM88670_A1_REV_ID,
   5391         (SOC_SWITCH_DEV_TYPE | SOC_PCI_DEV_TYPE)
   5392     },
   5393     {
   5394         BCM88671_DEVICE_ID, BCM88671_A0_REV_ID,
   5395         "BCM88671_A0",
   5396         BCM88671_DEVICE_ID, BCM88671_A0_REV_ID,
   5397         (SOC_SWITCH_DEV_TYPE | SOC_PCI_DEV_TYPE)
   5398     },
   5399     {
   5400         BCM88671_DEVICE_ID, BCM88671_B0_REV_ID,
   5401         "BCM88671_B0",
   5402         BCM88671_DEVICE_ID, BCM88671_B0_REV_ID,
   5403         (SOC_SWITCH_DEV_TYPE | SOC_PCI_DEV_TYPE)
   5404     },
   5405     {
   5406         BCM88671_DEVICE_ID, BCM88671_A1_REV_ID,
   5407         "BCM88671_A1",
   5408         BCM88671_DEVICE_ID, BCM88671_A1_REV_ID,
   5409         (SOC_SWITCH_DEV_TYPE | SOC_PCI_DEV_TYPE)
   5410     },
   5411     {
   5412         BCM88671M_DEVICE_ID, BCM88671M_A0_REV_ID,
   5413         "BCM88671M_A0",
   5414         BCM88671M_DEVICE_ID, BCM88671M_A0_REV_ID,
   5415         (SOC_SWITCH_DEV_TYPE | SOC_PCI_DEV_TYPE)
   5416     },
   5417     {
   5418         BCM88671M_DEVICE_ID, BCM88671M_B0_REV_ID,
   5419         "BCM88671M_B0",
   5420         BCM88671M_DEVICE_ID, BCM88671M_B0_REV_ID,
   5421         (SOC_SWITCH_DEV_TYPE | SOC_PCI_DEV_TYPE)
   5422     },
   5423     {
   5424         BCM88671M_DEVICE_ID, BCM88671M_A1_REV_ID,
   5425         "BCM88671M_A1",
   5426         BCM88671M_DEVICE_ID, BCM88671M_A1_REV_ID,
   5427         (SOC_SWITCH_DEV_TYPE | SOC_PCI_DEV_TYPE)
   5428     },
   5429     {
   5430         BCM88672_DEVICE_ID, BCM88672_A0_REV_ID,
   5431         "BCM88672_A0",
   5432         BCM88672_DEVICE_ID, BCM88672_A0_REV_ID,
   5433         (SOC_SWITCH_DEV_TYPE | SOC_PCI_DEV_TYPE)
   5434     },
   5435     {
   5436         BCM88672_DEVICE_ID, BCM88672_B0_REV_ID,
   5437         "BCM88672_B0",
   5438         BCM88672_DEVICE_ID, BCM88672_B0_REV_ID,
   5439         (SOC_SWITCH_DEV_TYPE | SOC_PCI_DEV_TYPE)
   5440     },
   5441     {
   5442         BCM88672_DEVICE_ID, BCM88672_A1_REV_ID,
   5443         "BCM88672_A1",
   5444         BCM88672_DEVICE_ID, BCM88672_A1_REV_ID,
   5445         (SOC_SWITCH_DEV_TYPE | SOC_PCI_DEV_TYPE)
   5446     },
   5447     {
   5448         BCM88673_DEVICE_ID, BCM88673_A0_REV_ID,
   5449         "BCM88673_A0",
   5450         BCM88673_DEVICE_ID, BCM88673_A0_REV_ID,
   5451         (SOC_SWITCH_DEV_TYPE | SOC_PCI_DEV_TYPE)
   5452     },
   5453     {
   5454         BCM88673_DEVICE_ID, BCM88673_B0_REV_ID,
   5455         "BCM88673_B0",
   5456         BCM88673_DEVICE_ID, BCM88673_B0_REV_ID,
   5457         (SOC_SWITCH_DEV_TYPE | SOC_PCI_DEV_TYPE)
   5458     },
   5459     {
   5460         BCM88673_DEVICE_ID, BCM88673_A1_REV_ID,
   5461         "BCM88673_A1",
   5462         BCM88673_DEVICE_ID, BCM88673_A1_REV_ID,
   5463         (SOC_SWITCH_DEV_TYPE | SOC_PCI_DEV_TYPE)
   5464     },
   5465     {
   5466         BCM88674_DEVICE_ID, BCM88674_A0_REV_ID,
   5467         "BCM88674_A0",
   5468         BCM88674_DEVICE_ID, BCM88674_A0_REV_ID,
   5469         (SOC_SWITCH_DEV_TYPE | SOC_PCI_DEV_TYPE)
   5470     },
   5471     {
   5472         BCM88674_DEVICE_ID, BCM88674_B0_REV_ID,
   5473         "BCM88674_B0",
   5474         BCM88674_DEVICE_ID, BCM88674_B0_REV_ID,
   5475         (SOC_SWITCH_DEV_TYPE | SOC_PCI_DEV_TYPE)
   5476     },
   5477     {
   5478         BCM88674_DEVICE_ID, BCM88674_A1_REV_ID,
   5479         "BCM88674_A1",
   5480         BCM88674_DEVICE_ID, BCM88674_A1_REV_ID,
   5481         (SOC_SWITCH_DEV_TYPE | SOC_PCI_DEV_TYPE)
   5482     },
   5483     {
   5484         BCM88675M_DEVICE_ID, BCM88675M_A0_REV_ID,
   5485         "BCM88675M_A0",
   5486         BCM88675M_DEVICE_ID, BCM88675M_A0_REV_ID,
   5487         (SOC_SWITCH_DEV_TYPE | SOC_PCI_DEV_TYPE)
   5488     },
   5489     {
   5490         BCM88675M_DEVICE_ID, BCM88675M_B0_REV_ID,
   5491         "BCM88675M_B0",
   5492         BCM88675M_DEVICE_ID, BCM88675M_B0_REV_ID,
   5493         (SOC_SWITCH_DEV_TYPE | SOC_PCI_DEV_TYPE)
   5494     },
   5495     {
   5496         BCM88675M_DEVICE_ID, BCM88675M_A1_REV_ID,
   5497         "BCM88675M_A1",
   5498         BCM88675M_DEVICE_ID, BCM88675M_A1_REV_ID,
   5499         (SOC_SWITCH_DEV_TYPE | SOC_PCI_DEV_TYPE)
   5500     },
   5501     {
   5502         BCM88676_DEVICE_ID, BCM88676_A0_REV_ID,
   5503         "BCM88676_A0",
   5504         BCM88676_DEVICE_ID, BCM88676_A0_REV_ID,
   5505         (SOC_SWITCH_DEV_TYPE | SOC_PCI_DEV_TYPE)
   5506     },
   5507     {
   5508         BCM88676_DEVICE_ID, BCM88676_B0_REV_ID,
   5509         "BCM88676_B0",
   5510         BCM88676_DEVICE_ID, BCM88676_B0_REV_ID,
   5511         (SOC_SWITCH_DEV_TYPE | SOC_PCI_DEV_TYPE)
   5512     },
   5513     {
   5514         BCM88676_DEVICE_ID, BCM88676_A1_REV_ID,
   5515         "BCM88676_A1",
   5516         BCM88676_DEVICE_ID, BCM88676_A1_REV_ID,
   5517         (SOC_SWITCH_DEV_TYPE | SOC_PCI_DEV_TYPE)
   5518     },
   5519     {
   5520         BCM88676M_DEVICE_ID, BCM88676M_A0_REV_ID,
   5521         "BCM88676M_A0",
   5522         BCM88676M_DEVICE_ID, BCM88676M_A0_REV_ID,
   5523         (SOC_SWITCH_DEV_TYPE | SOC_PCI_DEV_TYPE)
   5524     },
   5525     {
   5526         BCM88676M_DEVICE_ID, BCM88676M_B0_REV_ID,
   5527         "BCM88676M_B0",
   5528         BCM88676M_DEVICE_ID, BCM88676M_B0_REV_ID,
   5529         (SOC_SWITCH_DEV_TYPE | SOC_PCI_DEV_TYPE)
   5530     },
   5531     {
   5532         BCM88676M_DEVICE_ID, BCM88676M_A1_REV_ID,
   5533         "BCM88676M_A1",
   5534         BCM88676M_DEVICE_ID, BCM88676M_A1_REV_ID,
   5535         (SOC_SWITCH_DEV_TYPE | SOC_PCI_DEV_TYPE)
   5536     },
   5537     {
   5538         BCM88677_DEVICE_ID, BCM88677_A0_REV_ID,
   5539         "BCM88677_A0",
   5540         BCM88677_DEVICE_ID, BCM88677_A0_REV_ID,
   5541         (SOC_SWITCH_DEV_TYPE | SOC_PCI_DEV_TYPE)
   5542     },
   5543     {
   5544         BCM88677_DEVICE_ID, BCM88677_B0_REV_ID,
   5545         "BCM88677_B0",
   5546         BCM88677_DEVICE_ID, BCM88677_B0_REV_ID,
   5547         (SOC_SWITCH_DEV_TYPE | SOC_PCI_DEV_TYPE)
   5548     },
   5549     {
   5550         BCM88677_DEVICE_ID, BCM88677_A1_REV_ID,
   5551         "BCM88677_A1",
   5552         BCM88677_DEVICE_ID, BCM88677_A1_REV_ID,
   5553         (SOC_SWITCH_DEV_TYPE | SOC_PCI_DEV_TYPE)
   5554     },
   5555     {
   5556         BCM88678_DEVICE_ID, BCM88678_A0_REV_ID,
   5557         "BCM88678_A0",
   5558         BCM88678_DEVICE_ID, BCM88678_A0_REV_ID,
   5559         (SOC_SWITCH_DEV_TYPE | SOC_PCI_DEV_TYPE)
   5560     },
   5561     {
   5562         BCM88678_DEVICE_ID, BCM88678_B0_REV_ID,
   5563         "BCM88678_B0",
   5564         BCM88678_DEVICE_ID, BCM88678_B0_REV_ID,
   5565         (SOC_SWITCH_DEV_TYPE | SOC_PCI_DEV_TYPE)
   5566     },
   5567     {
   5568         BCM88678_DEVICE_ID, BCM88678_A1_REV_ID,
   5569         "BCM88678_A1",
   5570         BCM88678_DEVICE_ID, BCM88678_A1_REV_ID,
   5571         (SOC_SWITCH_DEV_TYPE | SOC_PCI_DEV_TYPE)
   5572     },
   5573     {
   5574         BCM88679_DEVICE_ID, BCM88679_A0_REV_ID,
   5575         "BCM88679_A0",
   5576         BCM88679_DEVICE_ID, BCM88679_A0_REV_ID,
   5577         (SOC_SWITCH_DEV_TYPE | SOC_PCI_DEV_TYPE)
   5578     },
   5579     {
   5580         BCM88679_DEVICE_ID, BCM88679_B0_REV_ID,
   5581         "BCM88679_B0",
   5582         BCM88679_DEVICE_ID, BCM88679_B0_REV_ID,
   5583         (SOC_SWITCH_DEV_TYPE | SOC_PCI_DEV_TYPE)
   5584     },
   5585     {
   5586         BCM88679_DEVICE_ID, BCM88679_A1_REV_ID,
   5587         "BCM88679_A1",
   5588         BCM88679_DEVICE_ID, BCM88679_A1_REV_ID,
   5589         (SOC_SWITCH_DEV_TYPE | SOC_PCI_DEV_TYPE)
   5590     },
   5591     {
   5592         QMX_DEVICE_ID, QMX_A0_REV_ID,
   5593         "BCM88375_A0",
   5594         QMX_DEVICE_ID, QMX_A0_REV_ID,
   5595         (SOC_SWITCH_DEV_TYPE | SOC_PCI_DEV_TYPE)
   5596     },
   5597     {
   5598         QMX_DEVICE_ID, QMX_B0_REV_ID,
   5599         "BCM88375_B0",
   5600         QMX_DEVICE_ID, QMX_B0_REV_ID,
   5601         (SOC_SWITCH_DEV_TYPE | SOC_PCI_DEV_TYPE)
   5602     },
   5603     {
   5604         QMX_DEVICE_ID, QMX_A1_REV_ID,
   5605         "BCM88375_A1",
   5606         QMX_DEVICE_ID, QMX_A1_REV_ID,
   5607         (SOC_SWITCH_DEV_TYPE | SOC_PCI_DEV_TYPE)
   5608     },
   5609     {
   5610         BCM88370_DEVICE_ID, BCM88370_A0_REV_ID,
   5611         "BCM88370_A0",
   5612         BCM88370_DEVICE_ID, BCM88370_A0_REV_ID,
   5613         (SOC_SWITCH_DEV_TYPE | SOC_PCI_DEV_TYPE)
   5614     },
   5615     {
   5616         BCM88370_DEVICE_ID, BCM88370_B0_REV_ID,
   5617         "BCM88370_B0",
   5618         BCM88370_DEVICE_ID, BCM88370_B0_REV_ID,
   5619         (SOC_SWITCH_DEV_TYPE | SOC_PCI_DEV_TYPE)
   5620     },
   5621     {
   5622         BCM88370_DEVICE_ID, BCM88370_A1_REV_ID,
   5623         "BCM88370_A1",
   5624         BCM88370_DEVICE_ID, BCM88370_A1_REV_ID,
   5625         (SOC_SWITCH_DEV_TYPE | SOC_PCI_DEV_TYPE)
   5626     },
   5627     {
   5628         BCM88371_DEVICE_ID, BCM88371_A0_REV_ID,
   5629         "BCM88371_A0",
   5630         BCM88371_DEVICE_ID, BCM88371_A0_REV_ID,
   5631         (SOC_SWITCH_DEV_TYPE | SOC_PCI_DEV_TYPE)
   5632     },
   5633     {
   5634         BCM88371_DEVICE_ID, BCM88371_B0_REV_ID,
   5635         "BCM88371_B0",
   5636         BCM88371_DEVICE_ID, BCM88371_B0_REV_ID,
   5637         (SOC_SWITCH_DEV_TYPE | SOC_PCI_DEV_TYPE)
   5638     },
   5639     {
   5640         BCM88371_DEVICE_ID, BCM88371_A1_REV_ID,
   5641         "BCM88371_A1",
   5642         BCM88371_DEVICE_ID, BCM88371_A1_REV_ID,
   5643         (SOC_SWITCH_DEV_TYPE | SOC_PCI_DEV_TYPE)
   5644     },
   5645     {
   5646         BCM88371M_DEVICE_ID, BCM88371M_A0_REV_ID,
   5647         "BCM88371M_A0",
   5648         BCM88371M_DEVICE_ID, BCM88371M_A0_REV_ID,
   5649         (SOC_SWITCH_DEV_TYPE | SOC_PCI_DEV_TYPE)
   5650     },
   5651     {
   5652         BCM88371M_DEVICE_ID, BCM88371M_B0_REV_ID,
   5653         "BCM88371M_B0",
   5654         BCM88371M_DEVICE_ID, BCM88371M_B0_REV_ID,
   5655         (SOC_SWITCH_DEV_TYPE | SOC_PCI_DEV_TYPE)
   5656     },
   5657     {
   5658         BCM88371M_DEVICE_ID, BCM88371M_A1_REV_ID,
   5659         "BCM88371M_A1",
   5660         BCM88371M_DEVICE_ID, BCM88371M_A1_REV_ID,
   5661         (SOC_SWITCH_DEV_TYPE | SOC_PCI_DEV_TYPE)
   5662     },
   5663     {
   5664         BCM88376_DEVICE_ID, BCM88376_A0_REV_ID,
   5665         "BCM88376_A0",
   5666         BCM88376_DEVICE_ID, BCM88376_A0_REV_ID,
   5667         (SOC_SWITCH_DEV_TYPE | SOC_PCI_DEV_TYPE)
   5668     },
   5669     {
   5670         BCM88376_DEVICE_ID, BCM88376_B0_REV_ID,
   5671         "BCM88376_B0",
   5672         BCM88376_DEVICE_ID, BCM88376_B0_REV_ID,
   5673         (SOC_SWITCH_DEV_TYPE | SOC_PCI_DEV_TYPE)
   5674     },
   5675     {
   5676         BCM88376_DEVICE_ID, BCM88376_A1_REV_ID,
   5677         "BCM88376_A1",
   5678         BCM88376_DEVICE_ID, BCM88376_A1_REV_ID,
   5679         (SOC_SWITCH_DEV_TYPE | SOC_PCI_DEV_TYPE)
   5680     },
   5681     {
   5682         BCM88376M_DEVICE_ID, BCM88376M_A0_REV_ID,
   5683         "BCM88376M_A0",
   5684         BCM88376M_DEVICE_ID, BCM88376M_A0_REV_ID,
   5685         (SOC_SWITCH_DEV_TYPE | SOC_PCI_DEV_TYPE)
   5686     },
   5687     {
   5688         BCM88376M_DEVICE_ID, BCM88376M_B0_REV_ID,
   5689         "BCM88376M_B0",
   5690         BCM88376M_DEVICE_ID, BCM88376M_B0_REV_ID,
   5691         (SOC_SWITCH_DEV_TYPE | SOC_PCI_DEV_TYPE)
   5692     },
   5693     {
   5694         BCM88376M_DEVICE_ID, BCM88376M_A1_REV_ID,
   5695         "BCM88376M_A1",
   5696         BCM88376M_DEVICE_ID, BCM88376M_A1_REV_ID,
   5697         (SOC_SWITCH_DEV_TYPE | SOC_PCI_DEV_TYPE)
   5698     },
   5699     {
   5700         BCM88377_DEVICE_ID, BCM88377_A0_REV_ID,
   5701         "BCM88377_A0",
   5702         BCM88377_DEVICE_ID, BCM88377_A0_REV_ID,
   5703         (SOC_SWITCH_DEV_TYPE | SOC_PCI_DEV_TYPE)
   5704     },
   5705     {
   5706         BCM88377_DEVICE_ID, BCM88377_B0_REV_ID,
   5707         "BCM88377_B0",
   5708         BCM88377_DEVICE_ID, BCM88377_B0_REV_ID,
   5709         (SOC_SWITCH_DEV_TYPE | SOC_PCI_DEV_TYPE)
   5710     },
   5711     {
   5712         BCM88377_DEVICE_ID, BCM88377_A1_REV_ID,
   5713         "BCM88377_A1",
   5714         BCM88377_DEVICE_ID, BCM88377_A1_REV_ID,
   5715         (SOC_SWITCH_DEV_TYPE | SOC_PCI_DEV_TYPE)
   5716     },
   5717     {
   5718         BCM88378_DEVICE_ID, BCM88378_A0_REV_ID,
   5719         "BCM88378_A0",
   5720         BCM88378_DEVICE_ID, BCM88378_A0_REV_ID,
   5721         (SOC_SWITCH_DEV_TYPE | SOC_PCI_DEV_TYPE)
   5722     },
   5723     {
   5724         BCM88378_DEVICE_ID, BCM88378_B0_REV_ID,
   5725         "BCM88378_B0",
   5726         BCM88378_DEVICE_ID, BCM88378_B0_REV_ID,
   5727         (SOC_SWITCH_DEV_TYPE | SOC_PCI_DEV_TYPE)
   5728     },
   5729     {
   5730         BCM88378_DEVICE_ID, BCM88378_A1_REV_ID,
   5731         "BCM88378_A1",
   5732         BCM88378_DEVICE_ID, BCM88378_A1_REV_ID,
   5733         (SOC_SWITCH_DEV_TYPE | SOC_PCI_DEV_TYPE)
   5734     },
   5735     {
   5736         BCM88379_DEVICE_ID, BCM88379_A0_REV_ID,
   5737         "BCM88379_A0",
   5738         BCM88379_DEVICE_ID, BCM88379_A0_REV_ID,
   5739         (SOC_SWITCH_DEV_TYPE | SOC_PCI_DEV_TYPE)
   5740     },
   5741     {
   5742         BCM88379_DEVICE_ID, BCM88379_B0_REV_ID,
   5743         "BCM88379_B0",
   5744         BCM88379_DEVICE_ID, BCM88379_B0_REV_ID,
   5745         (SOC_SWITCH_DEV_TYPE | SOC_PCI_DEV_TYPE)
   5746     },
   5747     {
   5748         BCM88379_DEVICE_ID, BCM88379_A1_REV_ID,
   5749         "BCM88379_A1",
   5750         BCM88379_DEVICE_ID, BCM88379_A1_REV_ID,
   5751         (SOC_SWITCH_DEV_TYPE | SOC_PCI_DEV_TYPE)
   5752     },
   5753     {
   5754         BCM88680_DEVICE_ID, BCM88680_A0_REV_ID,
   5755         "BCM88680_A0",
   5756         BCM88680_DEVICE_ID, BCM88680_A0_REV_ID,
   5757         (SOC_SWITCH_DEV_TYPE | SOC_PCI_DEV_TYPE)
   5758     },
   5759     {
   5760         BCM88680_DEVICE_ID, BCM88680_A1_REV_ID,
   5761         "BCM88680_A1",
   5762         BCM88680_DEVICE_ID, BCM88680_A1_REV_ID,
   5763         (SOC_SWITCH_DEV_TYPE | SOC_PCI_DEV_TYPE)
   5764     },
   5765     {
   5766         BCM88681_DEVICE_ID, BCM88680_A1_REV_ID,
   5767         "BCM88681_A1",
   5768         BCM88681_DEVICE_ID, BCM88680_A1_REV_ID,
   5769         (SOC_SWITCH_DEV_TYPE | SOC_PCI_DEV_TYPE)
   5770     },
   5771     {
   5772         BCM88682_DEVICE_ID, BCM88680_A1_REV_ID,
   5773         "BCM88682_A1",
   5774         BCM88682_DEVICE_ID, BCM88680_A1_REV_ID,
   5775         (SOC_SWITCH_DEV_TYPE | SOC_PCI_DEV_TYPE)
   5776     },
   5777     {
   5778         BCM88683_DEVICE_ID, BCM88680_A1_REV_ID,
   5779         "BCM88683_A1",
   5780         BCM88683_DEVICE_ID, BCM88680_A1_REV_ID,
   5781         (SOC_SWITCH_DEV_TYPE | SOC_PCI_DEV_TYPE)
   5782     },
   5783     {
   5784         BCM88684_DEVICE_ID, BCM88680_A1_REV_ID,
   5785         "BCM88684_A1",
   5786         BCM88684_DEVICE_ID, BCM88680_A1_REV_ID,
   5787         (SOC_SWITCH_DEV_TYPE | SOC_PCI_DEV_TYPE)
   5788     },
   5789     {
   5790         BCM88685_DEVICE_ID, BCM88680_A1_REV_ID,
   5791         "BCM88685_A1",
   5792         BCM88685_DEVICE_ID, BCM88680_A1_REV_ID,
   5793         (SOC_SWITCH_DEV_TYPE | SOC_PCI_DEV_TYPE)
   5794     },
   5795     {
   5796         BCM88380_DEVICE_ID, BCM88680_A1_REV_ID,
   5797         "BCM88380_A1",
   5798         BCM88380_DEVICE_ID, BCM88680_A1_REV_ID,
   5799         (SOC_SWITCH_DEV_TYPE | SOC_PCI_DEV_TYPE)
   5800     },
   5801     {
   5802         BCM88381_DEVICE_ID, BCM88680_A1_REV_ID,
   5803         "BCM88381_A1",
   5804         BCM88381_DEVICE_ID, BCM88680_A1_REV_ID,
   5805         (SOC_SWITCH_DEV_TYPE | SOC_PCI_DEV_TYPE)
   5806     },
   5807     {
   5808         BCM88681_DEVICE_ID, BCM88681_A0_REV_ID,
   5809         "BCM88681_A0",
   5810         BCM88681_DEVICE_ID, BCM88681_A0_REV_ID,
   5811         (SOC_SWITCH_DEV_TYPE | SOC_PCI_DEV_TYPE)
   5812     },
   5813     {
   5814         BCM88682_DEVICE_ID, BCM88682_A0_REV_ID,
   5815         "BCM88682_A0",
   5816         BCM88682_DEVICE_ID, BCM88682_A0_REV_ID,
   5817         (SOC_SWITCH_DEV_TYPE | SOC_PCI_DEV_TYPE)
   5818     },
   5819     {
   5820         BCM88683_DEVICE_ID, BCM88683_A0_REV_ID,
   5821         "BCM88683_A0",
   5822         BCM88683_DEVICE_ID, BCM88683_A0_REV_ID,
   5823         (SOC_SWITCH_DEV_TYPE | SOC_PCI_DEV_TYPE)
   5824     },
   5825     {
   5826         BCM88684_DEVICE_ID, BCM88684_A0_REV_ID,
   5827         "BCM88684_A0",
   5828         BCM88684_DEVICE_ID, BCM88684_A0_REV_ID,
   5829         (SOC_SWITCH_DEV_TYPE | SOC_PCI_DEV_TYPE)
   5830     },
   5831     {
   5832         BCM88685_DEVICE_ID, BCM88685_A0_REV_ID,
   5833         "BCM88685_A0",
   5834         BCM88685_DEVICE_ID, BCM88685_A0_REV_ID,
   5835         (SOC_SWITCH_DEV_TYPE | SOC_PCI_DEV_TYPE)
   5836     },
   5837     {
   5838         BCM88380_DEVICE_ID, BCM88380_A0_REV_ID,
   5839         "BCM88380_A0",
   5840         BCM88380_DEVICE_ID, BCM88380_A0_REV_ID,
   5841         (SOC_SWITCH_DEV_TYPE | SOC_PCI_DEV_TYPE)
   5842     },
   5843     {
   5844         BCM88381_DEVICE_ID, BCM88381_A0_REV_ID,
   5845         "BCM88381_A0",
   5846         BCM88381_DEVICE_ID, BCM88381_A0_REV_ID,
   5847         (SOC_SWITCH_DEV_TYPE | SOC_PCI_DEV_TYPE)
   5848     },
   5849     {
   5850         QAX_DEVICE_ID, QAX_A0_REV_ID,
   5851         "BCM88470_A0",
   5852         QAX_DEVICE_ID, QAX_A0_REV_ID,
   5853         (SOC_SWITCH_DEV_TYPE | SOC_PCI_DEV_TYPE)
   5854     },
   5855     {
   5856         QAX_DEVICE_ID, QAX_B0_REV_ID,
   5857         "BCM88470_B0",
   5858         QAX_DEVICE_ID, QAX_B0_REV_ID,
   5859         (SOC_SWITCH_DEV_TYPE | SOC_PCI_DEV_TYPE)
   5860     },
   5861     {
   5862         BCM88470P_DEVICE_ID, QAX_A0_REV_ID,
   5863         "BCM88470P_A0",
   5864         BCM88470P_DEVICE_ID, QAX_A0_REV_ID,
   5865         (SOC_SWITCH_DEV_TYPE | SOC_PCI_DEV_TYPE)
   5866     },
   5867     {
   5868         BCM88471_DEVICE_ID, QAX_A0_REV_ID,
   5869         "BCM88471_A0",
   5870         BCM88471_DEVICE_ID, QAX_A0_REV_ID,
   5871         (SOC_SWITCH_DEV_TYPE | SOC_PCI_DEV_TYPE)
   5872     },
   5873     {
   5874         BCM88471_DEVICE_ID, QAX_B0_REV_ID,
   5875         "BCM88471_B0",
   5876         BCM88471_DEVICE_ID, QAX_B0_REV_ID,
   5877         (SOC_SWITCH_DEV_TYPE | SOC_PCI_DEV_TYPE)
   5878     },
   5879     {
   5880         BCM88473_DEVICE_ID, QAX_A0_REV_ID,
   5881         "BCM88473_A0",
   5882         BCM88473_DEVICE_ID, QAX_A0_REV_ID,
   5883         (SOC_SWITCH_DEV_TYPE | SOC_PCI_DEV_TYPE)
   5884     },
   5885     {
   5886         BCM88474_DEVICE_ID, QAX_A0_REV_ID,
   5887         "BCM88474_A0",
   5888         BCM88474_DEVICE_ID, QAX_A0_REV_ID,
   5889         (SOC_SWITCH_DEV_TYPE | SOC_PCI_DEV_TYPE)
   5890     },
   5891     {
   5892         BCM88474_DEVICE_ID, QAX_B0_REV_ID,
   5893         "BCM88474_B0",
   5894         BCM88474_DEVICE_ID, QAX_B0_REV_ID,
   5895         (SOC_SWITCH_DEV_TYPE | SOC_PCI_DEV_TYPE)
   5896     },
   5897     {
   5898         BCM88474H_DEVICE_ID, QAX_A0_REV_ID,
   5899         "BCM88474H_A0",
   5900         BCM88474H_DEVICE_ID, QAX_A0_REV_ID,
   5901         (SOC_SWITCH_DEV_TYPE | SOC_PCI_DEV_TYPE)
   5902     },
   5903     {
   5904         BCM88474H_DEVICE_ID, QAX_B0_REV_ID,
   5905         "BCM88474H_B0",
   5906         BCM88474H_DEVICE_ID, QAX_B0_REV_ID,
   5907         (SOC_SWITCH_DEV_TYPE | SOC_PCI_DEV_TYPE)
   5908     },
   5909     {
   5910         BCM88476_DEVICE_ID, QAX_A0_REV_ID,
   5911         "BCM88476_A0",
   5912         BCM88476_DEVICE_ID, QAX_A0_REV_ID,
   5913         (SOC_SWITCH_DEV_TYPE | SOC_PCI_DEV_TYPE)
   5914     },
   5915     {
   5916         BCM88476_DEVICE_ID, QAX_B0_REV_ID,
   5917         "BCM88476_B0",
   5918         BCM88476_DEVICE_ID, QAX_B0_REV_ID,
   5919         (SOC_SWITCH_DEV_TYPE | SOC_PCI_DEV_TYPE)
   5920     },
   5921    {
   5922         BCM88477_DEVICE_ID, QAX_A0_REV_ID,
   5923         "BCM88477_A0",
   5924         BCM88477_DEVICE_ID, QAX_A0_REV_ID,
   5925         (SOC_SWITCH_DEV_TYPE | SOC_PCI_DEV_TYPE)
   5926     },
   5927    {
   5928         BCM88477_DEVICE_ID, QAX_B0_REV_ID,
   5929         "BCM88477_B0",
   5930         BCM88477_DEVICE_ID, QAX_B0_REV_ID,
   5931         (SOC_SWITCH_DEV_TYPE | SOC_PCI_DEV_TYPE)
   5932     },
   5933     {
   5934        QUX_DEVICE_ID, QUX_A0_REV_ID,
   5935        "BCM88270_A0",
   5936        QUX_DEVICE_ID, QUX_A0_REV_ID,
   5937        (SOC_SWITCH_DEV_TYPE | SOC_PCI_DEV_TYPE)
   5938    },
   5939    {
   5940        QUX_DEVICE_ID, QUX_A1_REV_ID,
   5941        "BCM88270_A1",
   5942        QUX_DEVICE_ID, QUX_A1_REV_ID,
   5943        (SOC_SWITCH_DEV_TYPE | SOC_PCI_DEV_TYPE)
   5944     },
   5945     {
   5946        BCM88272_DEVICE_ID, QUX_A0_REV_ID,
   5947        "BCM88272_A0",
   5948        BCM88272_DEVICE_ID, QUX_A0_REV_ID,
   5949        (SOC_SWITCH_DEV_TYPE | SOC_PCI_DEV_TYPE)
   5950     },
   5951     {
   5952        BCM88272_DEVICE_ID, QUX_A1_REV_ID,
   5953        "BCM88272_A1",
   5954        BCM88272_DEVICE_ID, QUX_A1_REV_ID,
   5955        (SOC_SWITCH_DEV_TYPE | SOC_PCI_DEV_TYPE)
   5956     },
   5957     {
   5958        BCM88273_DEVICE_ID, QUX_A0_REV_ID,
   5959        "BCM88273_A0",
   5960        BCM88273_DEVICE_ID, QUX_A0_REV_ID,
   5961        (SOC_SWITCH_DEV_TYPE | SOC_PCI_DEV_TYPE)
   5962     },
   5963     {
   5964        BCM88273_DEVICE_ID, QUX_A1_REV_ID,
   5965        "BCM88273_A1",
   5966        BCM88273_DEVICE_ID, QUX_A1_REV_ID,
   5967        (SOC_SWITCH_DEV_TYPE | SOC_PCI_DEV_TYPE)
   5968     },
   5969     {
   5970        BCM88274_DEVICE_ID, QUX_A0_REV_ID,
   5971        "BCM88274_A0",
   5972        BCM88274_DEVICE_ID, QUX_A0_REV_ID,
   5973        (SOC_SWITCH_DEV_TYPE | SOC_PCI_DEV_TYPE)
   5974     },
   5975     {
   5976        BCM88274_DEVICE_ID, QUX_A1_REV_ID,
   5977        "BCM88274_A1",
   5978        BCM88274_DEVICE_ID, QUX_A1_REV_ID,
   5979        (SOC_SWITCH_DEV_TYPE | SOC_PCI_DEV_TYPE)
   5980     },
   5981     {
   5982        BCM88278_DEVICE_ID, QUX_A0_REV_ID,
   5983        "BCM88278_A0",
   5984        BCM88278_DEVICE_ID, QUX_A0_REV_ID,
   5985        (SOC_SWITCH_DEV_TYPE | SOC_PCI_DEV_TYPE)
   5986     },
   5987     {
   5988        BCM88278_DEVICE_ID, QUX_A1_REV_ID,
   5989        "BCM88278_A1",
   5990        BCM88278_DEVICE_ID, QUX_A1_REV_ID,
   5991        (SOC_SWITCH_DEV_TYPE | SOC_PCI_DEV_TYPE)
   5992     },
   5993     {
   5994        BCM88279_DEVICE_ID, QUX_A1_REV_ID,
   5995        "BCM88279_A1",
   5996        BCM88279_DEVICE_ID, QUX_A1_REV_ID,
   5997        (SOC_SWITCH_DEV_TYPE | SOC_PCI_DEV_TYPE)
   5998     },
   5999     {
   6000        FLAIR_DEVICE_ID, FLAIR_A0_REV_ID,
   6001        "FLAIR_A0",
   6002        FLAIR_DEVICE_ID, FLAIR_A0_REV_ID,
   6003        (SOC_SWITCH_DEV_TYPE | SOC_PCI_DEV_TYPE)
   6004    },
   6005 /* } */
   6006 #endif
   6007 #ifdef BCM_DFE_SUPPORT
   6008 /* { */
   6009     {
   6010         BCM88750_DEVICE_ID, BCM88750_A0_REV_ID,
   6011         "BCM88750_A0",
   6012         BCM88750_DEVICE_ID, BCM88750_A0_REV_ID,
   6013         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   6014     },
   6015     {
   6016         BCM88750_DEVICE_ID, BCM88750_B0_REV_ID,
   6017         "BCM88750_B0",
   6018         BCM88750_DEVICE_ID, BCM88750_B0_REV_ID,
   6019         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   6020     },
   6021     {
   6022         BCM88753_DEVICE_ID, BCM88753_A0_REV_ID,
   6023         "BCM88753_A0",
   6024         BCM88753_DEVICE_ID, BCM88753_A0_REV_ID,
   6025         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   6026     },
   6027     {
   6028         BCM88753_DEVICE_ID, BCM88753_B0_REV_ID,
   6029         "BCM88753_B0",
   6030         BCM88753_DEVICE_ID, BCM88753_B0_REV_ID,
   6031         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   6032     },
   6033     {
   6034         BCM88754_DEVICE_ID, BCM88754_A0_REV_ID,
   6035         "BCM88754_A0",
   6036         BCM88754_DEVICE_ID, BCM88754_A0_REV_ID,
   6037         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   6038     },
   6039     {
   6040         BCM88755_DEVICE_ID, BCM88755_B0_REV_ID,
   6041         "BCM88755_B0",
   6042         BCM88755_DEVICE_ID, BCM88755_B0_REV_ID,
   6043         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   6044     },
   6045     {
   6046         BCM88770_DEVICE_ID, BCM88770_A1_REV_ID,
   6047         "BCM88770_A1",
   6048         BCM88770_DEVICE_ID, BCM88770_A1_REV_ID,
   6049         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   6050     },
   6051     {
   6052         BCM88773_DEVICE_ID, BCM88773_A1_REV_ID,
   6053         "BCM88773_A1",
   6054         BCM88773_DEVICE_ID, BCM88773_A1_REV_ID,
   6055         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   6056     },
   6057     {
   6058         BCM88774_DEVICE_ID, BCM88774_A1_REV_ID,
   6059         "BCM88774_A1",
   6060         BCM88774_DEVICE_ID, BCM88774_A1_REV_ID,
   6061         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   6062     },
   6063     {
   6064         BCM88775_DEVICE_ID, BCM88775_A1_REV_ID,
   6065         "BCM88775_A1",
   6066         BCM88775_DEVICE_ID, BCM88775_A1_REV_ID,
   6067         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   6068     },
   6069     {
   6070         BCM88776_DEVICE_ID, BCM88776_A1_REV_ID,
   6071         "BCM88776_A1",
   6072         BCM88776_DEVICE_ID, BCM88776_A1_REV_ID,
   6073         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   6074     },
   6075     {
   6076         BCM88777_DEVICE_ID, BCM88777_A1_REV_ID,
   6077         "BCM88777_A1",
   6078         BCM88777_DEVICE_ID, BCM88777_A1_REV_ID,
   6079         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   6080     },
   6081     {
   6082         BCM88950_DEVICE_ID, BCM88950_A0_REV_ID,
   6083         "BCM88950_A0",
   6084         BCM88950_DEVICE_ID, BCM88950_A0_REV_ID,
   6085         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   6086     },
   6087     {
   6088         BCM88950_DEVICE_ID, BCM88950_A1_REV_ID,
   6089         "BCM88950_A1",
   6090         BCM88950_DEVICE_ID, BCM88950_A1_REV_ID,
   6091         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   6092     },
   6093     {
   6094         BCM88953_DEVICE_ID, BCM88953_A1_REV_ID,
   6095         "BCM88953_A1",
   6096         BCM88953_DEVICE_ID, BCM88953_A1_REV_ID,
   6097         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   6098     },
   6099     {
   6100         BCM88954_DEVICE_ID, BCM88954_A1_REV_ID,
   6101         "BCM88954_A1",
   6102         BCM88954_DEVICE_ID, BCM88954_A1_REV_ID,
   6103         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   6104     },
   6105     {
   6106         BCM88955_DEVICE_ID, BCM88955_A1_REV_ID,
   6107         "BCM88955_A1",
   6108         BCM88955_DEVICE_ID, BCM88955_A1_REV_ID,
   6109         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   6110     },
   6111     {
   6112         BCM88956_DEVICE_ID, BCM88956_A1_REV_ID,
   6113         "BCM88956_A1",
   6114         BCM88956_DEVICE_ID, BCM88956_A1_REV_ID,
   6115         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   6116     },
   6117     {
   6118         BCM88752_DEVICE_ID, BCM88750_A0_REV_ID,
   6119         "BCM88752_A0",
   6120         BCM88752_DEVICE_ID, BCM88750_A0_REV_ID,
   6121         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   6122     },
   6123     {
   6124         BCM88752_DEVICE_ID, BCM88752_B0_REV_ID,
   6125         "BCM88752_B0",
   6126         BCM88752_DEVICE_ID, BCM88752_B0_REV_ID,
   6127         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   6128     },
   6129     {
   6130         BCM88772_DEVICE_ID, BCM88772_A1_REV_ID,
   6131         "BCM88772_A1",
   6132         BCM88772_DEVICE_ID, BCM88772_A1_REV_ID,
   6133         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   6134     },
   6135 	{
   6136         BCM88952_DEVICE_ID, BCM88952_A0_REV_ID,
   6137         "BCM88952_A0",
   6138         BCM88952_DEVICE_ID, BCM88952_A0_REV_ID,
   6139         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   6140     },
   6141     {
   6142         BCM88952_DEVICE_ID, BCM88952_A1_REV_ID,
   6143         "BCM88952_A1",
   6144         BCM88952_DEVICE_ID, BCM88952_A1_REV_ID,
   6145         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   6146     },
   6147 /* } */
   6148 #endif
   6149 #ifdef BCM_DNX_SUPPORT
   6150 /* { */
   6151     {
   6152         BCM88690_DEVICE_ID, BCM88690_A0_REV_ID,
   6153         "BCM88690_A0",
   6154         BCM88690_DEVICE_ID, BCM88690_A0_REV_ID,
   6155         (SOC_SWITCH_DEV_TYPE | SOC_PCI_DEV_TYPE)
   6156     },
   6157     {
   6158         BCM88691_DEVICE_ID, BCM88690_A0_REV_ID,
   6159         "BCM88691_A0",
   6160         BCM88691_DEVICE_ID, BCM88690_A0_REV_ID,
   6161         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   6162     },
   6163     {
   6164         BCM88692_DEVICE_ID, BCM88690_A0_REV_ID,
   6165         "BCM88692_A0",
   6166         BCM88692_DEVICE_ID, BCM88690_A0_REV_ID,
   6167         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   6168     },
   6169     {
   6170         BCM88693_DEVICE_ID, BCM88690_A0_REV_ID,
   6171         "BCM88693_A0",
   6172         BCM88693_DEVICE_ID, BCM88690_A0_REV_ID,
   6173         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   6174     },
   6175     {
   6176         BCM88694_DEVICE_ID, BCM88690_A0_REV_ID,
   6177         "BCM88694_A0",
   6178         BCM88694_DEVICE_ID, BCM88690_A0_REV_ID,
   6179         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   6180     },
   6181     {
   6182         BCM88695_DEVICE_ID, BCM88690_A0_REV_ID,
   6183         "BCM88695_A0",
   6184         BCM88695_DEVICE_ID, BCM88690_A0_REV_ID,
   6185         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   6186     },
   6187     {
   6188         BCM88696_DEVICE_ID, BCM88690_A0_REV_ID,
   6189         "BCM88696_A0",
   6190         BCM88696_DEVICE_ID, BCM88690_A0_REV_ID,
   6191         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   6192     },
   6193     {
   6194         BCM88697_DEVICE_ID, BCM88690_A0_REV_ID,
   6195         "BCM88697_A0",
   6196         BCM88697_DEVICE_ID, BCM88690_A0_REV_ID,
   6197         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   6198     },
   6199     {
   6200         BCM88698_DEVICE_ID, BCM88690_A0_REV_ID,
   6201         "BCM88698_A0",
   6202         BCM88698_DEVICE_ID, BCM88690_A0_REV_ID,
   6203         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   6204     },
   6205     {
   6206         BCM88699_DEVICE_ID, BCM88690_A0_REV_ID,
   6207         "BCM88699_A0",
   6208         BCM88699_DEVICE_ID, BCM88690_A0_REV_ID,
   6209         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   6210     },
   6211     {
   6212         BCM8869A_DEVICE_ID, BCM88690_A0_REV_ID,
   6213         "BCM8869A_A0",
   6214         BCM8869A_DEVICE_ID, BCM88690_A0_REV_ID,
   6215         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   6216     },
   6217     {
   6218         BCM8869B_DEVICE_ID, BCM88690_A0_REV_ID,
   6219         "BCM8869B_A0",
   6220         BCM8869B_DEVICE_ID, BCM88690_A0_REV_ID,
   6221         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   6222     },
   6223     {
   6224         BCM8869C_DEVICE_ID, BCM88690_A0_REV_ID,
   6225         "BCM8869C_A0",
   6226         BCM8869C_DEVICE_ID, BCM88690_A0_REV_ID,
   6227         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   6228     },
   6229     {
   6230         BCM8869D_DEVICE_ID, BCM88690_A0_REV_ID,
   6231         "BCM8869D_A0",
   6232         BCM8869D_DEVICE_ID, BCM88690_A0_REV_ID,
   6233         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   6234     },
   6235     {
   6236         BCM8869E_DEVICE_ID, BCM88690_A0_REV_ID,
   6237         "BCM8869E_A0",
   6238         BCM8869E_DEVICE_ID, BCM88690_A0_REV_ID,
   6239         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   6240     },
   6241     {
   6242         BCM8869F_DEVICE_ID, BCM88690_A0_REV_ID,
   6243         "BCM8869F_A0",
   6244         BCM8869F_DEVICE_ID, BCM88690_A0_REV_ID,
   6245         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   6246     },
   6247     {
   6248         BCM88690_DEVICE_ID, BCM88690_B0_REV_ID,
   6249         "BCM88690_B0",
   6250         BCM88690_DEVICE_ID, BCM88690_B0_REV_ID,
   6251         (SOC_SWITCH_DEV_TYPE | SOC_PCI_DEV_TYPE)
   6252     },
   6253     {
   6254         BCM88691_DEVICE_ID, BCM88690_B0_REV_ID,
   6255         "BCM88691_B0",
   6256         BCM88691_DEVICE_ID, BCM88690_B0_REV_ID,
   6257         (SOC_SWITCH_DEV_TYPE | SOC_PCI_DEV_TYPE)
   6258     },
   6259     {
   6260         BCM88692_DEVICE_ID, BCM88690_B0_REV_ID,
   6261         "BCM88692_B0",
   6262         BCM88692_DEVICE_ID, BCM88690_B0_REV_ID,
   6263         (SOC_SWITCH_DEV_TYPE | SOC_PCI_DEV_TYPE)
   6264     },
   6265     {
   6266         BCM88693_DEVICE_ID, BCM88690_B0_REV_ID,
   6267         "BCM88693_B0",
   6268         BCM88693_DEVICE_ID, BCM88690_B0_REV_ID,
   6269         (SOC_SWITCH_DEV_TYPE | SOC_PCI_DEV_TYPE)
   6270     },
   6271     {
   6272         BCM88694_DEVICE_ID, BCM88690_B0_REV_ID,
   6273         "BCM88694_B0",
   6274         BCM88694_DEVICE_ID, BCM88690_B0_REV_ID,
   6275         (SOC_SWITCH_DEV_TYPE | SOC_PCI_DEV_TYPE)
   6276     },
   6277     {
   6278         BCM88695_DEVICE_ID, BCM88690_B0_REV_ID,
   6279         "BCM88695_B0",
   6280         BCM88695_DEVICE_ID, BCM88690_B0_REV_ID,
   6281         (SOC_SWITCH_DEV_TYPE | SOC_PCI_DEV_TYPE)
   6282     },
   6283     {
   6284         BCM88696_DEVICE_ID, BCM88690_B0_REV_ID,
   6285         "BCM88696_B0",
   6286         BCM88696_DEVICE_ID, BCM88690_B0_REV_ID,
   6287         (SOC_SWITCH_DEV_TYPE | SOC_PCI_DEV_TYPE)
   6288     },
   6289     {
   6290         BCM88697_DEVICE_ID, BCM88690_B0_REV_ID,
   6291         "BCM88697_B0",
   6292         BCM88697_DEVICE_ID, BCM88690_B0_REV_ID,
   6293         (SOC_SWITCH_DEV_TYPE | SOC_PCI_DEV_TYPE)
   6294     },
   6295     {
   6296         BCM88698_DEVICE_ID, BCM88690_B0_REV_ID,
   6297         "BCM88698_B0",
   6298         BCM88698_DEVICE_ID, BCM88690_B0_REV_ID,
   6299         (SOC_SWITCH_DEV_TYPE | SOC_PCI_DEV_TYPE)
   6300     },
   6301     {
   6302         BCM88699_DEVICE_ID, BCM88690_B0_REV_ID,
   6303         "BCM88699_B0",
   6304         BCM88699_DEVICE_ID, BCM88690_B0_REV_ID,
   6305         (SOC_SWITCH_DEV_TYPE | SOC_PCI_DEV_TYPE)
   6306     },
   6307     {
   6308         BCM8869A_DEVICE_ID, BCM88690_B0_REV_ID,
   6309         "BCM8869A_B0",
   6310         BCM8869A_DEVICE_ID, BCM88690_B0_REV_ID,
   6311         (SOC_SWITCH_DEV_TYPE | SOC_PCI_DEV_TYPE)
   6312     },
   6313     {
   6314         BCM8869B_DEVICE_ID, BCM88690_B0_REV_ID,
   6315         "BCM8869B_B0",
   6316         BCM8869B_DEVICE_ID, BCM88690_B0_REV_ID,
   6317         (SOC_SWITCH_DEV_TYPE | SOC_PCI_DEV_TYPE)
   6318     },
   6319     {
   6320         BCM8869C_DEVICE_ID, BCM88690_B0_REV_ID,
   6321         "BCM8869C_B0",
   6322         BCM8869C_DEVICE_ID, BCM88690_B0_REV_ID,
   6323         (SOC_SWITCH_DEV_TYPE | SOC_PCI_DEV_TYPE)
   6324     },
   6325     {
   6326         BCM8869D_DEVICE_ID, BCM88690_B0_REV_ID,
   6327         "BCM8869D_B0",
   6328         BCM8869D_DEVICE_ID, BCM88690_B0_REV_ID,
   6329         (SOC_SWITCH_DEV_TYPE | SOC_PCI_DEV_TYPE)
   6330     },
   6331     {
   6332         BCM8869E_DEVICE_ID, BCM88690_B0_REV_ID,
   6333         "BCM8869E_B0",
   6334         BCM8869E_DEVICE_ID, BCM88690_B0_REV_ID,
   6335         (SOC_SWITCH_DEV_TYPE | SOC_PCI_DEV_TYPE)
   6336     },
   6337     {
   6338         BCM8869F_DEVICE_ID, BCM88690_B0_REV_ID,
   6339         "BCM8869F_B0",
   6340         BCM8869F_DEVICE_ID, BCM88690_B0_REV_ID,
   6341         (SOC_SWITCH_DEV_TYPE | SOC_PCI_DEV_TYPE)
   6342     },
   6343     {
   6344         BCM88690_DEVICE_ID, BCM88690_B1_REV_ID,
   6345         "BCM88690_B1",
   6346         BCM88690_DEVICE_ID, BCM88690_B1_REV_ID,
   6347         (SOC_SWITCH_DEV_TYPE | SOC_PCI_DEV_TYPE)
   6348     },
   6349     {
   6350         BCM88691_DEVICE_ID, BCM88690_B1_REV_ID,
   6351         "BCM88691_B1",
   6352         BCM88691_DEVICE_ID, BCM88690_B1_REV_ID,
   6353         (SOC_SWITCH_DEV_TYPE | SOC_PCI_DEV_TYPE)
   6354     },
   6355     {
   6356         BCM88692_DEVICE_ID, BCM88690_B1_REV_ID,
   6357         "BCM88692_B1",
   6358         BCM88692_DEVICE_ID, BCM88690_B1_REV_ID,
   6359         (SOC_SWITCH_DEV_TYPE | SOC_PCI_DEV_TYPE)
   6360     },
   6361     {
   6362         BCM88693_DEVICE_ID, BCM88690_B1_REV_ID,
   6363         "BCM88693_B1",
   6364         BCM88693_DEVICE_ID, BCM88690_B1_REV_ID,
   6365         (SOC_SWITCH_DEV_TYPE | SOC_PCI_DEV_TYPE)
   6366     },
   6367     {
   6368         BCM88694_DEVICE_ID, BCM88690_B1_REV_ID,
   6369         "BCM88694_B1",
   6370         BCM88694_DEVICE_ID, BCM88690_B1_REV_ID,
   6371         (SOC_SWITCH_DEV_TYPE | SOC_PCI_DEV_TYPE)
   6372     },
   6373     {
   6374         BCM88695_DEVICE_ID, BCM88690_B1_REV_ID,
   6375         "BCM88695_B1",
   6376         BCM88695_DEVICE_ID, BCM88690_B1_REV_ID,
   6377         (SOC_SWITCH_DEV_TYPE | SOC_PCI_DEV_TYPE)
   6378     },
   6379     {
   6380         BCM88696_DEVICE_ID, BCM88690_B1_REV_ID,
   6381         "BCM88696_B1",
   6382         BCM88696_DEVICE_ID, BCM88690_B1_REV_ID,
   6383         (SOC_SWITCH_DEV_TYPE | SOC_PCI_DEV_TYPE)
   6384     },
   6385     {
   6386         BCM88697_DEVICE_ID, BCM88690_B1_REV_ID,
   6387         "BCM88697_B1",
   6388         BCM88697_DEVICE_ID, BCM88690_B1_REV_ID,
   6389         (SOC_SWITCH_DEV_TYPE | SOC_PCI_DEV_TYPE)
   6390     },
   6391     {
   6392         BCM88698_DEVICE_ID, BCM88690_B1_REV_ID,
   6393         "BCM88698_B1",
   6394         BCM88698_DEVICE_ID, BCM88690_B1_REV_ID,
   6395         (SOC_SWITCH_DEV_TYPE | SOC_PCI_DEV_TYPE)
   6396     },
   6397     {
   6398         BCM88699_DEVICE_ID, BCM88690_B1_REV_ID,
   6399         "BCM88699_B1",
   6400         BCM88699_DEVICE_ID, BCM88690_B1_REV_ID,
   6401         (SOC_SWITCH_DEV_TYPE | SOC_PCI_DEV_TYPE)
   6402     },
   6403     {
   6404         BCM8869A_DEVICE_ID, BCM88690_B1_REV_ID,
   6405         "BCM8869A_B1",
   6406         BCM8869A_DEVICE_ID, BCM88690_B1_REV_ID,
   6407         (SOC_SWITCH_DEV_TYPE | SOC_PCI_DEV_TYPE)
   6408     },
   6409     {
   6410         BCM8869B_DEVICE_ID, BCM88690_B1_REV_ID,
   6411         "BCM8869B_B1",
   6412         BCM8869B_DEVICE_ID, BCM88690_B1_REV_ID,
   6413         (SOC_SWITCH_DEV_TYPE | SOC_PCI_DEV_TYPE)
   6414     },
   6415     {
   6416         BCM8869C_DEVICE_ID, BCM88690_B1_REV_ID,
   6417         "BCM8869C_B1",
   6418         BCM8869C_DEVICE_ID, BCM88690_B1_REV_ID,
   6419         (SOC_SWITCH_DEV_TYPE | SOC_PCI_DEV_TYPE)
   6420     },
   6421     {
   6422         BCM8869D_DEVICE_ID, BCM88690_B1_REV_ID,
   6423         "BCM8869D_B1",
   6424         BCM8869D_DEVICE_ID, BCM88690_B1_REV_ID,
   6425         (SOC_SWITCH_DEV_TYPE | SOC_PCI_DEV_TYPE)
   6426     },
   6427     {
   6428         BCM8869E_DEVICE_ID, BCM88690_B1_REV_ID,
   6429         "BCM8869E_B1",
   6430         BCM8869E_DEVICE_ID, BCM88690_B1_REV_ID,
   6431         (SOC_SWITCH_DEV_TYPE | SOC_PCI_DEV_TYPE)
   6432     },
   6433     {
   6434         BCM8869F_DEVICE_ID, BCM88690_B1_REV_ID,
   6435         "BCM8869F_B1",
   6436         BCM8869F_DEVICE_ID, BCM88690_B1_REV_ID,
   6437         (SOC_SWITCH_DEV_TYPE | SOC_PCI_DEV_TYPE)
   6438     },
   6439     {
   6440         BCM88800_DEVICE_ID, BCM88800_A0_REV_ID,
   6441         "BCM88800_A0",
   6442         BCM88800_DEVICE_ID, BCM88800_A0_REV_ID,
   6443         (SOC_SWITCH_DEV_TYPE | SOC_PCI_DEV_TYPE)
   6444     },
   6445 /* } */
   6446 #endif
   6447 #ifdef BCM_DNXF_SUPPORT
   6448 /* { */
   6449     {
   6450         BCM88790_DEVICE_ID, BCM88790_A0_REV_ID,
   6451         "BCM88790_A0",
   6452         BCM88790_DEVICE_ID, BCM88790_A0_REV_ID,
   6453         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   6454     },
   6455     {
   6456         BCM88790_DEVICE_ID, DNXC_A1_REV_ID,
   6457         "BCM88790_A1",
   6458         BCM88790_DEVICE_ID, DNXC_A1_REV_ID,
   6459         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   6460     },
   6461     {
   6462         BCM88790_DEVICE_ID, BCM88790_B0_REV_ID,
   6463         "BCM88790_B0",
   6464         BCM88790_DEVICE_ID, BCM88790_B0_REV_ID,
   6465         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   6466     },
   6467     {
   6468         BCM88791_DEVICE_ID, BCM88790_A0_REV_ID,
   6469         "BCM88791_A0",
   6470         BCM88791_DEVICE_ID, BCM88790_A0_REV_ID,
   6471         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   6472     },
   6473     {
   6474         BCM88792_DEVICE_ID, BCM88790_A0_REV_ID,
   6475         "BCM88792_A0",
   6476         BCM88792_DEVICE_ID, BCM88790_A0_REV_ID,
   6477         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   6478     },
   6479     {
   6480         BCM88793_DEVICE_ID, BCM88790_A0_REV_ID,
   6481         "BCM88793_A0",
   6482         BCM88793_DEVICE_ID, BCM88790_A0_REV_ID,
   6483         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   6484     },
   6485     {
   6486         BCM88794_DEVICE_ID, BCM88790_A0_REV_ID,
   6487         "BCM88794_A0",
   6488         BCM88794_DEVICE_ID, BCM88790_A0_REV_ID,
   6489         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   6490     },
   6491     {
   6492         BCM88795_DEVICE_ID, BCM88790_A0_REV_ID,
   6493         "BCM88795_A0",
   6494         BCM88795_DEVICE_ID, BCM88790_A0_REV_ID,
   6495         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   6496     },
   6497     {
   6498         BCM88795_DEVICE_ID, BCM88790_B0_REV_ID,
   6499         "BCM88795_B0",
   6500         BCM88795_DEVICE_ID, BCM88790_B0_REV_ID,
   6501         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   6502     },
   6503     {
   6504         BCM88796_DEVICE_ID, BCM88790_A0_REV_ID,
   6505         "BCM88796_A0",
   6506         BCM88796_DEVICE_ID, BCM88790_A0_REV_ID,
   6507         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   6508     },
   6509     {
   6510         BCM88797_DEVICE_ID, BCM88790_A0_REV_ID,
   6511         "BCM88797_A0",
   6512         BCM88797_DEVICE_ID, BCM88790_A0_REV_ID,
   6513         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   6514     },
   6515     {
   6516         BCM88797_DEVICE_ID, BCM88790_B0_REV_ID,
   6517         "BCM88797_B0",
   6518         BCM88797_DEVICE_ID, BCM88790_B0_REV_ID,
   6519         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   6520     },
   6521     {
   6522         BCM88798_DEVICE_ID, BCM88790_A0_REV_ID,
   6523         "BCM88798_A0",
   6524         BCM88798_DEVICE_ID, BCM88790_A0_REV_ID,
   6525         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   6526     },
   6527     {
   6528         BCM88799_DEVICE_ID, BCM88790_A0_REV_ID,
   6529         "BCM88799_A0",
   6530         BCM88799_DEVICE_ID, BCM88790_A0_REV_ID,
   6531         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   6532     },
   6533     {
   6534         BCM8879A_DEVICE_ID, BCM88790_A0_REV_ID,
   6535         "BCM8879A_A0",
   6536         BCM8879A_DEVICE_ID, BCM88790_A0_REV_ID,
   6537         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   6538     },
   6539     {
   6540         BCM8879B_DEVICE_ID, BCM88790_A0_REV_ID,
   6541         "BCM8879B_A0",
   6542         BCM8879B_DEVICE_ID, BCM88790_A0_REV_ID,
   6543         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   6544     },
   6545     {
   6546         BCM8879C_DEVICE_ID, BCM88790_A0_REV_ID,
   6547         "BCM8879C_A0",
   6548         BCM8879C_DEVICE_ID, BCM88790_A0_REV_ID,
   6549         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   6550     },
   6551     {
   6552         BCM8879D_DEVICE_ID, BCM88790_A0_REV_ID,
   6553         "BCM8879D_A0",
   6554         BCM8879D_DEVICE_ID, BCM88790_A0_REV_ID,
   6555         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   6556     },
   6557     {
   6558         BCM8879E_DEVICE_ID, BCM88790_A0_REV_ID,
   6559         "BCM8879E_A0",
   6560         BCM8879E_DEVICE_ID, BCM88790_A0_REV_ID,
   6561         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   6562     },
   6563     {
   6564         BCM8879F_DEVICE_ID, BCM88790_A0_REV_ID,
   6565         "BCM8879F_A0",
   6566         BCM8879F_DEVICE_ID, BCM88790_A0_REV_ID,
   6567         (SOC_PCI_DEV_TYPE | SOC_SWITCH_DEV_TYPE)
   6568     },
   6569 /* } */
   6570 #endif
   6571 };
   6572 
   6573 
   6574 /* Various control structures */
   6575 
   6576 static int                      _soc_cm_init = 0;
   6577 
   6578 #define AINIT()                 if (_soc_cm_init == 0) return SOC_E_INIT
   6579 
   6580 static sal_mutex_t              _soc_cm_lock = NULL;
   6581 
   6582 #ifdef BROADCOM_DEBUG
   6583 static shared_block_t *head = NULL;
   6584 static char           *shared_start = (char *)~(size_t)0;
   6585 static char           *shared_end   = (char *)0;
   6586 static sal_spinlock_t  dl = NULL;
   6587 #define CM_DB_LOCK()   sal_spinlock_lock(dl)
   6588 #define CM_DB_UNLOCK() sal_spinlock_unlock(dl)
   6589 #define CM_BUF_SZ      128
   6590 static uint32 _soc_cm_debug_enable[SOC_MAX_NUM_DEVICES] = {0};
   6591 static uint32 _soc_cm_debug_op[SOC_MAX_NUM_DEVICES] = {0};
   6592 #endif
   6593 
   6594 /*
   6595  * Function:    _soc_cm_find_device     (private)
   6596  * Purpose:     Search the device table for matching device.
   6597  *
   6598  * Parameters:  dev_id - the device id of the device.
   6599  *              rev_id - the revision id of the device.
   6600  *
   6601  * Returns:     NULL - device not found
   6602  *              non-NULL - pointer to soc_cm_device_info_t table entry
   6603  *
   6604  * Note:        The return value is a pointer to soc_cm_device_info_t.
   6605  *              Positive values are valid, and should not be interpreted as error.
   6606  *              If no device is found, NULL is returned.
   6607  *
   6608  * Notes:       An exact match for metal spin is not required.
   6609  *              This routine will return the driver with the highest
   6610  *              available metal spin.  This allows the driver to run
   6611  *              forward-compatibly on subsequent metal spins.
   6612  */
   6613 
   6614 static const soc_cm_device_info_t *
   6615 _soc_cm_find_device(uint16 dev_id, uint16 rev_id)
   6616 {
   6617     int                 i, tries;
   6618 
   6619     for (tries = 0; tries < 16; tries++) {
   6620         for (i = 0; i < COUNTOF(soc_device_info); i++) {
   6621             if (soc_device_info[i].dev_id == dev_id &&
   6622                 soc_device_info[i].rev_id == rev_id) {
   6623                 return &soc_device_info[i];
   6624             }
   6625         }
   6626 
   6627         if ((rev_id & 0xf) == 0) {
   6628             rev_id |= 0xf;
   6629         } else {
   6630             rev_id--;
   6631         }
   6632     }
   6633 
   6634     return NULL;
   6635 }
   6636 
   6637 
   6638 
   6639 
   6640 /******************************************************************
   6641  *
   6642  *                      SOC CM CLIENT ROUTINES
   6643  *
   6644  * These routines are the CLIENT interface to the SOC configuration
   6645  * manager. The driver itself may not ca    ll these functions.
   6646  */
   6647 
   6648 
   6649 /*
   6650  * Function:    soc_cm_deinit
   6651  * Purpose:     Deinitialize the SOC configuration manager interface
   6652  * Parameters:  None
   6653  *
   6654  * Returns:     SOC_E_XXX
   6655  */
   6656 int
   6657 soc_cm_deinit(void)
   6658 {
   6659     _soc_cm_init = 0;
   6660 
   6661 #ifdef BROADCOM_DEBUG
   6662     if (dl) {
   6663         sal_spinlock_destroy(dl);
   6664     }
   6665 #endif
   6666     if (_soc_cm_lock) {
   6667         sal_mutex_destroy(_soc_cm_lock);
   6668         _soc_cm_lock = NULL;
   6669     }
   6670     return SOC_E_NONE;
   6671 }
   6672 
   6673 /*
   6674  * Function:    soc_cm_init
   6675  * Purpose:     Initialize the SOC configuration manager interface
   6676  *
   6677  * Returns:     SOC_E_XXX
   6678  *
   6679  * Notes:
   6680  */
   6681 int
   6682 soc_cm_init(void)
   6683 {
   6684     if (_soc_cm_init == 0) {
   6685         _soc_cm_lock = sal_mutex_create("cm lock");
   6686         if (_soc_cm_lock == NULL) {
   6687              LOG_ERROR(BSL_LS_SOC_COMMON,
   6688                        (BSL_META("ERROR creating CM lock")));
   6689              return SOC_E_MEMORY;
   6690         }
   6691         sal_memset(soc_cm_device, 0, sizeof(soc_cm_device));
   6692         _soc_cm_init = 1;
   6693     }
   6694 
   6695 #ifdef BROADCOM_DEBUG
   6696     if (!dl) {
   6697         dl = sal_spinlock_create("cm debug");
   6698     }
   6699 #endif
   6700 
   6701     return SOC_E_NONE;
   6702 }
   6703 
   6704 
   6705 /*
   6706  * Function:    soc_cm_get_device_name
   6707  * Purpose:     Return the symbolic name of a device.
   6708  *
   6709  * Parameters:  dev_id - the device id of the device.
   6710  *              rev_id - the revision id of the device.
   6711  *
   6712  * Returns:     Static string
   6713  *
   6714  * Note:        The return value is a device name.
   6715  *              String values are valid, and should not be interpreted as error.
   6716  *              If no device is found, "UNKNOWN" is returned.
   6717  */
   6718 
   6719 const char *
   6720 soc_cm_get_device_name(uint16 dev_id, uint8 rev_id)
   6721 {
   6722     const soc_cm_device_info_t *info;
   6723 
   6724     if ((info = _soc_cm_find_device(dev_id, rev_id)) != NULL) {
   6725         return info->dev_name;
   6726     } else {
   6727         return "UNKNOWN";
   6728     }
   6729 }
   6730 
   6731 /*
   6732  * Function:    soc_cm_device_supported
   6733  * Purpose:     Determines whether the specified chip ID is known.
   6734  *
   6735  * Parameters:  dev_id - the device id of the device.
   6736  *              rev_id - the revision id of the device.
   6737  *
   6738  * Returns:     SOC_E_NONE if the device is known.
   6739  *              SOC_E_UNAVAIL if the device is not known.
   6740  */
   6741 
   6742 int
   6743 soc_cm_device_supported(uint16 dev_id, uint8 rev_id)
   6744 {
   6745     AINIT();
   6746 
   6747     if (_soc_cm_find_device(dev_id, rev_id) == NULL) {
   6748         return SOC_E_UNAVAIL;
   6749     }
   6750 
   6751     return SOC_E_NONE;
   6752 }
   6753 
   6754 /*
   6755  * Function:    soc_cm_device_create_id
   6756  * Purpose:     Create a driver device.
   6757  *
   6758  * Parameters:  dev_id - the device id of the device.
   6759  *              rev_id - the revision id of the device.
   6760  *              cookie - private client pointer you wish
   6761  *                       to have passed back to you when
   6762  *                       driver operations occur.
   6763  *
   6764  * Returns:     SOC_E_XXX
   6765  *
   6766  * Note:        The return value is device handle.
   6767  *              positive values are valid, and should not be interpreted as error.
   6768  *              Negative values indicate an error.
   6769  *
   6770  * Notes:       See <soc/cmext.h> for a complete description
   6771  *              of driver creation/initialization.
   6772  */
   6773 
   6774 
   6775 int
   6776 soc_cm_device_create_id(uint16 dev_id, uint16 rev_id, void *cookie, int dev)
   6777 {
   6778     const soc_cm_device_info_t *info;
   6779     cm_device_t null_device;
   6780     int dev_idx;
   6781 
   6782     AINIT();
   6783 
   6784     /*
   6785      * User must verify soc_cm_device_supported() before trying to
   6786      * attach.
   6787      */
   6788 
   6789     if ((info = _soc_cm_find_device(dev_id, rev_id)) == NULL) {
   6790         return SOC_E_UNAVAIL;
   6791     }
   6792 
   6793     sal_mutex_take(_soc_cm_lock, sal_mutex_FOREVER);
   6794 
   6795     /*  Allocate device id. */
   6796     sal_memset(&null_device, 0, sizeof(cm_device_t));
   6797     if (-1 == dev) {
   6798         for (dev_idx = 0; dev_idx < SOC_MAX_NUM_DEVICES; dev_idx++) {
   6799             if (0 == sal_memcmp(&CMDEV(dev_idx), &null_device,
   6800                                 sizeof(cm_device_t))) {
   6801                 dev = dev_idx;
   6802                 break;
   6803             }
   6804         }
   6805         if (-1 == dev) {
   6806             sal_mutex_give(_soc_cm_lock);
   6807             return SOC_E_UNIT;
   6808         }
   6809     } else {
   6810         if (0 != sal_memcmp(&CMDEV(dev), &null_device, sizeof(cm_device_t))) {
   6811             sal_mutex_give(_soc_cm_lock);
   6812             return SOC_E_EXISTS;
   6813         }
   6814     }
   6815 
   6816     /*
   6817      * The chip ID passed by the user is not necessarily equal to that
   6818      * in table, although it may differ ONLY by metal spin.
   6819      */
   6820 
   6821     CMDEV(dev).dev.dev = dev;
   6822     CMDEV(dev).dev.info = info;
   6823     CMDEV(dev).dev.cookie = cookie;
   6824     CMDEV(dev).dev.dev_id = dev_id;           /* Record chip ID passed by user */
   6825     CMDEV(dev).dev.rev_id = rev_id;
   6826 
   6827     soc_cm_device_count++;
   6828 
   6829     /* Keep soc_ndev in sync */
   6830     soc_all_ndev = soc_cm_device_count;
   6831     if (info->dev_type & SOC_SWITCH_DEV_TYPE) {
   6832         SOC_NDEV_IDX2DEV(soc_ndev) = dev;
   6833         soc_ndev ++;
   6834     }
   6835     sal_mutex_give(_soc_cm_lock);
   6836     return dev;
   6837 }
   6838 
   6839 /*
   6840  * Function:    soc_cm_device_create
   6841  * Purpose:     Create a driver device.
   6842  *
   6843  * Parameters:  dev_id - the device id of the device.
   6844  *              rev_id - the revision id of the device.
   6845  *              cookie - private client pointer you wish
   6846  *                       to have passed back to you when
   6847  *                       driver operations occur.
   6848  *
   6849  * Returns:     SOC_E_XXX
   6850  *
   6851  * Notes:
   6852  *
   6853  *      See <soc/cmext.h> for a complete description
   6854  *      of driver creation/initialization.
   6855  */
   6856 
   6857 
   6858 int
   6859 soc_cm_device_create(uint16 dev_id, uint16 rev_id, void *cookie)
   6860 {
   6861     int dev = -1;
   6862     int rv;
   6863 
   6864     rv = soc_cm_device_create_id(dev_id, rev_id, cookie, dev);
   6865 
   6866     /* coverity[identical_branches] */
   6867     if (SOC_FAILURE(rv)) {
   6868         return (rv);
   6869     } else {
   6870     return rv;
   6871 }
   6872 }
   6873 
   6874 
   6875 /*
   6876  * Function:    soc_cm_device_init
   6877  * Purpose:     Initialize a SOC device.
   6878  *
   6879  * Parameters:  dev - device handle (returned by soc_cm_device_create())
   6880  *              vectors - device access vectors
   6881  *
   6882  * Returns:     SOC_E_XXX
   6883  *
   6884  * Notes:
   6885  *
   6886  *      See <soc/cmtypes.h> for a complete description
   6887  *      of driver creation/initialization.
   6888  */
   6889 
   6890 int
   6891 soc_cm_device_init(int dev, soc_cm_device_vectors_t *vectors)
   6892 {
   6893     AINIT();
   6894 
   6895     if (CMVEC(dev).interrupt_connect == NULL || !CMVEC(dev).init) {
   6896         CMVEC(dev).init = 1;
   6897 #define REQUIRE(vName) if (! vectors->vName) return SOC_E_PARAM
   6898         REQUIRE(interrupt_connect);
   6899         REQUIRE(interrupt_disconnect);
   6900 #ifdef  SOC_CM_MEMORY_BASE
   6901         REQUIRE(base_address);
   6902         if (vectors->base_address !=
   6903             (SOC_CM_MEMORY_BASE + (SOC_CM_MEMORY_OFFSET*dev))) {
   6904             LOG_CLI((BSL_META("soc_cm_device_init: ERROR: dev %d "
   6905                               "compiled in base address (%#x) "
   6906                               "does not match run time (%#x)\n"),
   6907                      dev,
   6908                      SOC_CM_MEMORY_BASE + (SOC_CM_MEMORY_OFFSET*dev),
   6909                      PTR_TO_INT(vectors->base_address)));
   6910             return SOC_E_PARAM;
   6911         }
   6912 #else
   6913 #ifdef  SOC_CM_MEMORY
   6914         REQUIRE(base_address);
   6915 #else
   6916 #ifdef  SOC_CM_FUNCTION
   6917         REQUIRE(read);
   6918         REQUIRE(write);
   6919 #else
   6920         if (vectors->base_address == 0) {
   6921             REQUIRE(read);
   6922             REQUIRE(write);
   6923         }
   6924 #endif  /* SOC_CM_FUNCTION */
   6925 #endif  /* SOC_CM_MEMORY */
   6926 #endif  /* SOC_CM_MEMORY_BASE */
   6927         if (vectors->bus_type & SOC_PCI_DEV_TYPE) {
   6928             REQUIRE(pci_conf_read);
   6929             REQUIRE(pci_conf_write);
   6930         }
   6931         REQUIRE(salloc);
   6932         REQUIRE(sfree);
   6933 
   6934 #undef REQUIRE
   6935 
   6936         CMVEC(dev) = *vectors;
   6937 
   6938         /* Initialize SOC driver here */
   6939         if (CMDEV(dev).dev.info->dev_type & SOC_SWITCH_DEV_TYPE) {
   6940                 if (CMDEV(dev).dev.info->dev_type & SOC_SPI_DEV_TYPE) {
   6941 
   6942                     LOG_ERROR(BSL_LS_SOC_COMMON,
   6943                               (BSL_META("ERROR: devices should not be here !")));
   6944                 } else if (CMDEV(dev).dev.info->dev_type & SOC_ET_DEV_TYPE) {
   6945 
   6946                     LOG_ERROR(BSL_LS_SOC_COMMON,
   6947                               (BSL_META("ERROR: devices should not be here !")));
   6948                 } else if (CMDEV(dev).dev.info->dev_type & SOC_EMMI_DEV_TYPE){
   6949                     LOG_ERROR(BSL_LS_SOC_COMMON,
   6950                               (BSL_META("ERROR: devices should not be here !")));
   6951                 }else {
   6952 #if defined(BCM_DNX_SUPPORT)
   6953                     if (SOC_IS_DNX_TYPE(CMDEV(dev).dev.info->dev_id)) {
   6954                         return soc_dnx_attach(dev);
   6955                     }
   6956 #endif
   6957 
   6958 #if defined(BCM_PETRA_SUPPORT)
   6959                     if (SOC_IS_DPP_TYPE(CMDEV(dev).dev.info->dev_id)
   6960 
   6961 
   6962                     ) {
   6963                         return soc_dpp_attach(dev);
   6964                 }
   6965 #endif
   6966 #if defined(BCM_DFE_SUPPORT)
   6967                     if (SOC_IS_DFE_TYPE(CMDEV(dev).dev.info->dev_id))
   6968                     {
   6969                         return soc_dfe_attach(dev);
   6970                     }
   6971 #endif
   6972 #if defined(BCM_DNXF_SUPPORT)
   6973                     if (SOC_IS_DNXF_TYPE(CMDEV(dev).dev.info->dev_id))
   6974                     {
   6975                         return soc_dnxf_attach(dev);
   6976                     }
   6977 #endif
   6978 #if defined(BCM_ESW_SUPPORT)
   6979                     return soc_attach(dev);
   6980 #endif
   6981             }
   6982 
   6983 #if defined(BCM_KSCPU_SUPPORT)
   6984         } else if (CMDEV(dev).dev.info->dev_type & SOC_CPU_DEV_TYPE) {
   6985             return SOC_E_NONE;
   6986 #endif
   6987         }
   6988             return SOC_E_UNIT;
   6989     } else {
   6990         /* Device already initialized */
   6991         return SOC_E_UNIT;
   6992     }
   6993 }
   6994 
   6995 
   6996 /*
   6997  * Function:    soc_cm_device_destroy
   6998  * Purpose:     Destroy a SOC driver.
   6999  *
   7000  * Parameters:  dev - device handle (returned by soc_cm_device_create())
   7001  *
   7002  * Returns:     SOC_E_XXX
   7003  *
   7004  * Notes:
   7005  */
   7006 
   7007 int
   7008 soc_cm_device_destroy(int dev)
   7009 {
   7010     const soc_cm_device_info_t *info;
   7011     int rv = 0;
   7012     int dev_idx;
   7013 
   7014     AINIT();
   7015 
   7016     if (!CMDEV(dev).dev.info) {
   7017         return SOC_E_UNIT;
   7018     }
   7019     sal_mutex_take(_soc_cm_lock, sal_mutex_FOREVER);
   7020 
   7021     /* Initialize SOC driver here */
   7022     if (CMDEV(dev).dev.info->dev_type & SOC_SWITCH_DEV_TYPE) {
   7023         if (CMDEV(dev).dev.info->dev_type & SOC_SPI_DEV_TYPE) {
   7024 
   7025             LOG_ERROR(BSL_LS_SOC_COMMON,
   7026                       (BSL_META("ERROR: devices should not be here !")));
   7027             rv = SOC_E_INTERNAL;
   7028         } else if (CMDEV(dev).dev.info->dev_type & SOC_ET_DEV_TYPE) {
   7029 
   7030             LOG_ERROR(BSL_LS_SOC_COMMON,
   7031                       (BSL_META("ERROR: devices should not be here !")));
   7032             rv = SOC_E_INTERNAL;
   7033         } else {
   7034 #if defined(BCM_DNX_SUPPORT)
   7035             if (SOC_IS_DNX_TYPE(CMDEV(dev).dev.info->dev_id)) {
   7036                 rv = soc_dnx_detach(dev);
   7037             } else {
   7038 #endif
   7039 #if defined(BCM_PETRA_SUPPORT)
   7040             if (SOC_IS_DPP_TYPE(CMDEV(dev).dev.info->dev_id)) {
   7041                 rv = soc_dpp_detach(dev);
   7042             } else {
   7043 #endif /* BCM_PETRA_SUPPORT */
   7044 #if defined(BCM_DFE_SUPPORT)
   7045             if (SOC_IS_DFE_TYPE(CMDEV(dev).dev.info->dev_id)) {
   7046                 rv = soc_dfe_detach(dev);
   7047             } else {
   7048 #endif /* BCM_DFE_SUPPORT */
   7049 #if defined(BCM_DNXF_SUPPORT)
   7050             if (SOC_IS_DNXF_TYPE(CMDEV(dev).dev.info->dev_id)) {
   7051                 rv = soc_dnxf_detach(dev);
   7052             } else {
   7053 #endif /* BCM_DFE_SUPPORT */
   7054 #if defined(BCM_ESW_SUPPORT)
   7055                 rv = soc_detach(dev);
   7056 #endif
   7057 #if defined(BCM_DNXF_SUPPORT)
   7058             }
   7059 #endif
   7060 #if defined(BCM_DFE_SUPPORT)
   7061             }
   7062 #endif
   7063 #if defined(BCM_PETRA_SUPPORT)
   7064             }
   7065 #endif
   7066 #if defined(BCM_DNX_SUPPORT)
   7067             }
   7068 #endif
   7069 
   7070 
   7071 #if !defined(BCM_ESW_SUPPORT) && !defined(BCM_SAND_SUPPORT)
   7072             LOG_ERROR(BSL_LS_SOC_COMMON,
   7073                       (BSL_META("ERROR: ESW devices should not be here !")));
   7074             rv = SOC_E_INTERNAL;
   7075 #endif
   7076         }
   7077 #if defined(BCM_KSCPU_SUPPORT)
   7078     } else if (CMDEV(dev).dev.info->dev_type & SOC_CPU_DEV_TYPE) {
   7079             sal_mutex_give(_soc_cm_lock);
   7080             return SOC_E_NONE;
   7081 #endif
   7082     } else {
   7083         rv = SOC_E_INTERNAL;
   7084     }
   7085 
   7086     info = _soc_cm_find_device(CMDEV(dev).dev.dev_id,
   7087                                CMDEV(dev).dev.rev_id);
   7088     if (NULL == info) {
   7089         sal_mutex_give(_soc_cm_lock);
   7090         return SOC_E_UNAVAIL;
   7091     }
   7092 
   7093     /* Reset device structure.*/
   7094     if (info->dev_type & SOC_SWITCH_DEV_TYPE) {
   7095         for(dev_idx = 0; dev_idx < soc_ndev; ++dev_idx) {
   7096             if(SOC_NDEV_IDX2DEV(dev_idx) == dev) {
   7097                 break;
   7098             }
   7099         }
   7100         if(dev_idx == soc_ndev) {
   7101             LOG_ERROR(BSL_LS_SOC_COMMON,
   7102                       (BSL_META("ERROR: Device %d does not appear in the array soc_ndev_idx2dev_map !"), dev_idx));
   7103             rv = SOC_E_NOT_FOUND;
   7104         } else {
   7105             for(++dev_idx; dev_idx < soc_ndev; ++dev_idx) {
   7106                 SOC_NDEV_IDX2DEV(dev_idx - 1) = SOC_NDEV_IDX2DEV(dev_idx);
   7107             }
   7108             soc_ndev--;
   7109         }
   7110     }
   7111     soc_cm_device_count--;
   7112     /* Keep soc_ndev in sync */
   7113     soc_all_ndev = soc_cm_device_count;
   7114 
   7115     sal_memset(&CMDEV(dev), 0, sizeof(cm_device_t));
   7116 
   7117     CMVEC(dev).interrupt_connect = NULL;
   7118     CMVEC(dev).init = 0;
   7119     sal_mutex_give(_soc_cm_lock);
   7120 
   7121     return rv;
   7122 }
   7123 
   7124 
   7125 
   7126 /******************************************************************
   7127  *
   7128  *                      SOC CM INTERNAL ROUTINES
   7129  *
   7130  * These routines are the DRIVER interface to the SOC configuration
   7131  * manager. These should be used only be the driver.
   7132  */
   7133 
   7134 
   7135 
   7136 /*
   7137  * Function:    soc_cm_get_name
   7138  * Purpose:     returns the symbolic name of the device.
   7139  *
   7140  * Parameters:  dev - device handle
   7141  *
   7142  * Returns:     symbolic name of this device.
   7143  *
   7144  * Note:        The return value is symbolic name of this device.
   7145  *              String values are valid, and should not be interpreted as error.
   7146  *              Negative values indicate an error.
   7147  */
   7148 
   7149 const char *
   7150 soc_cm_get_name(int dev)
   7151 {
   7152 #ifdef BCM_TRIUMPH3_SUPPORT
   7153         uint16          dev_id = 0;
   7154         uint32          rval;
   7155         /*It is used to store the device name which should be renamed by feature*/
   7156         static char _cm_dev_name[SOC_MAX_NUM_DEVICES][16];
   7157 
   7158         if ((NULL!=SOC_CONTROL(dev)) &&
   7159                (SOC_CONTROL(dev)->soc_flags & SOC_F_INITED)) {
   7160             if (SOC_IS_HELIX4(dev)) {
   7161                 if (SOC_E_NONE == READ_TOP_SWITCH_FEATURE_ENABLEr(dev, &rval)) {
   7162                     if (rval & 0x8) { /*rval&8==1 means MPLS is enabled*/
   7163                         dev_id = CMDEV(dev).dev.dev_id;
   7164                         if ((dev_id == BCM56340_DEVICE_ID) || (dev_id == BCM56342_DEVICE_ID)
   7165                             || (dev_id == BCM56344_DEVICE_ID)) {
   7166                             sal_memcpy(_cm_dev_name[dev], CMDEV(dev).dev.info->dev_name, 8);
   7167                              _cm_dev_name[dev][8] = 'M';
   7168                             sal_memcpy(&(_cm_dev_name[dev][9]), &(CMDEV(dev).dev.info->dev_name[8]),
   7169                             sal_strlen(CMDEV(dev).dev.info->dev_name)-8);
   7170 
   7171                             return _cm_dev_name[dev];
   7172                         }
   7173                     }
   7174                 }
   7175             }
   7176             else if (SOC_IS_TRIUMPH3(dev)) {
   7177                  if (SOC_E_NONE == READ_TOP_SWITCH_FEATURE_ENABLEr(dev, &rval)) {
   7178                     if (rval & 0x1) { /*rval&1==1 means 1588 is enabled*/
   7179                         dev_id = CMDEV(dev).dev.dev_id;
   7180                         if ((dev_id == BCM56545_DEVICE_ID) || (dev_id == BCM56546_DEVICE_ID)) {
   7181                             sal_memcpy(_cm_dev_name[dev], CMDEV(dev).dev.info->dev_name, 8);
   7182                              _cm_dev_name[dev][8] = 'K';
   7183                             sal_memcpy(&(_cm_dev_name[dev][9]), &(CMDEV(dev).dev.info->dev_name[8]),
   7184                             sal_strlen(CMDEV(dev).dev.info->dev_name)-8);
   7185 
   7186                             return _cm_dev_name[dev];
   7187                         }
   7188                     }
   7189                 }
   7190             }
   7191         }
   7192 #endif
   7193     return CMDEV(dev).dev.info->dev_name;
   7194 }
   7195 
   7196 
   7197 /*
   7198  * Function:    soc_cm_get_dev_type
   7199  * Purpose:     returns the type of the device.
   7200  *
   7201  * Parameters:  dev - device handle
   7202  *
   7203  * Returns:     uint32 of the type of this device.
   7204  *
   7205  * Note:        The return value is the type of this device.
   7206  *              Positive values are valid, and should not be interpreted as error.
   7207  *              Negative values indicate an error.
   7208  */
   7209 
   7210 uint32
   7211 soc_cm_get_dev_type(int dev)
   7212 {
   7213     return CMDEV(dev).dev.info->dev_type;
   7214 }
   7215 
   7216 
   7217 /*
   7218  * Function:    soc_cm_get_id
   7219  * Purpose:     Returns the real device and revision ids for this device.
   7220  *
   7221  * Parameters:  dev_id - (OUTPUT) receives device id.
   7222  *              rev_id - (OUTPUT) receives revision id.
   7223  *
   7224  * Returns:     SOC_E_NONE.
   7225  */
   7226 
   7227 int
   7228 soc_cm_get_id(int dev, uint16 *dev_id, uint8 *rev_id)
   7229 {
   7230     AINIT();
   7231 
   7232     if (dev_id) {
   7233         *dev_id = CMDEV(dev).dev.dev_id;
   7234     }
   7235 
   7236     if (rev_id) {
   7237         *rev_id = CMDEV(dev).dev.rev_id;
   7238     }
   7239 
   7240     return SOC_E_NONE;
   7241 }
   7242 
   7243 /*
   7244  * Function:    soc_cm_get_id_driver
   7245  * Purpose:     Returns the device and revision ids of the driver to
   7246  *              use to handle this device.
   7247  *
   7248  * Parameters:  dev_id - (OUTPUT) receives device id.
   7249  *              rev_id - (OUTPUT) receives revision id.
   7250  *
   7251  * Returns:     SOC_E_NONE - success
   7252  *              SOC_E_NOT_FOUND - chip not supported
   7253  *
   7254  * Notes:       Several different real chip IDs may use the same driver.
   7255  *              This routine maps real chip ID to driver chip ID.
   7256  */
   7257 
   7258 int
   7259 soc_cm_get_id_driver(uint16 dev_id, uint8 rev_id,
   7260                      uint16 *dev_id_driver, uint8 *rev_id_driver)
   7261 {
   7262     const soc_cm_device_info_t *info;
   7263 
   7264     if ((info = _soc_cm_find_device(dev_id, rev_id)) == NULL) {
   7265         return SOC_E_NOT_FOUND;
   7266     }
   7267 
   7268     if (info->dev_id_driver == 0) {
   7269         /* This found dev/rev pair describes a regsfile */
   7270         *dev_id_driver = info->dev_id;
   7271         *rev_id_driver = info->rev_id;
   7272     } else {
   7273         /* Found info not a regsfile type, so get associated regsfile */
   7274         *dev_id_driver = info->dev_id_driver;
   7275         *rev_id_driver = info->rev_id_driver;
   7276     }
   7277 
   7278     return SOC_E_NONE;
   7279 }
   7280 
   7281 /*
   7282  * Function:    soc_cm_get_num_devices
   7283  * Purpose:     Returns the total number of created devices.
   7284  *
   7285  * Parameters:  None
   7286  *
   7287  * Returns:     Total devices created.
   7288  *
   7289  * Note:        The return value is the number of devices created.
   7290  *              Positive values are valid, and should not be interpreted as error.
   7291  *              Negative values indicate an error.
   7292  */
   7293 
   7294 
   7295 int
   7296 soc_cm_get_num_devices(void)
   7297 {
   7298     return soc_cm_device_count;
   7299 }
   7300 
   7301 /*
   7302  * Function:    soc_cm_get_rcpu_cfg
   7303  * Purpose:     Returns RCPU configurations of the device.
   7304  *
   7305  * Parameters:  dev - device handle
   7306  *              rcpu_cfg - (OUTPUT) RCPU configurations.
   7307  *
   7308  * Returns:     SOC_E_XXX
   7309  */
   7310 #ifdef INCLUDE_RCPU
   7311 int
   7312 soc_cm_get_rcpu_cfg(int dev, soc_rcpu_cfg_t *rcpu_cfg)
   7313 {
   7314     if (NULL == CMDEV(dev).dev.cookie) {
   7315         return SOC_E_PARAM;
   7316     }
   7317     *rcpu_cfg = *(soc_rcpu_cfg_t *)CMDEV(dev).dev.cookie;
   7318     return SOC_E_NONE;
   7319 }
   7320 int
   7321 soc_cm_set_rcpu_cfg(int dev, soc_rcpu_cfg_t *rcpu_cfg)
   7322 {
   7323     CMDEV(dev).dev.cookie = (void *)rcpu_cfg;
   7324     return SOC_E_NONE;
   7325 }
   7326 int
   7327 soc_cm_set_rcpu_trans_tpr(int dev, rcpu_trans_ptr_t *rcpu_tp)
   7328 {
   7329     CMVEC(dev).rcpu_tp = rcpu_tp;
   7330     return SOC_E_NONE;
   7331 }
   7332 #endif /* INCLUDE_RCPU */
   7333 /*
   7334  * Function:    soc_cm_interrupt_connect
   7335  * Purpose:     Used by the driver to connect its interrupt handler
   7336  *              the device.
   7337  *
   7338  * Parameters:  dev     - device handle
   7339  *              handler - interrupt handler
   7340  *              data    - isr data.
   7341  *
   7342  * Returns:     0 if successful
   7343  *              <0 if failed.
   7344  */
   7345 
   7346 int
   7347 soc_cm_interrupt_connect(int dev, soc_cm_isr_func_t handler, void *data)
   7348 {
   7349     return CMVEC(dev).interrupt_connect(&CMDEV(dev).dev, handler, data);
   7350 }
   7351 
   7352 /*
   7353  * Function:    soc_cm_interrupt_disconnect
   7354  * Purpose:     Used by the driver to disconnect its interrupt handler.
   7355  *
   7356  * Parameters:  dev - device handle
   7357  *
   7358  * Returns:     0 if successful
   7359  *              <0 if failed.
   7360  */
   7361 
   7362 int
   7363 soc_cm_interrupt_disconnect(int dev)
   7364 {
   7365     return CMVEC(dev).interrupt_disconnect(&CMDEV(dev).dev);
   7366 }
   7367 
   7368 #ifdef BROADCOM_DEBUG
   7369 static int soc_cm_debug_property_get(int unit)
   7370 {
   7371     if (0 == _soc_cm_debug_op[unit]) {
   7372         _soc_cm_debug_enable[unit] =
   7373             soc_property_get(unit, "dma_mem_debug_enable", 0);
   7374         _soc_cm_debug_op[unit] = 1;
   7375     }
   7376     return _soc_cm_debug_enable[unit];
   7377 }
   7378 int soc_cm_shared_good_range(int dev, shared_block_t *p)
   7379 {
   7380 	if (soc_cm_debug_property_get(dev)) {
   7381         return (((char *)p >= shared_start) && ((char *)p < shared_end));
   7382 	}
   7383 	
   7384     return(TRUE);
   7385 }
   7386 #endif
   7387 
   7388 
   7389 /*
   7390  * Function:    soc_cm_salloc
   7391  * Purpose:     Allocate shareable memory for communication with the device.
   7392  *
   7393  * Parameters:  dev     - device handle
   7394  *              size    - amount of memory in bytes.
   7395  *              name    - name of this memory (for debugging purposes only)
   7396  *
   7397  * Returns:     Pointer to the memory if successful, otherwise NULL.
   7398  *
   7399  * Note:        The return value is a pointer to the memory.
   7400  *              Positive values are valid, and should not be interpreted as error.
   7401  *              If unsuccesful, NULL is returned.
   7402  */
   7403 void *
   7404 soc_cm_salloc(int dev, int size, const char *name)
   7405 {
   7406     void *ptr;
   7407 #ifdef BROADCOM_DEBUG
   7408     if (soc_cm_debug_property_get(dev)) {
   7409         shared_block_t  *p = NULL;
   7410         uint32             size_words = (size + 3) / 4;
   7411         uint32             modified_size = 0;
   7412 
   7413         assert(name != NULL);        /* Don't pass NULLs in here! */
   7414         assert(name[0] != 0);        /* Don't pass empty strings in here! */
   7415 
   7416         modified_size = sizeof (shared_block_t) + (size_words * 4);
   7417         p = CMVEC(dev).salloc(&CMDEV(dev).dev, modified_size, name);
   7418 
   7419         if (p == NULL) {
   7420             return NULL;
   7421         }
   7422         p->start_sentinel = 0xaabbccdd;
   7423         p->description = (char *)name;
   7424         p->size = size;
   7425         p->modified_size = modified_size;
   7426         p->user_data[size_words] = 0xddccbbaa;
   7427 
   7428         CM_DB_LOCK();
   7429         if (head != NULL) {
   7430             head->prev = p;
   7431         }
   7432         p->prev = NULL;
   7433         p->next = head;
   7434         head = p;
   7435         if ((char *)p < (char *)shared_start) {
   7436             shared_start = (char*)p;
   7437         }
   7438         if ((((char *)p) + modified_size) > shared_end) {
   7439             shared_end = (char*)((char *)p + modified_size);
   7440         }
   7441 
   7442         CM_DB_UNLOCK();
   7443         /*
   7444         LOG_VERBOSE(BSL_LS_SOC_MEM,
   7445                    (BSL_META("Allocation: Start :%x: Description:%s: Size:%d:"
   7446                               "ModifiedSize:%d: End:%x:\n"),
   7447                    p->start_sentinel ,p->description, p->size,p->modified_size,
   7448                    p->user_data[size_words]));
   7449         */
   7450         ptr = (void *)&p->user_data[0];
   7451     }
   7452     else {
   7453         ptr = CMVEC(dev).salloc(&CMDEV(dev).dev, size, name);
   7454     }
   7455 #else
   7456     ptr = CMVEC(dev).salloc(&CMDEV(dev).dev, size, name);
   7457 #endif
   7458 
   7459     MEMLOG_ALLOC("soc_cm_salloc", ptr, size, name);
   7460 
   7461     return ptr;
   7462 }
   7463 
   7464 /*
   7465  * Function:    soc_cm_sfree
   7466  * Purpose:     Free shared memory previously allocated with soc_cm_salloc
   7467  *
   7468  * Parameters:  dev     - device handle
   7469  *              ptr     - shared memory pointer.
   7470  *
   7471  * Returns:     None.
   7472  */
   7473 
   7474 void
   7475 soc_cm_sfree(int dev, void *ptr)
   7476 {
   7477 #ifdef BROADCOM_DEBUG
   7478     if (soc_cm_debug_property_get(dev)) {
   7479         shared_block_t *p = NULL;
   7480         /*
   7481         int            size_words = 0;
   7482         */
   7483 
   7484         p = (shared_block_t *) (((char*)ptr) -
   7485         ( (((char*)&(((shared_block_t*)0)->user_data[0]))) - ((char*)(shared_block_t*)0) ));
   7486         /* check sentinel */
   7487         assert(SHARED_GOOD_FREE(p));
   7488         assert(SHARED_GOOD_START(p));
   7489         assert(SHARED_GOOD_END(p));
   7490 
   7491         /*
   7492         size_words = (p->size + 3) / 4;
   7493         LOG_VERBOSE(BSL_LS_SOC_MEM,
   7494                 (BSL_META("Freeing Start:%x: Desc:%s: Size:%d: 
   7495                            ModifiedSize:%d: End:%x:\n"),
   7496                  p->start_sentinel ,p->description, p->size,p->modified_size,
   7497                  p->user_data[size_words]));
   7498         */
   7499         CM_DB_LOCK();
   7500         if (p == head) {
   7501             head = p->next;
   7502             if (head != NULL) {
   7503                 head->prev = NULL;
   7504             }
   7505         } else {
   7506             p->prev->next = p->next;
   7507             if (p->next != NULL) {
   7508                 p->next->prev = p->prev;
   7509             }
   7510         }
   7511         /* Detect redundant frees */
   7512         p->start_sentinel = 0xdeadbeef;
   7513         p->user_data[(p->size + 3) / 4] = 0xdddddddd;
   7514 
   7515         CM_DB_UNLOCK();
   7516         CMVEC(dev).sfree(&CMDEV(dev).dev, p);
   7517     }
   7518 	else {
   7519         CMVEC(dev).sfree(&CMDEV(dev).dev, ptr);
   7520 	}
   7521 #else /* !BROADCOM_DEBUG */
   7522     CMVEC(dev).sfree(&CMDEV(dev).dev, ptr);
   7523 #endif
   7524     MEMLOG_FREE("soc_cm_free", ptr);
   7525     return;
   7526 }
   7527 #ifdef BROADCOM_DEBUG
   7528 void soc_cm_dump_info(int dev)
   7529 {
   7530     shared_block_t *p;
   7531     int            size_words = 0, n = 0;
   7532     char           *buf;
   7533     int            len, rc;
   7534     if (soc_cm_debug_property_get(dev)) {
   7535         LOG_CLI((BSL_META("================== SHARED MEMORY INFO(BEGIN) \
   7536 			               ===========\n")));
   7537         LOG_CLI((BSL_META("Shared_start:%p Shared_end:%p\n"),shared_start, \
   7538 		                   shared_end));
   7539         CM_DB_LOCK();
   7540         p = head;
   7541         while (p != NULL) {
   7542             n++;
   7543             p = p->next;
   7544         }
   7545         CM_DB_UNLOCK();
   7546         len = n * CM_BUF_SZ;
   7547         buf = sal_alloc(len, "soc cm info dump");
   7548         if (!buf) {
   7549             return;
   7550         }
   7551         sal_memset(buf, 0, len);
   7552         CM_DB_LOCK();
   7553         p = head;
   7554         while (p != NULL) {
   7555             size_words = (p->size + 3) / 4;
   7556             LOG_CLI((BSL_META("Info p=:%p: Start :0x%x: Desc:%s: Size:%d:"
   7557                               "ModifiedSize:%d End:0x%x\n"),
   7558                               p, p->start_sentinel, p->description, p->size,
   7559                               p->modified_size, p->user_data[size_words]));
   7560             rc = sal_snprintf(buf, len,
   7561                           "Info p=:%p: Start :0x%x: Desc:%s: Size:%d:"
   7562                           "ModifiedSize:%d End:0x%x\n",
   7563                           p, p->start_sentinel, p->description, p->size,
   7564                           p->modified_size, p->user_data[size_words]);
   7565             len -= rc;
   7566             if (len < CM_BUF_SZ) {
   7567                 break;
   7568             }
   7569             p = p->next;
   7570         }
   7571         CM_DB_UNLOCK();
   7572         LOG_CLI((BSL_META("%s"), buf));
   7573         LOG_CLI((BSL_META("==================== SHARED MEMORY INFO(END)   \
   7574 			               ===========\n")));
   7575         sal_free(buf);
   7576 	}
   7577     return;
   7578 }
   7579 #endif
   7580 
   7581 /*
   7582  * Function:    soc_cm_sflush
   7583  * Purpose:     Perform a cache flush on a memory region, if required.
   7584  *
   7585  * Parameters:  dev     - device handle
   7586  *              addr    - memory region
   7587  *              length  - size of region
   7588  *
   7589  * Returns:     SOC_E_XXX
   7590  */
   7591 
   7592 int
   7593 soc_cm_sflush(int dev, void *addr, int length)
   7594 {
   7595 #ifdef BROADCOM_DEBUG
   7596         shared_block_t *p = NULL;
   7597         char           buf[CM_BUF_SZ];
   7598         int            rc = 0;
   7599 #endif
   7600     if (CMVEC(dev).sflush) {
   7601 #ifdef BROADCOM_DEBUG
   7602         if (soc_cm_debug_property_get(dev)) {
   7603             CM_DB_LOCK();
   7604             p = (shared_block_t *) (((char*)addr) -
   7605                 ( (((char*)&(((shared_block_t*)0)->user_data[0]))) - ((char*)(shared_block_t*)0) ));
   7606             if (soc_cm_shared_good_range(dev, p)) {
   7607                 /* Cannot use assert as counter thread is using middle address!! */
   7608                 if (SHARED_GOOD_START(p)  && SHARED_GOOD_END_DEBUG(p)) {
   7609                     /* assert(SHARED_GOOD_START(p)); */
   7610                     /* assert(SHARED_GOOD_END(p)); */
   7611                     if (length > p->size) {
   7612                         rc = sal_snprintf(buf, sizeof(buf),
   7613                                           "Suspicious DMA length: "
   7614                                           "Desc:%s: Size:%u: length:%u\n",
   7615                                           p->description, p->size, length);
   7616                     }
   7617                 }
   7618             } else {
   7619                 rc = sal_snprintf(buf, sizeof(buf),
   7620                                  "ERROR:ATTN: Address:%p:"
   7621                                  "probably not in shared memory region \n", p);
   7622             }
   7623             CM_DB_UNLOCK();
   7624             if (rc > 0 && rc < sizeof(buf)) {
   7625                 LOG_ERROR(BSL_LS_SOC_COMMON,
   7626                           (BSL_META("%s"), buf));
   7627             }
   7628         }
   7629 #endif
   7630         return CMVEC(dev).sflush(&CMDEV(dev).dev, addr, length);
   7631     }
   7632 
   7633     return SOC_E_NONE;
   7634 }
   7635 
   7636 /*
   7637  * Function:    soc_cm_sinval
   7638  * Purpose:     Invalidate a memory region, if required.
   7639  *
   7640  * Parameters:  dev     - device handle
   7641  *              addr    - memory region
   7642  *              length  - size of region
   7643  *
   7644  * Returns:     SOC_E_XXX
   7645  */
   7646 
   7647 int
   7648 soc_cm_sinval(int dev, void *addr, int length)
   7649 {
   7650     if (CMVEC(dev).sinval) {
   7651         return CMVEC(dev).sinval(&CMDEV(dev).dev, addr, length);
   7652     }
   7653 
   7654     return SOC_E_NONE;
   7655 }
   7656 
   7657 /*
   7658  * Function:    soc_cm_l2p
   7659  * Purpose:     Perform a logical (CPU relative) to
   7660  *              physical (chip relative) address translation.
   7661  *
   7662  * Parameters:  dev     - device handle
   7663  *              addr    - address to translate.
   7664  *
   7665  * Returns:     The translated address.
   7666  *
   7667  * Note:        The return value is the translated address.
   7668  *              Positive values are valid, and should not be interpreted as error.
   7669  *
   7670  *              This translation occurs in the context of driver <->
   7671  *              chip communications. * This means that this function may
   7672  *              have to provide more than * a virtual mapping
   7673  *              translation -- if the device is configured to use * a
   7674  *              different physical *bus* address as well, then this
   7675  *              function must provide that also.
   7676  *
   7677  *              The intent here is to share the memory in question with
   7678  *              the hardware, * so this function must return an address
   7679  *              that makes sense with respect to the hardware, as well.
   7680  */
   7681 
   7682 sal_paddr_t
   7683 soc_cm_l2p(int dev, void *addr)
   7684 {
   7685         if (CMVEC(dev).l2p) {
   7686             return CMVEC(dev).l2p(&CMDEV(dev).dev, addr);
   7687         }
   7688 
   7689         return (sal_paddr_t)(sal_vaddr_t)addr;
   7690 
   7691 }
   7692 
   7693 /*
   7694  * Function:    soc_cm_p2l
   7695  * Purpose:     Perform a physical (chip relative) to logical
   7696  *              (CPU relative) address translation.
   7697  *
   7698  * Parameters:  dev     - device handle
   7699  *              addr    - address to translate.
   7700  *
   7701  * Returns:     The logical address.
   7702  *
   7703  * Note:        The return value is the logical address.
   7704  *              Positive values are valid, and should not be interpreted as error.
   7705  *
   7706  *              See soc_cm_p2l() (above) for requirements.
   7707  */
   7708 
   7709 void*
   7710 soc_cm_p2l(int dev, sal_paddr_t addr)
   7711 {
   7712     if (CMVEC(dev).p2l) {
   7713         return CMVEC(dev).p2l(&CMDEV(dev).dev, addr);
   7714     }
   7715 
   7716     return (void *)(sal_vaddr_t)addr;
   7717 }
   7718 
   7719 /*
   7720  * Function:    soc_cm_spi_read
   7721  * Purpose:     Perform a device register read via spi interface
   7722  *
   7723  * Parameters:  dev     - device handle
   7724  *              addr    - address to read.
   7725  *              buf     - a buffer to store the data of the read register.
   7726  *              len     - length to read.
   7727  *
   7728  * Returns:     -1 if error, otherwise 0 (or actual bytes read)
   7729  */
   7730 
   7731 int
   7732 soc_cm_spi_read(int dev, uint32 addr, uint8 *buf, int len)
   7733 {
   7734     if (CMVEC(dev).spi_read) {
   7735         return CMVEC(dev).spi_read(&CMDEV(dev).dev, addr, buf, len);
   7736     }
   7737 
   7738     return -1;
   7739 }
   7740 
   7741 /*
   7742  * Function:    soc_cm_spi_write
   7743  * Purpose:     Perform a device register write via spi interface
   7744  *
   7745  * Parameters:  dev     - device handle
   7746  *              addr    - address to write.
   7747  *              buf     - a buffer to store the data of the write register.
   7748  *              len     - length to write.
   7749  *
   7750  * Returns:     -1 if error, otherwise 0 (or actual bytes written)
   7751  */
   7752 
   7753 int
   7754 soc_cm_spi_write(int dev, uint32 addr, uint8 *buf, int len)
   7755 {
   7756     if (CMVEC(dev).spi_write) {
   7757         return CMVEC(dev).spi_write(&CMDEV(dev).dev, addr, buf, len);
   7758     }
   7759 
   7760     return -1;
   7761 }
   7762 
   7763 /*
   7764  * Function:    soc_cm_iproc_read
   7765  * Purpose:     Read iProc register outside CMIC
   7766  *
   7767  * Parameters:  dev     - device handle
   7768  *              addr    - address to read
   7769  *
   7770  * Returns:     Register value
   7771  */
   7772 
   7773 uint32
   7774 soc_cm_iproc_read(int dev, uint32 addr)
   7775 {
   7776 #if defined(BCM_ESW_SUPPORT) || defined(BCM_SAND_SUPPORT)
   7777     uint32 regval;
   7778 
   7779 #if defined(IPROC_ACCESS_DEBUG) && (defined(BCM_DNX_SUPPORT) || defined(BCM_DNXF_SUPPORT))
   7780     if (SOC_IS_DNX(dev) || SOC_IS_DNXF(dev)) {
   7781         assert(addr >= 0x80000); /* check that the address is in the currently supported address range of the iproc BAR in Jericho 2 and Ramon */
   7782     }
   7783 #endif /* IPROC_ACCESS_DEBUG) && (defined(BCM_DNX_SUPPORT) || defined(BCM_DNXF_SUPPORT) */
   7784 
   7785     /* accessing some iProc registers will hang the system when uC is shut down, need to block the operation */
   7786     if (((IS_IHOST_S0_ADDR(addr)) || (IS_IHOST_ACP_ADDR(addr))) &&
   7787         (SOC_REG_IS_VALID(dev, CRU_IHOST_PWRDWN_STATUSr)) &&
   7788         (SOC_REG_FIELD_VALID(dev, CRU_IHOST_PWRDWN_STATUSr, LOGIC_PWRDOWN_CPU0f)) &&
   7789         (addr != soc_reg_addr(dev, CRU_IHOST_PWRDWN_STATUSr, REG_PORT_ANY, 0)) &&
   7790         (CMVEC(dev).iproc_read)) {
   7791         regval = CMVEC(dev).iproc_read(&CMDEV(dev).dev, soc_reg_addr(dev, CRU_IHOST_PWRDWN_STATUSr, REG_PORT_ANY, 0));
   7792         if (soc_reg_field_get(dev, CRU_IHOST_PWRDWN_STATUSr, regval, LOGIC_PWRDOWN_CPU0f) == 1) {
   7793             LOG_CLI((BSL_META("Error: the uC has been shut down, cannot read iproc register addr=0x%x.\n"), addr));
   7794             return 0;
   7795         }
   7796     }
   7797 #endif
   7798 
   7799     if (CMVEC(dev).iproc_read) {
   7800 #if	defined(SOC_PCI_DEBUG) && defined(IPROC_ACCESS_DEBUG)
   7801         uint32 res = CMVEC(dev).iproc_read(&CMDEV(dev).dev, addr);
   7802         LOG_DEBUG(BSL_LS_SOC_PCI, ("u=%d iprocR(0x%x)=0x%x\n", dev, (unsigned)addr, (unsigned)res));
   7803         return res;
   7804 #else
   7805         return CMVEC(dev).iproc_read(&CMDEV(dev).dev, addr);
   7806 #endif
   7807     }
   7808 
   7809     return 0;
   7810 }
   7811 
   7812 /*
   7813  * Function:    soc_cm_iproc_write
   7814  * Purpose:     Write iProc register outside CMIC
   7815  *
   7816  * Parameters:  dev     - device handle
   7817  *              addr    - address to write
   7818  *              val     - register value
   7819  *
   7820  * Returns:     None
   7821  */
   7822 
   7823 void
   7824 soc_cm_iproc_write(int dev, uint32 addr, uint32 val)
   7825 {
   7826 #if defined(BCM_ESW_SUPPORT) || defined(BCM_SAND_SUPPORT)
   7827     uint32 regval;
   7828 
   7829 #if	defined(SOC_PCI_DEBUG) && defined(IPROC_ACCESS_DEBUG)
   7830         LOG_DEBUG(BSL_LS_SOC_PCI, ("u=%d iprocW(0x%x)=0x%x\n", dev, (unsigned)addr, (unsigned)val));
   7831 #endif
   7832 #if defined(IPROC_ACCESS_DEBUG) && (defined(BCM_DNX_SUPPORT) || defined(BCM_DNXF_SUPPORT))
   7833         if (SOC_IS_DNX(dev) || SOC_IS_DNXF(dev)) {
   7834             assert(addr >= 0x80000); /* check that the address is in the currently supported address range of the iproc BAR in Jericho 2 and Ramon */
   7835         }
   7836 #endif /* IPROC_ACCESS_DEBUG) && (defined(BCM_DNX_SUPPORT) || defined(BCM_DNXF_SUPPORT) */
   7837 
   7838     /* accessing some iProc registers will hang the system when uC is shut down, need to block the operation */
   7839     if (((IS_IHOST_S0_ADDR(addr)) || (IS_IHOST_ACP_ADDR(addr))) &&
   7840         (SOC_REG_IS_VALID(dev, CRU_IHOST_PWRDWN_STATUSr)) &&
   7841         (SOC_REG_FIELD_VALID(dev, CRU_IHOST_PWRDWN_STATUSr, LOGIC_PWRDOWN_CPU0f)) &&
   7842         (addr != soc_reg_addr(dev, CRU_IHOST_PWRDWN_STATUSr, REG_PORT_ANY, 0)) &&
   7843         (CMVEC(dev).iproc_read)) {
   7844         regval = CMVEC(dev).iproc_read(&CMDEV(dev).dev, soc_reg_addr(dev, CRU_IHOST_PWRDWN_STATUSr, REG_PORT_ANY, 0));
   7845         if (soc_reg_field_get(dev, CRU_IHOST_PWRDWN_STATUSr, regval, LOGIC_PWRDOWN_CPU0f) == 1) {
   7846             LOG_CLI((BSL_META("Error: the uC has been shut down, cannot write iproc register addr=0x%x.\n"), addr));
   7847             return;
   7848         }
   7849     }
   7850 #endif
   7851 
   7852     if (CMVEC(dev).iproc_write) {
   7853         CMVEC(dev).iproc_write(&CMDEV(dev).dev, addr, val);
   7854     }
   7855 
   7856     return;
   7857 }
   7858 
   7859 /*
   7860  * Note:        The return value is the bus type.
   7861  *              Positive values are valid, and should not be interpreted as error.
   7862  */
   7863 
   7864 uint32
   7865 soc_cm_get_bus_type(int dev)
   7866 {
   7867     return CMVEC(dev).bus_type;
   7868 }
   7869 
   7870 /*
   7871  * Function:    soc_cm_pci_conf_read
   7872  * Purpose:     Perform a pci config read
   7873  *
   7874  * Parameters:  dev     - device handle
   7875  *              addr    - address to read
   7876  *
   7877  * Returns:     Register value
   7878  */
   7879 
   7880 uint32
   7881 soc_cm_pci_conf_read(int dev, uint32 addr)
   7882 {
   7883     if (CMVEC(dev).pci_conf_read) {
   7884         return CMVEC(dev).pci_conf_read(&CMDEV(dev).dev, addr);
   7885     }
   7886 
   7887     return 0;
   7888 }
   7889 
   7890 /*
   7891  * Function:    soc_cm_pci_conf_write
   7892  * Purpose:     Perform a pci config write
   7893  *
   7894  * Parameters:  dev     - device handle
   7895  *              addr    - address to write.
   7896  *              data    - double word to write
   7897  *
   7898  * Returns:     None
   7899  */
   7900 
   7901 void
   7902 soc_cm_pci_conf_write(int dev, uint32 addr, uint32 data)
   7903 {
   7904     if (CMVEC(dev).pci_conf_write) {
   7905         CMVEC(dev).pci_conf_write(&CMDEV(dev).dev, addr, data);
   7906     }
   7907 
   7908     return;
   7909 }
   7910 
   7911 /*
   7912  * Function:    soc_cm_get_endian
   7913  * Purpose:     Returns the required endian configuration for this device.
   7914  *
   7915  * Parameters:  dev     - device handle
   7916  *              pio     - (OUTPUT) receives the PIO endian configuration.
   7917  *              packet  - (OUTPUT) receives the PACKET endian configuration.
   7918  *              other   - (OUTPUT) receives the OTHER endian configuration.
   7919  *
   7920  * Returns:     SOC_E_XXX
   7921  */
   7922 
   7923 int
   7924 soc_cm_get_endian(int dev, int *pio, int *packet, int *other)
   7925 {
   7926     *pio = CMVEC(dev).big_endian_pio;
   7927     *packet = CMVEC(dev).big_endian_packet;
   7928     *other = CMVEC(dev).big_endian_other;
   7929     return SOC_E_NONE;
   7930 }
   7931 
   7932 /*
   7933  * Function:    soc_cm_dump
   7934  * Purpose:     Output configuration information about this device.
   7935  *
   7936  * Parameters:  dev - device handle
   7937  *
   7938  * Returns:     SOC_E_NONE
   7939  */
   7940 
   7941 int
   7942 soc_cm_dump(int dev)
   7943 {
   7944     LOG_CLI((BSL_META("CM: Base=%p\n"), (void *)CMVEC(dev).base_address));
   7945 
   7946     return SOC_E_NONE;
   7947 }
   7948 
   7949 /*
   7950  * Function:    soc_cm_config_var_get
   7951  * Purpose:     Gets the value a register should be initialized with when the
   7952  *              during chip initialization.
   7953  *
   7954  * Parameters:  dev     - device handle
   7955  *              name    - name of the register
   7956  *
   7957  * Returns:     A string version of the value.
   7958  *
   7959  * Note:        The return value a string version of reg value.
   7960  *              String values are valid, and should not be interpreted as error.
   7961  *              If not found, NULL is returned.
   7962  */
   7963 
   7964 char *
   7965 soc_cm_config_var_get(int dev, const char *name)
   7966 {
   7967     if (CMVEC(dev).config_var_get == NULL) {
   7968         return NULL;
   7969     }
   7970     return CMVEC(dev).config_var_get(&CMDEV(dev).dev, name);
   7971 }
   7972 
   7973 
   7974 /* Provided as a back door for current work-around requirements.
   7975  *
   7976  * Note:        The return value is the base address.
   7977  *              Positive values are valid, and should not be interpreted as error.
   7978  */
   7979 
   7980 sal_vaddr_t
   7981 soc_cm_get_base_address(int dev)
   7982 {
   7983     return CMVEC(dev).base_address;
   7984 }
   7985 
   7986 /* Debug routine to display info about known chips
   7987  *
   7988  * Returns:      None.
   7989  */
   7990 void
   7991 soc_cm_display_known_devices(void)
   7992 {
   7993     int                 i;
   7994     uint16              dev_id_driver = 0;
   7995     uint8               rev_id_driver = 0;
   7996 
   7997     LOG_CLI((BSL_META("%-8s%-16s%-16s%-16s\n"),
   7998              "Index", "Chip", "Chip   Dev/Rev", "Driver Dev/Rev"));
   7999 
   8000     for (i = 0; i < COUNTOF(soc_device_info); i++) {
   8001         soc_cm_get_id_driver(soc_device_info[i].dev_id,
   8002                              soc_device_info[i].rev_id,
   8003                              &dev_id_driver, &rev_id_driver);
   8004 
   8005         LOG_CLI((BSL_META("%-8d%-16s0x%04x 0x%02x     0x%04x 0x%02x\n"),
   8006                  i,
   8007                  soc_device_info[i].dev_name,
   8008                  soc_device_info[i].dev_id,
   8009                  soc_device_info[i].rev_id,
   8010                  dev_id_driver,
   8011                  rev_id_driver));
   8012     }
   8013 }
   8014 
   8015 /* 
   8016  * Purpose:   Read a 4 byte word from the device using an I2C connection to the device.
   8017  * 
   8018  * Parameters:
   8019  *            dev     - The device handle (from cm_device_create())
   8020  *            addr    - The address to access in the internal device address space.
   8021  *            value   - A pointer for storing the value to be read.
   8022  *
   8023  * Returns:   Zero on success.
   8024  */
   8025 int
   8026 soc_cm_i2c_device_read(int dev, uint32 addr, uint32 *value)
   8027 {
   8028     return CMVEC(dev).i2c_device_read ?
   8029       CMVEC(dev).i2c_device_read(&CMDEV(dev).dev, addr, value) : -1;
   8030 }
   8031 
   8032 /*
   8033  * Purpose:   Write a 4 byte word to the device using an I2C connection to the device.
   8034  * 
   8035  * Parameters:
   8036  *            dev     - The device handle (from cm_device_create())
   8037  *            addr    - The address to access in the internal device address space.
   8038  *            value   - The value to be written.
   8039  *
   8040  * Returns:   Zero on success.
   8041  */
   8042 int
   8043 soc_cm_i2c_device_write(int dev, uint32 addr, uint32 value)
   8044 {
   8045     return CMVEC(dev).i2c_device_write ?
   8046       CMVEC(dev).i2c_device_write(&CMDEV(dev).dev, addr, value) : -1;
   8047 }