⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 qla_fw.h

📁 linux-2.6.15.6
💻 H
📖 第 1 页 / 共 2 页
字号:
/* * QLogic Fibre Channel HBA Driver * Copyright (c)  2003-2005 QLogic Corporation * * See LICENSE.qla2xxx for copyright and licensing details. */#ifndef __QLA_FW_H#define __QLA_FW_H#define RISC_SADDRESS		0x100000#define MBS_CHECKSUM_ERROR	0x4010/* * Firmware Options. */#define FO1_ENABLE_PUREX	BIT_10#define FO1_DISABLE_LED_CTRL	BIT_6#define FO2_ENABLE_SEL_CLASS2	BIT_5#define FO3_NO_ABTS_ON_LINKDOWN	BIT_14/* * Port Database structure definition for ISP 24xx. */#define PDO_FORCE_ADISC		BIT_1#define PDO_FORCE_PLOGI		BIT_0#define	PORT_DATABASE_24XX_SIZE		64struct port_database_24xx {	uint16_t flags;#define PDF_TASK_RETRY_ID	BIT_14#define PDF_FC_TAPE		BIT_7#define PDF_ACK0_CAPABLE	BIT_6#define PDF_FCP2_CONF		BIT_5#define PDF_CLASS_2		BIT_4#define PDF_HARD_ADDR		BIT_1	uint8_t current_login_state;	uint8_t last_login_state;#define PDS_PLOGI_PENDING	0x03#define PDS_PLOGI_COMPLETE	0x04#define PDS_PRLI_PENDING	0x05#define PDS_PRLI_COMPLETE	0x06#define PDS_PORT_UNAVAILABLE	0x07#define PDS_PRLO_PENDING	0x09#define PDS_LOGO_PENDING	0x11#define PDS_PRLI2_PENDING	0x12	uint8_t hard_address[3];	uint8_t reserved_1;	uint8_t port_id[3];	uint8_t sequence_id;	uint16_t port_timer;	uint16_t nport_handle;			/* N_PORT handle. */	uint16_t receive_data_size;	uint16_t reserved_2;	uint8_t prli_svc_param_word_0[2];	/* Big endian */						/* Bits 15-0 of word 0 */	uint8_t prli_svc_param_word_3[2];	/* Big endian */						/* Bits 15-0 of word 3 */	uint8_t port_name[WWN_SIZE];	uint8_t node_name[WWN_SIZE];	uint8_t reserved_3[24];};struct nvram_24xx {	/* NVRAM header. */	uint8_t id[4];	uint16_t nvram_version;	uint16_t reserved_0;	/* Firmware Initialization Control Block. */	uint16_t version;	uint16_t reserved_1;	uint16_t frame_payload_size;	uint16_t execution_throttle;	uint16_t exchange_count;	uint16_t hard_address;	uint8_t port_name[WWN_SIZE];	uint8_t node_name[WWN_SIZE];	uint16_t login_retry_count;	uint16_t link_down_on_nos;	uint16_t interrupt_delay_timer;	uint16_t login_timeout;	uint32_t firmware_options_1;	uint32_t firmware_options_2;	uint32_t firmware_options_3;	/* Offset 56. */	/*	 * BIT 0     = Control Enable	 * BIT 1-15  =	 *	 * BIT 0-7   = Reserved	 * BIT 8-10  = Output Swing 1G	 * BIT 11-13 = Output Emphasis 1G	 * BIT 14-15 = Reserved	 *	 * BIT 0-7   = Reserved	 * BIT 8-10  = Output Swing 2G	 * BIT 11-13 = Output Emphasis 2G	 * BIT 14-15 = Reserved	 *	 * BIT 0-7   = Reserved	 * BIT 8-10  = Output Swing 4G	 * BIT 11-13 = Output Emphasis 4G	 * BIT 14-15 = Reserved	 */	uint16_t seriallink_options[4];	uint16_t reserved_2[16];	/* Offset 96. */	uint16_t reserved_3[16];	/* PCIe table entries. */	uint16_t reserved_4[16];	/* Offset 160. */	uint16_t reserved_5[16];	/* Offset 192. */	uint16_t reserved_6[16];	/* Offset 224. */	uint16_t reserved_7[16];	/*	 * BIT 0  = Enable spinup delay	 * BIT 1  = Disable BIOS	 * BIT 2  = Enable Memory Map BIOS	 * BIT 3  = Enable Selectable Boot	 * BIT 4  = Disable RISC code load	 * BIT 5  =	 * BIT 6  =	 * BIT 7  =	 *	 * BIT 8  =	 * BIT 9  =	 * BIT 10 = Enable lip full login	 * BIT 11 = Enable target reset	 * BIT 12 =	 * BIT 13 =	 * BIT 14 =	 * BIT 15 = Enable alternate WWN	 *	 * BIT 16-31 =	 */	uint32_t host_p;	uint8_t alternate_port_name[WWN_SIZE];	uint8_t alternate_node_name[WWN_SIZE];	uint8_t boot_port_name[WWN_SIZE];	uint16_t boot_lun_number;	uint16_t reserved_8;	uint8_t alt1_boot_port_name[WWN_SIZE];	uint16_t alt1_boot_lun_number;	uint16_t reserved_9;	uint8_t alt2_boot_port_name[WWN_SIZE];	uint16_t alt2_boot_lun_number;	uint16_t reserved_10;	uint8_t alt3_boot_port_name[WWN_SIZE];	uint16_t alt3_boot_lun_number;	uint16_t reserved_11;	/*	 * BIT 0 = Selective Login	 * BIT 1 = Alt-Boot Enable	 * BIT 2 = Reserved	 * BIT 3 = Boot Order List	 * BIT 4 = Reserved	 * BIT 5 = Selective LUN	 * BIT 6 = Reserved	 * BIT 7-31 =	 */	uint32_t efi_parameters;	uint8_t reset_delay;	uint8_t reserved_12;	uint16_t reserved_13;	uint16_t boot_id_number;	uint16_t reserved_14;	uint16_t max_luns_per_target;	uint16_t reserved_15;	uint16_t port_down_retry_count;	uint16_t link_down_timeout;	/* FCode parameters. */	uint16_t fcode_parameter;	uint16_t reserved_16[3];	/* Offset 352. */	uint8_t prev_drv_ver_major;	uint8_t prev_drv_ver_submajob;	uint8_t prev_drv_ver_minor;	uint8_t prev_drv_ver_subminor;	uint16_t prev_bios_ver_major;	uint16_t prev_bios_ver_minor;	uint16_t prev_efi_ver_major;	uint16_t prev_efi_ver_minor;	uint16_t prev_fw_ver_major;	uint8_t prev_fw_ver_minor;	uint8_t prev_fw_ver_subminor;	uint16_t reserved_17[8];	/* Offset 384. */	uint16_t reserved_18[16];	/* Offset 416. */	uint16_t reserved_19[16];	/* Offset 448. */	uint16_t reserved_20[16];	/* Offset 480. */	uint8_t model_name[16];	uint16_t reserved_21[2];	/* Offset 500. */	/* HW Parameter Block. */	uint16_t pcie_table_sig;	uint16_t pcie_table_offset;	uint16_t subsystem_vendor_id;	uint16_t subsystem_device_id;	uint32_t checksum;};/* * ISP Initialization Control Block. * Little endian except where noted. */#define	ICB_VERSION 1struct init_cb_24xx {	uint16_t version;	uint16_t reserved_1;	uint16_t frame_payload_size;	uint16_t execution_throttle;	uint16_t exchange_count;	uint16_t hard_address;	uint8_t port_name[WWN_SIZE];		/* Big endian. */	uint8_t node_name[WWN_SIZE];		/* Big endian. */	uint16_t response_q_inpointer;	uint16_t request_q_outpointer;	uint16_t login_retry_count;	uint16_t prio_request_q_outpointer;	uint16_t response_q_length;	uint16_t request_q_length;	uint16_t link_down_timeout;		/* Milliseconds. */	uint16_t prio_request_q_length;	uint32_t request_q_address[2];	uint32_t response_q_address[2];	uint32_t prio_request_q_address[2];	uint8_t reserved_2[8];	uint16_t atio_q_inpointer;	uint16_t atio_q_length;	uint32_t atio_q_address[2];	uint16_t interrupt_delay_timer;		/* 100us increments. */	uint16_t login_timeout;	/*	 * BIT 0  = Enable Hard Loop Id	 * BIT 1  = Enable Fairness	 * BIT 2  = Enable Full-Duplex	 * BIT 3  = Reserved	 * BIT 4  = Enable Target Mode	 * BIT 5  = Disable Initiator Mode	 * BIT 6  = Reserved	 * BIT 7  = Reserved	 *	 * BIT 8  = Reserved	 * BIT 9  = Non Participating LIP	 * BIT 10 = Descending Loop ID Search	 * BIT 11 = Acquire Loop ID in LIPA	 * BIT 12 = Reserved	 * BIT 13 = Full Login after LIP	 * BIT 14 = Node Name Option	 * BIT 15-31 = Reserved	 */	uint32_t firmware_options_1;	/*	 * BIT 0  = Operation Mode bit 0	 * BIT 1  = Operation Mode bit 1	 * BIT 2  = Operation Mode bit 2	 * BIT 3  = Operation Mode bit 3	 * BIT 4  = Connection Options bit 0	 * BIT 5  = Connection Options bit 1	 * BIT 6  = Connection Options bit 2	 * BIT 7  = Enable Non part on LIHA failure	 *	 * BIT 8  = Enable Class 2	 * BIT 9  = Enable ACK0	 * BIT 10 = Reserved	 * BIT 11 = Enable FC-SP Security	 * BIT 12 = FC Tape Enable	 * BIT 13-31 = Reserved	 */	uint32_t firmware_options_2;	/*	 * BIT 0  = Reserved	 * BIT 1  = Soft ID only	 * BIT 2  = Reserved	 * BIT 3  = Reserved	 * BIT 4  = FCP RSP Payload bit 0	 * BIT 5  = FCP RSP Payload bit 1	 * BIT 6  = Enable Receive Out-of-Order data frame handling	 * BIT 7  = Disable Automatic PLOGI on Local Loop	 *	 * BIT 8  = Reserved	 * BIT 9  = Enable Out-of-Order FCP_XFER_RDY relative offset handling	 * BIT 10 = Reserved	 * BIT 11 = Reserved	 * BIT 12 = Reserved	 * BIT 13 = Data Rate bit 0	 * BIT 14 = Data Rate bit 1	 * BIT 15 = Data Rate bit 2	 * BIT 16-31 = Reserved	 */	uint32_t firmware_options_3;	uint8_t  reserved_3[24];};/* * ISP queue - command entry structure definition. */#define COMMAND_TYPE_6	0x48		/* Command Type 6 entry */struct cmd_type_6 {	uint8_t entry_type;		/* Entry type. */	uint8_t entry_count;		/* Entry count. */	uint8_t sys_define;		/* System defined. */	uint8_t entry_status;		/* Entry Status. */	uint32_t handle;		/* System handle. */	uint16_t nport_handle;		/* N_PORT handle. */	uint16_t timeout;		/* Command timeout. */	uint16_t dseg_count;		/* Data segment count. */	uint16_t fcp_rsp_dsd_len;	/* FCP_RSP DSD length. */	struct scsi_lun lun;		/* FCP LUN (BE). */	uint16_t control_flags;		/* Control flags. */#define CF_DATA_SEG_DESCR_ENABLE	BIT_2#define CF_READ_DATA			BIT_1#define CF_WRITE_DATA			BIT_0	uint16_t fcp_cmnd_dseg_len;		/* Data segment length. */	uint32_t fcp_cmnd_dseg_address[2];	/* Data segment address. */	uint32_t fcp_rsp_dseg_address[2];	/* Data segment address. */	uint32_t byte_count;		/* Total byte count. */	uint8_t port_id[3];		/* PortID of destination port. */	uint8_t vp_index;	uint32_t fcp_data_dseg_address[2];	/* Data segment address. */	uint16_t fcp_data_dseg_len;		/* Data segment length. */	uint16_t reserved_1;			/* MUST be set to 0. */};#define COMMAND_TYPE_7	0x18		/* Command Type 7 entry */struct cmd_type_7 {	uint8_t entry_type;		/* Entry type. */	uint8_t entry_count;		/* Entry count. */	uint8_t sys_define;		/* System defined. */	uint8_t entry_status;		/* Entry Status. */	uint32_t handle;		/* System handle. */	uint16_t nport_handle;		/* N_PORT handle. */	uint16_t timeout;		/* Command timeout. */#define FW_MAX_TIMEOUT		0x1999	uint16_t dseg_count;		/* Data segment count. */	uint16_t reserved_1;	struct scsi_lun lun;		/* FCP LUN (BE). */	uint16_t task_mgmt_flags;	/* Task management flags. */#define TMF_CLEAR_ACA		BIT_14#define TMF_TARGET_RESET	BIT_13#define TMF_LUN_RESET		BIT_12#define TMF_CLEAR_TASK_SET	BIT_10#define TMF_ABORT_TASK_SET	BIT_9#define TMF_READ_DATA		BIT_1#define TMF_WRITE_DATA		BIT_0	uint8_t task;#define TSK_SIMPLE		0#define TSK_HEAD_OF_QUEUE	1#define TSK_ORDERED		2#define TSK_ACA			4#define TSK_UNTAGGED		5	uint8_t crn;	uint8_t fcp_cdb[MAX_CMDSZ]; 	/* SCSI command words. */	uint32_t byte_count;		/* Total byte count. */	uint8_t port_id[3];		/* PortID of destination port. */	uint8_t vp_index;	uint32_t dseg_0_address[2];	/* Data segment 0 address. */	uint32_t dseg_0_len;		/* Data segment 0 length. */};/* * ISP queue - status entry structure definition. */#define	STATUS_TYPE	0x03		/* Status entry. */struct sts_entry_24xx {	uint8_t entry_type;		/* Entry type. */	uint8_t entry_count;		/* Entry count. */	uint8_t sys_define;		/* System defined. */	uint8_t entry_status;		/* Entry Status. */	uint32_t handle;		/* System handle. */	uint16_t comp_status;		/* Completion status. */	uint16_t ox_id;			/* OX_ID used by the firmware. */	uint32_t residual_len;		/* Residual transfer length. */	uint16_t reserved_1;	uint16_t state_flags;		/* State flags. */#define SF_TRANSFERRED_DATA	BIT_11#define SF_FCP_RSP_DMA		BIT_0	uint16_t reserved_2;	uint16_t scsi_status;		/* SCSI status. */#define SS_CONFIRMATION_REQ		BIT_12	uint32_t rsp_residual_count;	/* FCP RSP residual count. */	uint32_t sense_len;		/* FCP SENSE length. */	uint32_t rsp_data_len;		/* FCP response data length. */	uint8_t data[28];		/* FCP response/sense information. */};/* * Status entry completion status */#define CS_DATA_REASSEMBLY_ERROR 0x11	/* Data Reassembly Error.. */#define CS_ABTS_BY_TARGET	0x13	/* Target send ABTS to abort IOCB. */#define CS_FW_RESOURCE		0x2C	/* Firmware Resource Unavailable. */#define CS_TASK_MGMT_OVERRUN	0x30	/* Task management overrun (8+). */#define CS_ABORT_BY_TARGET	0x47	/* Abort By Target. *//* * ISP queue - marker entry structure definition. */#define MARKER_TYPE	0x04		/* Marker entry. */struct mrk_entry_24xx {	uint8_t entry_type;		/* Entry type. */	uint8_t entry_count;		/* Entry count. */	uint8_t handle_count;		/* Handle count. */	uint8_t entry_status;		/* Entry Status. */	uint32_t handle;		/* System handle. */	uint16_t nport_handle;		/* N_PORT handle. */	uint8_t modifier;		/* Modifier (7-0). */#define MK_SYNC_ID_LUN	0		/* Synchronize ID/LUN */#define MK_SYNC_ID	1		/* Synchronize ID */#define MK_SYNC_ALL	2		/* Synchronize all ID/LUN */	uint8_t reserved_1;	uint8_t reserved_2;	uint8_t vp_index;	uint16_t reserved_3;	uint8_t lun[8];			/* FCP LUN (BE). */	uint8_t reserved_4[40];};/* * ISP queue - CT Pass-Through entry structure definition. */#define CT_IOCB_TYPE		0x29	/* CT Pass-Through IOCB entry */struct ct_entry_24xx {	uint8_t entry_type;		/* Entry type. */	uint8_t entry_count;		/* Entry count. */	uint8_t sys_define;		/* System Defined. */

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -