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,