Print this page
MFV: illumos-omnios@aea0472ecb9ee91fa70556d6f6a941c10c989f1d
Add support for Emulex Corporation Lancer Gen6: LPe32000 FC Host Adapter
Author: Andy Fiddaman <omnios@citrus-it.co.uk>
NEX-8705 Drivers for ATTO Celerity FC-162E Gen 5 and Celerity FC-162P Gen 6 16GB FC cards support
Reviewed by: Dan Fields <dan.fields@nexenta.com>
Reviewed by: Rick McNeal <rick.mcneal@nexenta.com>
NEX-1878 update emlxs from source provided by Emulex


   5  * Common Development and Distribution License (the "License").
   6  * You may not use this file except in compliance with the License.
   7  *
   8  * You can obtain a copy of the license at
   9  * http://www.opensource.org/licenses/cddl1.txt.
  10  * See the License for the specific language governing permissions
  11  * and limitations under the License.
  12  *
  13  * When distributing Covered Code, include this CDDL HEADER in each
  14  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
  15  * If applicable, add the following below this CDDL HEADER, with the
  16  * fields enclosed by brackets "[]" replaced with your own identifying
  17  * information: Portions Copyright [yyyy] [name of copyright owner]
  18  *
  19  * CDDL HEADER END
  20  */
  21 
  22 /*
  23  * Copyright (c) 2004-2012 Emulex. All rights reserved.
  24  * Use is subject to license terms.

  25  */
  26 
  27 #ifndef _EMLXS_ADAPTERS_H
  28 #define _EMLXS_ADAPTERS_H
  29 
  30 #ifdef  __cplusplus
  31 extern "C" {
  32 #endif
  33 
  34 /* Unique id for each adapter model */
  35 typedef enum emlxs_adapter
  36 {
  37         UNKNOWN_ADAPTER = 0,
  38 
  39         /* DragonFly (1) */
  40         LP8000S,        /* SBUS */
  41         LP8000,         /* Generic Single Channel */
  42         LP8000DC,       /* Generic Dual Channel */
  43 
  44         /* Centaur (4) */


  83         LP21002,        /* Generic Dual Channel */
  84 
  85         /* Saturn (33) */
  86         LPe12000,       /* Generic Single Channel */
  87         LPe12002,       /* Generic Dual Channel */
  88         LPe12000_O,     /* Oracle branded */
  89         LPe12002_O,     /* Oracle branded */
  90         LPem12002_O,    /* Oracle branded */
  91         LPem12002E_O,   /* Oracle branded */
  92         LPe12000_SP,    /* Spare */
  93         LPe12002_SP,    /* Spare */
  94 
  95         /* BE2 (41) */
  96         OCe10101,       /* Generic Single Channel */
  97         OCe10102,       /* Generic Dual Channel */
  98 
  99         /* BE3 (43) */
 100         OCe11101,       /* Generic Single Channel */
 101         OCe11102,       /* Generic Dual Channel */
 102 
 103         /* Lancer FC (45) */
 104         LPe16000,       /* Generic Single Channel FC */
 105         LPe1600X,       /* Generic Multi Channel FC */
 106         LPem16002_FC_O, /* Oracle branded */
 107         LPe16002_FC_O,  /* Oracle branded */
 108         LPe16002_FC_SP1, /* Oracle excluded - Spare */
 109         LPe16002_FC_SP2, /* Oracle excluded - Spare */
 110 
 111         /* Lancer FCoE (51) */
















 112         OCe15100,       /* Generic Single Channel FCOE */
 113         OCe1510X,       /* Generic Multi Channel FCOE */
 114         LPem16002_FE_O, /* Oracle branded */
 115         LPe16002_FE_O,  /* Oracle branded */
 116         LPe16002_FE_SP1, /* Oracle excluded - Spare */
 117         LPe16002_FE_SP2, /* Oracle excluded - Spare */
 118 
 119         /* BE4 (57) */
 120         OCe12104        /* 4-Port 2xNIC +2xFCoE */
 121 
 122 } emlxs_adapter_t;
 123 
 124 
 125 #define PCI_VENDOR_ID_EMULEX            0x10df

 126 
 127 /* Subsystem Vendor IDs */
 128 #define PCI_SSVID_EMULEX                0x10df
 129 #define PCI_SSVID_HP                    0x103c
 130 #define PCI_SSVID_IBM                   0x1014
 131 #define PCI_SSVID_FUJITSU               0x1734
 132 #define PCI_SSVID_CISCO                 0x1137
 133 #define PCI_SSVID_HITACHI               0x1054

 134 
 135 
 136 /* PCI_DEVICE_IDs & PCI_SSDIDs */
 137 /* F800: Dragonfly */
 138 #define PCI_DEVICE_ID_DRAGONFLY         0xf800
 139 #define PCI_SSDID_LP8000                0xf800
 140 #define PCI_SSDID_LP8000DC              0xf800  /* Identified by VPD PN */
 141 
 142 /* F085: Dragonfly SBUS */
 143 #define PCI_DEVICE_ID_DRAGONFLY_SBUS    0xf085  /* Identified by "lpfs" */
 144 #define PCI_SSDID_LP8000S               0xf085
 145 
 146 
 147 /* F900: Centaur */
 148 #define PCI_DEVICE_ID_CENTAUR           0xf900
 149 #define PCI_SSDID_LP9002L               0xf900
 150 #define PCI_SSDID_LP9002DC              0xf900  /* Identified by VPD PN */
 151 #define PCI_SSDID_LP9002C               0xf900  /* Identified by VPD PN */
 152 #define PCI_SSDID_LP9402DC              0xf900  /* Identified by VPD PN */
 153 


 239 #define PCI_SSDID_LPe12002_O            0xfc42
 240 #define PCI_SSDID_LPem12002_O           0xfc4e
 241 #define PCI_SSDID_LPem12002E_O          0xfc43
 242 
 243 
 244 /* 0704: BE2 (TigerShark) */
 245 #define PCI_DEVICE_ID_BE2               0x0704
 246 #define PCI_SSDID_OCe10101              0x0704
 247 #define PCI_SSDID_OCe10102              0x0704 /* Identified by cache_line */
 248 
 249 
 250 /* 0714: BE3 (TomCat) */
 251 #define PCI_DEVICE_ID_BE3               0x0714
 252 #define PCI_SSDID_OCe11101              0x0714
 253 #define PCI_SSDID_OCe11102              0x0714 /* Identified by cache_line */
 254 
 255 /* 0724: BE4 (Skyhawk) */
 256 #define PCI_DEVICE_ID_BE4               0x0724
 257 #define PCI_SSDID_OCe12104              0xEF81
 258 
 259 /* E200: Lancer FC */
 260 #define PCI_DEVICE_ID_LANCER_FC         0xE200
 261 #define PCI_SSDID_LPe16000              0xE200
 262 #define PCI_SSDID_LPe1600X              0xE200 /* Identified by cache_line */
 263 #define PCI_SSDID_LPem16002_FC_O        0xE20C
 264 #define PCI_SSDID_LPe16002_FC_O         0xE20E
 265 #define PCI_SSDID_LPe16002_FC_SP1       0xE217
 266 #define PCI_SSDID_LPe16002_FC_SP2       0xE219
 267 






 268 /* E260: Lancer FCoE */
 269 #define PCI_DEVICE_ID_LANCER_FE         0xE260
 270 #define PCI_SSDID_OCe15100              0xE260
 271 #define PCI_SSDID_OCe1510X              0xE260 /* Identified by cache_line */
 272 #define PCI_SSDID_LPem16002_FE_O        0xE20C
 273 #define PCI_SSDID_LPe16002_FE_O         0xE20E
 274 #define PCI_SSDID_LPe16002_FE_SP1       0xE217
 275 #define PCI_SSDID_LPe16002_FE_SP2       0xE219
 276 







 277 






 278 

 279 /* JEDEC codes */
 280 #define FIREFLY_JEDEC_ID        0x1ACC
 281 #define SUPERFLY_JEDEC_ID       0x0020
 282 #define DRAGONFLY_JEDEC_ID      0x0021
 283 #define DRAGONFLY_V2_JEDEC_ID   0x0025
 284 #define CENTAUR_2G_JEDEC_ID     0x0026
 285 #define CENTAUR_1G_JEDEC_ID     0x0028
 286 #define HELIOS_4G_JEDEC_ID      0x0364
 287 #define ZEPHYR_4G_JEDEC_ID      0x0577
 288 #define NEPTUNE_4G_JEDEC_ID     0x0510
 289 #define SATURN_8G_JEDEC_ID      0x1004
 290 #define PROTEUS_8G_JEDEC_ID     0x2634
 291 #define JEDEC_ID_MASK           0x0FFFF000
 292 #define JEDEC_ID_SHIFT          12
 293 #define FC_JEDEC_ID(id)         ((id & JEDEC_ID_MASK) >> JEDEC_ID_SHIFT)
 294 
 295 
 296 typedef struct emlxs_model
 297 {
 298         emlxs_adapter_t id;
 299         uint16_t        device_id;
 300         uint16_t        ssdid;
 301 
 302         char            model[32];
 303         char            model_desc[80];
 304         char            manufacturer[80];
 305         uint32_t        flags;
 306 
 307         /* flags */
 308 #define EMLXS_INTX_SUPPORTED    0x00000001
 309 #define EMLXS_MSI_SUPPORTED     0x00000002
 310 #define EMLXS_MSIX_SUPPORTED    0x00000004
 311 #define EMLXS_E2E_SUPPORTED     0x00000010 /* End-to-end authentication */


 312 #define EMLXS_ORACLE_BRANDED    0x10000000
 313 #define EMLXS_ORACLE_EXCLUDED   0x20000000
 314 #define EMLXS_NOT_SUPPORTED     0x80000000
 315 
 316         uint32_t        chip;
 317 
 318         /* chip */
 319 #define EMLXS_UNKNOWN_CHIP      0x00000000
 320 #define EMLXS_DRAGONFLY_CHIP    0x00000001
 321 #define EMLXS_CENTAUR_CHIP      0x00000002
 322 #define EMLXS_PEGASUS_CHIP      0x00000004
 323 #define EMLXS_THOR_CHIP         0x00000008
 324 #define EMLXS_HELIOS_CHIP       0x00000010
 325 #define EMLXS_ZEPHYR_CHIP       0x00000020
 326 #define EMLXS_NEPTUNE_CHIP      0x00000040
 327 #define EMLXS_SATURN_CHIP       0x00000080
 328 #define EMLXS_PROTEUS_CHIP      0x00000100
 329 #define EMLXS_BE2_CHIP          0x00000200
 330 #define EMLXS_BE3_CHIP          0x00000400
 331 #define EMLXS_BE4_CHIP          0x00000800


1623         },
1624 
1625         /* Lancer FC DC (Oracle Excluded - Spare 2) */
1626         {
1627                 LPe16002_FC_SP2,
1628                 PCI_DEVICE_ID_LANCER_FC,
1629                 PCI_SSDID_LPe16002_FC_SP2,
1630                 "LPe16002",
1631                 "Emulex LightPulse LPe16002 16Gb 2-port FC HBA",
1632                 "Emulex",
1633                 EMLXS_ORACLE_EXCLUDED | EMLXS_INTX_SUPPORTED |
1634                         EMLXS_MSI_SUPPORTED | EMLXS_MSIX_SUPPORTED |
1635                         EMLXS_E2E_SUPPORTED,
1636                 EMLXS_LANCER_CHIP,
1637                 FW_NOT_PROVIDED,
1638                 EMLXS_INTR_NO_LIMIT,
1639                 EMLXS_SLI4_MASK,
1640                 EMLXS_MULTI_CHANNEL,
1641                 NULL_PROG_TYPES,
1642         },































































































































































































1643 
1644         /* Lancer FCOE (Generic) */
1645         {
1646                 OCe15100,
1647                 PCI_DEVICE_ID_LANCER_FE,
1648                 PCI_SSDID_OCe15100,
1649                 "OCe15100",
1650                 "Emulex OneConnect OCe15100 10Gb 1-port FCoE HBA",
1651                 "Emulex",
1652                 EMLXS_INTX_SUPPORTED | EMLXS_MSI_SUPPORTED |
1653                         EMLXS_MSIX_SUPPORTED | EMLXS_E2E_SUPPORTED,
1654                 EMLXS_LANCER_CHIP,
1655                 FW_NOT_PROVIDED,
1656                 EMLXS_INTR_NO_LIMIT,
1657                 EMLXS_SLI4_MASK,
1658                 EMLXS_SINGLE_CHANNEL,
1659                 NULL_PROG_TYPES,
1660         },
1661 
1662         /* Lancer FCOE (Generic Multi-Channel) */




   5  * Common Development and Distribution License (the "License").
   6  * You may not use this file except in compliance with the License.
   7  *
   8  * You can obtain a copy of the license at
   9  * http://www.opensource.org/licenses/cddl1.txt.
  10  * See the License for the specific language governing permissions
  11  * and limitations under the License.
  12  *
  13  * When distributing Covered Code, include this CDDL HEADER in each
  14  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
  15  * If applicable, add the following below this CDDL HEADER, with the
  16  * fields enclosed by brackets "[]" replaced with your own identifying
  17  * information: Portions Copyright [yyyy] [name of copyright owner]
  18  *
  19  * CDDL HEADER END
  20  */
  21 
  22 /*
  23  * Copyright (c) 2004-2012 Emulex. All rights reserved.
  24  * Use is subject to license terms.
  25  * Copyright 2018 OmniOS Community Edition (OmniOSce) Association.
  26  */
  27 
  28 #ifndef _EMLXS_ADAPTERS_H
  29 #define _EMLXS_ADAPTERS_H
  30 
  31 #ifdef  __cplusplus
  32 extern "C" {
  33 #endif
  34 
  35 /* Unique id for each adapter model */
  36 typedef enum emlxs_adapter
  37 {
  38         UNKNOWN_ADAPTER = 0,
  39 
  40         /* DragonFly (1) */
  41         LP8000S,        /* SBUS */
  42         LP8000,         /* Generic Single Channel */
  43         LP8000DC,       /* Generic Dual Channel */
  44 
  45         /* Centaur (4) */


  84         LP21002,        /* Generic Dual Channel */
  85 
  86         /* Saturn (33) */
  87         LPe12000,       /* Generic Single Channel */
  88         LPe12002,       /* Generic Dual Channel */
  89         LPe12000_O,     /* Oracle branded */
  90         LPe12002_O,     /* Oracle branded */
  91         LPem12002_O,    /* Oracle branded */
  92         LPem12002E_O,   /* Oracle branded */
  93         LPe12000_SP,    /* Spare */
  94         LPe12002_SP,    /* Spare */
  95 
  96         /* BE2 (41) */
  97         OCe10101,       /* Generic Single Channel */
  98         OCe10102,       /* Generic Dual Channel */
  99 
 100         /* BE3 (43) */
 101         OCe11101,       /* Generic Single Channel */
 102         OCe11102,       /* Generic Dual Channel */
 103 
 104         /* Lancer FC Gen5 HBAs (45) */
 105         LPe16000,       /* Generic Single Channel FC */
 106         LPe1600X,       /* Generic Multi Channel FC */
 107         LPem16002_FC_O, /* Oracle branded */
 108         LPe16002_FC_O,  /* Oracle branded */
 109         LPe16002_FC_SP1, /* Oracle excluded - Spare */
 110         LPe16002_FC_SP2, /* Oracle excluded - Spare */
 111 
 112         /* Lancer FC Gen6 HBAs */
 113         LPe31000_M6_L,  /* Single port 16Gb, Lenovo-branded */
 114         LPe32000,       /* Generic Single Channel FC */
 115         LPe3200X,       /* Generic Multi Channel FC */
 116 
 117         /* Celerity 16 FC Gen5 */
 118         CelerityFC161E,
 119         CelerityFC162E,
 120         CelerityFC164E,
 121 
 122         /* Celerity 16 FC Gen6 */
 123         CelerityFC162P,
 124         CelerityFC164P,
 125         CelerityFC321E,
 126         CelerityFC322E,
 127 
 128         /* Lancer FCoE */
 129         OCe15100,       /* Generic Single Channel FCOE */
 130         OCe1510X,       /* Generic Multi Channel FCOE */
 131         LPem16002_FE_O, /* Oracle branded */
 132         LPe16002_FE_O,  /* Oracle branded */
 133         LPe16002_FE_SP1, /* Oracle excluded - Spare */
 134         LPe16002_FE_SP2, /* Oracle excluded - Spare */
 135 
 136         /* BE4 (57) */
 137         OCe12104        /* 4-Port 2xNIC +2xFCoE */
 138 
 139 } emlxs_adapter_t;
 140 
 141 
 142 #define PCI_VENDOR_ID_EMULEX            0x10df
 143 #define PCI_VENDOR_ID_ATTO              0x117c
 144 
 145 /* Subsystem Vendor IDs */
 146 #define PCI_SSVID_EMULEX                0x10df
 147 #define PCI_SSVID_HP                    0x103c
 148 #define PCI_SSVID_IBM                   0x1014
 149 #define PCI_SSVID_FUJITSU               0x1734
 150 #define PCI_SSVID_CISCO                 0x1137
 151 #define PCI_SSVID_HITACHI               0x1054
 152 #define PCI_SSVID_ATTO                  0x117c
 153 
 154 
 155 /* PCI_DEVICE_IDs & PCI_SSDIDs */
 156 /* F800: Dragonfly */
 157 #define PCI_DEVICE_ID_DRAGONFLY         0xf800
 158 #define PCI_SSDID_LP8000                0xf800
 159 #define PCI_SSDID_LP8000DC              0xf800  /* Identified by VPD PN */
 160 
 161 /* F085: Dragonfly SBUS */
 162 #define PCI_DEVICE_ID_DRAGONFLY_SBUS    0xf085  /* Identified by "lpfs" */
 163 #define PCI_SSDID_LP8000S               0xf085
 164 
 165 
 166 /* F900: Centaur */
 167 #define PCI_DEVICE_ID_CENTAUR           0xf900
 168 #define PCI_SSDID_LP9002L               0xf900
 169 #define PCI_SSDID_LP9002DC              0xf900  /* Identified by VPD PN */
 170 #define PCI_SSDID_LP9002C               0xf900  /* Identified by VPD PN */
 171 #define PCI_SSDID_LP9402DC              0xf900  /* Identified by VPD PN */
 172 


 258 #define PCI_SSDID_LPe12002_O            0xfc42
 259 #define PCI_SSDID_LPem12002_O           0xfc4e
 260 #define PCI_SSDID_LPem12002E_O          0xfc43
 261 
 262 
 263 /* 0704: BE2 (TigerShark) */
 264 #define PCI_DEVICE_ID_BE2               0x0704
 265 #define PCI_SSDID_OCe10101              0x0704
 266 #define PCI_SSDID_OCe10102              0x0704 /* Identified by cache_line */
 267 
 268 
 269 /* 0714: BE3 (TomCat) */
 270 #define PCI_DEVICE_ID_BE3               0x0714
 271 #define PCI_SSDID_OCe11101              0x0714
 272 #define PCI_SSDID_OCe11102              0x0714 /* Identified by cache_line */
 273 
 274 /* 0724: BE4 (Skyhawk) */
 275 #define PCI_DEVICE_ID_BE4               0x0724
 276 #define PCI_SSDID_OCe12104              0xEF81
 277 
 278 /* E200: Lancer FC Gen5 */
 279 #define PCI_DEVICE_ID_LANCER_FC         0xE200
 280 #define PCI_SSDID_LPe16000              0xE200
 281 #define PCI_SSDID_LPe1600X              0xE200 /* Identified by cache_line */
 282 #define PCI_SSDID_LPem16002_FC_O        0xE20C
 283 #define PCI_SSDID_LPe16002_FC_O         0xE20E
 284 #define PCI_SSDID_LPe16002_FC_SP1       0xE217
 285 #define PCI_SSDID_LPe16002_FC_SP2       0xE219
 286 
 287 /* E300: Lancer FC Gen6 */
 288 #define PCI_DEVICE_ID_LANCER_G6_FC      0xE300
 289 #define PCI_SSDID_LPe31000_M6_L         0xE333
 290 #define PCI_SSDID_LPe32000              0xE300
 291 #define PCI_SSDID_LPe3200X              0xE300
 292 
 293 /* E260: Lancer FCoE */
 294 #define PCI_DEVICE_ID_LANCER_FE         0xE260
 295 #define PCI_SSDID_OCe15100              0xE260
 296 #define PCI_SSDID_OCe1510X              0xE260 /* Identified by cache_line */
 297 #define PCI_SSDID_LPem16002_FE_O        0xE20C
 298 #define PCI_SSDID_LPe16002_FE_O         0xE20E
 299 #define PCI_SSDID_LPe16002_FE_SP1       0xE217
 300 #define PCI_SSDID_LPe16002_FE_SP2       0xE219
 301 
 302 /* 0063: ATTO Celerity 16 FC Gen5 */
 303 #define PCI_DEVICE_ID_CLRTY_FC_161E     0x0063
 304 #define PCI_DEVICE_ID_CLRTY_FC_162E     0x0064
 305 #define PCI_DEVICE_ID_CLRTY_FC_164E     0x0065
 306 #define PCI_SSDID_CLRTY_FC_161E 0x0063
 307 #define PCI_SSDID_CLRTY_FC_162E 0x0064
 308 #define PCI_SSDID_CLRTY_FC_164E 0x0065
 309 
 310 /* 0094 ATTO Celerity 16 FC Gen6 */
 311 #define PCI_DEVICE_ID_CLRTY_FC_G6       0x0094
 312 #define PCI_SSDID_CLRTY_FC_162P 0x0094
 313 #define PCI_SSDID_CLRTY_FC_164P 0x00A1
 314 #define PCI_SSDID_CLRTY_FC_321E 0x00A2
 315 #define PCI_SSDID_CLRTY_FC_322E 0x00A3
 316 
 317 
 318 /* JEDEC codes */
 319 #define FIREFLY_JEDEC_ID        0x1ACC
 320 #define SUPERFLY_JEDEC_ID       0x0020
 321 #define DRAGONFLY_JEDEC_ID      0x0021
 322 #define DRAGONFLY_V2_JEDEC_ID   0x0025
 323 #define CENTAUR_2G_JEDEC_ID     0x0026
 324 #define CENTAUR_1G_JEDEC_ID     0x0028
 325 #define HELIOS_4G_JEDEC_ID      0x0364
 326 #define ZEPHYR_4G_JEDEC_ID      0x0577
 327 #define NEPTUNE_4G_JEDEC_ID     0x0510
 328 #define SATURN_8G_JEDEC_ID      0x1004
 329 #define PROTEUS_8G_JEDEC_ID     0x2634
 330 #define JEDEC_ID_MASK           0x0FFFF000
 331 #define JEDEC_ID_SHIFT          12
 332 #define FC_JEDEC_ID(id)         ((id & JEDEC_ID_MASK) >> JEDEC_ID_SHIFT)
 333 
 334 
 335 typedef struct emlxs_model
 336 {
 337         emlxs_adapter_t id;
 338         uint16_t        device_id;
 339         uint16_t        ssdid;
 340 
 341         char            model[32];
 342         char            model_desc[80];
 343         char            manufacturer[80];
 344         uint32_t        flags;
 345 
 346         /* flags */
 347 #define EMLXS_INTX_SUPPORTED    0x00000001
 348 #define EMLXS_MSI_SUPPORTED     0x00000002
 349 #define EMLXS_MSIX_SUPPORTED    0x00000004
 350 #define EMLXS_E2E_SUPPORTED     0x00000010 /* End-to-end authentication */
 351 #define EMLXS_FC_GEN6           0x00000020
 352 #define EMLXS_GPIO_LEDS         0x00000040
 353 #define EMLXS_ORACLE_BRANDED    0x10000000
 354 #define EMLXS_ORACLE_EXCLUDED   0x20000000
 355 #define EMLXS_NOT_SUPPORTED     0x80000000
 356 
 357         uint32_t        chip;
 358 
 359         /* chip */
 360 #define EMLXS_UNKNOWN_CHIP      0x00000000
 361 #define EMLXS_DRAGONFLY_CHIP    0x00000001
 362 #define EMLXS_CENTAUR_CHIP      0x00000002
 363 #define EMLXS_PEGASUS_CHIP      0x00000004
 364 #define EMLXS_THOR_CHIP         0x00000008
 365 #define EMLXS_HELIOS_CHIP       0x00000010
 366 #define EMLXS_ZEPHYR_CHIP       0x00000020
 367 #define EMLXS_NEPTUNE_CHIP      0x00000040
 368 #define EMLXS_SATURN_CHIP       0x00000080
 369 #define EMLXS_PROTEUS_CHIP      0x00000100
 370 #define EMLXS_BE2_CHIP          0x00000200
 371 #define EMLXS_BE3_CHIP          0x00000400
 372 #define EMLXS_BE4_CHIP          0x00000800


1664         },
1665 
1666         /* Lancer FC DC (Oracle Excluded - Spare 2) */
1667         {
1668                 LPe16002_FC_SP2,
1669                 PCI_DEVICE_ID_LANCER_FC,
1670                 PCI_SSDID_LPe16002_FC_SP2,
1671                 "LPe16002",
1672                 "Emulex LightPulse LPe16002 16Gb 2-port FC HBA",
1673                 "Emulex",
1674                 EMLXS_ORACLE_EXCLUDED | EMLXS_INTX_SUPPORTED |
1675                         EMLXS_MSI_SUPPORTED | EMLXS_MSIX_SUPPORTED |
1676                         EMLXS_E2E_SUPPORTED,
1677                 EMLXS_LANCER_CHIP,
1678                 FW_NOT_PROVIDED,
1679                 EMLXS_INTR_NO_LIMIT,
1680                 EMLXS_SLI4_MASK,
1681                 EMLXS_MULTI_CHANNEL,
1682                 NULL_PROG_TYPES,
1683         },
1684 
1685         /* Lancer Gen6 16Gb FC Single-port, Lenovo-branded */
1686         {
1687                 LPe31000_M6_L,
1688                 PCI_DEVICE_ID_LANCER_G6_FC,
1689                 PCI_SSDID_LPe31000_M6_L,
1690                 "LPe31000",
1691                 "PCI_SSDID_LPe31000_M6_L",
1692                 "Emulex",
1693                 EMLXS_INTX_SUPPORTED |
1694                         EMLXS_MSI_SUPPORTED | EMLXS_MSIX_SUPPORTED |
1695                         EMLXS_E2E_SUPPORTED | EMLXS_FC_GEN6,
1696                 EMLXS_LANCER_CHIP,
1697                 FW_NOT_PROVIDED,
1698                 EMLXS_INTR_NO_LIMIT,
1699                 EMLXS_SLI4_MASK,
1700                 EMLXS_SINGLE_CHANNEL,
1701                 NULL_PROG_TYPES,
1702         },
1703 
1704         /* Lancer Gen6 FC (Generic) */
1705         {
1706                 LPe32000,
1707                 PCI_DEVICE_ID_LANCER_G6_FC,
1708                 PCI_SSDID_LPe32000,
1709                 "LPe32000",
1710                 "Emulex LightPulse LPe32000 32Gb 1-port FC HBA",
1711                 "Emulex",
1712                 EMLXS_INTX_SUPPORTED |
1713                         EMLXS_MSI_SUPPORTED | EMLXS_MSIX_SUPPORTED |
1714                         EMLXS_E2E_SUPPORTED | EMLXS_FC_GEN6,
1715                 EMLXS_LANCER_CHIP,
1716                 FW_NOT_PROVIDED,
1717                 EMLXS_INTR_NO_LIMIT,
1718                 EMLXS_SLI4_MASK,
1719                 EMLXS_SINGLE_CHANNEL,
1720                 NULL_PROG_TYPES,
1721         },
1722 
1723         /* Lancer Gen6 FC (Generic Multi-Channel) */
1724         /* !! Must always follow the single channel entry in list */
1725         {
1726                 LPe3200X,
1727                 PCI_DEVICE_ID_LANCER_G6_FC,
1728                 PCI_SSDID_LPe3200X,
1729                 "LPe32000",
1730                 "Emulex LightPulse LPe32000 32Gb Multi-port FC HBA",
1731                 "Emulex",
1732                 EMLXS_INTX_SUPPORTED |
1733                         EMLXS_MSI_SUPPORTED | EMLXS_MSIX_SUPPORTED |
1734                         EMLXS_E2E_SUPPORTED | EMLXS_FC_GEN6,
1735                 EMLXS_LANCER_CHIP,
1736                 FW_NOT_PROVIDED,
1737                 EMLXS_INTR_NO_LIMIT,
1738                 EMLXS_SLI4_MASK,
1739                 EMLXS_MULTI_CHANNEL,
1740                 NULL_PROG_TYPES,
1741         },
1742 
1743         /* ATTO Celerity 161E */
1744         {
1745                 CelerityFC161E,
1746                 PCI_DEVICE_ID_CLRTY_FC_161E,
1747                 PCI_SSDID_CLRTY_FC_161E,
1748                 "Celerity FC 161E",
1749                 "ATTO Celerity 161E Single-Channel FC HBA",
1750                 "ATTO Technology",
1751                 EMLXS_INTX_SUPPORTED |
1752                         EMLXS_MSI_SUPPORTED | EMLXS_MSIX_SUPPORTED |
1753                         EMLXS_E2E_SUPPORTED | EMLXS_GPIO_LEDS,
1754                 EMLXS_LANCER_CHIP,
1755                 FW_NOT_PROVIDED,
1756                 EMLXS_INTR_NO_LIMIT,
1757                 EMLXS_SLI4_MASK,
1758                 EMLXS_SINGLE_CHANNEL,
1759                 NULL_PROG_TYPES,
1760         },
1761 
1762         /* ATTO Celerity 162E */
1763         {
1764                 CelerityFC162E,
1765                 PCI_DEVICE_ID_CLRTY_FC_162E,
1766                 PCI_SSDID_CLRTY_FC_162E,
1767                 "Celerity FC 162E",
1768                 "ATTO Celerity 162E Dual-Channel FC HBA",
1769                 "ATTO Technology",
1770                 EMLXS_INTX_SUPPORTED |
1771                         EMLXS_MSI_SUPPORTED | EMLXS_MSIX_SUPPORTED |
1772                         EMLXS_E2E_SUPPORTED | EMLXS_GPIO_LEDS,
1773                 EMLXS_LANCER_CHIP,
1774                 FW_NOT_PROVIDED,
1775                 EMLXS_INTR_NO_LIMIT,
1776                 EMLXS_SLI4_MASK,
1777                 EMLXS_SINGLE_CHANNEL,
1778                 NULL_PROG_TYPES,
1779         },
1780 
1781         /* ATTO Celerity 164E */
1782         {
1783                 CelerityFC164E,
1784                 PCI_DEVICE_ID_CLRTY_FC_164E,
1785                 PCI_SSDID_CLRTY_FC_164E,
1786                 "Celerity FC 164E",
1787                 "ATTO Celerity 164E Quad-Channel FC HBA",
1788                 "ATTO Technology",
1789                 EMLXS_INTX_SUPPORTED |
1790                         EMLXS_MSI_SUPPORTED | EMLXS_MSIX_SUPPORTED |
1791                         EMLXS_E2E_SUPPORTED | EMLXS_GPIO_LEDS,
1792                 EMLXS_LANCER_CHIP,
1793                 FW_NOT_PROVIDED,
1794                 EMLXS_INTR_NO_LIMIT,
1795                 EMLXS_SLI4_MASK,
1796                 EMLXS_SINGLE_CHANNEL,
1797                 NULL_PROG_TYPES,
1798         },
1799 
1800         /* ATTO Celerity 162P */
1801         {
1802                 CelerityFC162P,
1803                 PCI_DEVICE_ID_CLRTY_FC_G6,
1804                 PCI_SSDID_CLRTY_FC_162P,
1805                 "Celerity FC 162P",
1806                 "ATTO Celerity 162P Dual-Channel FC HBA",
1807                 "ATTO Technology",
1808                 EMLXS_INTX_SUPPORTED |
1809                         EMLXS_MSI_SUPPORTED | EMLXS_MSIX_SUPPORTED |
1810                         EMLXS_E2E_SUPPORTED | EMLXS_FC_GEN6,
1811                 EMLXS_LANCER_CHIP,
1812                 FW_NOT_PROVIDED,
1813                 EMLXS_INTR_NO_LIMIT,
1814                 EMLXS_SLI4_MASK,
1815                 EMLXS_SINGLE_CHANNEL,
1816                 NULL_PROG_TYPES,
1817         },
1818 
1819         /* ATTO Celerity 164P */
1820         {
1821                 CelerityFC164P,
1822                 PCI_DEVICE_ID_CLRTY_FC_G6,
1823                 PCI_SSDID_CLRTY_FC_164P,
1824                 "Celerity FC 164P",
1825                 "ATTO Celerity 164P Quad-Channel FC HBA",
1826                 "ATTO Technology",
1827                 EMLXS_INTX_SUPPORTED |
1828                         EMLXS_MSI_SUPPORTED | EMLXS_MSIX_SUPPORTED |
1829                         EMLXS_E2E_SUPPORTED | EMLXS_FC_GEN6,
1830                 EMLXS_LANCER_CHIP,
1831                 FW_NOT_PROVIDED,
1832                 EMLXS_INTR_NO_LIMIT,
1833                 EMLXS_SLI4_MASK,
1834                 EMLXS_SINGLE_CHANNEL,
1835                 NULL_PROG_TYPES,
1836         },
1837 
1838         /* ATTO Celerity 321E */
1839         {
1840                 CelerityFC321E,
1841                 PCI_DEVICE_ID_CLRTY_FC_G6,
1842                 PCI_SSDID_CLRTY_FC_321E,
1843                 "Celerity FC 321E",
1844                 "ATTO Celerity 321E Single-Channel FC HBA",
1845                 "ATTO Technology",
1846                 EMLXS_INTX_SUPPORTED |
1847                         EMLXS_MSI_SUPPORTED | EMLXS_MSIX_SUPPORTED |
1848                         EMLXS_E2E_SUPPORTED | EMLXS_FC_GEN6,
1849                 EMLXS_LANCER_CHIP,
1850                 FW_NOT_PROVIDED,
1851                 EMLXS_INTR_NO_LIMIT,
1852                 EMLXS_SLI4_MASK,
1853                 EMLXS_SINGLE_CHANNEL,
1854                 NULL_PROG_TYPES,
1855         },
1856 
1857         /* ATTO Celerity 322E */
1858         {
1859                 CelerityFC322E,
1860                 PCI_DEVICE_ID_CLRTY_FC_G6,
1861                 PCI_SSDID_CLRTY_FC_322E,
1862                 "Celerity FC 322E",
1863                 "ATTO Celerity 322E Dual-Channel FC HBA",
1864                 "ATTO Technology",
1865                 EMLXS_INTX_SUPPORTED |
1866                         EMLXS_MSI_SUPPORTED | EMLXS_MSIX_SUPPORTED |
1867                         EMLXS_E2E_SUPPORTED | EMLXS_FC_GEN6,
1868                 EMLXS_LANCER_CHIP,
1869                 FW_NOT_PROVIDED,
1870                 EMLXS_INTR_NO_LIMIT,
1871                 EMLXS_SLI4_MASK,
1872                 EMLXS_SINGLE_CHANNEL,
1873                 NULL_PROG_TYPES,
1874         },
1875 
1876         /* Lancer FCOE (Generic) */
1877         {
1878                 OCe15100,
1879                 PCI_DEVICE_ID_LANCER_FE,
1880                 PCI_SSDID_OCe15100,
1881                 "OCe15100",
1882                 "Emulex OneConnect OCe15100 10Gb 1-port FCoE HBA",
1883                 "Emulex",
1884                 EMLXS_INTX_SUPPORTED | EMLXS_MSI_SUPPORTED |
1885                         EMLXS_MSIX_SUPPORTED | EMLXS_E2E_SUPPORTED,
1886                 EMLXS_LANCER_CHIP,
1887                 FW_NOT_PROVIDED,
1888                 EMLXS_INTR_NO_LIMIT,
1889                 EMLXS_SLI4_MASK,
1890                 EMLXS_SINGLE_CHANNEL,
1891                 NULL_PROG_TYPES,
1892         },
1893 
1894         /* Lancer FCOE (Generic Multi-Channel) */