Print this page
NEX-5717 import QLogic 16G FC drivers
Reviewed by: Steve Peng <steve.peng@nexenta.com>
Reviewed by: Josef 'Jeff' Sipek <josef.sipek@nexenta.com>
Reviewed by: Yuri Pankov <yuri.pankov@nexenta.com>

*** 18,28 **** * * CDDL HEADER END */ /* ! * Copyright 2010 QLogic Corporation. All rights reserved. * Use is subject to license terms. */ /* * File Name: exioct.h --- 18,28 ---- * * CDDL HEADER END */ /* ! * Copyright 2015 QLogic Corporation. All rights reserved. * Use is subject to license terms. */ /* * File Name: exioct.h
*** 35,45 **** * !!!!! PLEASE NO MORE THAN 80 CHARS PER LINE !!!!! * * *********************************************************************** * * ** * * NOTICE ** ! * * COPYRIGHT (C) 2000-2010 QLOGIC CORPORATION ** * * ALL RIGHTS RESERVED ** * * ** * *********************************************************************** */ --- 35,45 ---- * !!!!! PLEASE NO MORE THAN 80 CHARS PER LINE !!!!! * * *********************************************************************** * * ** * * NOTICE ** ! * * COPYRIGHT (C) 2000-2015 QLOGIC CORPORATION ** * * ALL RIGHTS RESERVED ** * * ** * *********************************************************************** */
*** 67,77 **** #define EXT_DEF_WWP_NAME_SIZE 8 #define EXT_DEF_SERIAL_NUM_SIZE 4 #define EXT_DEF_PORTID_SIZE 4 #define EXT_DEF_PORTID_SIZE_ACTUAL 3 #define EXT_DEF_MAX_STR_SIZE 128 ! #define EXT_DEF_SCSI_PASSTHRU_CDB_LENGTH 12 #define EXT_DEF_MAC_ADDRESS_SIZE 6 #define EXT_DEF_ADDR_MODE_32 1 #define EXT_DEF_ADDR_MODE_64 2 --- 67,77 ---- #define EXT_DEF_WWP_NAME_SIZE 8 #define EXT_DEF_SERIAL_NUM_SIZE 4 #define EXT_DEF_PORTID_SIZE 4 #define EXT_DEF_PORTID_SIZE_ACTUAL 3 #define EXT_DEF_MAX_STR_SIZE 128 ! #define EXT_DEF_SCSI_PASSTHRU_CDB_LENGTH 16 #define EXT_DEF_MAC_ADDRESS_SIZE 6 #define EXT_DEF_ADDR_MODE_32 1 #define EXT_DEF_ADDR_MODE_64 2
*** 216,226 **** #define EXT_CC_GET_FWFCETRACE EXT_CC_GET_FWFCETRACE_OS #define EXT_CC_GET_VP_CNT_ID EXT_CC_GET_VP_CNT_ID_OS #define EXT_CC_VPORT_CMD EXT_CC_VPORT_CMD_OS #define EXT_CC_ACCESS_FLASH EXT_CC_ACCESS_FLASH_OS #define EXT_CC_RESET_FW EXT_CC_RESET_FW_OS ! /* * HBA port operations */ #define EXT_CC_GET_DATA EXT_CC_GET_DATA_OS #define EXT_CC_SET_DATA EXT_CC_SET_DATA_OS --- 216,233 ---- #define EXT_CC_GET_FWFCETRACE EXT_CC_GET_FWFCETRACE_OS #define EXT_CC_GET_VP_CNT_ID EXT_CC_GET_VP_CNT_ID_OS #define EXT_CC_VPORT_CMD EXT_CC_VPORT_CMD_OS #define EXT_CC_ACCESS_FLASH EXT_CC_ACCESS_FLASH_OS #define EXT_CC_RESET_FW EXT_CC_RESET_FW_OS ! #define EXT_CC_I2C_DATA EXT_CC_I2C_DATA_OS ! #define EXT_CC_DUMP EXT_CC_DUMP_OS ! #define EXT_CC_SERDES_REG_OP EXT_CC_SERDES_REG_OP_OS ! #define EXT_CC_VF_STATE EXT_CC_VF_STATE_OS ! #define EXT_CC_SERDES_REG_OP_EX EXT_CC_SERDES_REG_OP_EX_OS ! #define EXT_CC_SEND_ELS_PASSTHRU EXT_CC_ELS_PASSTHRU_OS ! #define EXT_CC_FLASH_UPDATE_CAPS EXT_CC_FLASH_UPDATE_CAPS_OS ! #define EXT_CC_GET_BBCR_DATA EXT_CC_GET_BBCR_DATA_OS /* * HBA port operations */ #define EXT_CC_GET_DATA EXT_CC_GET_DATA_OS #define EXT_CC_SET_DATA EXT_CC_SET_DATA_OS
*** 269,278 **** --- 276,286 ---- #define EXT_SC_GET_FLASH_RAM 7 #define EXT_SC_GET_BEACON_STATE 8 #define EXT_SC_GET_DCBX_PARAM 9 #define EXT_SC_GET_FCF_LIST 10 #define EXT_SC_GET_RESOURCE_CNTS 11 + #define EXT_SC_GET_PRIV_STATS 12 /* 100 - 199 FC_INTF_TYPE */ #define EXT_SC_GET_LINK_STATUS 101 /* Currently Not Supported */ #define EXT_SC_GET_LOOP_ID 102 /* Currently Not Supported */ #define EXT_SC_GET_LUN_BITMASK 103
*** 351,360 **** --- 359,394 ---- * Used with EXT_CC_RESET_FW as the ioctl code. */ #define EXT_SC_RESET_FC_FW 1 #define EXT_SC_RESET_MPI_FW 2 + /* + * Thermal temp adapter subcodes + * Used with EXT_CC_I2C_DATA as the ioctl code. + */ + #define EXT_SC_GET_BOARD_TEMP 1 + + /* + * Dump sub codes + * Used with EXT_CC_DUMP_OP as the ioctl code. + */ + #define EXT_SC_DUMP_SIZE 1 + #define EXT_SC_DUMP_READ 2 + #define EXT_SC_DUMP_TRIGGER 3 + + /* + * SerDes Register subcodes + * Used with EXT_CC_SERDES_REG_OP and EXT_CC_SERDES_REG_OP_EX + * as the ioctl code. + */ + #define EXT_SC_READ_SERDES_REG 1 + #define EXT_SC_WRITE_SERDES_REG 2 + + /* Flash update capabilities subcommands */ + #define EXT_SC_GET_FLASH_UPDATE_CAPS 1 + #define EXT_SC_SET_FLASH_UPDATE_CAPS 2 + /* Read */ /* Write */ /* Reset */
*** 375,385 **** UINT8 Model[EXT_DEF_MAX_STR_SIZE]; /* 128; "QLA2200" */ UINT8 SerialNum[EXT_DEF_SERIAL_NUM_SIZE]; /* 4; 123 */ UINT8 DriverVersion[EXT_DEF_MAX_STR_SIZE]; /* 128; "7.4.3" */ UINT8 FWVersion[EXT_DEF_MAX_STR_SIZE]; /* 128; "2.1.6" */ UINT8 OptRomVersion[EXT_DEF_MAX_STR_SIZE]; /* 128; "1.44" */ ! UINT8 Reserved[32]; /* 32 */ } EXT_HBA_NODE, *PEXT_HBA_NODE; /* 696 */ /* HBA node query interface type */ #define EXT_DEF_FC_INTF_TYPE 1 #define EXT_DEF_SCSI_INTF_TYPE 2 --- 409,421 ---- UINT8 Model[EXT_DEF_MAX_STR_SIZE]; /* 128; "QLA2200" */ UINT8 SerialNum[EXT_DEF_SERIAL_NUM_SIZE]; /* 4; 123 */ UINT8 DriverVersion[EXT_DEF_MAX_STR_SIZE]; /* 128; "7.4.3" */ UINT8 FWVersion[EXT_DEF_MAX_STR_SIZE]; /* 128; "2.1.6" */ UINT8 OptRomVersion[EXT_DEF_MAX_STR_SIZE]; /* 128; "1.44" */ ! UINT8 MpiVersion[4]; /* 4 */ ! UINT8 PepFwVersion[4]; /* 4 */ ! UINT8 Reserved[24]; /* 24 */ } EXT_HBA_NODE, *PEXT_HBA_NODE; /* 696 */ /* HBA node query interface type */ #define EXT_DEF_FC_INTF_TYPE 1 #define EXT_DEF_SCSI_INTF_TYPE 2
*** 403,413 **** UINT8 PortSupportedFC4Types; /* 1 */ UINT8 PortActiveFC4Types; /* 1 */ UINT8 FabricName[EXT_DEF_WWN_NAME_SIZE]; /* 8 */ UINT16 LinkState2; /* 2; sfp status */ UINT16 LinkState3; /* 2; reserved field */ ! UINT8 Reserved[6]; /* 6 */ } EXT_HBA_PORT, *PEXT_HBA_PORT; /* 64 */ /* FC-4 Instrumentation */ typedef struct _EXT_HBA_FC4Statistics { INT64 InputRequests; /* 8 */ --- 439,451 ---- UINT8 PortSupportedFC4Types; /* 1 */ UINT8 PortActiveFC4Types; /* 1 */ UINT8 FabricName[EXT_DEF_WWN_NAME_SIZE]; /* 8 */ UINT16 LinkState2; /* 2; sfp status */ UINT16 LinkState3; /* 2; reserved field */ ! UINT16 LinkState1; /* 2; sfp status */ ! UINT16 LinkState6; /* 2; sfp status */ ! UINT8 Reserved[2]; /* 2 */ } EXT_HBA_PORT, *PEXT_HBA_PORT; /* 64 */ /* FC-4 Instrumentation */ typedef struct _EXT_HBA_FC4Statistics { INT64 InputRequests; /* 8 */
*** 482,491 **** --- 520,531 ---- #define IIDMA_RATE_1GB 0x0 #define IIDMA_RATE_2GB 0x1 #define IIDMA_RATE_4GB 0x3 #define IIDMA_RATE_8GB 0x4 #define IIDMA_RATE_10GB 0x13 + #define IIDMA_RATE_16GB 0x5 + #define IIDMA_RATE_32GB 0x6 #define IIDMA_RATE_UNKNOWN 0xffff /* IIDMA Mode values */ #define IIDMA_MODE_0 0 #define IIDMA_MODE_1 1
*** 497,506 **** --- 537,548 ---- #define EXT_DEF_PORTSPEED_1GBIT 0x1 #define EXT_DEF_PORTSPEED_2GBIT 0x2 #define EXT_DEF_PORTSPEED_4GBIT 0x4 #define EXT_DEF_PORTSPEED_8GBIT 0x8 #define EXT_DEF_PORTSPEED_10GBIT 0x10 + #define EXT_DEF_PORTSPEED_16GBIT 0x20 + #define EXT_DEF_PORTSPEED_32GBIT 0x40 #define EXT_PORTSPEED_NOT_NEGOTIATED (1<<15) /* Speed not established */ typedef struct _EXT_DISC_PORT { UINT64 TargetId; /* 8 */ UINT16 Type; /* 2; Port Type */
*** 722,742 **** typedef struct _EXT_SCSI_PASSTHRU { EXT_SCSI_ADDR TargetAddr; UINT8 Direction; UINT8 CdbLength; UINT8 Cdb[EXT_DEF_SCSI_PASSTHRU_CDB_LENGTH]; ! UINT8 Reserved[66]; UINT8 SenseData[256]; } EXT_SCSI_PASSTHRU, *PEXT_SCSI_PASSTHRU; /* FC SCSI pass-through */ typedef struct _EXT_FC_SCSI_PASSTHRU { EXT_DEST_ADDR FCScsiAddr; UINT8 Direction; UINT8 CdbLength; UINT8 Cdb[EXT_DEF_SCSI_PASSTHRU_CDB_LENGTH]; ! UINT8 Reserved[64]; UINT8 SenseData[256]; } EXT_FC_SCSI_PASSTHRU, *PEXT_FC_SCSI_PASSTHRU; /* SCSI pass-through direction */ #define EXT_DEF_SCSI_PASSTHRU_DATA_IN 1 --- 764,784 ---- typedef struct _EXT_SCSI_PASSTHRU { EXT_SCSI_ADDR TargetAddr; UINT8 Direction; UINT8 CdbLength; UINT8 Cdb[EXT_DEF_SCSI_PASSTHRU_CDB_LENGTH]; ! UINT8 Reserved[62]; UINT8 SenseData[256]; } EXT_SCSI_PASSTHRU, *PEXT_SCSI_PASSTHRU; /* FC SCSI pass-through */ typedef struct _EXT_FC_SCSI_PASSTHRU { EXT_DEST_ADDR FCScsiAddr; UINT8 Direction; UINT8 CdbLength; UINT8 Cdb[EXT_DEF_SCSI_PASSTHRU_CDB_LENGTH]; ! UINT8 Reserved[60]; UINT8 SenseData[256]; } EXT_FC_SCSI_PASSTHRU, *PEXT_FC_SCSI_PASSTHRU; /* SCSI pass-through direction */ #define EXT_DEF_SCSI_PASSTHRU_DATA_IN 1
*** 769,778 **** --- 811,821 ---- #define EXT_DEF_LINK_UP 0x8011 #define EXT_DEF_LINK_DOWN 0x8012 #define EXT_DEF_LIP_RESET 0x8013 #define EXT_DEF_RSCN 0x8015 #define EXT_DEF_DEVICE_UPDATE 0x8014 + #define EXT_DEF_DPORT_DIAGS 0x8080 /* LED state information */ #define EXT_DEF_GRN_BLINK_OFF 0x00 #define EXT_DEF_GRN_BLINK_ON 0x01
*** 1027,1037 **** UINT32 Reserved; } MenloInfo; /* For fetch Menlo Info */ } ap; } EXT_MENLO_ACCESS_PARAMETERS, *PEXT_MENLO_ACCESS_PARAMETERS; ! #define INFO_DATA_TYPE_LOG_CONFIG_TBC ((10*7)+1)*4 #define INFO_DATA_TYPE_PORT_STAT_ETH_TBC 0x194 #define INFO_DATA_TYPE_PORT_STAT_FC_TBC 0xC0 #define INFO_DATA_TYPE_LIF_STAT_TBC 0x40 #define INFO_DATA_TYPE_ASIC_STAT_TBC 0x5F8 #define INFO_DATA_TYPE_CONFIG_TBC 0x140 --- 1070,1080 ---- UINT32 Reserved; } MenloInfo; /* For fetch Menlo Info */ } ap; } EXT_MENLO_ACCESS_PARAMETERS, *PEXT_MENLO_ACCESS_PARAMETERS; ! #define INFO_DATA_TYPE_LOG_CONFIG_TBC ((10 * 7) + 1) * 4 #define INFO_DATA_TYPE_PORT_STAT_ETH_TBC 0x194 #define INFO_DATA_TYPE_PORT_STAT_FC_TBC 0xC0 #define INFO_DATA_TYPE_LIF_STAT_TBC 0x40 #define INFO_DATA_TYPE_ASIC_STAT_TBC 0x5F8 #define INFO_DATA_TYPE_CONFIG_TBC 0x140
*** 1105,1114 **** --- 1148,1184 ---- UINT8 wwnn[EXT_DEF_WWN_NAME_SIZE]; UINT8 wwpn[EXT_DEF_WWN_NAME_SIZE]; UINT8 reserved[220]; } EXT_VPORT_INFO, *PEXT_VPORT_INFO; + typedef struct _EXT_BOARD_TEMP { + UINT16 IntTemp; + UINT16 FracTemp; + UINT8 Reserved[60]; + } EXT_BOARD_TEMP, *PEXT_BOARD_TEMP; + + /* ASIC TEMPERATURE defines */ + #define EXT_DEF_ASIC_TEMP_COMMAND_COMPLETE 0x4000 + #define EXT_DEF_ASIC_TEMP_HOST_INT_ERR 0x4002 + #define EXT_DEF_ASIC_TEMP_COMMAND_ERR 0x4005 + #define EXT_DEF_ASIC_TEMP_COMMAND_PARAM_ERR 0x4006 + + typedef struct _EXT_SERDES_REG { + UINT16 addr; + UINT16 val; + } EXT_SERDES_REG, *PEXT_SERDES_REG; + + typedef struct _EXT_VF_STATE { + UINT32 NoOfVFConfigured; + UINT32 NoOfVFActive; + } EXT_VF_STATE, *PEXT_VF_STATE; + + typedef struct _EXT_SERDES_REG_EX { + UINT32 addr; + UINT32 val; + } EXT_SERDES_REG_EX, *PEXT_SERDES_REG_EX; + #define EXT_DEF_FCF_LIST_SIZE 4096 /* Bytes */ #define FCF_INFO_RETURN_ALL 0 #define FCF_INFO_RETURN_ONE 1 typedef struct _EXT_FCF_INFO {
*** 1148,1157 **** --- 1218,1278 ---- UINT32 OrgIocbBufCnt; /* 4 */ UINT32 NoOfSupVPs; /* 4 */ UINT32 NoOfSupFCFs; /* 4 */ } EXT_RESOURCE_CNTS, *PEXT_RESOURCE_CNTS; + #define FW_FCE_SIZE (0x4000 * 4) /* bytes - 16kb multiples */ + + typedef struct _EXT_FW_FCE_TRACE { + UINT16 Registers[32]; + UINT8 TraceData[FW_FCE_SIZE]; /* Variable length */ + } EXT_FW_FCE_TRACE, *PEXT_FW_FCE_TRACE; + + /* Request Buffer for ELS PT */ + #define EXT_DEF_WWPN_VALID 1 + #define EXT_DEF_WWNN_VALID 2 + #define EXT_DEF_PID_VALID 4 + + typedef struct _EXT_ELS_PT_REQ { + UINT16 ValidMask; + UINT8 WWNN[EXT_DEF_WWN_NAME_SIZE]; + UINT8 WWPN[EXT_DEF_WWN_NAME_SIZE]; + UINT8 Id[EXT_DEF_PORTID_SIZE]; + UINT8 Reserved[10]; + } EXT_ELS_PT_REQ, *PEXT_ELS_PT_REQ; + + typedef struct _EXT_FLASH_UPDATE_CAPS { + UINT64 Capabilities; + UINT32 OutageDuration; + UINT8 Reserved[20]; + } EXT_FLASH_UPDATE_CAPS, *PEXT_FLASH_UPDATE_CAPS; + + /* BB_CR Status */ + #define EXT_DEF_BBCR_STATUS_DISABLED 0 + #define EXT_DEF_BBCR_STATUS_ENABLED 1 + #define EXT_DEF_BBCR_STATUS_UNKNOWN 2 + + /* BB_CR State */ + #define EXT_DEF_BBCR_STATE_OFFLINE 0 + #define EXT_DEF_BBCR_STATE_ONLINE 1 + + /* BB_CR Offline Reason Code */ + #define EXT_DEF_BBCR_REASON_PORT_SPEED 1 + #define EXT_DEF_BBCR_REASON_PEER_PORT 2 + #define EXT_DEF_BBCR_REASON_SWITCH 3 + #define EXT_DEF_BBCR_REASON_LOGIN_REJECT 4 + + typedef struct _EXT_BBCR_DATA { + UINT8 Status; /* 1 - enabled, 0 - Disabled */ + UINT8 State; /* 1 - online, 0 - offline */ + UINT8 ConfiguredBBSCN; /* 0-15 */ + UINT8 NegotiatedBBSCN; /* 0-15 */ + UINT8 OfflineReasonCode; + UINT16 mbx1; /* Port State */ + UINT8 Reserved[9]; + } EXT_BBCR_DATA, *PEXT_BBCR_DATA; + #ifdef __cplusplus } #endif #endif /* _EXIOCT_H */