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_fc.h
          +++ new/usr/src/uts/common/sys/fibre-channel/fca/emlxs/emlxs_fc.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_FC_H
  28   29  #define _EMLXS_FC_H
  29   30  
  30   31  #ifdef  __cplusplus
  31   32  extern "C" {
  32   33  #endif
  33   34  
  34   35  typedef struct emlxs_buf
↓ open down ↓ 452 lines elided ↑ open up ↑
 487  488  
 488  489  #define MEM_NLP         0       /* memory segment to hold node list entries */
 489  490  #define MEM_IOCB        1       /* memory segment to hold iocb commands */
 490  491  #define MEM_MBOX        2       /* memory segment to hold mailbox cmds  */
 491  492  #define MEM_BPL         3       /* and to hold buffer ptr lists - SLI2   */
 492  493  #define MEM_BUF         4       /* memory segment to hold buffer data   */
 493  494  #define MEM_ELSBUF      4       /* memory segment to hold buffer data   */
 494  495  #define MEM_IPBUF       5       /* memory segment to hold IP buffer data */
 495  496  #define MEM_CTBUF       6       /* memory segment to hold CT buffer data */
 496  497  #define MEM_FCTBUF      7       /* memory segment to hold FCT buffer data */
      498 +#define MEM_SGL1K       8       /* memory segment to hold 1K SGL entries */
      499 +#define MEM_SGL2K       9       /* memory segment to hold 2K SGL entries */
      500 +#define MEM_SGL4K       10      /* memory segment to hold 4K SGL entries */
 497  501  
 498  502  #ifdef SFCT_SUPPORT
 499      -#define FC_MAX_SEG      8
 500      -#define MEM_FCTSEG      10 /* must be greater than FC_MAX_SEG */
      503 +#define FC_MAX_SEG      11
      504 +#define MEM_FCTSEG      13 /* must be greater than FC_MAX_SEG */
 501  505  #else
 502      -#define FC_MAX_SEG      7
      506 +#define FC_MAX_SEG      10
 503  507  #endif /* SFCT_SUPPORT */
 504  508  
 505  509  
 506  510  /* A BPL entry is 12 bytes. Subtract 2 for command and response buffers */
 507  511  #define BPL_TO_SGLLEN(_bpl)     ((_bpl/12)-2)
 508  512  #define MEM_BPL_SIZE            36 /* Default size */
 509  513  
 510  514  /* A SGL entry is 16 bytes. Subtract 2 for command and response buffers */
 511  515  #define SGL_TO_SGLLEN(_sgl)     ((_sgl/16)-2)
 512  516  #define MEM_SGL_SIZE            4096 /* Default size */
↓ open down ↓ 1329 lines elided ↑ open up ↑
1842 1846  #define FC_FIP_SUPPORTED        0x00000800      /* FIP supported */
1843 1847  
1844 1848  #define FC_FABRIC_ATTACHED      0x00001000
1845 1849  #define FC_PT_TO_PT             0x00002000
1846 1850  #define FC_BYPASSED_MODE        0x00004000
1847 1851  #define FC_MENLO_MODE           0x00008000      /* Menlo maintenance mode */
1848 1852  
1849 1853  #define FC_DUMP_SAFE            0x00010000      /* Safe to DUMP */
1850 1854  #define FC_DUMP_ACTIVE          0x00020000      /* DUMP in progress */
1851 1855  #define FC_NEW_FABRIC           0x00040000
     1856 +#define FC_GPIO_LINK_UP         0x00080000
1852 1857  
1853 1858  #define FC_SLIM2_MODE           0x00100000      /* SLIM in host memory */
1854 1859  #define FC_INTERLOCKED          0x00200000
1855 1860  #define FC_HBQ_ENABLED          0x00400000
1856 1861  #define FC_ASYNC_EVENTS         0x00800000
1857 1862  
1858 1863  #define FC_ILB_MODE             0x01000000
1859 1864  #define FC_ELB_MODE             0x02000000
1860 1865  #define FC_LOOPBACK_MODE        0x03000000      /* Loopback Mode Mask */
1861 1866  #define FC_DUMP                 0x04000000      /* DUMP in progress */
↓ open down ↓ 143 lines elided ↑ open up ↑
2005 2010  #define EMLXS_TIMER_STARTED     0x0000001
2006 2011  #define EMLXS_TIMER_BUSY        0x0000002
2007 2012  #define EMLXS_TIMER_KILL        0x0000004
2008 2013  #define EMLXS_TIMER_ENDED       0x0000008
2009 2014  
2010 2015          /* Misc Timers */
2011 2016          uint32_t        linkup_timer;
2012 2017          uint32_t        discovery_timer;
2013 2018          uint32_t        pkt_timer;
2014 2019  
     2020 +        /* GPIO Management */
     2021 +        uint8_t         gpio_desired;
     2022 +        uint8_t         gpio_current;
     2023 +        uint8_t         gpio_bit;
     2024 +#define EMLXS_GPIO_LO           0x01
     2025 +#define EMLXS_GPIO_HI           0x02
     2026 +#define EMLXS_GPIO_ACT          0x04
     2027 +#define EMLXS_GPIO_LASER        0x08
     2028 +#define EMLXS_GPIO_LOC          0x10
     2029 +
     2030 +        uint8_t         gpio_pin[4];
     2031 +
     2032 +#define EMLXS_GPIO_PIN_LO               0
     2033 +#define EMLXS_GPIO_PIN_HI               1
     2034 +#define EMLXS_GPIO_PIN_ACT              2
     2035 +#define EMLXS_GPIO_PIN_LASER            3
     2036 +
     2037 +        kmutex_t        gpio_lock;              /* Timer lock */
     2038 +        timeout_id_t    gpio_timer;
     2039 +
2015 2040          /* Power Management */
2016 2041          uint32_t        pm_state;
2017 2042          /* pm_state */
2018 2043  #define EMLXS_PM_IN_ATTACH      0x00000001
2019 2044  #define EMLXS_PM_IN_DETACH      0x00000002
2020 2045  #define EMLXS_PM_IN_SOL_CB      0x00000010
2021 2046  #define EMLXS_PM_IN_UNSOL_CB    0x00000020
2022 2047  #define EMLXS_PM_IN_LINK_RESET  0x00000100
2023 2048  #define EMLXS_PM_IN_HARD_RESET  0x00000200
2024 2049  #define EMLXS_PM_SUSPENDED      0x01000000
↓ open down ↓ 254 lines elided ↑ open up ↑
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX