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_FC_H
#define _EMLXS_FC_H
*** 492,507 ****
#define MEM_BUF 4 /* memory segment to hold buffer data */
#define MEM_ELSBUF 4 /* memory segment to hold buffer data */
#define MEM_IPBUF 5 /* memory segment to hold IP buffer data */
#define MEM_CTBUF 6 /* memory segment to hold CT buffer data */
#define MEM_FCTBUF 7 /* memory segment to hold FCT buffer data */
#ifdef SFCT_SUPPORT
! #define FC_MAX_SEG 8
! #define MEM_FCTSEG 10 /* must be greater than FC_MAX_SEG */
#else
! #define FC_MAX_SEG 7
#endif /* SFCT_SUPPORT */
/* A BPL entry is 12 bytes. Subtract 2 for command and response buffers */
#define BPL_TO_SGLLEN(_bpl) ((_bpl/12)-2)
--- 493,511 ----
#define MEM_BUF 4 /* memory segment to hold buffer data */
#define MEM_ELSBUF 4 /* memory segment to hold buffer data */
#define MEM_IPBUF 5 /* memory segment to hold IP buffer data */
#define MEM_CTBUF 6 /* memory segment to hold CT buffer data */
#define MEM_FCTBUF 7 /* memory segment to hold FCT buffer data */
+ #define MEM_SGL1K 8 /* memory segment to hold 1K SGL entries */
+ #define MEM_SGL2K 9 /* memory segment to hold 2K SGL entries */
+ #define MEM_SGL4K 10 /* memory segment to hold 4K SGL entries */
#ifdef SFCT_SUPPORT
! #define FC_MAX_SEG 11
! #define MEM_FCTSEG 13 /* must be greater than FC_MAX_SEG */
#else
! #define FC_MAX_SEG 10
#endif /* SFCT_SUPPORT */
/* A BPL entry is 12 bytes. Subtract 2 for command and response buffers */
#define BPL_TO_SGLLEN(_bpl) ((_bpl/12)-2)
*** 1847,1856 ****
--- 1851,1861 ----
#define FC_MENLO_MODE 0x00008000 /* Menlo maintenance mode */
#define FC_DUMP_SAFE 0x00010000 /* Safe to DUMP */
#define FC_DUMP_ACTIVE 0x00020000 /* DUMP in progress */
#define FC_NEW_FABRIC 0x00040000
+ #define FC_GPIO_LINK_UP 0x00080000
#define FC_SLIM2_MODE 0x00100000 /* SLIM in host memory */
#define FC_INTERLOCKED 0x00200000
#define FC_HBQ_ENABLED 0x00400000
#define FC_ASYNC_EVENTS 0x00800000
*** 2010,2019 ****
--- 2015,2044 ----
/* Misc Timers */
uint32_t linkup_timer;
uint32_t discovery_timer;
uint32_t pkt_timer;
+ /* GPIO Management */
+ uint8_t gpio_desired;
+ uint8_t gpio_current;
+ uint8_t gpio_bit;
+ #define EMLXS_GPIO_LO 0x01
+ #define EMLXS_GPIO_HI 0x02
+ #define EMLXS_GPIO_ACT 0x04
+ #define EMLXS_GPIO_LASER 0x08
+ #define EMLXS_GPIO_LOC 0x10
+
+ uint8_t gpio_pin[4];
+
+ #define EMLXS_GPIO_PIN_LO 0
+ #define EMLXS_GPIO_PIN_HI 1
+ #define EMLXS_GPIO_PIN_ACT 2
+ #define EMLXS_GPIO_PIN_LASER 3
+
+ kmutex_t gpio_lock; /* Timer lock */
+ timeout_id_t gpio_timer;
+
/* Power Management */
uint32_t pm_state;
/* pm_state */
#define EMLXS_PM_IN_ATTACH 0x00000001
#define EMLXS_PM_IN_DETACH 0x00000002