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>
@@ -17,11 +17,11 @@
* information: Portions Copyright [yyyy] [name of copyright owner]
*
* CDDL HEADER END
*/
-/* Copyright 2010 QLogic Corporation */
+/* Copyright 2015 QLogic Corporation */
/*
* Copyright (c) 2008, 2010, Oracle and/or its affiliates. All rights reserved.
*/
@@ -32,11 +32,11 @@
* ISP2xxx Solaris Fibre Channel Adapter (FCA) driver header file.
*
* ***********************************************************************
* * **
* * NOTICE **
- * * COPYRIGHT (C) 1996-2010 QLOGIC CORPORATION **
+ * * COPYRIGHT (C) 1996-2015 QLOGIC CORPORATION **
* * ALL RIGHTS RESERVED **
* * **
* ***********************************************************************
*
*/
@@ -46,14 +46,19 @@
#endif
/*
* ISP mailbox Self-Test status codes
*/
-#define MBS_FRM_ALIVE 0 /* Firmware Alive. */
-#define MBS_CHKSUM_ERR 1 /* Checksum Error. */
-#define MBS_BUSY 4 /* Busy. */
+#define MBS_ROM_IDLE 0 /* Firmware Alive. */
+#define MBS_ROM_CHKSUM_ERR 1 /* Checksum Error. */
+#define MBS_ROM_BUSY 4 /* Busy. */
+#define MBS_ROM_CONFIG_ERR 0xF /* Board Config Error. */
+#define MBS_ROM_STATUS_MASK 0xF
+#define MBS_ROM_FW_RUNNING 0x8400 /* firmware running. */
+#define MBS_ROM_FW_CONFIG_ERR 0x8401 /* firmware config error */
+
/*
* ISP mailbox command complete status codes
*/
#define MBS_COMMAND_COMPLETE 0x4000
#define MBS_INVALID_COMMAND 0x4001
@@ -113,10 +118,11 @@
#define MBA_LIP_RESET 0x8013 /* LIP reset occurred. */
#define MBA_PORT_UPDATE 0x8014 /* Port Database update. */
#define MBA_RSCN_UPDATE 0x8015 /* State Change Registration. */
#define MBA_LIP_F8 0x8016 /* Received a LIP F8. */
#define MBA_LIP_ERROR 0x8017 /* Loop initialization errors. */
+#define MBA_LOGIN_REJECT 0x8018 /* Login Reject Reason. */
#define MBA_SECURITY_UPDATE 0x801B /* FC-SP security update. */
#define MBA_SCSI_COMPLETION 0x8020 /* SCSI Command Complete. */
#define MBA_CTIO_COMPLETION 0x8021 /* CTIO Complete. */
#define MBA_IP_COMPLETION 0x8022 /* IP Transmit Command Complete. */
#define MBA_IP_RECEIVE 0x8023 /* IP Received. */
@@ -139,17 +145,27 @@
#define MBA_ZIO_UPDATE 0x8040 /* ZIO response queue update. */
#define MBA_CMPLT_2_32BIT 0x8042 /* Completion 2 32bit IOSB. */
#define MBA_PORT_BYPASS_CHANGED 0x8043 /* Crystal+ port#0 bypass transition */
#define MBA_RECEIVE_ERROR 0x8048 /* Receive Error */
#define MBA_LS_RJT_SENT 0x8049 /* LS_RJT response sent */
+#define MBA_QUEUE_FULL 0x8049 /* Queue full */
+#define MBA_CLASS_2_RJT 0x804F /* Class 2 RJT sent */
+#define MBA_VDC_MESSAGE 0x805F /* VDC message event */
#define MBA_FW_RESTART_COMP 0x8060 /* Firmware Restart Complete. */
+#define MBA_TEMPERATURE_EVENT 0x8070 /* Temperature event. */
+#define MBA_D_PORT_DIAGS 0x8080 /* D_Port Diagnostics. */
#define MBA_IDC_COMPLETE 0x8100 /* Inter-driver communication */
/* complete. */
#define MBA_IDC_NOTIFICATION 0x8101 /* Inter-driver communication */
/* notification. */
#define MBA_IDC_TIME_EXTENDED 0x8102 /* Inter-driver communication */
/* time extended. */
+#define MBA_SFP_INSERTION 0x8130 /* Transceiver insertion */
+#define MBA_SFP_REMOVAL 0x8131 /* Transceiver removal */
+#define MBA_NIC_STATE_CHANGE 0x8200 /* NIC Firmware State Change */
+#define MBA_AUTO_FW_INIT_COMP 0x8400 /* Autoload fw init complete. */
+#define MBA_AUTO_FW_INIT_ERR 0x8401 /* Autoload fw init failure. */
/* Driver defined. */
#define MBA_CMPLT_1_32BIT 0x9000 /* Completion 1 32bit IOSB. */
/*
* Mailbox 23 event codes
@@ -159,15 +175,93 @@
#define MBX23_SCSI_COMPLETION 0x2
/*
* System Error event (0x8002) defines
*/
+#define SE_NIC_HEARTHBEAT BIT_3
#define SE_MPI_RISC BIT_2
#define SE_NIC_1 BIT_1
#define SE_NIC_2 BIT_0
/*
+ * Port Database Update event (0x8014) defines
+ */
+#define PDU_GLOBAL_EVENT 0xffff
+/*
+ * Port Database Update event (0x8014) login states
+ */
+#define PDU_PLOGI_COMPLETE 0x4
+#define PDU_PRLI_COMPLETE 0x6
+#define PDU_PORT_LOGOUT 0x7
+/*
+ * Port Database Update event (0x8014) reason codes
+ */
+#define PDU_LINK_INITIALIZED 0x0
+#define PDU_ADISC_ACC_CONFLICT 0x1
+#define PDU_ADISC_REJECT 0x2
+#define PDU_ADISC_REQ_CONFLICT 0x3
+#define PDU_PLOGI_RECEIVED 0x4
+#define PDU_PLOGI_REJECT 0x5
+#define PDU_PRLI_RECEIVED 0x6
+#define PDU_PRLI_REJECT 0x7
+#define PDU_GLOBAL_TPRLO 0x8
+#define PDU_SELECTIVE_TPRLO 0x9
+#define PDU_PRLO_RECEIVED 0xa
+#define PDU_LOGO_RECEIVED 0xb
+#define PDU_TOPOLOGY_CHANGE 0xc
+#define PDU_N_PORT_ID_CHANGE 0xd
+#define PDU_FLOGI_REJECT 0xe
+#define PDU_BAD_FAN 0xf
+#define PDU_FLOGI_TIMEOUT 0x10
+#define PDU_ABTS_LOGO_FAILED 0x11
+#define PDU_PLOGI_COMPLETED 0x12
+#define PDU_PRLI_COMPLETED 0x13
+#define PDU_OWN_OPN_FRAME_PATH 0x14
+#define PDU_OWN_OPN_DATA_PATH 0x15
+#define PDU_TRANSMIT_ERROR 0x16
+#define PDU_EXPLICIT_LOGO_REQ 0x17
+#define PDU_ADISC_REQ_TIMEOUT 0x18
+#define PDU_EVFP_RECEIVED 0x19
+#define PDU_SW_LOGO_RECEIVED 0x1a
+#define PDU_FCF_LIST_CHANGED 0x1b
+#define PDU_FCF_CONFIG_CHANGED 0x1c
+#define PDU_FIP_RECEIVED 0x1d
+#define PDU_FCF_TIMEOUT 0x1e
+
+/*
+ * Registered State Change Notification (0x8015) defines
+ */
+#define RSCN_AF_PORT 0x0
+#define RSCN_AF_AREA 0x1
+#define RSCN_AF_DOMAIN 0x2
+#define RSCN_AF_FABRIC 0x3
+#define RSCN_AF_MASK (BIT_1 | BIT_0)
+
+/*
+ * Temperature alert event (0x8070) defines
+ */
+#define TCA_INVALID_CONFIGURATION 0x10
+#define TCA_INVALID_NUMBER_OF_SENSORS 0x11
+#define TCA_SHUTDOWN_INITIATED 0x12
+#define TCA_SENSOR_NOT_FUNCTIONAL 0x13
+
+/*
+ * Thermal temperature defines
+ */
+#define READ_ASIC_TEMP 0xC
+#define TEMP_SUPPORT_I2C BIT_0
+#define TEMP_SUPPORT_ISP BIT_1
+
+/*
+ * D_Port Diagnostic event (0x8080) defines
+ */
+#define DPA_START 0
+#define DPA_DONE 1
+#define DPA_ERROR 2
+#define DPA_MASK 0xF
+
+/*
* Menlo alert event defines
*/
#define MLA_PANIC_RECOVERY 0x1
#define MLA_LOGIN_OPERATIONAL_FW 0x2
#define MLA_LOGIN_DIAGNOSTIC_FW 0x3
@@ -176,17 +270,24 @@
/*
* ISP mailbox commands
*/
#define MBC_LOAD_RAM 1 /* Load RAM. */
+#define MBC_WRITE_REMOTE_REG 1 /* Write remote register. */
#define MBC_EXECUTE_FIRMWARE 2 /* Execute firmware. */
#define MBC_DUMP_RAM 3 /* Dump RAM. */
+#define MBC_LOAD_FLASH_IMAGE 3 /* Load flash image. */
+#define MBC_WRITE_SERDES_REG 3 /* Write FC serdes register */
+#define MBC_READ_SERDES_REG 4 /* Read FC serdes registers */
#define MBC_WRITE_RAM_WORD 4 /* Write RAM word. */
#define MBC_READ_RAM_WORD 5 /* Read RAM word. */
+#define MBC_MPI_RAM 5 /* Load/dump MPI RAM. */
#define MBC_MAILBOX_REGISTER_TEST 6 /* Wrap incoming mailboxes */
#define MBC_VERIFY_CHECKSUM 7 /* Verify checksum. */
#define MBC_ABOUT_FIRMWARE 8 /* About Firmware. */
+#define MBC_LOAD_RISC_RAM 9 /* Load RSIC RAM. */
+#define MBC_READ_REMOTE_REG 9 /* Read remote register. */
#define MBC_DUMP_RISC_RAM 0xa /* Dump RISC RAM command. */
#define MBC_LOAD_RAM_EXTENDED 0xb /* Load RAM extended. */
#define MBC_DUMP_RAM_EXTENDED 0xc /* Dump RAM extended. */
#define MBC_WRITE_RAM_EXTENDED 0xd /* Write RAM word. */
#define MBC_READ_RAM_EXTENDED 0xf /* Read RAM extended. */
@@ -199,17 +300,19 @@
#define MBC_ABORT_DEVICE 0x16 /* Abort device (ID/LUN). */
#define MBC_ABORT_TARGET 0x17 /* Abort target (ID). */
#define MBC_RESET 0x18 /* Target reset. */
#define MBC_XMIT_PARM 0x19 /* Change default xmit parms */
#define MBC_PORT_PARAM 0x1a /* Get/set port speed parms */
+#define MBC_INIT_MULTIPLE_QUEUE 0x1f /* Initialize Multiple Queue */
#define MBC_GET_ID 0x20 /* Get loop id of ISP2200. */
#define MBC_GET_TIMEOUT_PARAMETERS 0x22 /* Get Timeout Parameters. */
#define MBC_TRACE_CONTROL 0x27 /* Trace control. */
#define MBC_GET_FIRMWARE_OPTIONS 0x28 /* Get firmware options */
#define MBC_READ_SFP 0x31 /* Read SFP. */
#define MBC_SET_FIRMWARE_OPTIONS 0x38 /* set firmware options */
#define MBC_RESET_MENLO 0x3a /* Reset Menlo. */
+#define MBC_FC_LED_CONFIG 0x3b /* Set/Get FC LED Config */
#define MBC_RESTART_MPI 0x3d /* Restart MPI. */
#define MBC_FLASH_ACCESS 0x3e /* Flash Access Control */
#define MBC_LOOP_PORT_BYPASS 0x40 /* Loop Port Bypass. */
#define MBC_LOOP_PORT_ENABLE 0x41 /* Loop Port Enable. */
#define MBC_GET_RESOURCE_COUNTS 0x42 /* Get Resource Counts. */
@@ -259,10 +362,13 @@
#define MBC_IDC_ACK 0x101 /* IDC acknowledge */
#define MBC_IDC_TIME_EXTEND 0x102 /* IDC extend time */
#define MBC_PORT_RESET 0x120 /* Port Reset */
#define MBC_SET_PORT_CONFIG 0x122 /* Set port configuration */
#define MBC_GET_PORT_CONFIG 0x123 /* Get port configuration */
+#define MBC_SET_LED_CONFIG 0x125 /* Beaconing set led config */
+#define MBC_GET_LED_CONFIG 0x126 /* Get led config */
+#define MBC_GET_MD_TEMPLATE 0x129 /* Get mini dump template */
/*
* Mbc 0x100 (IDC request)
*/
/* Timeout Value */
@@ -353,30 +459,27 @@
#define MBC_LOOPBACK_POINT_MASK 0x07
#define MBC_LOOPBACK_POINT_10BIT 0x00 /* 2425xx */
#define MBC_LOOPBACK_POINT_1BIT 0x01 /* 2425xx */
#define MBC_LOOPBACK_POINT_INTERNAL 0x01 /* 81xx */
#define MBC_LOOPBACK_POINT_EXTERNAL 0x02 /* 242581xx */
+#define MBC_LOOPBACK_64BIT BIT_6 /* 2200 0r 2300 */
/*
* MBC_ECHO
*/
#define MBC_ECHO_ELS BIT_15 /* echo ELS */
#define MBC_ECHO_64BIT BIT_6 /* 64bit DMA address used */
/*
- * 81xx
+ * 81xx, 83xx
* MBC_SET_PORT_CONFIG
* MBC_GET_PORT_CONFIG
*/
-#define LOOPBACK_MODE_FIELD_SIZE 0x03
-#define LOOPBACK_MODE_FIELD_SHIFT 0x01
-#define LOOPBACK_MODE_FIELD_MASK ((1 << LOOPBACK_MODE_FIELD_SIZE) -1)
-
-#define LOOPBACK_MODE(mode) ((mode & LOOPBACK_MODE_FIELD_MASK) << \
- LOOPBACK_MODE_FIELD_SHIFT)
+#define LOOPBACK_MODE_FIELD_MASK 0xE
#define LOOPBACK_MODE_NONE 0x00
-#define LOOPBACK_MODE_INTERNAL 0x02
+#define LOOPBACK_MODE_INTERNAL 0x04
+#define LOOPBACK_MODE_EXTERNAL 0x08 /* 8031 */
/*
* Mbc 20h (Get ID) returns the switch capabilities in mailbox7.
* The extra bits were added with 4.00.28 MID firmware.
*/
@@ -389,12 +492,20 @@
#define GID_FP_IN_ORDER BIT_8
#define GID_FP_MAC_ADDR BIT_9
#define GID_FP_NPIV_SUPPORT BIT_10 /* implies FDISC support */
#define GID_FP_VF_SUPPORT BIT_12
#define GID_FP_SP_SUPPORT BIT_13
+#define GID_FP_FA_WWPN BIT_14
/*
+ * Mbc 20h (Get ID) returns the Buffer to Buffer Credits in mailbox15.
+ */
+#define BBCR_INITIAL_MASK 0xf
+#define BBCR_RUNTIME_MASK 0xf
+#define BBCR_RUNTIME_REJECT BIT_4
+
+/*
* Driver Mailbox command definitions.
*/
#define MAILBOX_TOV 30 /* Default Timeout value. */
/* Mailbox command parameter structure definition. */
@@ -403,15 +514,10 @@
uint32_t in_mb; /* Incomming from RISC */
uint16_t mb[MAX_MBOX_COUNT];
clock_t timeout; /* Timeout in seconds. */
} mbx_cmd_t;
-/* Returned Mailbox registers. */
-typedef struct ql_mbx_data {
- uint16_t mb[MAX_MBOX_COUNT];
-} ql_mbx_data_t;
-
/* Mailbox bit definitions for out_mb and in_mb */
#define MBX_29 BIT_29
#define MBX_28 BIT_28
#define MBX_27 BIT_27
#define MBX_26 BIT_26
@@ -441,19 +547,34 @@
#define MBX_2 BIT_2
#define MBX_1 BIT_1
#define MBX_0 BIT_0
#define MBX_0_THRU_1 MBX_0|MBX_1
-#define MBX_0_THRU_2 MBX_0_THRU_1|MBX_2
-#define MBX_0_THRU_3 MBX_0_THRU_2|MBX_3
-#define MBX_0_THRU_4 MBX_0_THRU_3|MBX_4
-#define MBX_0_THRU_5 MBX_0_THRU_4|MBX_5
-#define MBX_0_THRU_6 MBX_0_THRU_5|MBX_6
-#define MBX_0_THRU_7 MBX_0_THRU_6|MBX_7
-#define MBX_0_THRU_8 MBX_0_THRU_7|MBX_8
-#define MBX_0_THRU_9 MBX_0_THRU_8|MBX_9
-#define MBX_0_THRU_10 MBX_0_THRU_9|MBX_10
+#define MBX_0_THRU_2 MBX_0_THRU_1 | MBX_2
+#define MBX_0_THRU_3 MBX_0_THRU_2 | MBX_3
+#define MBX_0_THRU_4 MBX_0_THRU_3 | MBX_4
+#define MBX_0_THRU_5 MBX_0_THRU_4 | MBX_5
+#define MBX_0_THRU_6 MBX_0_THRU_5 | MBX_6
+#define MBX_0_THRU_7 MBX_0_THRU_6 | MBX_7
+#define MBX_0_THRU_8 MBX_0_THRU_7 | MBX_8
+#define MBX_0_THRU_9 MBX_0_THRU_8 | MBX_9
+#define MBX_0_THRU_10 MBX_0_THRU_9 | MBX_10
+#define MBX_0_THRU_11 MBX_0_THRU_10 | MBX_11
+#define MBX_0_THRU_12 MBX_0_THRU_11 | MBX_12
+#define MBX_0_THRU_13 MBX_0_THRU_12 | MBX_13
+#define MBX_0_THRU_14 MBX_0_THRU_13 | MBX_14
+#define MBX_0_THRU_15 MBX_0_THRU_14 | MBX_15
+#define MBX_0_THRU_16 MBX_0_THRU_15 | MBX_16
+#define MBX_0_THRU_17 MBX_0_THRU_16 | MBX_17
+#define MBX_0_THRU_18 MBX_0_THRU_17 | MBX_18
+#define MBX_0_THRU_19 MBX_0_THRU_18 | MBX_19
+#define MBX_0_THRU_20 MBX_0_THRU_19 | MBX_20
+#define MBX_0_THRU_21 MBX_0_THRU_20 | MBX_21
+#define MBX_0_THRU_22 MBX_0_THRU_21 | MBX_22
+#define MBX_0_THRU_23 MBX_0_THRU_22 | MBX_23
+#define MBX_0_THRU_24 MBX_0_THRU_23 | MBX_24 /* not supported by 2200 */
+#define MBX_0_THRU_25 MBX_0_THRU_24 | MBX_25 /* not supported by 2200 */
/*
* Firmware state codes from get firmware state mailbox command
*/
#define FSTATE_CONFIG_WAIT 0
@@ -461,10 +582,11 @@
#define FSTATE_WAIT_LOGIN 2
#define FSTATE_READY 3
#define FSTATE_LOSS_SYNC 4
#define FSTATE_ERROR 5
#define FSTATE_NON_PART 7
+#define FSTATE_MPI_NIC_ERROR 0x10
/*
* Firmware options 1, 2, 3.
*/
#define FO1_AE_ON_LIPF8 BIT_0
@@ -471,19 +593,21 @@
#define FO1_AE_ALL_LIP_RESET BIT_1
#define FO1_CTIO_RETRY BIT_3
#define FO1_DISABLE_LIP_F7_SW BIT_4
#define FO1_DISABLE_100MS_LOS_WAIT BIT_5
#define FO1_DISABLE_GPIO BIT_6
+#define FO1_DISABLE_LEDS BIT_6
#define FO1_AE_AUTO_BYPASS BIT_9
#define FO1_ENABLE_PURE_IOCB BIT_10
#define FO1_AE_PLOGI_RJT BIT_11
#define FO1_AE_IMMEDIATE_NOTIFY_IOCB BIT_11
#define FO1_ENABLE_ABORT_SEQUENCE BIT_12
#define FO1_AE_QUEUE_FULL BIT_13
#define FO1_POST_NOTIFY_ACK_IOCB_2_ATIO BIT_13
#define FO1_POST_NOTIFY_ACK_IOCB BIT_14
+#define FO2_ENABLE_FIBRE_LITE BIT_13
#define FO2_FCOE_512_MAX_MEM_WR_BURST BIT_9
#define FO2_ENABLE_SELECTIVE_CLASS_2 BIT_5
#define FO2_REV_LOOPBACK BIT_1
#define FO2_ENABLE_ATIO_TYPE_3 BIT_0
@@ -531,10 +655,29 @@
#define FWATTRIB2_MQUE BIT_6
#define FWATTRIB2_FCOE BIT_11
#define FWATTRIB2_EX_REL BIT_13
/*
+ * Initialize Multiple Queue mailbox command options.
+ * qlc_init_req_q() options
+ */
+#define IMO_QUEUE_POINTER_SHADOWING BIT_13
+#define IMO_ATIO_QUEUE_SERVICE BIT_12
+#define IMO_MOVE_QUEUE_BASE_ADDRESS BIT_11
+#define IMO_FORCE_DELETE BIT_9
+#define IMO_QOS_BANDWIDTH_MODE BIT_8
+#define IMO_QUEUE_NOT_ASSOCIATED BIT_7
+#define IMO_INTERRUPT_HANDSHAKE BIT_6
+#define IMO_DEVICE_FUNCTION_NUMBER BIT_5
+#define IMO_BUS_NUMBER BIT_4
+#define IMO_QOS_UPDATE BIT_3
+#define IMO_REQ_RSP_Q_ADDR_TLA BIT_2
+#define IMO_RESPONSE_Q_SERVICE BIT_1
+#define IMO_DELETE_Q BIT_0
+#define IMO_NONE 0
+
+/*
* Diagnostic ELS ECHO parameter structure definition.
*/
typedef struct echo {
uint16_t options;
uint32_t transfer_count;
@@ -676,19 +819,10 @@
#define PDF_NONE 0
#define PDF_PLOGI BIT_0
#define PDF_ADISC BIT_1
/*
- * ql_get_adapter_id() returned connection types
- */
-#define CNX_LOOP_NO_FABRIC 0
-#define CNX_FLPORT_IN_LOOP 1
-#define CNX_NPORT_2_NPORT_P2P 2
-#define CNX_FLPORT_P2P 3
-#define CNX_NPORT_2_NPORT_NO_TGT_RSP 4
-
-/*
* Set/Get Port Configuration MBC
*/
#define LINK_CONFIG_PAUSE_MASK (BIT_6 | BIT_5)
#define LINK_CONFIG_PAUSE_DISABLE 0x00
#define LINK_CONFIG_PAUSE_STD_ETH 0x01
@@ -728,16 +862,16 @@
int ql_online_selftest(ql_adapter_state_t *);
int ql_loop_back(ql_adapter_state_t *, uint16_t, lbp_t *, uint32_t, uint32_t);
int ql_echo(ql_adapter_state_t *, uint16_t, echo_t *);
int ql_send_change_request(ql_adapter_state_t *, uint16_t);
int ql_send_lfa(ql_adapter_state_t *, lfa_cmd_t *);
-int ql_clear_aca(ql_adapter_state_t *, ql_tgt_t *, uint16_t);
+int ql_clear_aca(ql_adapter_state_t *, ql_tgt_t *, ql_lun_t *);
int ql_target_reset(ql_adapter_state_t *, ql_tgt_t *, uint16_t);
int ql_abort_target(ql_adapter_state_t *, ql_tgt_t *, uint16_t);
-int ql_lun_reset(ql_adapter_state_t *, ql_tgt_t *, uint16_t);
-int ql_clear_task_set(ql_adapter_state_t *, ql_tgt_t *, uint16_t);
-int ql_abort_task_set(ql_adapter_state_t *, ql_tgt_t *, uint16_t);
+int ql_lun_reset(ql_adapter_state_t *, ql_tgt_t *, ql_lun_t *);
+int ql_clear_task_set(ql_adapter_state_t *, ql_tgt_t *, ql_lun_t *);
+int ql_abort_task_set(ql_adapter_state_t *, ql_tgt_t *, ql_lun_t *);
int ql_loop_port_bypass(ql_adapter_state_t *, ql_tgt_t *);
int ql_loop_port_enable(ql_adapter_state_t *, ql_tgt_t *);
int ql_login_lport(ql_adapter_state_t *, ql_tgt_t *, uint16_t, uint16_t);
int ql_login_fport(ql_adapter_state_t *, ql_tgt_t *, uint16_t, uint16_t,
ql_mbx_data_t *);
@@ -773,25 +907,26 @@
int ql_init_firmware(ql_adapter_state_t *);
int ql_get_firmware_state(ql_adapter_state_t *, ql_mbx_data_t *);
int ql_get_adapter_id(ql_adapter_state_t *, ql_mbx_data_t *);
int ql_get_fw_version(ql_adapter_state_t *, ql_mbx_data_t *, uint16_t);
int ql_data_rate(ql_adapter_state_t *, ql_mbx_data_t *);
-int ql_diag_loopback(ql_adapter_state_t *, uint16_t, caddr_t, uint32_t,
- uint16_t, uint32_t, ql_mbx_data_t *);
-int ql_diag_echo(ql_adapter_state_t *, uint16_t, caddr_t, uint32_t, uint16_t,
+int ql_diag_loopback(ql_adapter_state_t *, caddr_t, uint32_t, uint16_t,
+ uint32_t, ql_mbx_data_t *);
+int ql_diag_echo(ql_adapter_state_t *, caddr_t, uint32_t, uint16_t,
ql_mbx_data_t *);
+int ql_diag_beacon(ql_adapter_state_t *, int, ql_mbx_data_t *);
int ql_serdes_param(ql_adapter_state_t *, ql_mbx_data_t *);
int ql_get_timeout_parameters(ql_adapter_state_t *, uint16_t *);
int ql_stop_firmware(ql_adapter_state_t *);
int ql_read_sfp(ql_adapter_state_t *, dma_mem_t *, uint16_t, uint16_t);
int ql_iidma_rate(ql_adapter_state_t *, uint16_t, uint32_t *, uint32_t);
-int ql_fw_etrace(ql_adapter_state_t *, dma_mem_t *, uint16_t);
+int ql_fw_etrace(ql_adapter_state_t *, dma_mem_t *, uint16_t, ql_mbx_data_t *);
int ql_reset_menlo(ql_adapter_state_t *, ql_mbx_data_t *, uint16_t);
int ql_restart_mpi(ql_adapter_state_t *);
int ql_idc_request(ql_adapter_state_t *, ql_mbx_data_t *);
int ql_idc_ack(ql_adapter_state_t *);
-int ql_idc_time_extend(ql_adapter_state_t *, ql_mbx_data_t *);
+int ql_idc_time_extend(ql_adapter_state_t *);
int ql_port_reset(ql_adapter_state_t *);
int ql_set_port_config(ql_adapter_state_t *, ql_mbx_data_t *);
int ql_get_port_config(ql_adapter_state_t *, ql_mbx_data_t *);
int ql_flash_access(ql_adapter_state_t *, uint16_t, uint32_t, uint32_t,
uint32_t *);
@@ -798,23 +933,37 @@
int ql_get_xgmac_stats(ql_adapter_state_t *, size_t, caddr_t);
int ql_get_dcbx_params(ql_adapter_state_t *, uint32_t, caddr_t);
int ql_get_fcf_list_mbx(ql_adapter_state_t *, ql_fcf_list_desc_t *, caddr_t);
int ql_get_resource_cnts(ql_adapter_state_t *, ql_mbx_data_t *);
int ql_toggle_interrupt(ql_adapter_state_t *, uint16_t);
+int ql_get_md_template(ql_adapter_state_t *, dma_mem_t *, ql_mbx_data_t *,
+ uint32_t, uint16_t);
+int ql_load_flash_image(ql_adapter_state_t *);
+int ql_set_led_config(ql_adapter_state_t *, ql_mbx_data_t *);
+int ql_get_led_config(ql_adapter_state_t *, ql_mbx_data_t *);
+int ql_led_config(ql_adapter_state_t *, ql_mbx_data_t *);
+int ql_write_remote_reg(ql_adapter_state_t *, uint32_t, uint32_t);
+int ql_read_remote_reg(ql_adapter_state_t *, uint32_t, uint32_t *);
+int ql_get_temp(ql_adapter_state_t *, ql_mbx_data_t *mr);
+int ql_write_serdes(ql_adapter_state_t *, ql_mbx_data_t *);
+int ql_read_serdes(ql_adapter_state_t *, ql_mbx_data_t *);
+
/*
* Mailbox command table initializer
*/
#define MBOX_CMD_TABLE() \
{ \
- {MBC_LOAD_RAM, "MBC_LOAD_RAM"}, \
+ {MBC_LOAD_RAM, "MBC_LOAD_RAM or MBC_WRITE_REMOTE_REG"}, \
{MBC_EXECUTE_FIRMWARE, "MBC_EXECUTE_FIRMWARE"}, \
- {MBC_DUMP_RAM, "MBC_DUMP_RAM"}, \
- {MBC_WRITE_RAM_WORD, "MBC_WRITE_RAM_WORD"}, \
- {MBC_READ_RAM_WORD, "MBC_READ_RAM_WORD"}, \
+ {MBC_DUMP_RAM, \
+ "MBC_DUMP_RAM, MBC_LOAD_FLASH_IMAGE or MBC_WRITE_SERDES_REG"}, \
+ {MBC_WRITE_RAM_WORD, "MBC_WRITE_RAM_WORD or MBC_READ_SERDES_REG"},\
+ {MBC_READ_RAM_WORD, "MBC_READ_RAM_WORD or MBC_MPI_RAM"}, \
{MBC_MAILBOX_REGISTER_TEST, "MBC_MAILBOX_REGISTER_TEST"}, \
{MBC_VERIFY_CHECKSUM, "MBC_VERIFY_CHECKSUM"}, \
{MBC_ABOUT_FIRMWARE, "MBC_ABOUT_FIRMWARE"}, \
+ {MBC_LOAD_RISC_RAM, "MBC_LOAD_RISC_RAM or MBC_READ_REMOTE_REG"},\
{MBC_DUMP_RISC_RAM, "MBC_DUMP_RISC_RAM"}, \
{MBC_LOAD_RAM_EXTENDED, "MBC_LOAD_RAM_EXTENDED"}, \
{MBC_DUMP_RAM_EXTENDED, "MBC_DUMP_RAM_EXTENDED"}, \
{MBC_WRITE_RAM_EXTENDED, "MBC_WRITE_RAM_EXTENDED"}, \
{MBC_READ_RAM_EXTENDED, "MBC_READ_RAM_EXTENDED"}, \
@@ -827,17 +976,19 @@
{MBC_ABORT_DEVICE, "MBC_ABORT_DEVICE"}, \
{MBC_ABORT_TARGET, "MBC_ABORT_TARGET"}, \
{MBC_RESET, "MBC_RESET"}, \
{MBC_XMIT_PARM, "MBC_XMIT_PARM"}, \
{MBC_PORT_PARAM, "MBC_PORT_PARAM"}, \
+ {MBC_INIT_MULTIPLE_QUEUE, "MBC_INIT_MULTIPLE_QUEUE"}, \
{MBC_GET_ID, "MBC_GET_ID"}, \
{MBC_GET_TIMEOUT_PARAMETERS, "MBC_GET_TIMEOUT_PARAMETERS"}, \
{MBC_TRACE_CONTROL, "MBC_TRACE_CONTROL"}, \
{MBC_GET_FIRMWARE_OPTIONS, "MBC_GET_FIRMWARE_OPTIONS"}, \
{MBC_READ_SFP, "MBC_READ_SFP"}, \
{MBC_SET_FIRMWARE_OPTIONS, "MBC_SET_FIRMWARE_OPTIONS"}, \
{MBC_RESET_MENLO, "MBC_RESET_MENLO"}, \
+ {MBC_FC_LED_CONFIG, "MBC_FC_LED_CONFIG"}, \
{MBC_RESTART_MPI, "MBC_RESTART_MPI"}, \
{MBC_FLASH_ACCESS, "MBC_FLASH_ACCESS"}, \
{MBC_LOOP_PORT_BYPASS, "MBC_LOOP_PORT_BYPASS"}, \
{MBC_LOOP_PORT_ENABLE, "MBC_LOOP_PORT_ENABLE"}, \
{MBC_GET_RESOURCE_COUNTS, "MBC_GET_RESOURCE_COUNTS"}, \
@@ -886,10 +1037,13 @@
{MBC_IDC_ACK, "MBC_IDC_ACK"}, \
{MBC_IDC_TIME_EXTEND, "MBC_IDC_TIME_EXTEND"}, \
{MBC_PORT_RESET, "MBC_PORT_RESET"}, \
{MBC_SET_PORT_CONFIG, "MBC_SET_PORT_CONFIG"}, \
{MBC_GET_PORT_CONFIG, "MBC_GET_PORT_CONFIG"}, \
+ {MBC_SET_LED_CONFIG, "MBC_SET_LED_CONFIG"}, \
+ {MBC_GET_LED_CONFIG, "MBC_GET_LED_CONFIG"}, \
+ {MBC_GET_MD_TEMPLATE, "MBC_GET_MD_TEMPLATE"}, \
{NULL, "Unsupported"} \
}
#ifdef __cplusplus
}