18311SSukumar.Swaminathan@Sun.COM /* 28311SSukumar.Swaminathan@Sun.COM * CDDL HEADER START 38311SSukumar.Swaminathan@Sun.COM * 48311SSukumar.Swaminathan@Sun.COM * The contents of this file are subject to the terms of the 58311SSukumar.Swaminathan@Sun.COM * Common Development and Distribution License (the "License"). 68311SSukumar.Swaminathan@Sun.COM * You may not use this file except in compliance with the License. 78311SSukumar.Swaminathan@Sun.COM * 88311SSukumar.Swaminathan@Sun.COM * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 98311SSukumar.Swaminathan@Sun.COM * or http://www.opensolaris.org/os/licensing. 108311SSukumar.Swaminathan@Sun.COM * See the License for the specific language governing permissions 118311SSukumar.Swaminathan@Sun.COM * and limitations under the License. 128311SSukumar.Swaminathan@Sun.COM * 138311SSukumar.Swaminathan@Sun.COM * When distributing Covered Code, include this CDDL HEADER in each 148311SSukumar.Swaminathan@Sun.COM * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 158311SSukumar.Swaminathan@Sun.COM * If applicable, add the following below this CDDL HEADER, with the 168311SSukumar.Swaminathan@Sun.COM * fields enclosed by brackets "[]" replaced with your own identifying 178311SSukumar.Swaminathan@Sun.COM * information: Portions Copyright [yyyy] [name of copyright owner] 188311SSukumar.Swaminathan@Sun.COM * 198311SSukumar.Swaminathan@Sun.COM * CDDL HEADER END 208311SSukumar.Swaminathan@Sun.COM */ 218311SSukumar.Swaminathan@Sun.COM 22*9446SDaniel.Beauregard@Sun.COM /* Copyright 2009 QLogic Corporation */ 238311SSukumar.Swaminathan@Sun.COM 248311SSukumar.Swaminathan@Sun.COM /* 25*9446SDaniel.Beauregard@Sun.COM * Copyright 2009 Sun Microsystems, Inc. All rights reserved. 268311SSukumar.Swaminathan@Sun.COM * Use is subject to license terms. 278311SSukumar.Swaminathan@Sun.COM */ 288311SSukumar.Swaminathan@Sun.COM 298311SSukumar.Swaminathan@Sun.COM #ifndef _QL_APPS_H 308311SSukumar.Swaminathan@Sun.COM #define _QL_APPS_H 318311SSukumar.Swaminathan@Sun.COM 328311SSukumar.Swaminathan@Sun.COM /* 338311SSukumar.Swaminathan@Sun.COM * ISP2xxx Solaris Fibre Channel Adapter (FCA) driver header file. 348311SSukumar.Swaminathan@Sun.COM * 358311SSukumar.Swaminathan@Sun.COM * *********************************************************************** 368311SSukumar.Swaminathan@Sun.COM * * ** 378311SSukumar.Swaminathan@Sun.COM * * NOTICE ** 38*9446SDaniel.Beauregard@Sun.COM * * COPYRIGHT (C) 1996-2009 QLOGIC CORPORATION ** 398311SSukumar.Swaminathan@Sun.COM * * ALL RIGHTS RESERVED ** 408311SSukumar.Swaminathan@Sun.COM * * ** 418311SSukumar.Swaminathan@Sun.COM * *********************************************************************** 428311SSukumar.Swaminathan@Sun.COM * 438311SSukumar.Swaminathan@Sun.COM */ 448311SSukumar.Swaminathan@Sun.COM 458311SSukumar.Swaminathan@Sun.COM #ifdef __cplusplus 468311SSukumar.Swaminathan@Sun.COM extern "C" { 478311SSukumar.Swaminathan@Sun.COM #endif 488311SSukumar.Swaminathan@Sun.COM 498311SSukumar.Swaminathan@Sun.COM #include <sys/scsi/scsi_types.h> 508311SSukumar.Swaminathan@Sun.COM 51*9446SDaniel.Beauregard@Sun.COM /* f/w trace sizes */ 52*9446SDaniel.Beauregard@Sun.COM #define FWEXTSIZE (0x4000 * 4) /* bytes - 16kb multiples */ 53*9446SDaniel.Beauregard@Sun.COM #define FWFCESIZE (0x4000 * 4) /* bytes - 16kb multiples */ 54*9446SDaniel.Beauregard@Sun.COM 55*9446SDaniel.Beauregard@Sun.COM /* 56*9446SDaniel.Beauregard@Sun.COM * ISP8100 Extended Initialization Control Block 57*9446SDaniel.Beauregard@Sun.COM */ 58*9446SDaniel.Beauregard@Sun.COM typedef struct ql_ext_icb_8100 { 59*9446SDaniel.Beauregard@Sun.COM uint8_t version[2]; 60*9446SDaniel.Beauregard@Sun.COM /* 61*9446SDaniel.Beauregard@Sun.COM * BIT 0 = FCF VLAN ID Match 62*9446SDaniel.Beauregard@Sun.COM * BIT 1 = FCF Fabric Name Match 63*9446SDaniel.Beauregard@Sun.COM * BIT 2-7 = Reserved 64*9446SDaniel.Beauregard@Sun.COM */ 65*9446SDaniel.Beauregard@Sun.COM uint8_t fcf_vlan_match; 66*9446SDaniel.Beauregard@Sun.COM uint8_t reserved_6[3]; 67*9446SDaniel.Beauregard@Sun.COM uint8_t fcf_vlan_id[2]; 68*9446SDaniel.Beauregard@Sun.COM uint8_t fcf_fabric_name[8]; 69*9446SDaniel.Beauregard@Sun.COM uint8_t reserved_7[14]; 70*9446SDaniel.Beauregard@Sun.COM uint8_t spma_proposed_mac_address[6]; 71*9446SDaniel.Beauregard@Sun.COM uint8_t reserved_8[28]; 72*9446SDaniel.Beauregard@Sun.COM } ql_ext_icb_8100_t; 73*9446SDaniel.Beauregard@Sun.COM 748311SSukumar.Swaminathan@Sun.COM /* 758311SSukumar.Swaminathan@Sun.COM * Name: Adapter Revsion Level Structure 768311SSukumar.Swaminathan@Sun.COM * 778311SSukumar.Swaminathan@Sun.COM * Purpose: Supply various revision levels of h/w and driver 788311SSukumar.Swaminathan@Sun.COM * 798311SSukumar.Swaminathan@Sun.COM * Used by: 808311SSukumar.Swaminathan@Sun.COM * qlctest utility 818311SSukumar.Swaminathan@Sun.COM * 828311SSukumar.Swaminathan@Sun.COM */ 838311SSukumar.Swaminathan@Sun.COM typedef struct ql_adapter_revlvl { 848311SSukumar.Swaminathan@Sun.COM uint16_t isp2200; /* 2200 chip rev level */ 858311SSukumar.Swaminathan@Sun.COM uint16_t risc; /* risc rev level */ 868311SSukumar.Swaminathan@Sun.COM uint16_t frmbfr; /* frame buffer rev level */ 878311SSukumar.Swaminathan@Sun.COM uint16_t riscrom; /* risc rom rev level */ 888311SSukumar.Swaminathan@Sun.COM char qlddv[16]; /* ql driver version string */ 898311SSukumar.Swaminathan@Sun.COM } ql_adapter_revlvl_t; 908311SSukumar.Swaminathan@Sun.COM 918311SSukumar.Swaminathan@Sun.COM /* 928311SSukumar.Swaminathan@Sun.COM * Name: Application Mailbox Interface Structure 938311SSukumar.Swaminathan@Sun.COM * 948311SSukumar.Swaminathan@Sun.COM * Purpose: Used to pass mailbox data between app and driver. 958311SSukumar.Swaminathan@Sun.COM * 968311SSukumar.Swaminathan@Sun.COM * Used by: 978311SSukumar.Swaminathan@Sun.COM * qlctest utility 988311SSukumar.Swaminathan@Sun.COM * 998311SSukumar.Swaminathan@Sun.COM */ 1008311SSukumar.Swaminathan@Sun.COM typedef struct app_mbx_cmd { 1018311SSukumar.Swaminathan@Sun.COM uint16_t mb[32]; 1028311SSukumar.Swaminathan@Sun.COM uint8_t reserved1[32]; 1038311SSukumar.Swaminathan@Sun.COM } app_mbx_cmd_t; 1048311SSukumar.Swaminathan@Sun.COM 1058311SSukumar.Swaminathan@Sun.COM /* 1068311SSukumar.Swaminathan@Sun.COM * Name: Diagnostic Loopback Parameter Structure 1078311SSukumar.Swaminathan@Sun.COM * 1088311SSukumar.Swaminathan@Sun.COM * Purpose: Used for loopback parameter data 1098311SSukumar.Swaminathan@Sun.COM * 1108311SSukumar.Swaminathan@Sun.COM * Used by: 1118311SSukumar.Swaminathan@Sun.COM * qlctest utility 1128311SSukumar.Swaminathan@Sun.COM * 1138311SSukumar.Swaminathan@Sun.COM */ 1148311SSukumar.Swaminathan@Sun.COM #ifndef apps_64bit 1158311SSukumar.Swaminathan@Sun.COM typedef struct lbp { 1168311SSukumar.Swaminathan@Sun.COM uint16_t options; 1178311SSukumar.Swaminathan@Sun.COM uint32_t transfer_count; 1188311SSukumar.Swaminathan@Sun.COM uint16_t transfer_segment_count; 1198311SSukumar.Swaminathan@Sun.COM uint16_t receive_segment_count; 1208311SSukumar.Swaminathan@Sun.COM uint32_t transfer_data_address; 1218311SSukumar.Swaminathan@Sun.COM uint32_t receive_data_address; 1228311SSukumar.Swaminathan@Sun.COM uint32_t iteration_count; 1238311SSukumar.Swaminathan@Sun.COM } lbp_t; 1248311SSukumar.Swaminathan@Sun.COM #else 1258311SSukumar.Swaminathan@Sun.COM typedef struct lbp { 1268311SSukumar.Swaminathan@Sun.COM uint16_t options; 1278311SSukumar.Swaminathan@Sun.COM uint32_t transfer_count; 1288311SSukumar.Swaminathan@Sun.COM uint16_t transfer_segment_count; 1298311SSukumar.Swaminathan@Sun.COM uint16_t receive_segment_count; 1308311SSukumar.Swaminathan@Sun.COM uint64_t transfer_data_address; 1318311SSukumar.Swaminathan@Sun.COM uint64_t receive_data_address; 1328311SSukumar.Swaminathan@Sun.COM uint32_t iteration_count; 1338311SSukumar.Swaminathan@Sun.COM } lbp_t; 1348311SSukumar.Swaminathan@Sun.COM #endif 1358311SSukumar.Swaminathan@Sun.COM 1368311SSukumar.Swaminathan@Sun.COM /* 1378311SSukumar.Swaminathan@Sun.COM * Defines used by: 1388311SSukumar.Swaminathan@Sun.COM * qlctest utility 1398311SSukumar.Swaminathan@Sun.COM * 1408311SSukumar.Swaminathan@Sun.COM * Prupose: 1418311SSukumar.Swaminathan@Sun.COM * diag switch clause hooks provided for requested diagnostic 1428311SSukumar.Swaminathan@Sun.COM * functionality (Check command Queue, Revision Level, Firmwware 1438311SSukumar.Swaminathan@Sun.COM * Checksum, Self Test, Loopback Mailbox, Loopback Data, Execute 1448311SSukumar.Swaminathan@Sun.COM * Firmware and send ECHO. 1458311SSukumar.Swaminathan@Sun.COM */ 1468311SSukumar.Swaminathan@Sun.COM #define QL_DIAG_CHKCMDQUE 0 1478311SSukumar.Swaminathan@Sun.COM #define QL_DIAG_FMWCHKSUM 1 1488311SSukumar.Swaminathan@Sun.COM #define QL_DIAG_SLFTST 2 1498311SSukumar.Swaminathan@Sun.COM #define QL_DIAG_REVLVL 3 1508311SSukumar.Swaminathan@Sun.COM #define QL_DIAG_LPBMBX 4 1518311SSukumar.Swaminathan@Sun.COM #define QL_DIAG_LPBDTA 5 1528311SSukumar.Swaminathan@Sun.COM #define QL_DIAG_EXEFMW 6 1538311SSukumar.Swaminathan@Sun.COM #define QL_GET_ADAPTER_FEATURE_BITS 7 1548311SSukumar.Swaminathan@Sun.COM #define QL_SET_ADAPTER_FEATURE_BITS 8 1558311SSukumar.Swaminathan@Sun.COM #define QL_SET_ADAPTER_NVRAM_DEFAULTS 9 1568311SSukumar.Swaminathan@Sun.COM #define QL_DIAG_ECHO 10 1578311SSukumar.Swaminathan@Sun.COM 1588311SSukumar.Swaminathan@Sun.COM /* 1598311SSukumar.Swaminathan@Sun.COM * Defines used for: 1608311SSukumar.Swaminathan@Sun.COM * qladm utility 1618311SSukumar.Swaminathan@Sun.COM * qlctest utility 1628311SSukumar.Swaminathan@Sun.COM * 1638311SSukumar.Swaminathan@Sun.COM * Purpose: 1648311SSukumar.Swaminathan@Sun.COM * Driver IOCTL numbers for nvram dump/load, and driverop 1658311SSukumar.Swaminathan@Sun.COM * functions. NB: 300 --> 399 are reserved for qla2x00 foapi's 1668311SSukumar.Swaminathan@Sun.COM */ 1678311SSukumar.Swaminathan@Sun.COM #define QL_UTIL_LOAD 100 1688311SSukumar.Swaminathan@Sun.COM #define QL_UTIL_DUMP 101 1698311SSukumar.Swaminathan@Sun.COM #define QL_FOAPI_START 300 1708311SSukumar.Swaminathan@Sun.COM #define QL_FOAPI_END 399 1718311SSukumar.Swaminathan@Sun.COM #define QL_ADM_OP 402 1728311SSukumar.Swaminathan@Sun.COM 1738311SSukumar.Swaminathan@Sun.COM /* 1748311SSukumar.Swaminathan@Sun.COM * Purpose: 1758311SSukumar.Swaminathan@Sun.COM * QLA_ADM_OP command definitions 1768311SSukumar.Swaminathan@Sun.COM * 1778311SSukumar.Swaminathan@Sun.COM * Used by: 1788311SSukumar.Swaminathan@Sun.COM * qladm utility 1798311SSukumar.Swaminathan@Sun.COM * qlctest utility 1808311SSukumar.Swaminathan@Sun.COM */ 1818311SSukumar.Swaminathan@Sun.COM typedef enum ql_adm_cmd { 1828311SSukumar.Swaminathan@Sun.COM QL_EXTENDED_LOGGING, 1838311SSukumar.Swaminathan@Sun.COM QL_ADAPTER_INFO, 1848311SSukumar.Swaminathan@Sun.COM QL_DEVICE_LIST, 1858311SSukumar.Swaminathan@Sun.COM QL_LOOP_RESET, 1868311SSukumar.Swaminathan@Sun.COM QL_FW_DUMP, 1878311SSukumar.Swaminathan@Sun.COM QL_NVRAM_LOAD, 1888311SSukumar.Swaminathan@Sun.COM QL_NVRAM_DUMP, 1898311SSukumar.Swaminathan@Sun.COM QL_FLASH_LOAD, 1908311SSukumar.Swaminathan@Sun.COM QL_PROP_UPDATE_INT, 1918311SSukumar.Swaminathan@Sun.COM QL_UPDATE_PROPERTIES, 1928311SSukumar.Swaminathan@Sun.COM QL_VPD_LOAD, 1938311SSukumar.Swaminathan@Sun.COM QL_VPD_DUMP, 1948311SSukumar.Swaminathan@Sun.COM QL_VPD_GETTAG, 1958311SSukumar.Swaminathan@Sun.COM QL_UPD_FWMODULE 1968311SSukumar.Swaminathan@Sun.COM } ql_adm_cmd_t; 1978311SSukumar.Swaminathan@Sun.COM 1988311SSukumar.Swaminathan@Sun.COM /* 1998311SSukumar.Swaminathan@Sun.COM * Purpose: 2008311SSukumar.Swaminathan@Sun.COM * QLA_ADM_OP Parameter Interface Structure 2018311SSukumar.Swaminathan@Sun.COM * 2028311SSukumar.Swaminathan@Sun.COM * Used by: 2038311SSukumar.Swaminathan@Sun.COM * qladm utility 2048311SSukumar.Swaminathan@Sun.COM * qlctest utility 2058311SSukumar.Swaminathan@Sun.COM */ 2068311SSukumar.Swaminathan@Sun.COM typedef struct ql_adm_op { 2078311SSukumar.Swaminathan@Sun.COM uint64_t buffer; 2088311SSukumar.Swaminathan@Sun.COM uint32_t length; 2098311SSukumar.Swaminathan@Sun.COM uint32_t option; 2108311SSukumar.Swaminathan@Sun.COM ql_adm_cmd_t cmd; /* driver_op command */ 2118311SSukumar.Swaminathan@Sun.COM } ql_adm_op_t; 2128311SSukumar.Swaminathan@Sun.COM 2138311SSukumar.Swaminathan@Sun.COM /* 2148311SSukumar.Swaminathan@Sun.COM * Purpose: 2158311SSukumar.Swaminathan@Sun.COM * QLA_ADM_OP parameter data structure 2168311SSukumar.Swaminathan@Sun.COM * 2178311SSukumar.Swaminathan@Sun.COM * Used by: 2188311SSukumar.Swaminathan@Sun.COM * qladm utility 2198311SSukumar.Swaminathan@Sun.COM * qlctest utility 2208311SSukumar.Swaminathan@Sun.COM */ 2218311SSukumar.Swaminathan@Sun.COM #define MAX_PROP_LENGTH 256 2228311SSukumar.Swaminathan@Sun.COM typedef struct ql_adapter_info { 2238311SSukumar.Swaminathan@Sun.COM uint8_t wwpn[8]; 2248311SSukumar.Swaminathan@Sun.COM uint32_t d_id; 2258311SSukumar.Swaminathan@Sun.COM uint32_t flash_size; 2268311SSukumar.Swaminathan@Sun.COM uint16_t device_id; 2278311SSukumar.Swaminathan@Sun.COM char fw_ver[MAX_PROP_LENGTH]; 2288311SSukumar.Swaminathan@Sun.COM char fcode_ver[MAX_PROP_LENGTH]; 2298311SSukumar.Swaminathan@Sun.COM char driver_ver[MAX_PROP_LENGTH]; 2308311SSukumar.Swaminathan@Sun.COM } ql_adapter_info_t; 2318311SSukumar.Swaminathan@Sun.COM 2328311SSukumar.Swaminathan@Sun.COM /* 2338311SSukumar.Swaminathan@Sun.COM * Purpose: 2348311SSukumar.Swaminathan@Sun.COM * QLA_ADM_OP data types (Fibre channel port types) 2358311SSukumar.Swaminathan@Sun.COM * 2368311SSukumar.Swaminathan@Sun.COM * Used by: 2378311SSukumar.Swaminathan@Sun.COM * qladm utility 2388311SSukumar.Swaminathan@Sun.COM * qlctest utility 2398311SSukumar.Swaminathan@Sun.COM */ 2408311SSukumar.Swaminathan@Sun.COM typedef enum ql_port_type { 2418311SSukumar.Swaminathan@Sun.COM FCT_UNKNOWN, 2428311SSukumar.Swaminathan@Sun.COM FCT_TAPE, 2438311SSukumar.Swaminathan@Sun.COM FCT_INITIATOR, 2448311SSukumar.Swaminathan@Sun.COM FCT_TARGET 2458311SSukumar.Swaminathan@Sun.COM } ql_port_type_t; 2468311SSukumar.Swaminathan@Sun.COM 2478311SSukumar.Swaminathan@Sun.COM /* 2488311SSukumar.Swaminathan@Sun.COM * Purpose: 2498311SSukumar.Swaminathan@Sun.COM * QLA_ADM_OP Device Information Structure 2508311SSukumar.Swaminathan@Sun.COM * 2518311SSukumar.Swaminathan@Sun.COM * Used by: 2528311SSukumar.Swaminathan@Sun.COM * qladm utility 2538311SSukumar.Swaminathan@Sun.COM * qlctest utility 2548311SSukumar.Swaminathan@Sun.COM */ 2558311SSukumar.Swaminathan@Sun.COM typedef struct ql_device_info { 2568311SSukumar.Swaminathan@Sun.COM uint8_t wwpn[8]; 2578311SSukumar.Swaminathan@Sun.COM uint32_t address; 2588311SSukumar.Swaminathan@Sun.COM ql_port_type_t type; 2598311SSukumar.Swaminathan@Sun.COM uint16_t loop_id; 2608311SSukumar.Swaminathan@Sun.COM } ql_device_info_t; 2618311SSukumar.Swaminathan@Sun.COM 2628311SSukumar.Swaminathan@Sun.COM #ifdef __cplusplus 2638311SSukumar.Swaminathan@Sun.COM } 2648311SSukumar.Swaminathan@Sun.COM #endif 2658311SSukumar.Swaminathan@Sun.COM 2668311SSukumar.Swaminathan@Sun.COM #endif /* _QL_APPS_H */ 267