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

Split Close
Expand all
Collapse all
          --- old/usr/src/uts/common/sys/fibre-channel/fca/emlxs/emlxs_adapters.h
          +++ new/usr/src/uts/common/sys/fibre-channel/fca/emlxs/emlxs_adapters.h
↓ open down ↓ 14 lines elided ↑ open up ↑
  15   15   * If applicable, add the following below this CDDL HEADER, with the
  16   16   * fields enclosed by brackets "[]" replaced with your own identifying
  17   17   * information: Portions Copyright [yyyy] [name of copyright owner]
  18   18   *
  19   19   * CDDL HEADER END
  20   20   */
  21   21  
  22   22  /*
  23   23   * Copyright (c) 2004-2012 Emulex. All rights reserved.
  24   24   * Use is subject to license terms.
       25 + * Copyright 2018 OmniOS Community Edition (OmniOSce) Association.
  25   26   */
  26   27  
  27   28  #ifndef _EMLXS_ADAPTERS_H
  28   29  #define _EMLXS_ADAPTERS_H
  29   30  
  30   31  #ifdef  __cplusplus
  31   32  extern "C" {
  32   33  #endif
  33   34  
  34   35  /* Unique id for each adapter model */
↓ open down ↓ 58 lines elided ↑ open up ↑
  93   94          LPe12002_SP,    /* Spare */
  94   95  
  95   96          /* BE2 (41) */
  96   97          OCe10101,       /* Generic Single Channel */
  97   98          OCe10102,       /* Generic Dual Channel */
  98   99  
  99  100          /* BE3 (43) */
 100  101          OCe11101,       /* Generic Single Channel */
 101  102          OCe11102,       /* Generic Dual Channel */
 102  103  
 103      -        /* Lancer FC (45) */
      104 +        /* Lancer FC Gen5 HBAs (45) */
 104  105          LPe16000,       /* Generic Single Channel FC */
 105  106          LPe1600X,       /* Generic Multi Channel FC */
 106  107          LPem16002_FC_O, /* Oracle branded */
 107  108          LPe16002_FC_O,  /* Oracle branded */
 108  109          LPe16002_FC_SP1, /* Oracle excluded - Spare */
 109  110          LPe16002_FC_SP2, /* Oracle excluded - Spare */
 110  111  
 111      -        /* Lancer FCoE (51) */
      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 */
 112  129          OCe15100,       /* Generic Single Channel FCOE */
 113  130          OCe1510X,       /* Generic Multi Channel FCOE */
 114  131          LPem16002_FE_O, /* Oracle branded */
 115  132          LPe16002_FE_O,  /* Oracle branded */
 116  133          LPe16002_FE_SP1, /* Oracle excluded - Spare */
 117  134          LPe16002_FE_SP2, /* Oracle excluded - Spare */
 118  135  
 119  136          /* BE4 (57) */
 120  137          OCe12104        /* 4-Port 2xNIC +2xFCoE */
 121  138  
 122  139  } emlxs_adapter_t;
 123  140  
 124  141  
 125  142  #define PCI_VENDOR_ID_EMULEX            0x10df
      143 +#define PCI_VENDOR_ID_ATTO              0x117c
 126  144  
 127  145  /* Subsystem Vendor IDs */
 128  146  #define PCI_SSVID_EMULEX                0x10df
 129  147  #define PCI_SSVID_HP                    0x103c
 130  148  #define PCI_SSVID_IBM                   0x1014
 131  149  #define PCI_SSVID_FUJITSU               0x1734
 132  150  #define PCI_SSVID_CISCO                 0x1137
 133  151  #define PCI_SSVID_HITACHI               0x1054
      152 +#define PCI_SSVID_ATTO                  0x117c
 134  153  
 135  154  
 136  155  /* PCI_DEVICE_IDs & PCI_SSDIDs */
 137  156  /* F800: Dragonfly */
 138  157  #define PCI_DEVICE_ID_DRAGONFLY         0xf800
 139  158  #define PCI_SSDID_LP8000                0xf800
 140  159  #define PCI_SSDID_LP8000DC              0xf800  /* Identified by VPD PN */
 141  160  
 142  161  /* F085: Dragonfly SBUS */
 143  162  #define PCI_DEVICE_ID_DRAGONFLY_SBUS    0xf085  /* Identified by "lpfs" */
↓ open down ↓ 105 lines elided ↑ open up ↑
 249  268  
 250  269  /* 0714: BE3 (TomCat) */
 251  270  #define PCI_DEVICE_ID_BE3               0x0714
 252  271  #define PCI_SSDID_OCe11101              0x0714
 253  272  #define PCI_SSDID_OCe11102              0x0714 /* Identified by cache_line */
 254  273  
 255  274  /* 0724: BE4 (Skyhawk) */
 256  275  #define PCI_DEVICE_ID_BE4               0x0724
 257  276  #define PCI_SSDID_OCe12104              0xEF81
 258  277  
 259      -/* E200: Lancer FC */
      278 +/* E200: Lancer FC Gen5 */
 260  279  #define PCI_DEVICE_ID_LANCER_FC         0xE200
 261  280  #define PCI_SSDID_LPe16000              0xE200
 262  281  #define PCI_SSDID_LPe1600X              0xE200 /* Identified by cache_line */
 263  282  #define PCI_SSDID_LPem16002_FC_O        0xE20C
 264  283  #define PCI_SSDID_LPe16002_FC_O         0xE20E
 265  284  #define PCI_SSDID_LPe16002_FC_SP1       0xE217
 266  285  #define PCI_SSDID_LPe16002_FC_SP2       0xE219
 267  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 +
 268  293  /* E260: Lancer FCoE */
 269  294  #define PCI_DEVICE_ID_LANCER_FE         0xE260
 270  295  #define PCI_SSDID_OCe15100              0xE260
 271  296  #define PCI_SSDID_OCe1510X              0xE260 /* Identified by cache_line */
 272  297  #define PCI_SSDID_LPem16002_FE_O        0xE20C
 273  298  #define PCI_SSDID_LPe16002_FE_O         0xE20E
 274  299  #define PCI_SSDID_LPe16002_FE_SP1       0xE217
 275  300  #define PCI_SSDID_LPe16002_FE_SP2       0xE219
 276  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
 277  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
 278  316  
      317 +
 279  318  /* JEDEC codes */
 280  319  #define FIREFLY_JEDEC_ID        0x1ACC
 281  320  #define SUPERFLY_JEDEC_ID       0x0020
 282  321  #define DRAGONFLY_JEDEC_ID      0x0021
 283  322  #define DRAGONFLY_V2_JEDEC_ID   0x0025
 284  323  #define CENTAUR_2G_JEDEC_ID     0x0026
 285  324  #define CENTAUR_1G_JEDEC_ID     0x0028
 286  325  #define HELIOS_4G_JEDEC_ID      0x0364
 287  326  #define ZEPHYR_4G_JEDEC_ID      0x0577
 288  327  #define NEPTUNE_4G_JEDEC_ID     0x0510
↓ open down ↓ 13 lines elided ↑ open up ↑
 302  341          char            model[32];
 303  342          char            model_desc[80];
 304  343          char            manufacturer[80];
 305  344          uint32_t        flags;
 306  345  
 307  346          /* flags */
 308  347  #define EMLXS_INTX_SUPPORTED    0x00000001
 309  348  #define EMLXS_MSI_SUPPORTED     0x00000002
 310  349  #define EMLXS_MSIX_SUPPORTED    0x00000004
 311  350  #define EMLXS_E2E_SUPPORTED     0x00000010 /* End-to-end authentication */
      351 +#define EMLXS_FC_GEN6           0x00000020
      352 +#define EMLXS_GPIO_LEDS         0x00000040
 312  353  #define EMLXS_ORACLE_BRANDED    0x10000000
 313  354  #define EMLXS_ORACLE_EXCLUDED   0x20000000
 314  355  #define EMLXS_NOT_SUPPORTED     0x80000000
 315  356  
 316  357          uint32_t        chip;
 317  358  
 318  359          /* chip */
 319  360  #define EMLXS_UNKNOWN_CHIP      0x00000000
 320  361  #define EMLXS_DRAGONFLY_CHIP    0x00000001
 321  362  #define EMLXS_CENTAUR_CHIP      0x00000002
↓ open down ↓ 1311 lines elided ↑ open up ↑
1633 1674                  EMLXS_ORACLE_EXCLUDED | EMLXS_INTX_SUPPORTED |
1634 1675                          EMLXS_MSI_SUPPORTED | EMLXS_MSIX_SUPPORTED |
1635 1676                          EMLXS_E2E_SUPPORTED,
1636 1677                  EMLXS_LANCER_CHIP,
1637 1678                  FW_NOT_PROVIDED,
1638 1679                  EMLXS_INTR_NO_LIMIT,
1639 1680                  EMLXS_SLI4_MASK,
1640 1681                  EMLXS_MULTI_CHANNEL,
1641 1682                  NULL_PROG_TYPES,
1642 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 +        },
1643 1875  
1644 1876          /* Lancer FCOE (Generic) */
1645 1877          {
1646 1878                  OCe15100,
1647 1879                  PCI_DEVICE_ID_LANCER_FE,
1648 1880                  PCI_SSDID_OCe15100,
1649 1881                  "OCe15100",
1650 1882                  "Emulex OneConnect OCe15100 10Gb 1-port FCoE HBA",
1651 1883                  "Emulex",
1652 1884                  EMLXS_INTX_SUPPORTED | EMLXS_MSI_SUPPORTED |
↓ open down ↓ 134 lines elided ↑ open up ↑
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX