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
*** 20,29 ****
--- 20,30 ----
*/
/*
* Copyright (c) 2004-2012 Emulex. All rights reserved.
* Use is subject to license terms.
+ * Copyright 2018 OmniOS Community Edition (OmniOSce) Association.
*/
#ifndef _EMLXS_ADAPTERS_H
#define _EMLXS_ADAPTERS_H
*** 98,116 ****
/* BE3 (43) */
OCe11101, /* Generic Single Channel */
OCe11102, /* Generic Dual Channel */
! /* Lancer FC (45) */
LPe16000, /* Generic Single Channel FC */
LPe1600X, /* Generic Multi Channel FC */
LPem16002_FC_O, /* Oracle branded */
LPe16002_FC_O, /* Oracle branded */
LPe16002_FC_SP1, /* Oracle excluded - Spare */
LPe16002_FC_SP2, /* Oracle excluded - Spare */
! /* Lancer FCoE (51) */
OCe15100, /* Generic Single Channel FCOE */
OCe1510X, /* Generic Multi Channel FCOE */
LPem16002_FE_O, /* Oracle branded */
LPe16002_FE_O, /* Oracle branded */
LPe16002_FE_SP1, /* Oracle excluded - Spare */
--- 99,133 ----
/* BE3 (43) */
OCe11101, /* Generic Single Channel */
OCe11102, /* Generic Dual Channel */
! /* Lancer FC Gen5 HBAs (45) */
LPe16000, /* Generic Single Channel FC */
LPe1600X, /* Generic Multi Channel FC */
LPem16002_FC_O, /* Oracle branded */
LPe16002_FC_O, /* Oracle branded */
LPe16002_FC_SP1, /* Oracle excluded - Spare */
LPe16002_FC_SP2, /* Oracle excluded - Spare */
! /* Lancer FC Gen6 HBAs */
! LPe31000_M6_L, /* Single port 16Gb, Lenovo-branded */
! LPe32000, /* Generic Single Channel FC */
! LPe3200X, /* Generic Multi Channel FC */
!
! /* Celerity 16 FC Gen5 */
! CelerityFC161E,
! CelerityFC162E,
! CelerityFC164E,
!
! /* Celerity 16 FC Gen6 */
! CelerityFC162P,
! CelerityFC164P,
! CelerityFC321E,
! CelerityFC322E,
!
! /* Lancer FCoE */
OCe15100, /* Generic Single Channel FCOE */
OCe1510X, /* Generic Multi Channel FCOE */
LPem16002_FE_O, /* Oracle branded */
LPe16002_FE_O, /* Oracle branded */
LPe16002_FE_SP1, /* Oracle excluded - Spare */
*** 121,138 ****
--- 138,157 ----
} emlxs_adapter_t;
#define PCI_VENDOR_ID_EMULEX 0x10df
+ #define PCI_VENDOR_ID_ATTO 0x117c
/* Subsystem Vendor IDs */
#define PCI_SSVID_EMULEX 0x10df
#define PCI_SSVID_HP 0x103c
#define PCI_SSVID_IBM 0x1014
#define PCI_SSVID_FUJITSU 0x1734
#define PCI_SSVID_CISCO 0x1137
#define PCI_SSVID_HITACHI 0x1054
+ #define PCI_SSVID_ATTO 0x117c
/* PCI_DEVICE_IDs & PCI_SSDIDs */
/* F800: Dragonfly */
#define PCI_DEVICE_ID_DRAGONFLY 0xf800
*** 254,283 ****
/* 0724: BE4 (Skyhawk) */
#define PCI_DEVICE_ID_BE4 0x0724
#define PCI_SSDID_OCe12104 0xEF81
! /* E200: Lancer FC */
#define PCI_DEVICE_ID_LANCER_FC 0xE200
#define PCI_SSDID_LPe16000 0xE200
#define PCI_SSDID_LPe1600X 0xE200 /* Identified by cache_line */
#define PCI_SSDID_LPem16002_FC_O 0xE20C
#define PCI_SSDID_LPe16002_FC_O 0xE20E
#define PCI_SSDID_LPe16002_FC_SP1 0xE217
#define PCI_SSDID_LPe16002_FC_SP2 0xE219
/* E260: Lancer FCoE */
#define PCI_DEVICE_ID_LANCER_FE 0xE260
#define PCI_SSDID_OCe15100 0xE260
#define PCI_SSDID_OCe1510X 0xE260 /* Identified by cache_line */
#define PCI_SSDID_LPem16002_FE_O 0xE20C
#define PCI_SSDID_LPe16002_FE_O 0xE20E
#define PCI_SSDID_LPe16002_FE_SP1 0xE217
#define PCI_SSDID_LPe16002_FE_SP2 0xE219
/* JEDEC codes */
#define FIREFLY_JEDEC_ID 0x1ACC
#define SUPERFLY_JEDEC_ID 0x0020
#define DRAGONFLY_JEDEC_ID 0x0021
#define DRAGONFLY_V2_JEDEC_ID 0x0025
--- 273,322 ----
/* 0724: BE4 (Skyhawk) */
#define PCI_DEVICE_ID_BE4 0x0724
#define PCI_SSDID_OCe12104 0xEF81
! /* E200: Lancer FC Gen5 */
#define PCI_DEVICE_ID_LANCER_FC 0xE200
#define PCI_SSDID_LPe16000 0xE200
#define PCI_SSDID_LPe1600X 0xE200 /* Identified by cache_line */
#define PCI_SSDID_LPem16002_FC_O 0xE20C
#define PCI_SSDID_LPe16002_FC_O 0xE20E
#define PCI_SSDID_LPe16002_FC_SP1 0xE217
#define PCI_SSDID_LPe16002_FC_SP2 0xE219
+ /* E300: Lancer FC Gen6 */
+ #define PCI_DEVICE_ID_LANCER_G6_FC 0xE300
+ #define PCI_SSDID_LPe31000_M6_L 0xE333
+ #define PCI_SSDID_LPe32000 0xE300
+ #define PCI_SSDID_LPe3200X 0xE300
+
/* E260: Lancer FCoE */
#define PCI_DEVICE_ID_LANCER_FE 0xE260
#define PCI_SSDID_OCe15100 0xE260
#define PCI_SSDID_OCe1510X 0xE260 /* Identified by cache_line */
#define PCI_SSDID_LPem16002_FE_O 0xE20C
#define PCI_SSDID_LPe16002_FE_O 0xE20E
#define PCI_SSDID_LPe16002_FE_SP1 0xE217
#define PCI_SSDID_LPe16002_FE_SP2 0xE219
+ /* 0063: ATTO Celerity 16 FC Gen5 */
+ #define PCI_DEVICE_ID_CLRTY_FC_161E 0x0063
+ #define PCI_DEVICE_ID_CLRTY_FC_162E 0x0064
+ #define PCI_DEVICE_ID_CLRTY_FC_164E 0x0065
+ #define PCI_SSDID_CLRTY_FC_161E 0x0063
+ #define PCI_SSDID_CLRTY_FC_162E 0x0064
+ #define PCI_SSDID_CLRTY_FC_164E 0x0065
+ /* 0094 ATTO Celerity 16 FC Gen6 */
+ #define PCI_DEVICE_ID_CLRTY_FC_G6 0x0094
+ #define PCI_SSDID_CLRTY_FC_162P 0x0094
+ #define PCI_SSDID_CLRTY_FC_164P 0x00A1
+ #define PCI_SSDID_CLRTY_FC_321E 0x00A2
+ #define PCI_SSDID_CLRTY_FC_322E 0x00A3
+
/* JEDEC codes */
#define FIREFLY_JEDEC_ID 0x1ACC
#define SUPERFLY_JEDEC_ID 0x0020
#define DRAGONFLY_JEDEC_ID 0x0021
#define DRAGONFLY_V2_JEDEC_ID 0x0025
*** 307,316 ****
--- 346,357 ----
/* flags */
#define EMLXS_INTX_SUPPORTED 0x00000001
#define EMLXS_MSI_SUPPORTED 0x00000002
#define EMLXS_MSIX_SUPPORTED 0x00000004
#define EMLXS_E2E_SUPPORTED 0x00000010 /* End-to-end authentication */
+ #define EMLXS_FC_GEN6 0x00000020
+ #define EMLXS_GPIO_LEDS 0x00000040
#define EMLXS_ORACLE_BRANDED 0x10000000
#define EMLXS_ORACLE_EXCLUDED 0x20000000
#define EMLXS_NOT_SUPPORTED 0x80000000
uint32_t chip;
*** 1638,1647 ****
--- 1679,1879 ----
EMLXS_INTR_NO_LIMIT,
EMLXS_SLI4_MASK,
EMLXS_MULTI_CHANNEL,
NULL_PROG_TYPES,
},
+
+ /* Lancer Gen6 16Gb FC Single-port, Lenovo-branded */
+ {
+ LPe31000_M6_L,
+ PCI_DEVICE_ID_LANCER_G6_FC,
+ PCI_SSDID_LPe31000_M6_L,
+ "LPe31000",
+ "PCI_SSDID_LPe31000_M6_L",
+ "Emulex",
+ EMLXS_INTX_SUPPORTED |
+ EMLXS_MSI_SUPPORTED | EMLXS_MSIX_SUPPORTED |
+ EMLXS_E2E_SUPPORTED | EMLXS_FC_GEN6,
+ EMLXS_LANCER_CHIP,
+ FW_NOT_PROVIDED,
+ EMLXS_INTR_NO_LIMIT,
+ EMLXS_SLI4_MASK,
+ EMLXS_SINGLE_CHANNEL,
+ NULL_PROG_TYPES,
+ },
+
+ /* Lancer Gen6 FC (Generic) */
+ {
+ LPe32000,
+ PCI_DEVICE_ID_LANCER_G6_FC,
+ PCI_SSDID_LPe32000,
+ "LPe32000",
+ "Emulex LightPulse LPe32000 32Gb 1-port FC HBA",
+ "Emulex",
+ EMLXS_INTX_SUPPORTED |
+ EMLXS_MSI_SUPPORTED | EMLXS_MSIX_SUPPORTED |
+ EMLXS_E2E_SUPPORTED | EMLXS_FC_GEN6,
+ EMLXS_LANCER_CHIP,
+ FW_NOT_PROVIDED,
+ EMLXS_INTR_NO_LIMIT,
+ EMLXS_SLI4_MASK,
+ EMLXS_SINGLE_CHANNEL,
+ NULL_PROG_TYPES,
+ },
+
+ /* Lancer Gen6 FC (Generic Multi-Channel) */
+ /* !! Must always follow the single channel entry in list */
+ {
+ LPe3200X,
+ PCI_DEVICE_ID_LANCER_G6_FC,
+ PCI_SSDID_LPe3200X,
+ "LPe32000",
+ "Emulex LightPulse LPe32000 32Gb Multi-port FC HBA",
+ "Emulex",
+ EMLXS_INTX_SUPPORTED |
+ EMLXS_MSI_SUPPORTED | EMLXS_MSIX_SUPPORTED |
+ EMLXS_E2E_SUPPORTED | EMLXS_FC_GEN6,
+ EMLXS_LANCER_CHIP,
+ FW_NOT_PROVIDED,
+ EMLXS_INTR_NO_LIMIT,
+ EMLXS_SLI4_MASK,
+ EMLXS_MULTI_CHANNEL,
+ NULL_PROG_TYPES,
+ },
+
+ /* ATTO Celerity 161E */
+ {
+ CelerityFC161E,
+ PCI_DEVICE_ID_CLRTY_FC_161E,
+ PCI_SSDID_CLRTY_FC_161E,
+ "Celerity FC 161E",
+ "ATTO Celerity 161E Single-Channel FC HBA",
+ "ATTO Technology",
+ EMLXS_INTX_SUPPORTED |
+ EMLXS_MSI_SUPPORTED | EMLXS_MSIX_SUPPORTED |
+ EMLXS_E2E_SUPPORTED | EMLXS_GPIO_LEDS,
+ EMLXS_LANCER_CHIP,
+ FW_NOT_PROVIDED,
+ EMLXS_INTR_NO_LIMIT,
+ EMLXS_SLI4_MASK,
+ EMLXS_SINGLE_CHANNEL,
+ NULL_PROG_TYPES,
+ },
+
+ /* ATTO Celerity 162E */
+ {
+ CelerityFC162E,
+ PCI_DEVICE_ID_CLRTY_FC_162E,
+ PCI_SSDID_CLRTY_FC_162E,
+ "Celerity FC 162E",
+ "ATTO Celerity 162E Dual-Channel FC HBA",
+ "ATTO Technology",
+ EMLXS_INTX_SUPPORTED |
+ EMLXS_MSI_SUPPORTED | EMLXS_MSIX_SUPPORTED |
+ EMLXS_E2E_SUPPORTED | EMLXS_GPIO_LEDS,
+ EMLXS_LANCER_CHIP,
+ FW_NOT_PROVIDED,
+ EMLXS_INTR_NO_LIMIT,
+ EMLXS_SLI4_MASK,
+ EMLXS_SINGLE_CHANNEL,
+ NULL_PROG_TYPES,
+ },
+
+ /* ATTO Celerity 164E */
+ {
+ CelerityFC164E,
+ PCI_DEVICE_ID_CLRTY_FC_164E,
+ PCI_SSDID_CLRTY_FC_164E,
+ "Celerity FC 164E",
+ "ATTO Celerity 164E Quad-Channel FC HBA",
+ "ATTO Technology",
+ EMLXS_INTX_SUPPORTED |
+ EMLXS_MSI_SUPPORTED | EMLXS_MSIX_SUPPORTED |
+ EMLXS_E2E_SUPPORTED | EMLXS_GPIO_LEDS,
+ EMLXS_LANCER_CHIP,
+ FW_NOT_PROVIDED,
+ EMLXS_INTR_NO_LIMIT,
+ EMLXS_SLI4_MASK,
+ EMLXS_SINGLE_CHANNEL,
+ NULL_PROG_TYPES,
+ },
+
+ /* ATTO Celerity 162P */
+ {
+ CelerityFC162P,
+ PCI_DEVICE_ID_CLRTY_FC_G6,
+ PCI_SSDID_CLRTY_FC_162P,
+ "Celerity FC 162P",
+ "ATTO Celerity 162P Dual-Channel FC HBA",
+ "ATTO Technology",
+ EMLXS_INTX_SUPPORTED |
+ EMLXS_MSI_SUPPORTED | EMLXS_MSIX_SUPPORTED |
+ EMLXS_E2E_SUPPORTED | EMLXS_FC_GEN6,
+ EMLXS_LANCER_CHIP,
+ FW_NOT_PROVIDED,
+ EMLXS_INTR_NO_LIMIT,
+ EMLXS_SLI4_MASK,
+ EMLXS_SINGLE_CHANNEL,
+ NULL_PROG_TYPES,
+ },
+
+ /* ATTO Celerity 164P */
+ {
+ CelerityFC164P,
+ PCI_DEVICE_ID_CLRTY_FC_G6,
+ PCI_SSDID_CLRTY_FC_164P,
+ "Celerity FC 164P",
+ "ATTO Celerity 164P Quad-Channel FC HBA",
+ "ATTO Technology",
+ EMLXS_INTX_SUPPORTED |
+ EMLXS_MSI_SUPPORTED | EMLXS_MSIX_SUPPORTED |
+ EMLXS_E2E_SUPPORTED | EMLXS_FC_GEN6,
+ EMLXS_LANCER_CHIP,
+ FW_NOT_PROVIDED,
+ EMLXS_INTR_NO_LIMIT,
+ EMLXS_SLI4_MASK,
+ EMLXS_SINGLE_CHANNEL,
+ NULL_PROG_TYPES,
+ },
+
+ /* ATTO Celerity 321E */
+ {
+ CelerityFC321E,
+ PCI_DEVICE_ID_CLRTY_FC_G6,
+ PCI_SSDID_CLRTY_FC_321E,
+ "Celerity FC 321E",
+ "ATTO Celerity 321E Single-Channel FC HBA",
+ "ATTO Technology",
+ EMLXS_INTX_SUPPORTED |
+ EMLXS_MSI_SUPPORTED | EMLXS_MSIX_SUPPORTED |
+ EMLXS_E2E_SUPPORTED | EMLXS_FC_GEN6,
+ EMLXS_LANCER_CHIP,
+ FW_NOT_PROVIDED,
+ EMLXS_INTR_NO_LIMIT,
+ EMLXS_SLI4_MASK,
+ EMLXS_SINGLE_CHANNEL,
+ NULL_PROG_TYPES,
+ },
+
+ /* ATTO Celerity 322E */
+ {
+ CelerityFC322E,
+ PCI_DEVICE_ID_CLRTY_FC_G6,
+ PCI_SSDID_CLRTY_FC_322E,
+ "Celerity FC 322E",
+ "ATTO Celerity 322E Dual-Channel FC HBA",
+ "ATTO Technology",
+ EMLXS_INTX_SUPPORTED |
+ EMLXS_MSI_SUPPORTED | EMLXS_MSIX_SUPPORTED |
+ EMLXS_E2E_SUPPORTED | EMLXS_FC_GEN6,
+ EMLXS_LANCER_CHIP,
+ FW_NOT_PROVIDED,
+ EMLXS_INTR_NO_LIMIT,
+ EMLXS_SLI4_MASK,
+ EMLXS_SINGLE_CHANNEL,
+ NULL_PROG_TYPES,
+ },
/* Lancer FCOE (Generic) */
{
OCe15100,
PCI_DEVICE_ID_LANCER_FE,