emlxs_mbox.h (a9800beb) emlxs_mbox.h (8f23e9fa)
1/*
2 * CDDL HEADER START
3 *
4 * The contents of this file are subject to the terms of the
5 * Common Development and Distribution License (the "License").
6 * You may not use this file except in compliance with the License.
7 *
1/*
2 * CDDL HEADER START
3 *
4 * The contents of this file are subject to the terms of the
5 * Common Development and Distribution License (the "License").
6 * You may not use this file except in compliance with the License.
7 *
8 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
9 * or http://www.opensolaris.org/os/licensing.
8 * You can obtain a copy of the license at
9 * http://www.opensource.org/licenses/cddl1.txt.
10 * See the License for the specific language governing permissions
11 * and limitations under the License.
12 *
13 * When distributing Covered Code, include this CDDL HEADER in each
14 * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
15 * If applicable, add the following below this CDDL HEADER, with the
16 * fields enclosed by brackets "[]" replaced with your own identifying
17 * information: Portions Copyright [yyyy] [name of copyright owner]
18 *
19 * CDDL HEADER END
20 */
21
22/*
10 * See the License for the specific language governing permissions
11 * and limitations under the License.
12 *
13 * When distributing Covered Code, include this CDDL HEADER in each
14 * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
15 * If applicable, add the following below this CDDL HEADER, with the
16 * fields enclosed by brackets "[]" replaced with your own identifying
17 * information: Portions Copyright [yyyy] [name of copyright owner]
18 *
19 * CDDL HEADER END
20 */
21
22/*
23 * Copyright 2010 Emulex. All rights reserved.
23 * Copyright (c) 2004-2012 Emulex. All rights reserved.
24 * Use is subject to license terms.
25 */
26
27#ifndef _EMLXS_MBOX_H
28#define _EMLXS_MBOX_H
29
30#ifdef __cplusplus
31extern "C" {

--- 69 unchanged lines hidden (view full) ---

101#define MBX_CONFIG_HBQ 0x7C /* SLI3 */
102#define MBX_LOAD_AREA 0x81
103#define MBX_RUN_BIU_DIAG64 0x84
104#define MBX_GET_DEBUG 0x86
105#define MBX_CONFIG_PORT 0x88
106#define MBX_READ_SPARM64 0x8D
107#define MBX_READ_RPI64 0x8F
108#define MBX_CONFIG_MSI 0x90
24 * Use is subject to license terms.
25 */
26
27#ifndef _EMLXS_MBOX_H
28#define _EMLXS_MBOX_H
29
30#ifdef __cplusplus
31extern "C" {

--- 69 unchanged lines hidden (view full) ---

101#define MBX_CONFIG_HBQ 0x7C /* SLI3 */
102#define MBX_LOAD_AREA 0x81
103#define MBX_RUN_BIU_DIAG64 0x84
104#define MBX_GET_DEBUG 0x86
105#define MBX_CONFIG_PORT 0x88
106#define MBX_READ_SPARM64 0x8D
107#define MBX_READ_RPI64 0x8F
108#define MBX_CONFIG_MSI 0x90
109#define MBX_REG_LOGIN64 0x93 /* SLI2/3 */
110#define MBX_REG_RPI 0x93 /* SLI4 */
111#define MBX_READ_LA64 0x95
112#define MBX_REG_VPI 0x96 /* NPIV */
113#define MBX_UNREG_VPI 0x97 /* NPIV */
109#define MBX_REG_LOGIN64 0x93 /* SLI2/3 */
110#define MBX_REG_RPI 0x93 /* SLI4 */
111#define MBX_READ_LA64 0x95 /* SLI2/3 */
112#define MBX_READ_TOPOLOGY 0x95 /* SLI4 */
113#define MBX_REG_VPI 0x96 /* NPIV */
114#define MBX_UNREG_VPI 0x97 /* NPIV */
114#define MBX_FLASH_WR_ULA 0x98
115#define MBX_SET_DEBUG 0x99
116#define MBX_SLI_CONFIG 0x9B
117#define MBX_LOAD_EXP_ROM 0x9C
118#define MBX_REQUEST_FEATURES 0x9D
119#define MBX_RESUME_RPI 0x9E
120#define MBX_REG_VFI 0x9F
121#define MBX_REG_FCFI 0xA0

--- 22 unchanged lines hidden (view full) ---

144#define MBXERR_RPI_REGISTERED 0xB
145#define MBXERR_RPI_FULL 0xC
146#define MBXERR_NO_RESOURCES 0xD
147#define MBXERR_BAD_RCV_LENGTH 0xE
148#define MBXERR_DMA_ERROR 0xF
149#define MBXERR_NOT_SUPPORTED 0x10
150#define MBXERR_UNSUPPORTED_FEATURE 0x11
151#define MBXERR_UNKNOWN_COMMAND 0x12
115#define MBX_FLASH_WR_ULA 0x98
116#define MBX_SET_DEBUG 0x99
117#define MBX_SLI_CONFIG 0x9B
118#define MBX_LOAD_EXP_ROM 0x9C
119#define MBX_REQUEST_FEATURES 0x9D
120#define MBX_RESUME_RPI 0x9E
121#define MBX_REG_VFI 0x9F
122#define MBX_REG_FCFI 0xA0

--- 22 unchanged lines hidden (view full) ---

145#define MBXERR_RPI_REGISTERED 0xB
146#define MBXERR_RPI_FULL 0xC
147#define MBXERR_NO_RESOURCES 0xD
148#define MBXERR_BAD_RCV_LENGTH 0xE
149#define MBXERR_DMA_ERROR 0xF
150#define MBXERR_NOT_SUPPORTED 0x10
151#define MBXERR_UNSUPPORTED_FEATURE 0x11
152#define MBXERR_UNKNOWN_COMMAND 0x12
153#define MBXERR_BAD_IP_BIT 0x13
154#define MBXERR_BAD_PCB_ALIGN 0x14
155#define MBXERR_BAD_HBQ_ID 0x15
156#define MBXERR_BAD_HBQ_STATE 0x16
157#define MBXERR_BAD_HBQ_MASK_NUM 0x17
158#define MBXERR_BAD_HBQ_MASK_SUBSET 0x18
159#define MBXERR_HBQ_CREATE_FAIL 0x19
160#define MBXERR_HBQ_EXISTING 0x1A
161#define MBXERR_HBQ_RSPRING_FULL 0x1B
162#define MBXERR_HBQ_DUP_MASK 0x1C
163#define MBXERR_HBQ_INVAL_GET_PTR 0x1D
164#define MBXERR_BAD_HBQ_SIZE 0x1E
165#define MBXERR_BAD_HBQ_ORDER 0x1F
166#define MBXERR_INVALID_ID 0x20
152
167
168#define MBXERR_INVALID_VFI 0x30
169
170#define MBXERR_FLASH_WRITE_FAILED 0x100
171
172#define MBXERR_INVALID_LINKSPEED 0x500
173
174#define MBXERR_BAD_REDIRECT 0x900
175#define MBXERR_RING_ALREADY_CONFIG 0x901
176
177#define MBXERR_RING_INACTIVE 0xA00
178
179#define MBXERR_RPI_INACTIVE 0xF00
180
181#define MBXERR_NO_ACTIVE_XRI 0x1100
182#define MBXERR_XRI_NOT_ACTIVE 0x1101
183
184#define MBXERR_RPI_INUSE 0x1400
185
186#define MBXERR_NO_LINK_ATTENTION 0x1500
187
188#define MBXERR_INVALID_SLI_MODE 0x8800
189#define MBXERR_INVALID_HOST_PTR 0x8801
190#define MBXERR_CANT_CFG_SLI_MODE 0x8802
191#define MBXERR_BAD_OVERLAY 0x8803
192#define MBXERR_INVALID_FEAT_REQ 0x8804
193
194#define MBXERR_CONFIG_CANT_COMPLETE 0x88FF
195
196#define MBXERR_DID_ALREADY_REGISTERED 0x9600
197#define MBXERR_DID_INCONSISTENT 0x9601
198#define MBXERR_VPI_TOO_LARGE 0x9603
199
200#define MBXERR_STILL_ASSOCIATED 0x9700
201
202#define MBXERR_INVALID_VF_STATE 0x9F00
203#define MBXERR_VFI_ALREADY_REGISTERED 0x9F02
204#define MBXERR_VFI_TOO_LARGE 0x9F03
205
206#define MBXERR_LOAD_FW_FAILED 0xFFFE
207#define MBXERR_FIND_FW_FAILED 0xFFFF
208
153/* Driver special codes */
154#define MBX_DRIVER_RESERVED 0xF9 /* Set to lowest drv status */
155#define MBX_NONEMBED_ERROR 0xF9
156#define MBX_OVERTEMP_ERROR 0xFA
157#define MBX_HARDWARE_ERROR 0xFB
158#define MBX_DRVR_ERROR 0xFC
159#define MBX_BUSY 0xFD
160#define MBX_TIMEOUT 0xFE

--- 535 unchanged lines hidden (view full) ---

696 uint32_t altov;
697 uint32_t lmt;
698
699#define LMT_1GB_CAPABLE 0x0004
700#define LMT_2GB_CAPABLE 0x0008
701#define LMT_4GB_CAPABLE 0x0040
702#define LMT_8GB_CAPABLE 0x0080
703#define LMT_10GB_CAPABLE 0x0100
209/* Driver special codes */
210#define MBX_DRIVER_RESERVED 0xF9 /* Set to lowest drv status */
211#define MBX_NONEMBED_ERROR 0xF9
212#define MBX_OVERTEMP_ERROR 0xFA
213#define MBX_HARDWARE_ERROR 0xFB
214#define MBX_DRVR_ERROR 0xFC
215#define MBX_BUSY 0xFD
216#define MBX_TIMEOUT 0xFE

--- 535 unchanged lines hidden (view full) ---

752 uint32_t altov;
753 uint32_t lmt;
754
755#define LMT_1GB_CAPABLE 0x0004
756#define LMT_2GB_CAPABLE 0x0008
757#define LMT_4GB_CAPABLE 0x0040
758#define LMT_8GB_CAPABLE 0x0080
759#define LMT_10GB_CAPABLE 0x0100
760#define LMT_16GB_CAPABLE 0x0200
704/* E2E supported on adapters >= 8GB */
705#define LMT_E2E_CAPABLE (LMT_8GB_CAPABLE|LMT_10GB_CAPABLE)
706
707 uint32_t rsvd2;
708 uint32_t rsvd3;
709 uint32_t max_xri;
710 uint32_t max_iocb;
711 uint32_t max_rpi;

--- 8 unchanged lines hidden (view full) ---

720} READ_CONFIG_VAR;
721
722
723/* Structure for MB Command READ_CONFIG(0x11) */
724/* Good for SLI4 only */
725
726typedef struct
727{
761/* E2E supported on adapters >= 8GB */
762#define LMT_E2E_CAPABLE (LMT_8GB_CAPABLE|LMT_10GB_CAPABLE)
763
764 uint32_t rsvd2;
765 uint32_t rsvd3;
766 uint32_t max_xri;
767 uint32_t max_iocb;
768 uint32_t max_rpi;

--- 8 unchanged lines hidden (view full) ---

777} READ_CONFIG_VAR;
778
779
780/* Structure for MB Command READ_CONFIG(0x11) */
781/* Good for SLI4 only */
782
783typedef struct
784{
728 uint32_t rsvd1; /* Word 1 */
729#ifdef EMLXS_BIG_ENDIAN
785#ifdef EMLXS_BIG_ENDIAN
730 uint32_t topology:8;
731 uint32_t rsvd2:24; /* Word 2 */
786 uint32_t extents:1; /* Word 1 */
787 uint32_t rsvd1:31;
788
789 uint32_t topology:8; /* Word 2 */
790 uint32_t rsvd2:15;
791 uint32_t ldv:1;
792 uint32_t link_type:2;
793 uint32_t link_number:6;
732#endif
733#ifdef EMLXS_LITTLE_ENDIAN
794#endif
795#ifdef EMLXS_LITTLE_ENDIAN
734 uint32_t rsvd2:24; /* Word 2 */
796 uint32_t rsvd1:31; /* Word 1 */
797 uint32_t extents:1;
798
799 uint32_t link_number:6; /* Word 2 */
800 uint32_t link_type:2;
801 uint32_t ldv:1;
802 uint32_t rsvd2:15;
735 uint32_t topology:8;
736#endif
737 uint32_t rsvd3; /* Word 3 */
738 uint32_t edtov; /* Word 4 */
739 uint32_t rsvd4; /* Word 5 */
740 uint32_t ratov; /* Word 6 */
741 uint32_t rsvd5; /* Word 7 */
742 uint32_t rsvd6; /* Word 8 */

--- 34 unchanged lines hidden (view full) ---

777 uint16_t VPICount; /* Word 14 */
778
779 uint16_t VFIBase; /* Word 15 */
780 uint16_t VFICount; /* Word 15 */
781
782 uint16_t rsvd10; /* Word 16 */
783 uint16_t FCFICount; /* Word 16 */
784
803 uint32_t topology:8;
804#endif
805 uint32_t rsvd3; /* Word 3 */
806 uint32_t edtov; /* Word 4 */
807 uint32_t rsvd4; /* Word 5 */
808 uint32_t ratov; /* Word 6 */
809 uint32_t rsvd5; /* Word 7 */
810 uint32_t rsvd6; /* Word 8 */

--- 34 unchanged lines hidden (view full) ---

845 uint16_t VPICount; /* Word 14 */
846
847 uint16_t VFIBase; /* Word 15 */
848 uint16_t VFICount; /* Word 15 */
849
850 uint16_t rsvd10; /* Word 16 */
851 uint16_t FCFICount; /* Word 16 */
852
785 uint16_t EQCount; /* Word 17 */
786 uint16_t RQCount; /* Word 17 */
853 uint16_t RQCount; /* Word 17 */
854 uint16_t EQCount; /* Word 17 */
787
855
788 uint16_t CQCount; /* Word 18 */
789 uint16_t WQCount; /* Word 18 */
856 uint16_t WQCount; /* Word 18 */
857 uint16_t CQCount; /* Word 18 */
790#endif
791
792} READ_CONFIG4_VAR;
793
794/* Structure for MB Command READ_RCONFIG (12) */
795
796typedef struct
797{

--- 371 unchanged lines hidden (view full) ---

1169/* Good for SLI2/3 and SLI4 */
1170
1171typedef struct
1172{
1173#ifdef EMLXS_BIG_ENDIAN
1174 uint16_t rsvd1;
1175 uint16_t rpi;
1176 uint32_t CI:1;
858#endif
859
860} READ_CONFIG4_VAR;
861
862/* Structure for MB Command READ_RCONFIG (12) */
863
864typedef struct
865{

--- 371 unchanged lines hidden (view full) ---

1237/* Good for SLI2/3 and SLI4 */
1238
1239typedef struct
1240{
1241#ifdef EMLXS_BIG_ENDIAN
1242 uint16_t rsvd1;
1243 uint16_t rpi;
1244 uint32_t CI:1;
1177 uint32_t rsvd2:7;
1245 uint32_t rsvd2:1;
1246 uint32_t TERP:1;
1247 uint32_t rsvd3:4;
1248 uint32_t update:1;
1178 uint32_t did:24;
1179#endif
1180#ifdef EMLXS_LITTLE_ENDIAN
1181 uint16_t rpi;
1182 uint16_t rsvd1;
1183 uint32_t did:24;
1249 uint32_t did:24;
1250#endif
1251#ifdef EMLXS_LITTLE_ENDIAN
1252 uint16_t rpi;
1253 uint16_t rsvd1;
1254 uint32_t did:24;
1184 uint32_t rsvd2:7;
1255 uint32_t update:1;
1256 uint32_t rsvd3:4;
1257 uint32_t TERP:1;
1258 uint32_t rsvd2:1;
1185 uint32_t CI:1;
1186#endif
1187 union
1188 {
1189 ULP_BDE sp;
1190 ULP_BDE64 sp64;
1191 } un;
1192

--- 225 unchanged lines hidden (view full) ---

1418 uint32_t tc:1;
1419 uint32_t mm:1;
1420 uint32_t fa:1;
1421 uint32_t rsvd2:19;
1422#endif
1423#define AT_RESERVED 0x00 /* Reserved - attType */
1424#define AT_LINK_UP 0x01 /* Link is up */
1425#define AT_LINK_DOWN 0x02 /* Link is down */
1259 uint32_t CI:1;
1260#endif
1261 union
1262 {
1263 ULP_BDE sp;
1264 ULP_BDE64 sp64;
1265 } un;
1266

--- 225 unchanged lines hidden (view full) ---

1492 uint32_t tc:1;
1493 uint32_t mm:1;
1494 uint32_t fa:1;
1495 uint32_t rsvd2:19;
1496#endif
1497#define AT_RESERVED 0x00 /* Reserved - attType */
1498#define AT_LINK_UP 0x01 /* Link is up */
1499#define AT_LINK_DOWN 0x02 /* Link is down */
1500#define AT_NO_HARD_ALPA 0x03 /* SLI4 */
1501
1426#ifdef EMLXS_BIG_ENDIAN
1427 uint8_t granted_AL_PA;
1428 uint8_t lipAlPs;
1429 uint8_t lipType;
1430 uint8_t topology;
1431#endif
1432#ifdef EMLXS_LITTLE_ENDIAN
1433 uint8_t topology;

--- 51 unchanged lines hidden (view full) ---

1485 uint32_t Urx:2;
1486 uint32_t Utx:2;
1487 uint32_t UnlPort:4;
1488 uint32_t UlnkSpeed:8;
1489 uint32_t Ursvd2:14;
1490 uint32_t Utf:1;
1491 uint32_t Ulu:1;
1492#endif
1502#ifdef EMLXS_BIG_ENDIAN
1503 uint8_t granted_AL_PA;
1504 uint8_t lipAlPs;
1505 uint8_t lipType;
1506 uint8_t topology;
1507#endif
1508#ifdef EMLXS_LITTLE_ENDIAN
1509 uint8_t topology;

--- 51 unchanged lines hidden (view full) ---

1561 uint32_t Urx:2;
1562 uint32_t Utx:2;
1563 uint32_t UnlPort:4;
1564 uint32_t UlnkSpeed:8;
1565 uint32_t Ursvd2:14;
1566 uint32_t Utf:1;
1567 uint32_t Ulu:1;
1568#endif
1493
1494#define LA_1GHZ_LINK 0x04 /* lnkSpeed */
1495#define LA_2GHZ_LINK 0x08 /* lnkSpeed */
1496#define LA_4GHZ_LINK 0x10 /* lnkSpeed */
1497#define LA_8GHZ_LINK 0x20 /* lnkSpeed */
1498#define LA_10GHZ_LINK 0x40 /* lnkSpeed */
1569#define LA_1GHZ_LINK 0x04 /* lnkSpeed */
1570#define LA_2GHZ_LINK 0x08 /* lnkSpeed */
1571#define LA_4GHZ_LINK 0x10 /* lnkSpeed */
1572#define LA_8GHZ_LINK 0x20 /* lnkSpeed */
1573#define LA_10GHZ_LINK 0x40 /* lnkSpeed */
1574#define LA_16GHZ_LINK 0x80 /* lnkSpeed */
1499} READ_LA_VAR;
1500
1501
1502/* Structure for MB Command CLEAR_LA (22) */
1503
1504typedef struct
1505{
1506 uint32_t eventTag; /* Event tag */

--- 435 unchanged lines hidden (view full) ---

1942} UNREG_VPI_VAR4;
1943
1944/* Structure for MB Command REG_VFI(0x9F) */
1945/* Good for SLI4 only */
1946
1947typedef struct
1948{
1949#ifdef EMLXS_BIG_ENDIAN
1575} READ_LA_VAR;
1576
1577
1578/* Structure for MB Command CLEAR_LA (22) */
1579
1580typedef struct
1581{
1582 uint32_t eventTag; /* Event tag */

--- 435 unchanged lines hidden (view full) ---

2018} UNREG_VPI_VAR4;
2019
2020/* Structure for MB Command REG_VFI(0x9F) */
2021/* Good for SLI4 only */
2022
2023typedef struct
2024{
2025#ifdef EMLXS_BIG_ENDIAN
1950 uint32_t rsvd1:3;
1951 uint32_t vp:1;
1952 uint32_t rsvd2:12;
2026 uint16_t rsvd1:2;
2027 uint16_t upd:1;
2028 uint16_t vp:1;
2029 uint16_t rsvd2:12;
1953 uint16_t vfi;
1954
1955 uint16_t vpi;
1956 uint16_t fcfi;
1957
1958 uint32_t portname[2]; /* N_PORT name */
1959
1960 ULP_BDE64 bde;
1961
1962/* CHANGE with next firmware drop */
1963 uint32_t edtov;
1964 uint32_t ratov;
1965
1966 uint32_t rsvd5:8;
1967 uint32_t sid:24;
1968#endif
1969#ifdef EMLXS_LITTLE_ENDIAN
1970 uint16_t vfi;
2030 uint16_t vfi;
2031
2032 uint16_t vpi;
2033 uint16_t fcfi;
2034
2035 uint32_t portname[2]; /* N_PORT name */
2036
2037 ULP_BDE64 bde;
2038
2039/* CHANGE with next firmware drop */
2040 uint32_t edtov;
2041 uint32_t ratov;
2042
2043 uint32_t rsvd5:8;
2044 uint32_t sid:24;
2045#endif
2046#ifdef EMLXS_LITTLE_ENDIAN
2047 uint16_t vfi;
1971 uint32_t rsvd2:12;
1972 uint32_t vp:1;
1973 uint32_t rsvd1:3;
2048 uint16_t rsvd2:12;
2049 uint16_t vp:1;
2050 uint16_t upd:1;
2051 uint16_t rsvd1:2;
1974
1975 uint16_t fcfi;
1976 uint16_t vpi;
1977
1978 uint32_t portname[2]; /* N_PORT name */
1979
1980 ULP_BDE64 bde;
1981

--- 189 unchanged lines hidden (view full) ---

2171 uint32_t chbs:1; /* Cofigure Host Backing store */
2172 uint32_t csah:1; /* Configure Synchronous Abort */
2173 /* Handling */
2174 uint32_t ccrp:1; /* Config Command Ring Polling */
2175 uint32_t cmv:1; /* Configure Max VPIs */
2176 uint32_t rsvd1:24;
2177#endif
2178#ifdef EMLXS_BIG_ENDIAN
2052
2053 uint16_t fcfi;
2054 uint16_t vpi;
2055
2056 uint32_t portname[2]; /* N_PORT name */
2057
2058 ULP_BDE64 bde;
2059

--- 189 unchanged lines hidden (view full) ---

2249 uint32_t chbs:1; /* Cofigure Host Backing store */
2250 uint32_t csah:1; /* Configure Synchronous Abort */
2251 /* Handling */
2252 uint32_t ccrp:1; /* Config Command Ring Polling */
2253 uint32_t cmv:1; /* Configure Max VPIs */
2254 uint32_t rsvd1:24;
2255#endif
2256#ifdef EMLXS_BIG_ENDIAN
2179 uint32_t rsvd2:24;
2257 uint32_t rsvd2:19; /* Reserved */
2258 uint32_t gdss:1; /* Configure Data Security SLI */
2259 uint32_t rsvd3:3; /* Reserved */
2260 uint32_t gbg:1; /* Grant BlockGuard */
2180 uint32_t gmv:1; /* Grant Max VPIs */
2181 uint32_t gcrp:1; /* Grant Command Ring Polling */
2182 uint32_t gsah:1; /* Grant Synchronous Abort Handling */
2183 uint32_t ghbs:1; /* Grant Host Backing Store */
2184 uint32_t ginb:1; /* Grant Interrupt Notification Block */
2185 uint32_t gerbm:1; /* Grant ERBM Request */
2186 uint32_t gmx:1; /* Grant Max XRIs */
2187 uint32_t gmr:1; /* Grant Max RPIs */
2188#endif
2189#ifdef EMLXS_LITTLE_ENDIAN
2190 uint32_t gmr:1; /* Grant Max RPIs */
2191 uint32_t gmx:1; /* Grant Max XRIs */
2192 uint32_t gerbm:1; /* Grant ERBM Request */
2193 uint32_t ginb:1; /* Grant Interrupt Notification Block */
2194 uint32_t ghbs:1; /* Grant Host Backing Store */
2195 uint32_t gsah:1; /* Grant Synchronous Abort Handling */
2196 uint32_t gcrp:1; /* Grant Command Ring Polling */
2197 uint32_t gmv:1; /* Grant Max VPIs */
2261 uint32_t gmv:1; /* Grant Max VPIs */
2262 uint32_t gcrp:1; /* Grant Command Ring Polling */
2263 uint32_t gsah:1; /* Grant Synchronous Abort Handling */
2264 uint32_t ghbs:1; /* Grant Host Backing Store */
2265 uint32_t ginb:1; /* Grant Interrupt Notification Block */
2266 uint32_t gerbm:1; /* Grant ERBM Request */
2267 uint32_t gmx:1; /* Grant Max XRIs */
2268 uint32_t gmr:1; /* Grant Max RPIs */
2269#endif
2270#ifdef EMLXS_LITTLE_ENDIAN
2271 uint32_t gmr:1; /* Grant Max RPIs */
2272 uint32_t gmx:1; /* Grant Max XRIs */
2273 uint32_t gerbm:1; /* Grant ERBM Request */
2274 uint32_t ginb:1; /* Grant Interrupt Notification Block */
2275 uint32_t ghbs:1; /* Grant Host Backing Store */
2276 uint32_t gsah:1; /* Grant Synchronous Abort Handling */
2277 uint32_t gcrp:1; /* Grant Command Ring Polling */
2278 uint32_t gmv:1; /* Grant Max VPIs */
2198 uint32_t rsvd2:24;
2279 uint32_t gbg:1; /* Grant BlockGuard */
2280 uint32_t rsvd3:3; /* Reserved */
2281 uint32_t gdss:1; /* Configure Data Security SLI */
2282 uint32_t rsvd2:19; /* Reserved */
2199#endif
2200
2201#ifdef EMLXS_BIG_ENDIAN
2202 uint32_t max_rpi:16; /* Max RPIs Port should configure */
2203 uint32_t max_xri:16; /* Max XRIs Port should configure */
2204#endif
2205#ifdef EMLXS_LITTLE_ENDIAN
2206 uint32_t max_xri:16; /* Max XRIs Port should configure */
2207 uint32_t max_rpi:16; /* Max RPIs Port should configure */
2208#endif
2209
2210#ifdef EMLXS_BIG_ENDIAN
2211 uint32_t max_hbq:16; /* Max HBQs Host expect to configure */
2283#endif
2284
2285#ifdef EMLXS_BIG_ENDIAN
2286 uint32_t max_rpi:16; /* Max RPIs Port should configure */
2287 uint32_t max_xri:16; /* Max XRIs Port should configure */
2288#endif
2289#ifdef EMLXS_LITTLE_ENDIAN
2290 uint32_t max_xri:16; /* Max XRIs Port should configure */
2291 uint32_t max_rpi:16; /* Max RPIs Port should configure */
2292#endif
2293
2294#ifdef EMLXS_BIG_ENDIAN
2295 uint32_t max_hbq:16; /* Max HBQs Host expect to configure */
2212 uint32_t rsvd3:16; /* Max HBQs Host expect to configure */
2296 uint32_t rsvd4:16; /* Max HBQs Host expect to configure */
2213#endif
2214#ifdef EMLXS_LITTLE_ENDIAN
2297#endif
2298#ifdef EMLXS_LITTLE_ENDIAN
2215 uint32_t rsvd3:16; /* Max HBQs Host expect to configure */
2299 uint32_t rsvd4:16; /* Max HBQs Host expect to configure */
2216 uint32_t max_hbq:16; /* Max HBQs Host expect to configure */
2217#endif
2218
2300 uint32_t max_hbq:16; /* Max HBQs Host expect to configure */
2301#endif
2302
2219 uint32_t rsvd4; /* Reserved */
2303 uint32_t rsvd5; /* Reserved */
2220
2221#ifdef EMLXS_BIG_ENDIAN
2304
2305#ifdef EMLXS_BIG_ENDIAN
2222 uint32_t rsvd5:16; /* Reserved */
2306 uint32_t rsvd6:16; /* Reserved */
2223 uint32_t vpi_max:16; /* Max number of virt N-Ports */
2224#endif
2225#ifdef EMLXS_LITTLE_ENDIAN
2226 uint32_t vpi_max:16; /* Max number of virt N-Ports */
2307 uint32_t vpi_max:16; /* Max number of virt N-Ports */
2308#endif
2309#ifdef EMLXS_LITTLE_ENDIAN
2310 uint32_t vpi_max:16; /* Max number of virt N-Ports */
2227 uint32_t rsvd5:16; /* Reserved */
2311 uint32_t rsvd6:16; /* Reserved */
2228#endif
2229} CONFIG_PORT_VAR;
2230
2231/* Structure for MB Command REQUEST_FEATURES (0x9D) */
2232/* Good for SLI4 only */
2233
2234typedef struct
2235{

--- 6 unchanged lines hidden (view full) ---

2242 uint32_t rsvd1:31;
2243#endif
2244
2245 uint32_t featuresRequested;
2246 uint32_t featuresEnabled;
2247
2248} REQUEST_FEATURES_VAR;
2249
2312#endif
2313} CONFIG_PORT_VAR;
2314
2315/* Structure for MB Command REQUEST_FEATURES (0x9D) */
2316/* Good for SLI4 only */
2317
2318typedef struct
2319{

--- 6 unchanged lines hidden (view full) ---

2326 uint32_t rsvd1:31;
2327#endif
2328
2329 uint32_t featuresRequested;
2330 uint32_t featuresEnabled;
2331
2332} REQUEST_FEATURES_VAR;
2333
2250#define SLI4_FEATURE_INHIBIT_AUTO_ABTS 0x0001
2251#define SLI4_FEATURE_NPIV 0x0002
2252#define SLI4_FEATURE_DIF 0x0004
2253#define SLI4_FEATURE_VIRTUAL_FABRICS 0x0008
2254#define SLI4_FEATURE_FCP_INITIATOR 0x0010
2255#define SLI4_FEATURE_FCP_TARGET 0x0020
2256#define SLI4_FEATURE_FCP_COMBO 0x0040
2257#define SLI4_FEATURE_INHIBIT_FIP 0x0080
2334#define SLI4_FEATURE_INHIBIT_AUTO_ABTS 0x0001
2335#define SLI4_FEATURE_NPIV 0x0002
2336#define SLI4_FEATURE_DIF 0x0004
2337#define SLI4_FEATURE_VIRTUAL_FABRICS 0x0008
2338#define SLI4_FEATURE_FCP_INITIATOR 0x0010
2339#define SLI4_FEATURE_FCP_TARGET 0x0020
2340#define SLI4_FEATURE_FCP_COMBO 0x0040
2341#define SLI4_FEATURE_RSVD1 0x0080
2342#define SLI4_FEATURE_RQD 0x0100
2343#define SLI4_FEATURE_INHIBIT_AUTO_ABTS_R 0x0200
2344#define SLI4_FEATURE_HIGH_LOGIN_MODE 0x0400
2345#define SLI4_FEATURE_PERF_HINT 0x0800
2258
2259
2260/* SLI-2 Port Control Block */
2261
2262/* SLIM POINTER */
2263#define SLIMOFF 0x30 /* WORD */
2264
2265typedef struct _SLI2_RDSC

--- 240 unchanged lines hidden (view full) ---

2506
2507typedef struct mbox_req_hdr
2508{
2509#ifdef EMLXS_BIG_ENDIAN
2510 uint32_t domain:8; /* word 6 */
2511 uint32_t port:8;
2512 uint32_t subsystem:8;
2513 uint32_t opcode:8;
2346
2347
2348/* SLI-2 Port Control Block */
2349
2350/* SLIM POINTER */
2351#define SLIMOFF 0x30 /* WORD */
2352
2353typedef struct _SLI2_RDSC

--- 240 unchanged lines hidden (view full) ---

2594
2595typedef struct mbox_req_hdr
2596{
2597#ifdef EMLXS_BIG_ENDIAN
2598 uint32_t domain:8; /* word 6 */
2599 uint32_t port:8;
2600 uint32_t subsystem:8;
2601 uint32_t opcode:8;
2602
2603 uint32_t timeout; /* word 7 */
2604
2605 uint32_t req_length; /* word 8 */
2606
2607 uint32_t reserved1:24; /* word 9 */
2608 uint32_t version:8; /* word 9 */
2514#endif
2515#ifdef EMLXS_LITTLE_ENDIAN
2516 uint32_t opcode:8;
2517 uint32_t subsystem:8;
2518 uint32_t port:8;
2519 uint32_t domain:8; /* word 6 */
2609#endif
2610#ifdef EMLXS_LITTLE_ENDIAN
2611 uint32_t opcode:8;
2612 uint32_t subsystem:8;
2613 uint32_t port:8;
2614 uint32_t domain:8; /* word 6 */
2520#endif
2615
2521 uint32_t timeout; /* word 7 */
2616 uint32_t timeout; /* word 7 */
2617
2522 uint32_t req_length; /* word 8 */
2618 uint32_t req_length; /* word 8 */
2523 uint32_t reserved1; /* word 9 */
2619
2620 uint32_t version:8; /* word 9 */
2621 uint32_t reserved1:24; /* word 9 */
2622#endif
2623
2524} mbox_req_hdr_t;
2525
2624} mbox_req_hdr_t;
2625
2626
2627typedef struct mbox_req_hdr2
2628{
2629#ifdef EMLXS_BIG_ENDIAN
2630 uint32_t vf_number:16; /* word 6 */
2631 uint32_t subsystem:8;
2632 uint32_t opcode:8;
2633
2634 uint32_t timeout; /* word 7 */
2635
2636 uint32_t req_length; /* word 8 */
2637
2638 uint32_t vh_number:6; /* word 9 */
2639 uint32_t pf_number:10;
2640 uint32_t reserved1:8;
2641 uint32_t version:8;
2642#endif
2643#ifdef EMLXS_LITTLE_ENDIAN
2644 uint32_t opcode:8;
2645 uint32_t subsystem:8;
2646 uint32_t vf_number:16; /* word 6 */
2647
2648 uint32_t timeout; /* word 7 */
2649
2650 uint32_t req_length; /* word 8 */
2651
2652 uint32_t version:8;
2653 uint32_t reserved1:8;
2654 uint32_t pf_number:10;
2655 uint32_t vh_number:6; /* word 9 */
2656#endif
2657
2658} mbox_req_hdr2_t;
2659
2526typedef struct mbox_rsp_hdr
2527{
2528#ifdef EMLXS_BIG_ENDIAN
2529 uint32_t domain:8; /* word 6 */
2530 uint32_t reserved1:8;
2531 uint32_t subsystem:8;
2532 uint32_t opcode:8;
2533

--- 17 unchanged lines hidden (view full) ---

2551
2552#define MBX_RSP_STATUS_SUCCESS 0x00
2553#define MBX_RSP_STATUS_FAILED 0x01
2554#define MBX_RSP_STATUS_ILLEGAL_REQ 0x02
2555#define MBX_RSP_STATUS_ILLEGAL_FIELD 0x03
2556#define MBX_RSP_STATUS_FCF_IN_USE 0x3A
2557#define MBX_RSP_STATUS_NO_FCF 0x43
2558
2660typedef struct mbox_rsp_hdr
2661{
2662#ifdef EMLXS_BIG_ENDIAN
2663 uint32_t domain:8; /* word 6 */
2664 uint32_t reserved1:8;
2665 uint32_t subsystem:8;
2666 uint32_t opcode:8;
2667

--- 17 unchanged lines hidden (view full) ---

2685
2686#define MBX_RSP_STATUS_SUCCESS 0x00
2687#define MBX_RSP_STATUS_FAILED 0x01
2688#define MBX_RSP_STATUS_ILLEGAL_REQ 0x02
2689#define MBX_RSP_STATUS_ILLEGAL_FIELD 0x03
2690#define MBX_RSP_STATUS_FCF_IN_USE 0x3A
2691#define MBX_RSP_STATUS_NO_FCF 0x43
2692
2693#define MGMT_ADDI_STATUS_INCOMPATIBLE 0xA2
2694
2559typedef struct be_req_hdr
2560{
2561#ifdef EMLXS_BIG_ENDIAN
2562 uint32_t special:8; /* word 1 */
2563 uint32_t reserved2:16; /* word 1 */
2564 uint32_t sge_cnt:5; /* word 1 */
2565 uint32_t reserved1:2; /* word 1 */
2566 uint32_t embedded:1; /* word 1 */

--- 7 unchanged lines hidden (view full) ---

2574#endif
2575 uint32_t payload_length; /* word 2 */
2576 uint32_t tag_low; /* word 3 */
2577 uint32_t tag_hi; /* word 4 */
2578 uint32_t reserved3; /* word 5 */
2579 union
2580 {
2581 mbox_req_hdr_t hdr_req;
2695typedef struct be_req_hdr
2696{
2697#ifdef EMLXS_BIG_ENDIAN
2698 uint32_t special:8; /* word 1 */
2699 uint32_t reserved2:16; /* word 1 */
2700 uint32_t sge_cnt:5; /* word 1 */
2701 uint32_t reserved1:2; /* word 1 */
2702 uint32_t embedded:1; /* word 1 */

--- 7 unchanged lines hidden (view full) ---

2710#endif
2711 uint32_t payload_length; /* word 2 */
2712 uint32_t tag_low; /* word 3 */
2713 uint32_t tag_hi; /* word 4 */
2714 uint32_t reserved3; /* word 5 */
2715 union
2716 {
2717 mbox_req_hdr_t hdr_req;
2718 mbox_req_hdr2_t hdr_req2;
2582 mbox_rsp_hdr_t hdr_rsp;
2583 } un_hdr;
2584} be_req_hdr_t;
2585
2586#define EMLXS_MAX_NONEMBED_SIZE (1024 * 64)
2587
2588/* SLI_CONFIG Mailbox commands */
2589

--- 5 unchanged lines hidden (view full) ---

2595#define COMMON_OPCODE_WRITE_FLASHROM 0x07
2596#define COMMON_OPCODE_CQ_CREATE 0x0C
2597#define COMMON_OPCODE_EQ_CREATE 0x0D
2598#define COMMON_OPCODE_MQ_CREATE 0x15
2599#define COMMON_OPCODE_GET_CNTL_ATTRIB 0x20
2600#define COMMON_OPCODE_NOP 0x21
2601#define COMMON_OPCODE_QUERY_FIRMWARE_CONFIG 0x3A
2602#define COMMON_OPCODE_RESET 0x3D
2719 mbox_rsp_hdr_t hdr_rsp;
2720 } un_hdr;
2721} be_req_hdr_t;
2722
2723#define EMLXS_MAX_NONEMBED_SIZE (1024 * 64)
2724
2725/* SLI_CONFIG Mailbox commands */
2726

--- 5 unchanged lines hidden (view full) ---

2732#define COMMON_OPCODE_WRITE_FLASHROM 0x07
2733#define COMMON_OPCODE_CQ_CREATE 0x0C
2734#define COMMON_OPCODE_EQ_CREATE 0x0D
2735#define COMMON_OPCODE_MQ_CREATE 0x15
2736#define COMMON_OPCODE_GET_CNTL_ATTRIB 0x20
2737#define COMMON_OPCODE_NOP 0x21
2738#define COMMON_OPCODE_QUERY_FIRMWARE_CONFIG 0x3A
2739#define COMMON_OPCODE_RESET 0x3D
2740#define COMMON_OPCODE_SET_PHYSICAL_LINK_CFG_V1 0x3E
2741
2742#define COMMON_OPCODE_GET_BOOT_CFG 0x42
2743#define COMMON_OPCODE_SET_BOOT_CFG 0x43
2603#define COMMON_OPCODE_MANAGE_FAT 0x44
2744#define COMMON_OPCODE_MANAGE_FAT 0x44
2604#define COMMON_OPCODE_MCC_CREATE_EXT 0x5A
2745#define COMMON_OPCODE_GET_PHYSICAL_LINK_CFG_V1 0x47
2746#define COMMON_OPCODE_GET_PORT_NAME 0x4D
2605
2747
2748#define COMMON_OPCODE_MQ_CREATE_EXT 0x5A
2749#define COMMON_OPCODE_GET_VPD_DATA 0x5B
2750#define COMMON_OPCODE_GET_PHY_DETAILS 0x66
2751#define COMMON_OPCODE_SEND_ACTIVATION 0x73
2752#define COMMON_OPCODE_RESET_LICENSES 0x74
2753#define COMMON_OPCODE_GET_CNTL_ADDL_ATTRIB 0x79
2754
2755#define COMMON_OPCODE_GET_EXTENTS_INFO 0x9A
2756#define COMMON_OPCODE_GET_EXTENTS 0x9B
2757#define COMMON_OPCODE_ALLOC_EXTENTS 0x9C
2758#define COMMON_OPCODE_DEALLOC_EXTENTS 0x9D
2759
2760#define COMMON_OPCODE_GET_PROFILE_CAPS 0xA1
2761#define COMMON_OPCODE_GET_MR_PROFILE_CAPS 0xA2
2762#define COMMON_OPCODE_SET_MR_PROFILE_CAPS 0xA3
2763#define COMMON_OPCODE_GET_PROFILE_CFG 0xA4
2764#define COMMON_OPCODE_SET_PROFILE_CFG 0xA5
2765#define COMMON_OPCODE_GET_PROFILE_LIST 0xA6
2766#define COMMON_OPCODE_GET_ACTIVE_PROFILE 0xA7
2767#define COMMON_OPCODE_SET_ACTIVE_PROFILE 0xA8
2768#define COMMON_OPCODE_SET_FACTORY_PROFILE_CFG 0xA9
2769
2770#define COMMON_OPCODE_READ_OBJ 0xAB
2771#define COMMON_OPCODE_WRITE_OBJ 0xAC
2772#define COMMON_OPCODE_READ_OBJ_LIST 0xAD
2773#define COMMON_OPCODE_DELETE_OBJ 0xAE
2774#define COMMON_OPCODE_GET_SLI4_PARAMS 0xB5
2775
2606#define FCOE_OPCODE_WQ_CREATE 0x01
2607#define FCOE_OPCODE_CFG_POST_SGL_PAGES 0x03
2608#define FCOE_OPCODE_RQ_CREATE 0x05
2609#define FCOE_OPCODE_READ_FCF_TABLE 0x08
2610#define FCOE_OPCODE_ADD_FCF_TABLE 0x09
2611#define FCOE_OPCODE_DELETE_FCF_TABLE 0x0A
2612#define FCOE_OPCODE_POST_HDR_TEMPLATES 0x0B
2613#define FCOE_OPCODE_REDISCOVER_FCF_TABLE 0x10
2776#define FCOE_OPCODE_WQ_CREATE 0x01
2777#define FCOE_OPCODE_CFG_POST_SGL_PAGES 0x03
2778#define FCOE_OPCODE_RQ_CREATE 0x05
2779#define FCOE_OPCODE_READ_FCF_TABLE 0x08
2780#define FCOE_OPCODE_ADD_FCF_TABLE 0x09
2781#define FCOE_OPCODE_DELETE_FCF_TABLE 0x0A
2782#define FCOE_OPCODE_POST_HDR_TEMPLATES 0x0B
2783#define FCOE_OPCODE_REDISCOVER_FCF_TABLE 0x10
2784#define FCOE_OPCODE_SET_FCLINK_SETTINGS 0x21
2614
2615#define DCBX_OPCODE_GET_DCBX_MODE 0x04
2616#define DCBX_OPCODE_SET_DCBX_MODE 0x05
2617
2618typedef struct
2619{
2620 struct
2621 {
2622 uint32_t opcode;
2623#define MGMT_FLASHROM_OPCODE_FLASH 1
2624#define MGMT_FLASHROM_OPCODE_SAVE 2
2625#define MGMT_FLASHROM_OPCODE_CLEAR 3
2626#define MGMT_FLASHROM_OPCODE_REPORT 4
2627#define MGMT_FLASHROM_OPCODE_INFO 5
2628#define MGMT_FLASHROM_OPCODE_CRC 6
2785
2786#define DCBX_OPCODE_GET_DCBX_MODE 0x04
2787#define DCBX_OPCODE_SET_DCBX_MODE 0x05
2788
2789typedef struct
2790{
2791 struct
2792 {
2793 uint32_t opcode;
2794#define MGMT_FLASHROM_OPCODE_FLASH 1
2795#define MGMT_FLASHROM_OPCODE_SAVE 2
2796#define MGMT_FLASHROM_OPCODE_CLEAR 3
2797#define MGMT_FLASHROM_OPCODE_REPORT 4
2798#define MGMT_FLASHROM_OPCODE_INFO 5
2799#define MGMT_FLASHROM_OPCODE_CRC 6
2800#define MGMT_FLASHROM_OPCODE_OFFSET_FLASH 7
2801#define MGMT_FLASHROM_OPCODE_OFFSET_SAVE 8
2802#define MGMT_PHY_FLASHROM_OPCODE_FLASH 9
2803#define MGMT_PHY_FLASHROM_OPCODE_SAVE 10
2629
2630 uint32_t optype;
2631#define MGMT_FLASHROM_OPTYPE_ISCSI_FIRMWARE 0
2632#define MGMT_FLASHROM_OPTYPE_REDBOOT 1
2633#define MGMT_FLASHROM_OPTYPE_ISCSI_BIOS 2
2634#define MGMT_FLASHROM_OPTYPE_PXE_BIOS 3
2635#define MGMT_FLASHROM_OPTYPE_CTRLS 4
2636#define MGMT_FLASHROM_OPTYPE_CFG_IPSEC 5
2637#define MGMT_FLASHROM_OPTYPE_CFG_INI 6
2638#define MGMT_FLASHROM_OPTYPE_ROM_OFFSET 7
2639#define MGMT_FLASHROM_OPTYPE_FCOE_BIOS 8
2640#define MGMT_FLASHROM_OPTYPE_ISCSI_BACKUP 9
2641#define MGMT_FLASHROM_OPTYPE_FCOE_FIRMWARE 10
2642#define MGMT_FLASHROM_OPTYPE_FCOE_BACKUP 11
2643#define MGMT_FLASHROM_OPTYPE_CTRLP 12
2644#define MGMT_FLASHROM_OPTYPE_NCSI_FIRMWARE 13
2804
2805 uint32_t optype;
2806#define MGMT_FLASHROM_OPTYPE_ISCSI_FIRMWARE 0
2807#define MGMT_FLASHROM_OPTYPE_REDBOOT 1
2808#define MGMT_FLASHROM_OPTYPE_ISCSI_BIOS 2
2809#define MGMT_FLASHROM_OPTYPE_PXE_BIOS 3
2810#define MGMT_FLASHROM_OPTYPE_CTRLS 4
2811#define MGMT_FLASHROM_OPTYPE_CFG_IPSEC 5
2812#define MGMT_FLASHROM_OPTYPE_CFG_INI 6
2813#define MGMT_FLASHROM_OPTYPE_ROM_OFFSET 7
2814#define MGMT_FLASHROM_OPTYPE_FCOE_BIOS 8
2815#define MGMT_FLASHROM_OPTYPE_ISCSI_BACKUP 9
2816#define MGMT_FLASHROM_OPTYPE_FCOE_FIRMWARE 10
2817#define MGMT_FLASHROM_OPTYPE_FCOE_BACKUP 11
2818#define MGMT_FLASHROM_OPTYPE_CTRLP 12
2819#define MGMT_FLASHROM_OPTYPE_NCSI_FIRMWARE 13
2645#define MGMT_FLASHROM_OPTYPE_NCSI_8051 14
2820#define MGMT_FLASHROM_OPTYPE_CFG_NIC 14
2821#define MGMT_FLASHROM_OPTYPE_CFG_DCBX 15
2822#define MGMT_FLASHROM_OPTYPE_CFG_PXE_BIOS 16
2823#define MGMT_FLASHROM_OPTYPE_CFG_ALL 17
2824#define MGMT_FLASHROM_OPTYPE_PHY_FIRMWARE 0xff /* Driver defined */
2646
2647 uint32_t data_buffer_size; /* Align to 4KB */
2648 uint32_t offset;
2649 uint32_t data_buffer; /* image starts here */
2650
2651 } params;
2652
2653} IOCTL_COMMON_FLASHROM;
2654
2655
2656typedef struct
2657{
2658 union
2659 {
2660 struct
2661 {
2825
2826 uint32_t data_buffer_size; /* Align to 4KB */
2827 uint32_t offset;
2828 uint32_t data_buffer; /* image starts here */
2829
2830 } params;
2831
2832} IOCTL_COMMON_FLASHROM;
2833
2834
2835typedef struct
2836{
2837 union
2838 {
2839 struct
2840 {
2841 uint32_t rsvd;
2842 } request;
2843
2844
2845 struct
2846 {
2847#ifdef EMLXS_BIG_ENDIAN
2848 uint16_t interface_type;
2849 uint16_t phy_type;
2850#endif
2851#ifdef EMLXS_LITTLE_ENDIAN
2852 uint16_t phy_type;
2853 uint16_t interface_type;
2854#endif
2855
2856/* phy_type */
2857#define PHY_XAUI 0x0
2858#define PHY_AEL_2020 0x1 /* eluris/Netlogic */
2859#define PHY_LSI_BRCM1 0x2 /* Peak pre-production board */
2860#define PHY_LSI_BRCM2 0x3 /* Peak production board */
2861#define PHY_SOLARFLARE 0x4 /* Dell recommended */
2862#define PHY_AMCC_QT2025 0x5 /* AMCC PHY */
2863#define PHY_AMCC_QT2225 0x6 /* AMCC PHY */
2864#define PHY_BRCM_5931 0x7 /* Broadcom Phy used by HP LOM */
2865#define PHY_BE3_INTERNAL_10GB 0x8 /* Internal 10GbPHY in BE3 */
2866#define PHY_BE3_INTERNAL_1GB 0x9 /* Internal 1Gb PHY in BE3 */
2867#define PHY_TN_2022 0xa /* Teranetics dual port 65nm PHY */
2868#define PHY_MARVELL_88E1340 0xb /* Marvel 1G PHY */
2869#define PHY_MARVELL_88E1322 0xc /* Marvel 1G PHY */
2870#define PHY_TN_8022 0xd /* Teranetics dual port 40nm PHY */
2871#define PHY_TYPE_NOT_SUPPORTED
2872
2873/* interface_type */
2874#define CX4_10GB_TYPE 0x0
2875#define XFP_10GB_TYPE 0x1
2876#define SFP_1GB_TYPE 0x2
2877#define SFP_PLUS_10GB_TYPE 0x3
2878#define KR_10GB_TYPE 0x4
2879#define KX4_10GB_TYPE 0x5
2880#define BASET_10GB_TYPE 0x6 /* 10G BaseT */
2881#define BASET_1000_TYPE 0x7 /* 1000 BaseT */
2882#define BASEX_1000_TYPE 0x8 /* 1000 BaseX */
2883#define SGMII_TYPE 0x9
2884#define INTERFACE_10GB_DISABLED 0xff /* Interface type not supported */
2885
2886 uint32_t misc_params;
2887 uint32_t rsvd[4];
2888 } response;
2889
2890 } params;
2891
2892} IOCTL_COMMON_GET_PHY_DETAILS;
2893
2894
2895typedef struct
2896{
2897 union
2898 {
2899 struct
2900 {
2901 uint32_t rsvd;
2902 } request;
2903
2904
2905 struct
2906 {
2907#ifdef EMLXS_BIG_ENDIAN
2908 uint8_t port3_name;
2909 uint8_t port2_name;
2910 uint8_t port1_name;
2911 uint8_t port0_name;
2912#endif
2913#ifdef EMLXS_LITTLE_ENDIAN
2914 uint8_t port0_name;
2915 uint8_t port1_name;
2916 uint8_t port2_name;
2917 uint8_t port3_name;
2918#endif
2919 } response;
2920
2921 } params;
2922
2923} IOCTL_COMMON_GET_PORT_NAME;
2924
2925
2926typedef struct
2927{
2928 union
2929 {
2930 struct
2931 {
2932#ifdef EMLXS_BIG_ENDIAN
2933 uint32_t rsvd:30;
2934 uint32_t pt:2;
2935#endif
2936#ifdef EMLXS_LITTLE_ENDIAN
2937 uint32_t pt:2;
2938 uint32_t rsvd:30;
2939#endif
2940#define PORT_TYPE_GIGE 0
2941#define PORT_TYPE_FC 1
2942 } request;
2943
2944
2945 struct
2946 {
2947#ifdef EMLXS_BIG_ENDIAN
2948 uint8_t port3_name;
2949 uint8_t port2_name;
2950 uint8_t port1_name;
2951 uint8_t port0_name;
2952#endif
2953#ifdef EMLXS_LITTLE_ENDIAN
2954 uint8_t port0_name;
2955 uint8_t port1_name;
2956 uint8_t port2_name;
2957 uint8_t port3_name;
2958#endif
2959 } response;
2960
2961 } params;
2962
2963} IOCTL_COMMON_GET_PORT_NAME_V1;
2964
2965
2966typedef struct
2967{
2968 union
2969 {
2970 struct
2971 {
2662 uint32_t fat_operation;
2663#define RETRIEVE_FAT 0
2664#define QUERY_FAT 1
2665#define CLEAR_FAT 2
2666
2667 uint32_t read_log_offset;
2668 uint32_t read_log_length;
2669 uint32_t data_buffer_size;

--- 9 unchanged lines hidden (view full) ---

2679 uint32_t data_buffer;
2680 } response;
2681
2682 } params;
2683
2684} IOCTL_COMMON_MANAGE_FAT;
2685
2686
2972 uint32_t fat_operation;
2973#define RETRIEVE_FAT 0
2974#define QUERY_FAT 1
2975#define CLEAR_FAT 2
2976
2977 uint32_t read_log_offset;
2978 uint32_t read_log_length;
2979 uint32_t data_buffer_size;

--- 9 unchanged lines hidden (view full) ---

2989 uint32_t data_buffer;
2990 } response;
2991
2992 } params;
2993
2994} IOCTL_COMMON_MANAGE_FAT;
2995
2996
2997typedef struct
2998{
2999 union
3000 {
3001 struct
3002 {
3003#ifdef EMLXS_BIG_ENDIAN
3004 uint32_t EOF:1; /* word 4 */
3005 uint32_t rsvd0:7;
3006 uint32_t desired_write_length:24;
3007#endif
3008#ifdef EMLXS_LITTLE_ENDIAN
3009 uint32_t desired_write_length:24;
3010 uint32_t rsvd0:7;
3011 uint32_t EOF:1; /* word 4 */
3012#endif
3013 uint32_t write_offset; /* word 5 */
3014 char object_name[(4 * 26)]; /* word 6 - 31 */
3015 uint32_t buffer_desc_count; /* word 32 */
3016
3017#ifdef EMLXS_BIG_ENDIAN
3018 uint32_t rsvd:8; /* word 33 */
3019 uint32_t buffer_length:24;
3020#endif
3021#ifdef EMLXS_LITTLE_ENDIAN
3022 uint32_t buffer_length:24;
3023 uint32_t rsvd:8; /* word 33 */
3024#endif
3025 uint32_t buffer_addrlo; /* word 34 */
3026 uint32_t buffer_addrhi; /* word 35 */
3027 } request;
3028
3029 struct
3030 {
3031 uint32_t actual_write_length;
3032
3033#ifdef EMLXS_BIG_ENDIAN
3034 uint32_t rsvd:24;
3035 uint32_t change_status:8;
3036#endif
3037#ifdef EMLXS_LITTLE_ENDIAN
3038 uint32_t change_status:8;
3039 uint32_t rsvd:24;
3040#endif
3041#define CS_NO_RESET 0
3042#define CS_REBOOT_RQD 1
3043#define CS_FW_RESET_RQD 2
3044#define CS_PROTO_RESET_RQD 3
3045 } response;
3046
3047 } params;
3048
3049} IOCTL_COMMON_WRITE_OBJECT;
3050
3051
3052typedef struct
3053{
3054 union
3055 {
3056 struct
3057 {
3058#ifdef EMLXS_BIG_ENDIAN
3059 uint32_t descriptor_offset:16; /* word 4 */
3060 uint32_t descriptor_count:16;
3061#endif
3062#ifdef EMLXS_LITTLE_ENDIAN
3063 uint32_t descriptor_count:16;
3064 uint32_t descriptor_offset:16; /* word 4 */
3065#endif
3066 uint32_t reserved; /* word 5 */
3067 char object_name[(4 * 26)]; /* word 6 - 31 */
3068 uint32_t buffer_desc_count; /* word 32 */
3069
3070#ifdef EMLXS_BIG_ENDIAN
3071 uint32_t rsvd:8; /* word 33 */
3072 uint32_t buffer_length:24;
3073#endif
3074#ifdef EMLXS_LITTLE_ENDIAN
3075 uint32_t buffer_length:24;
3076 uint32_t rsvd:8; /* word 33 */
3077#endif
3078 uint32_t buffer_addrlo; /* word 34 */
3079 uint32_t buffer_addrhi; /* word 35 */
3080 } request;
3081
3082 struct
3083 {
3084#ifdef EMLXS_BIG_ENDIAN
3085 uint32_t reserved:16;
3086 uint32_t actual_descriptor_count:16;
3087#endif
3088#ifdef EMLXS_LITTLE_ENDIAN
3089 uint32_t actual_descriptor_count:16;
3090 uint32_t reserved:16;
3091#endif
3092 } response;
3093
3094 } params;
3095
3096} IOCTL_COMMON_READ_OBJECT_LIST;
3097
3098
3099typedef struct
3100{
3101 union
3102 {
3103 struct
3104 {
3105#ifdef EMLXS_BIG_ENDIAN
3106 uint32_t reserved:16; /* word 4 */
3107 uint32_t boot_instance:8;
3108 uint32_t boot_status:8;
3109#endif
3110#ifdef EMLXS_LITTLE_ENDIAN
3111 uint32_t boot_status:8;
3112 uint32_t boot_instance:8;
3113 uint32_t reserved:16; /* word 4 */
3114#endif
3115 } request;
3116
3117 struct
3118 {
3119#ifdef EMLXS_BIG_ENDIAN
3120 uint32_t reserved:16; /* word 4 */
3121 uint32_t boot_instance:8;
3122 uint32_t boot_status:8;
3123#endif
3124#ifdef EMLXS_LITTLE_ENDIAN
3125 uint32_t boot_status:8;
3126 uint32_t boot_instance:8;
3127 uint32_t reserved:16; /* word 4 */
3128#endif
3129 } response;
3130
3131 } params;
3132
3133} IOCTL_COMMON_BOOT_CFG;
3134
3135
2687/* IOCTL_COMMON_QUERY_FIRMWARE_CONFIG */
2688typedef struct _BE_FW_CFG
2689{
2690 uint32_t BEConfigNumber;
2691 uint32_t ASICRevision;
2692 uint32_t PhysicalPort;
2693 uint32_t FunctionMode;
2694 uint32_t ULPMode;

--- 28 unchanged lines hidden (view full) ---

2723 uint8_t fcf_mac_address_hi[4];
2724
2725 uint8_t mac_address_provider;
2726 uint8_t fcf_available;
2727 uint8_t fcf_mac_address_low[2];
2728
2729 uint8_t fabric_name_identifier[8];
2730
3136/* IOCTL_COMMON_QUERY_FIRMWARE_CONFIG */
3137typedef struct _BE_FW_CFG
3138{
3139 uint32_t BEConfigNumber;
3140 uint32_t ASICRevision;
3141 uint32_t PhysicalPort;
3142 uint32_t FunctionMode;
3143 uint32_t ULPMode;

--- 28 unchanged lines hidden (view full) ---

3172 uint8_t fcf_mac_address_hi[4];
3173
3174 uint8_t mac_address_provider;
3175 uint8_t fcf_available;
3176 uint8_t fcf_mac_address_low[2];
3177
3178 uint8_t fabric_name_identifier[8];
3179
2731 uint8_t fcf_valid;
3180 uint8_t fcf_sol:1;
3181 uint8_t rsvd0:5;
3182 uint8_t fcf_fc:1;
3183 uint8_t fcf_valid:1;
2732 uint8_t fc_map[3];
2733
2734 uint16_t fcf_state;
2735 uint16_t fcf_index;
2736#endif
2737#ifdef EMLXS_LITTLE_ENDIAN
2738 uint8_t fcf_mac_address_hi[4];
2739
2740 uint8_t fcf_mac_address_low[2];
2741 uint8_t fcf_available;
2742 uint8_t mac_address_provider;
2743
2744 uint8_t fabric_name_identifier[8];
2745
2746 uint8_t fc_map[3];
3184 uint8_t fc_map[3];
3185
3186 uint16_t fcf_state;
3187 uint16_t fcf_index;
3188#endif
3189#ifdef EMLXS_LITTLE_ENDIAN
3190 uint8_t fcf_mac_address_hi[4];
3191
3192 uint8_t fcf_mac_address_low[2];
3193 uint8_t fcf_available;
3194 uint8_t mac_address_provider;
3195
3196 uint8_t fabric_name_identifier[8];
3197
3198 uint8_t fc_map[3];
2747 uint8_t fcf_valid;
3199 uint8_t fcf_valid:1;
3200 uint8_t fcf_fc:1;
3201 uint8_t rsvd0:5;
3202 uint8_t fcf_sol:1;
2748
2749 uint16_t fcf_index;
2750 uint16_t fcf_state;
2751#endif
2752
2753 uint8_t vlan_bitmap[512];
2754 uint8_t switch_name_identifier[8];
2755

--- 147 unchanged lines hidden (view full) ---

2903
2904/* Context for EQ create */
2905typedef struct _EQ_CONTEXT
2906{
2907#ifdef EMLXS_BIG_ENDIAN
2908 uint32_t Size:1;
2909 uint32_t Rsvd2:1;
2910 uint32_t Valid:1;
3203
3204 uint16_t fcf_index;
3205 uint16_t fcf_state;
3206#endif
3207
3208 uint8_t vlan_bitmap[512];
3209 uint8_t switch_name_identifier[8];
3210

--- 147 unchanged lines hidden (view full) ---

3358
3359/* Context for EQ create */
3360typedef struct _EQ_CONTEXT
3361{
3362#ifdef EMLXS_BIG_ENDIAN
3363 uint32_t Size:1;
3364 uint32_t Rsvd2:1;
3365 uint32_t Valid:1;
2911 uint32_t EPIndex:13;
2912 uint32_t Rsvd1:3;
2913 uint32_t ConsumerIndex:13;
3366 uint32_t Rsvd1:29;
2914
2915 uint32_t Armed:1;
3367
3368 uint32_t Armed:1;
2916 uint32_t Stalled:1;
2917 uint32_t SolEvent:1;
3369 uint32_t Rsvd4:2;
2918 uint32_t Count:3;
3370 uint32_t Count:3;
2919 uint32_t ProtectionDomain:10;
2920 uint32_t Rsvd3:3;
2921 uint32_t ProduderIndex:13;
3371 uint32_t Rsvd3:26;
2922
3372
2923 uint32_t Rsvd7:4;
2924 uint32_t NoDelay:1;
2925 uint32_t Phase:2;
2926 uint32_t Rsvd6:2;
3373 uint32_t Rsvd6:9;
2927 uint32_t DelayMult:10;
3374 uint32_t DelayMult:10;
2928 uint32_t Rsvd5:1;
2929 uint32_t Func:8;
2930 uint32_t Rsvd4:4;
3375 uint32_t Rsvd5:13;
2931#endif
2932#ifdef EMLXS_LITTLE_ENDIAN
3376#endif
3377#ifdef EMLXS_LITTLE_ENDIAN
2933 uint32_t ConsumerIndex:13;
2934 uint32_t Rsvd1:3;
2935 uint32_t EPIndex:13;
3378 uint32_t Rsvd1:29;
2936 uint32_t Valid:1;
2937 uint32_t Rsvd2:1;
2938 uint32_t Size:1;
2939
3379 uint32_t Valid:1;
3380 uint32_t Rsvd2:1;
3381 uint32_t Size:1;
3382
2940 uint32_t ProduderIndex:13;
2941 uint32_t Rsvd3:3;
2942 uint32_t ProtectionDomain:10;
3383 uint32_t Rsvd3:26;
2943 uint32_t Count:3;
3384 uint32_t Count:3;
2944 uint32_t SolEvent:1;
2945 uint32_t Stalled:1;
3385 uint32_t Rsvd4:2;
2946 uint32_t Armed:1;
2947
3386 uint32_t Armed:1;
3387
2948 uint32_t Rsvd4:4;
2949 uint32_t Func:8;
2950 uint32_t Rsvd5:1;
3388 uint32_t Rsvd5:13;
2951 uint32_t DelayMult:10;
3389 uint32_t DelayMult:10;
2952 uint32_t Rsvd6:2;
2953 uint32_t Phase:2;
2954 uint32_t NoDelay:1;
2955 uint32_t Rsvd7:4;
3390 uint32_t Rsvd6:9;
2956#endif
2957
3391#endif
3392
2958 uint32_t Rsvd8;
3393 uint32_t Rsvd7;
2959
3394
2960}EQ_CONTEXT;
3395} EQ_CONTEXT;
2961
3396
3397
2962/* define for Count field */
2963#define EQ_ELEMENT_COUNT_1024 2
2964#define EQ_ELEMENT_COUNT_2048 3
2965#define EQ_ELEMENT_COUNT_4096 4
2966
2967/* define for Size field */
2968#define EQ_ELEMENT_SIZE_4 0
2969
2970/* define for DelayMullt - used for interrupt coalescing */
2971#define EQ_DELAY_MULT 64
2972
2973/* Context for CQ create */
2974typedef struct _CQ_CONTEXT
2975{
2976#ifdef EMLXS_BIG_ENDIAN
2977 uint32_t Eventable:1;
3398/* define for Count field */
3399#define EQ_ELEMENT_COUNT_1024 2
3400#define EQ_ELEMENT_COUNT_2048 3
3401#define EQ_ELEMENT_COUNT_4096 4
3402
3403/* define for Size field */
3404#define EQ_ELEMENT_SIZE_4 0
3405
3406/* define for DelayMullt - used for interrupt coalescing */
3407#define EQ_DELAY_MULT 64
3408
3409/* Context for CQ create */
3410typedef struct _CQ_CONTEXT
3411{
3412#ifdef EMLXS_BIG_ENDIAN
3413 uint32_t Eventable:1;
2978 uint32_t SolEvent:1;
3414 uint32_t Rsvd3:1;
2979 uint32_t Valid:1;
2980 uint32_t Count:2;
3415 uint32_t Valid:1;
3416 uint32_t Count:2;
2981 uint32_t Rsvd2:1;
2982 uint32_t EPIndex:11;
3417 uint32_t Rsvd2:12;
2983 uint32_t NoDelay:1;
2984 uint32_t CoalesceWM:2;
3418 uint32_t NoDelay:1;
3419 uint32_t CoalesceWM:2;
2985 uint32_t Rsvd1:1;
2986 uint32_t ConsumerIndex:11;
3420 uint32_t Rsvd1:12;
2987
2988 uint32_t Armed:1;
3421
3422 uint32_t Armed:1;
2989 uint32_t Stalled:1;
3423 uint32_t Rsvd5:1;
2990 uint32_t EQId:8;
3424 uint32_t EQId:8;
2991 uint32_t ProtectionDomain:10;
2992 uint32_t Rsvd3:1;
2993 uint32_t ProduderIndex:11;
3425 uint32_t Rsvd4:22;
2994
3426
2995 uint32_t Rsvd5:20;
2996 uint32_t Func:8;
2997 uint32_t Rsvd4:4;
3427 uint32_t Rsvd6;
2998#endif
2999#ifdef EMLXS_LITTLE_ENDIAN
3428#endif
3429#ifdef EMLXS_LITTLE_ENDIAN
3000 uint32_t ConsumerIndex:11;
3001 uint32_t Rsvd1:1;
3430 uint32_t Rsvd1:12;
3002 uint32_t CoalesceWM:2;
3003 uint32_t NoDelay:1;
3431 uint32_t CoalesceWM:2;
3432 uint32_t NoDelay:1;
3004 uint32_t EPIndex:11;
3005 uint32_t Rsvd2:1;
3433 uint32_t Rsvd2:12;
3006 uint32_t Count:2;
3007 uint32_t Valid:1;
3434 uint32_t Count:2;
3435 uint32_t Valid:1;
3008 uint32_t SolEvent:1;
3436 uint32_t Rsvd3:1;
3009 uint32_t Eventable:1;
3010
3437 uint32_t Eventable:1;
3438
3011 uint32_t ProduderIndex:11;
3012 uint32_t Rsvd3:1;
3013 uint32_t ProtectionDomain:10;
3439 uint32_t Rsvd4:22;
3014 uint32_t EQId:8;
3440 uint32_t EQId:8;
3015 uint32_t Stalled:1;
3441 uint32_t Rsvd5:1;
3016 uint32_t Armed:1;
3017
3442 uint32_t Armed:1;
3443
3018 uint32_t Rsvd4:4;
3019 uint32_t Func:8;
3020 uint32_t Rsvd5:20;
3444 uint32_t Rsvd6;
3021#endif
3022
3445#endif
3446
3023 uint32_t Rsvd6;
3447 uint32_t Rsvd7;
3024
3025} CQ_CONTEXT;
3026
3448
3449} CQ_CONTEXT;
3450
3451typedef struct _CQ_CONTEXT_V2
3452{
3453#ifdef EMLXS_BIG_ENDIAN
3454 uint32_t Eventable:1;
3455 uint32_t Rsvd3:1;
3456 uint32_t Valid:1;
3457 uint32_t CqeCnt:2;
3458 uint32_t CqeSize:2;
3459 uint32_t Rsvd2:9;
3460 uint32_t AutoValid:1;
3461 uint32_t NoDelay:1;
3462 uint32_t CoalesceWM:2;
3463 uint32_t Rsvd1:12;
3464
3465 uint32_t Armed:1;
3466 uint32_t Rsvd4:15;
3467 uint32_t EQId:16;
3468
3469 uint32_t Rsvd5:16;
3470 uint32_t Count1:16;
3471#endif
3472#ifdef EMLXS_LITTLE_ENDIAN
3473 uint32_t Rsvd1:12;
3474 uint32_t CoalesceWM:2;
3475 uint32_t NoDelay:1;
3476 uint32_t AutoValid:1;
3477 uint32_t Rsvd2:9;
3478 uint32_t CqeSize:2;
3479 uint32_t CqeCnt:2;
3480 uint32_t Valid:1;
3481 uint32_t Rsvd3:1;
3482 uint32_t Eventable:1;
3483
3484 uint32_t EQId:16;
3485 uint32_t Rsvd4:15;
3486 uint32_t Armed:1;
3487
3488 uint32_t Count1:16;
3489 uint32_t Rsvd5:16;
3490#endif
3491
3492 uint32_t Rsvd7;
3493
3494} CQ_CONTEXT_V2;
3495
3496/* CqeSize */
3497#define CQE_SIZE_16_BYTES 0
3498#define CQE_SIZE_32_BYTES 1
3499
3027/* define for Count field */
3028#define CQ_ELEMENT_COUNT_256 0
3029#define CQ_ELEMENT_COUNT_512 1
3030#define CQ_ELEMENT_COUNT_1024 2
3500/* define for Count field */
3501#define CQ_ELEMENT_COUNT_256 0
3502#define CQ_ELEMENT_COUNT_512 1
3503#define CQ_ELEMENT_COUNT_1024 2
3504#define CQ_ELEMENT_COUNT_SPECIFIED 3
3031
3032/* Context for MQ create */
3033typedef struct _MQ_CONTEXT
3034{
3035#ifdef EMLXS_BIG_ENDIAN
3036 uint32_t CQId:10;
3037 uint32_t Rsvd2:2;
3038 uint32_t Size:4;
3505
3506/* Context for MQ create */
3507typedef struct _MQ_CONTEXT
3508{
3509#ifdef EMLXS_BIG_ENDIAN
3510 uint32_t CQId:10;
3511 uint32_t Rsvd2:2;
3512 uint32_t Size:4;
3039 uint32_t Rsvd1:2;
3040 uint32_t ConsumerIndex:14;
3513 uint32_t Rsvd1:16;
3041
3042 uint32_t Valid:1;
3514
3515 uint32_t Valid:1;
3043 uint32_t ProtectionDomain:9;
3044 uint32_t FunctionNumber:8;
3045 uint32_t ProduderIndex:14;
3516 uint32_t Rsvd3:31;
3517
3518 uint32_t Rsvd4:21;
3519 uint32_t ACQId:10;
3520 uint32_t ACQV:1;
3046#endif
3047#ifdef EMLXS_LITTLE_ENDIAN
3521#endif
3522#ifdef EMLXS_LITTLE_ENDIAN
3048 uint32_t ConsumerIndex:14;
3049 uint32_t Rsvd1:2;
3523 uint32_t Rsvd1:16;
3050 uint32_t Size:4;
3051 uint32_t Rsvd2:2;
3052 uint32_t CQId:10;
3053
3524 uint32_t Size:4;
3525 uint32_t Rsvd2:2;
3526 uint32_t CQId:10;
3527
3054 uint32_t ProduderIndex:14;
3055 uint32_t FunctionNumber:8;
3056 uint32_t ProtectionDomain:9;
3528 uint32_t Rsvd3:31;
3057 uint32_t Valid:1;
3529 uint32_t Valid:1;
3530
3531 uint32_t ACQV:1;
3532 uint32_t ACQId:10;
3533 uint32_t Rsvd4:21;
3058#endif
3059
3534#endif
3535
3060 uint32_t Rsvd3;
3061 uint32_t Rsvd4;
3536 uint32_t Rsvd5;
3062
3063} MQ_CONTEXT;
3064
3537
3538} MQ_CONTEXT;
3539
3540
3541typedef struct _MQ_CONTEXT_V1
3542{
3543#ifdef EMLXS_BIG_ENDIAN
3544 uint32_t Rsvd2:12;
3545 uint32_t Size:4;
3546 uint32_t ACQId:16;
3547
3548 uint32_t Valid:1;
3549 uint32_t Rsvd3:31;
3550
3551 uint32_t Rsvd4:31;
3552 uint32_t ACQV:1;
3553#endif
3554#ifdef EMLXS_LITTLE_ENDIAN
3555 uint32_t ACQId:16;
3556 uint32_t Size:4;
3557 uint32_t Rsvd2:12;
3558
3559 uint32_t Rsvd3:31;
3560 uint32_t Valid:1;
3561
3562 uint32_t ACQV:1;
3563 uint32_t Rsvd4:31;
3564#endif
3565
3566 uint32_t Rsvd5;
3567
3568} MQ_CONTEXT_V1;
3569
3570
3065/* define for Size field */
3066#define MQ_ELEMENT_COUNT_16 0x05
3067
3068/* Context for RQ create */
3069typedef struct _RQ_CONTEXT
3070{
3071#ifdef EMLXS_BIG_ENDIAN
3571/* define for Size field */
3572#define MQ_ELEMENT_COUNT_16 0x05
3573
3574/* Context for RQ create */
3575typedef struct _RQ_CONTEXT
3576{
3577#ifdef EMLXS_BIG_ENDIAN
3072 uint32_t Rsvd2:8;
3073 uint32_t RQState:4;
3074 uint32_t RQSize:4;
3578 uint32_t Rsvd2:12;
3579 uint32_t RqeCnt:4;
3075 uint32_t Rsvd1:16;
3076
3077 uint32_t Rsvd3;
3078
3580 uint32_t Rsvd1:16;
3581
3582 uint32_t Rsvd3;
3583
3079 uint32_t Rsvd4:6;
3080 uint32_t CQIdRecv:10;
3584 uint32_t CQId:16;
3081 uint32_t BufferSize:16;
3082#endif
3083#ifdef EMLXS_LITTLE_ENDIAN
3084 uint32_t Rsvd1:16;
3585 uint32_t BufferSize:16;
3586#endif
3587#ifdef EMLXS_LITTLE_ENDIAN
3588 uint32_t Rsvd1:16;
3085 uint32_t RQSize:4;
3086 uint32_t RQState:4;
3087 uint32_t Rsvd2:8;
3589 uint32_t RqeCnt:4;
3590 uint32_t Rsvd2:12;
3088
3089 uint32_t Rsvd3;
3090
3091 uint32_t BufferSize:16;
3591
3592 uint32_t Rsvd3;
3593
3594 uint32_t BufferSize:16;
3092 uint32_t CQIdRecv:10;
3093 uint32_t Rsvd4:6;
3595 uint32_t CQId:16;
3094#endif
3095
3096 uint32_t Rsvd5;
3097
3098} RQ_CONTEXT;
3099
3596#endif
3597
3598 uint32_t Rsvd5;
3599
3600} RQ_CONTEXT;
3601
3602typedef struct _RQ_CONTEXT_V1
3603{
3604#ifdef EMLXS_BIG_ENDIAN
3605 uint32_t RqeCnt:16;
3606 uint32_t Rsvd1:4;
3607 uint32_t RqeSize:4;
3608 uint32_t PageSize:8;
3100
3609
3610 uint32_t Rsvd2;
3611
3612 uint32_t CQId:16;
3613 uint32_t Rsvd:16;
3614#endif
3615#ifdef EMLXS_LITTLE_ENDIAN
3616 uint32_t PageSize:8;
3617 uint32_t RqeSize:4;
3618 uint32_t Rsvd1:4;
3619 uint32_t RqeCnt:16;
3620
3621 uint32_t Rsvd2;
3622
3623 uint32_t Rsvd:16;
3624 uint32_t CQId:16;
3625#endif
3626
3627 uint32_t BufferSize;
3628
3629} RQ_CONTEXT_V1;
3630
3631/* RqeSize */
3632#define RQE_SIZE_8_BYTES 0x02
3633#define RQE_SIZE_16_BYTES 0x03
3634#define RQE_SIZE_32_BYTES 0x04
3635#define RQE_SIZE_64_BYTES 0x05
3636#define RQE_SIZE_128_BYTES 0x06
3637
3638/* RQ PageSize */
3639#define RQ_PAGE_SIZE_4K 0x01
3640#define RQ_PAGE_SIZE_8K 0x02
3641#define RQ_PAGE_SIZE_16K 0x04
3642#define RQ_PAGE_SIZE_32K 0x08
3643#define RQ_PAGE_SIZE_64K 0x10
3644
3645
3101/* IOCTL_COMMON_EQ_CREATE */
3102typedef struct
3103{
3104 union
3105 {
3106 struct
3107 {
3108#ifdef EMLXS_BIG_ENDIAN

--- 6 unchanged lines hidden (view full) ---

3115#endif
3116 EQ_CONTEXT EQContext;
3117 BE_PHYS_ADDR Pages[8];
3118 } request;
3119
3120 struct
3121 {
3122#ifdef EMLXS_BIG_ENDIAN
3646/* IOCTL_COMMON_EQ_CREATE */
3647typedef struct
3648{
3649 union
3650 {
3651 struct
3652 {
3653#ifdef EMLXS_BIG_ENDIAN

--- 6 unchanged lines hidden (view full) ---

3660#endif
3661 EQ_CONTEXT EQContext;
3662 BE_PHYS_ADDR Pages[8];
3663 } request;
3664
3665 struct
3666 {
3667#ifdef EMLXS_BIG_ENDIAN
3123 uint16_t Rsvd1;
3668 uint16_t MsiIndex; /* V1 only */
3124 uint16_t EQId;
3125#endif
3126#ifdef EMLXS_LITTLE_ENDIAN
3127 uint16_t EQId;
3669 uint16_t EQId;
3670#endif
3671#ifdef EMLXS_LITTLE_ENDIAN
3672 uint16_t EQId;
3128 uint16_t Rsvd1;
3673 uint16_t MsiIndex; /* V1 only */
3129#endif
3130 } response;
3131 } params;
3132
3133} IOCTL_COMMON_EQ_CREATE;
3134
3135
3674#endif
3675 } response;
3676 } params;
3677
3678} IOCTL_COMMON_EQ_CREATE;
3679
3680
3681typedef struct
3682{
3683#ifdef EMLXS_BIG_ENDIAN
3684 uint32_t Rsvd1:24; /* Word 0 */
3685 uint32_t ProtocolType:8;
3686
3687 uint32_t Rsvd3:3; /* Word 1 */
3688 uint32_t SliHint2:5;
3689 uint32_t SliHint1:8;
3690 uint32_t IfType:4;
3691 uint32_t SliFamily:4;
3692 uint32_t Revision:4;
3693 uint32_t Rsvd2:3;
3694 uint32_t FT:1;
3695
3696 uint32_t EqRsvd3:4; /* Word 2 */
3697 uint32_t EqeCntMethod:4;
3698 uint32_t EqPageSize:8;
3699 uint32_t EqRsvd2:4;
3700 uint32_t EqeSize:4;
3701 uint32_t EqRsvd1:4;
3702 uint32_t EqPageCnt:4;
3703
3704 uint32_t EqRsvd4:16; /* Word 3 */
3705 uint32_t EqeCntMask:16;
3706
3707 uint32_t CqRsvd3:4; /* Word 4 */
3708 uint32_t CqeCntMethod:4;
3709 uint32_t CqPageSize:8;
3710 uint32_t CQV:2;
3711 uint32_t CqRsvd2:2;
3712 uint32_t CqeSize:4;
3713 uint32_t CqRsvd1:4;
3714 uint32_t CqPageCnt:4;
3715
3716 uint32_t CqRsvd4:16; /* Word 5 */
3717 uint32_t CqeCntMask:16;
3718
3719 uint32_t MqRsvd2:4; /* Word 6 */
3720 uint32_t MqeCntMethod:4;
3721 uint32_t MqPageSize:8;
3722 uint32_t MQV:2;
3723 uint32_t MqRsvd1:10;
3724 uint32_t MqPageCnt:4;
3725
3726 uint32_t MqRsvd3:16; /* Word 7 */
3727 uint32_t MqeCntMask:16;
3728
3729 uint32_t WqRsvd3:4; /* Word 8 */
3730 uint32_t WqeCntMethod:4;
3731 uint32_t WqPageSize:8;
3732 uint32_t WQV:2;
3733 uint32_t WqeRsvd2:2;
3734 uint32_t WqeSize:4;
3735 uint32_t WqRsvd1:4;
3736 uint32_t WqPageCnt:4;
3737
3738 uint32_t WqRsvd4:16; /* Word 9 */
3739 uint32_t WqeCntMask:16;
3740
3741 uint32_t RqRsvd3:4; /* Word 10 */
3742 uint32_t RqeCntMethod:4;
3743 uint32_t RqPageSize:8;
3744 uint32_t RQV:2;
3745 uint32_t RqeRsvd2:2;
3746 uint32_t RqeSize:4;
3747 uint32_t RqRsvd1:4;
3748 uint32_t RqPageCnt:4;
3749
3750 uint32_t RqDbWin:4; /* Word 11 */
3751 uint32_t RqRsvd4:12;
3752 uint32_t RqeCntMask:16;
3753
3754 uint32_t Loopback:4; /* Word 12 */
3755 uint32_t Rsvd4:12;
3756 uint32_t PHWQ:1;
3757 uint32_t PHON:1;
3758 uint32_t PHOFF:1;
3759 uint32_t TRIR:1;
3760 uint32_t TRTY:1;
3761 uint32_t TCCA:1;
3762 uint32_t MWQE:1;
3763 uint32_t ASSI:1;
3764 uint32_t TERP:1;
3765 uint32_t TGT:1;
3766 uint32_t AREG:1;
3767 uint32_t FBRR:1;
3768 uint32_t SGLR:1;
3769 uint32_t HDRR:1;
3770 uint32_t EXT:1;
3771 uint32_t FCOE:1;
3772
3773 uint32_t SgeLength; /* Word 13 */
3774
3775 uint32_t SglRsvd2:8; /* Word 14 */
3776 uint32_t SglAlign:8;
3777 uint32_t SglPageSize:8;
3778 uint32_t SglRsvd1:4;
3779 uint32_t SglPageCnt:4;
3780
3781 uint32_t Rsvd5:16; /* Word 15 */
3782 uint32_t MinRqSize:16;
3783
3784 uint32_t MaxRqSize; /* Word 16 */
3785
3786 uint32_t RPIMax:16;
3787 uint32_t XRIMax:16; /* Word 17 */
3788
3789 uint32_t VFIMax:16;
3790 uint32_t VPIMax:16; /* Word 18 */
3791#endif
3792#ifdef EMLXS_LITTLE_ENDIAN
3793 uint32_t ProtocolType:8; /* Word 0 */
3794 uint32_t Rsvd1:24;
3795
3796 uint32_t FT:1; /* Word 1 */
3797 uint32_t Rsvd2:3;
3798 uint32_t Revision:4;
3799 uint32_t SliFamily:4;
3800 uint32_t IfType:4;
3801 uint32_t SliHint1:8;
3802 uint32_t SliHint2:5;
3803 uint32_t Rsvd3:3;
3804
3805 uint32_t EqPageCnt:4; /* Word 2 */
3806 uint32_t EqRsvd1:4;
3807 uint32_t EqeSize:4;
3808 uint32_t EqRsvd2:4;
3809 uint32_t EqPageSize:8;
3810 uint32_t EqeCntMethod:4;
3811 uint32_t EqRsvd3:4;
3812
3813 uint32_t EqeCntMask:16; /* Word 3 */
3814 uint32_t EqRsvd4:16;
3815
3816 uint32_t CqPageCnt:4; /* Word 4 */
3817 uint32_t CqRsvd1:4;
3818 uint32_t CqeSize:4;
3819 uint32_t CqRsvd2:2;
3820 uint32_t CQV:2;
3821 uint32_t CqPageSize:8;
3822 uint32_t CqeCntMethod:4;
3823 uint32_t CqRsvd3:4;
3824
3825 uint32_t CqeCntMask:16; /* Word 5 */
3826 uint32_t CqRsvd4:16;
3827
3828 uint32_t MqPageCnt:4; /* Word 6 */
3829 uint32_t MqRsvd1:10;
3830 uint32_t MQV:2;
3831 uint32_t MqPageSize:8;
3832 uint32_t MqeCntMethod:4;
3833 uint32_t MqRsvd2:4;
3834
3835 uint32_t MqeCntMask:16; /* Word 7 */
3836 uint32_t MqRsvd3:16;
3837
3838 uint32_t WqPageCnt:4; /* Word 8 */
3839 uint32_t WqRsvd1:4;
3840 uint32_t WqeSize:4;
3841 uint32_t WqeRsvd2:2;
3842 uint32_t WQV:2;
3843 uint32_t WqPageSize:8;
3844 uint32_t WqeCntMethod:4;
3845 uint32_t WqRsvd3:4;
3846
3847 uint32_t WqeCntMask:16; /* Word 9 */
3848 uint32_t WqRsvd4:16;
3849
3850 uint32_t RqPageCnt:4; /* Word 10 */
3851 uint32_t RqRsvd1:4;
3852 uint32_t RqeSize:4;
3853 uint32_t RqeRsvd2:2;
3854 uint32_t RQV:2;
3855 uint32_t RqPageSize:8;
3856 uint32_t RqeCntMethod:4;
3857 uint32_t RqRsvd3:4;
3858
3859 uint32_t RqeCntMask:16; /* Word 11 */
3860 uint32_t RqRsvd4:12;
3861 uint32_t RqDbWin:4;
3862
3863 uint32_t FCOE:1; /* Word 12 */
3864 uint32_t EXT:1;
3865 uint32_t HDRR:1;
3866 uint32_t SGLR:1;
3867 uint32_t FBRR:1;
3868 uint32_t AREG:1;
3869 uint32_t TGT:1;
3870 uint32_t TERP:1;
3871 uint32_t ASSI:1;
3872 uint32_t MWQE:1;
3873 uint32_t TCCA:1;
3874 uint32_t TRTY:1;
3875 uint32_t TRIR:1;
3876 uint32_t PHOFF:1;
3877 uint32_t PHON:1;
3878 uint32_t PHWQ:1;
3879 uint32_t Rsvd4:12;
3880 uint32_t Loopback:4;
3881
3882 uint32_t SgeLength; /* Word 13 */
3883
3884 uint32_t SglPageCnt:4; /* Word 14 */
3885 uint32_t SglRsvd1:4;
3886 uint32_t SglPageSize:8;
3887 uint32_t SglAlign:8;
3888 uint32_t SglRsvd2:8;
3889
3890 uint32_t MinRqSize:16; /* Word 15 */
3891 uint32_t Rsvd5:16;
3892
3893 uint32_t MaxRqSize; /* Word 16 */
3894
3895 uint32_t XRIMax:16; /* Word 17 */
3896 uint32_t RPIMax:16;
3897
3898 uint32_t VPIMax:16; /* Word 18 */
3899 uint32_t VFIMax:16;
3900#endif
3901
3902 uint32_t Rsvd6; /* Word 19 */
3903
3904} sli_params_t;
3905
3906/* SliFamily values */
3907#define SLI_FAMILY_BE2 0x0
3908#define SLI_FAMILY_BE3 0x1
3909#define SLI_FAMILY_LANCER_A 0xA
3910#define SLI_FAMILY_LANCER_B 0xB
3911
3912
3913
3914/* IOCTL_COMMON_SLI4_PARAMS */
3915typedef struct
3916{
3917 union
3918 {
3919 struct
3920 {
3921 uint32_t Rsvd1;
3922 } request;
3923
3924 struct
3925 {
3926 sli_params_t param;
3927 } response;
3928 } params;
3929
3930} IOCTL_COMMON_SLI4_PARAMS;
3931
3932
3933#define MAX_EXTENTS 16 /* 1 to 104 */
3934
3935/* IOCTL_COMMON_EXTENTS */
3936typedef struct
3937{
3938 union
3939 {
3940 struct
3941 {
3942#ifdef EMLXS_BIG_ENDIAN
3943 uint16_t RscCnt;
3944 uint16_t RscType;
3945#endif
3946#ifdef EMLXS_LITTLE_ENDIAN
3947 uint16_t RscType;
3948 uint16_t RscCnt;
3949#endif
3950 } request;
3951
3952 struct
3953 {
3954#ifdef EMLXS_BIG_ENDIAN
3955 uint16_t ExtentSize;
3956 uint16_t ExtentCnt;
3957#endif
3958#ifdef EMLXS_LITTLE_ENDIAN
3959 uint16_t ExtentCnt;
3960 uint16_t ExtentSize;
3961#endif
3962
3963 uint16_t RscId[MAX_EXTENTS];
3964
3965 } response;
3966 } params;
3967
3968} IOCTL_COMMON_EXTENTS;
3969
3970/* RscType */
3971#define RSC_TYPE_FCOE_VFI 0x20
3972#define RSC_TYPE_FCOE_VPI 0x21
3973#define RSC_TYPE_FCOE_RPI 0x22
3974#define RSC_TYPE_FCOE_XRI 0x23
3975
3976
3977
3136/* IOCTL_COMMON_CQ_CREATE */
3137typedef struct
3138{
3139 union
3140 {
3141 struct
3142 {
3143#ifdef EMLXS_BIG_ENDIAN

--- 19 unchanged lines hidden (view full) ---

3163 uint16_t Rsvd1;
3164#endif
3165 } response;
3166 } params;
3167
3168} IOCTL_COMMON_CQ_CREATE;
3169
3170
3978/* IOCTL_COMMON_CQ_CREATE */
3979typedef struct
3980{
3981 union
3982 {
3983 struct
3984 {
3985#ifdef EMLXS_BIG_ENDIAN

--- 19 unchanged lines hidden (view full) ---

4005 uint16_t Rsvd1;
4006#endif
4007 } response;
4008 } params;
4009
4010} IOCTL_COMMON_CQ_CREATE;
4011
4012
4013/* IOCTL_COMMON_CQ_CREATE_V2 */
4014typedef struct
4015{
4016 union
4017 {
4018 struct
4019 {
4020#ifdef EMLXS_BIG_ENDIAN
4021 uint8_t Rsvd1;
4022 uint8_t PageSize;
4023 uint16_t NumPages;
4024#endif
4025#ifdef EMLXS_LITTLE_ENDIAN
4026 uint16_t NumPages;
4027 uint8_t PageSize;
4028 uint8_t Rsvd1;
4029#endif
4030 CQ_CONTEXT_V2 CQContext;
4031 BE_PHYS_ADDR Pages[8];
4032 } request;
4033
4034 struct
4035 {
4036#ifdef EMLXS_BIG_ENDIAN
4037 uint16_t Rsvd1;
4038 uint16_t CQId;
4039#endif
4040#ifdef EMLXS_LITTLE_ENDIAN
4041 uint16_t CQId;
4042 uint16_t Rsvd1;
4043#endif
4044 } response;
4045 } params;
4046
4047} IOCTL_COMMON_CQ_CREATE_V2;
4048
4049#define CQ_PAGE_SIZE_4K 0x01
4050#define CQ_PAGE_SIZE_8K 0x02
4051#define CQ_PAGE_SIZE_16K 0x04
4052#define CQ_PAGE_SIZE_32K 0x08
4053#define CQ_PAGE_SIZE_64K 0x10
4054
4055
4056
3171/* IOCTL_COMMON_MQ_CREATE */
3172typedef struct
3173{
3174 union
3175 {
3176 struct
3177 {
3178#ifdef EMLXS_BIG_ENDIAN

--- 19 unchanged lines hidden (view full) ---

3198 uint16_t Rsvd1;
3199#endif
3200 } response;
3201 } params;
3202
3203} IOCTL_COMMON_MQ_CREATE;
3204
3205
4057/* IOCTL_COMMON_MQ_CREATE */
4058typedef struct
4059{
4060 union
4061 {
4062 struct
4063 {
4064#ifdef EMLXS_BIG_ENDIAN

--- 19 unchanged lines hidden (view full) ---

4084 uint16_t Rsvd1;
4085#endif
4086 } response;
4087 } params;
4088
4089} IOCTL_COMMON_MQ_CREATE;
4090
4091
3206/* IOCTL_COMMON_MCC_CREATE_EXT */
4092/* IOCTL_COMMON_MQ_CREATE_EXT */
3207typedef struct
3208{
3209 union
3210 {
3211 struct
3212 {
3213#ifdef EMLXS_BIG_ENDIAN
3214 uint16_t rsvd0;
3215 uint16_t num_pages;
3216#endif
3217#ifdef EMLXS_LITTLE_ENDIAN
3218 uint16_t num_pages;
3219 uint16_t rsvd0;
3220#endif
3221 uint32_t async_event_bitmap;
3222
4093typedef struct
4094{
4095 union
4096 {
4097 struct
4098 {
4099#ifdef EMLXS_BIG_ENDIAN
4100 uint16_t rsvd0;
4101 uint16_t num_pages;
4102#endif
4103#ifdef EMLXS_LITTLE_ENDIAN
4104 uint16_t num_pages;
4105 uint16_t rsvd0;
4106#endif
4107 uint32_t async_event_bitmap;
4108
3223#define ASYNC_LINK_EVENT 0x2
3224#define ASYNC_FCF_EVENT 0x4
3225#define ASYNC_GROUP5_EVENT 0x20
4109#define ASYNC_LINK_EVENT 0x00000002
4110#define ASYNC_FCF_EVENT 0x00000004
4111#define ASYNC_DCBX_EVENT 0x00000008
4112#define ASYNC_iSCSI_EVENT 0x00000010
4113#define ASYNC_GROUP5_EVENT 0x00000020
4114#define ASYNC_FC_EVENT 0x00010000
4115#define ASYNC_PORT_EVENT 0x00020000
4116#define ASYNC_VF_EVENT 0x00040000
4117#define ASYNC_MR_EVENT 0x00080000
3226
3227 MQ_CONTEXT context;
3228 BE_PHYS_ADDR pages[8];
3229 } request;
3230
3231 struct
3232 {
3233#ifdef EMLXS_BIG_ENDIAN
3234 uint16_t rsvd0;
4118
4119 MQ_CONTEXT context;
4120 BE_PHYS_ADDR pages[8];
4121 } request;
4122
4123 struct
4124 {
4125#ifdef EMLXS_BIG_ENDIAN
4126 uint16_t rsvd0;
3235 uint16_t id;
4127 uint16_t MQId;
3236#endif
3237#ifdef EMLXS_LITTLE_ENDIAN
4128#endif
4129#ifdef EMLXS_LITTLE_ENDIAN
3238 uint16_t id;
4130 uint16_t MQId;
3239 uint16_t rsvd0;
3240#endif
3241 } response;
3242
3243 } params;
3244
4131 uint16_t rsvd0;
4132#endif
4133 } response;
4134
4135 } params;
4136
3245} IOCTL_COMMON_MCC_CREATE_EXT;
4137} IOCTL_COMMON_MQ_CREATE_EXT;
3246
3247
4138
4139
4140/* IOCTL_COMMON_MQ_CREATE_EXT_V1 */
4141typedef struct
4142{
4143 union
4144 {
4145 struct
4146 {
4147#ifdef EMLXS_BIG_ENDIAN
4148 uint16_t CQId;
4149 uint16_t num_pages;
4150#endif
4151#ifdef EMLXS_LITTLE_ENDIAN
4152 uint16_t num_pages;
4153 uint16_t CQId;
4154#endif
4155 uint32_t async_event_bitmap;
4156
4157 MQ_CONTEXT_V1 context;
4158 BE_PHYS_ADDR pages[8];
4159 } request;
4160
4161 struct
4162 {
4163#ifdef EMLXS_BIG_ENDIAN
4164 uint16_t rsvd0;
4165 uint16_t MQId;
4166#endif
4167#ifdef EMLXS_LITTLE_ENDIAN
4168 uint16_t MQId;
4169 uint16_t rsvd0;
4170#endif
4171 } response;
4172
4173 } params;
4174
4175} IOCTL_COMMON_MQ_CREATE_EXT_V1;
4176
4177
3248/* IOCTL_FCOE_RQ_CREATE */
3249typedef struct
3250{
3251 union
3252 {
3253 struct
3254 {
3255#ifdef EMLXS_BIG_ENDIAN
4178/* IOCTL_FCOE_RQ_CREATE */
4179typedef struct
4180{
4181 union
4182 {
4183 struct
4184 {
4185#ifdef EMLXS_BIG_ENDIAN
3256 uint8_t rsvd0;
3257 uint8_t ulpNum;
4186 uint16_t Rsvd0;
3258 uint16_t NumPages;
3259#endif
3260#ifdef EMLXS_LITTLE_ENDIAN
3261 uint16_t NumPages;
4187 uint16_t NumPages;
4188#endif
4189#ifdef EMLXS_LITTLE_ENDIAN
4190 uint16_t NumPages;
3262 uint8_t ulpNum;
3263 uint8_t rsvd0;
4191 uint16_t Rsvd0;
3264#endif
3265 RQ_CONTEXT RQContext;
3266 BE_PHYS_ADDR Pages[8];
3267 } request;
3268
3269 struct
3270 {
3271#ifdef EMLXS_BIG_ENDIAN

--- 6 unchanged lines hidden (view full) ---

3278#endif
3279 } response;
3280
3281 } params;
3282
3283} IOCTL_FCOE_RQ_CREATE;
3284
3285
4192#endif
4193 RQ_CONTEXT RQContext;
4194 BE_PHYS_ADDR Pages[8];
4195 } request;
4196
4197 struct
4198 {
4199#ifdef EMLXS_BIG_ENDIAN

--- 6 unchanged lines hidden (view full) ---

4206#endif
4207 } response;
4208
4209 } params;
4210
4211} IOCTL_FCOE_RQ_CREATE;
4212
4213
4214/* IOCTL_FCOE_RQ_CREATE_V1 */
4215typedef struct
4216{
4217 union
4218 {
4219 struct
4220 {
4221#ifdef EMLXS_BIG_ENDIAN
4222 uint32_t DNB:1;
4223 uint32_t DFD:1;
4224 uint32_t DIM:1;
4225 uint32_t Rsvd0:13;
4226 uint32_t NumPages:16;
4227#endif
4228#ifdef EMLXS_LITTLE_ENDIAN
4229 uint32_t NumPages:16;
4230 uint32_t Rsvd0:13;
4231 uint32_t DIM:1;
4232 uint32_t DFD:1;
4233 uint32_t DNB:1;
4234#endif
4235 RQ_CONTEXT_V1 RQContext;
4236 BE_PHYS_ADDR Pages[8];
4237 } request;
4238
4239 struct
4240 {
4241#ifdef EMLXS_BIG_ENDIAN
4242 uint16_t Rsvd1;
4243 uint16_t RQId;
4244#endif
4245#ifdef EMLXS_LITTLE_ENDIAN
4246 uint16_t RQId;
4247 uint16_t Rsvd1;
4248#endif
4249 } response;
4250
4251 } params;
4252
4253} IOCTL_FCOE_RQ_CREATE_V1;
4254
4255
3286/* IOCTL_FCOE_WQ_CREATE */
3287typedef struct
3288{
3289 union
3290 {
3291 struct
3292 {
3293#ifdef EMLXS_BIG_ENDIAN

--- 19 unchanged lines hidden (view full) ---

3313#endif
3314 } response;
3315
3316 } params;
3317
3318} IOCTL_FCOE_WQ_CREATE;
3319
3320
4256/* IOCTL_FCOE_WQ_CREATE */
4257typedef struct
4258{
4259 union
4260 {
4261 struct
4262 {
4263#ifdef EMLXS_BIG_ENDIAN

--- 19 unchanged lines hidden (view full) ---

4283#endif
4284 } response;
4285
4286 } params;
4287
4288} IOCTL_FCOE_WQ_CREATE;
4289
4290
4291/* IOCTL_FCOE_WQ_CREATE_V1 */
4292typedef struct
4293{
4294 union
4295 {
4296 struct
4297 {
4298#ifdef EMLXS_BIG_ENDIAN
4299 uint16_t CQId;
4300 uint16_t NumPages;
4301
4302 uint32_t WqeCnt:16;
4303 uint32_t Rsvd1:4;
4304 uint32_t WqeSize:4;
4305 uint32_t PageSize:8;
4306#endif
4307#ifdef EMLXS_LITTLE_ENDIAN
4308 uint16_t NumPages;
4309 uint16_t CQId;
4310
4311 uint32_t PageSize:8;
4312 uint32_t WqeSize:4;
4313 uint32_t Rsvd1:4;
4314 uint32_t WqeCnt:16;
4315#endif
4316 uint32_t Rsvd:2;
4317 BE_PHYS_ADDR Pages[4];
4318 } request;
4319
4320 struct
4321 {
4322#ifdef EMLXS_BIG_ENDIAN
4323 uint16_t Rsvd0;
4324 uint16_t WQId;
4325#endif
4326#ifdef EMLXS_LITTLE_ENDIAN
4327 uint16_t WQId;
4328 uint16_t Rsvd0;
4329#endif
4330 } response;
4331
4332 } params;
4333
4334} IOCTL_FCOE_WQ_CREATE_V1;
4335
4336/* WqeSize */
4337#define WQE_SIZE_64_BYTES 0x05
4338#define WQE_SIZE_128_BYTES 0x06
4339
4340/* PageSize */
4341#define WQ_PAGE_SIZE_4K 0x01
4342#define WQ_PAGE_SIZE_8K 0x02
4343#define WQ_PAGE_SIZE_16K 0x04
4344#define WQ_PAGE_SIZE_32K 0x08
4345#define WQ_PAGE_SIZE_64K 0x10
4346
4347
4348
3321/* IOCTL_FCOE_CFG_POST_SGL_PAGES */
3322typedef struct _FCOE_SGL_PAGES
3323{
3324 BE_PHYS_ADDR sgl_page0; /* 1st page per XRI */
3325 BE_PHYS_ADDR sgl_page1; /* 2nd page per XRI */
3326
3327} FCOE_SGL_PAGES;
3328

--- 30 unchanged lines hidden (view full) ---

3359typedef struct _IOCTL_FCOE_POST_HDR_TEMPLATES
3360{
3361 union
3362 {
3363 struct
3364 {
3365#ifdef EMLXS_BIG_ENDIAN
3366 uint16_t num_pages;
4349/* IOCTL_FCOE_CFG_POST_SGL_PAGES */
4350typedef struct _FCOE_SGL_PAGES
4351{
4352 BE_PHYS_ADDR sgl_page0; /* 1st page per XRI */
4353 BE_PHYS_ADDR sgl_page1; /* 2nd page per XRI */
4354
4355} FCOE_SGL_PAGES;
4356

--- 30 unchanged lines hidden (view full) ---

4387typedef struct _IOCTL_FCOE_POST_HDR_TEMPLATES
4388{
4389 union
4390 {
4391 struct
4392 {
4393#ifdef EMLXS_BIG_ENDIAN
4394 uint16_t num_pages;
3367 uint16_t starting_rpi_index;
4395 uint16_t rpi_offset;
3368#endif
3369#ifdef EMLXS_LITTLE_ENDIAN
4396#endif
4397#ifdef EMLXS_LITTLE_ENDIAN
3370 uint16_t starting_rpi_index;
4398 uint16_t rpi_offset;
3371 uint16_t num_pages;
3372#endif
3373 BE_PHYS_ADDR pages[32];
3374
3375 }request;
3376
3377 }params;
3378

--- 133 unchanged lines hidden (view full) ---

3512
3513} IOCTL_COMMON_GET_CNTL_ATTRIB;
3514
3515
3516typedef union
3517{
3518 IOCTL_COMMON_NOP NOPVar;
3519 IOCTL_FCOE_WQ_CREATE WQCreateVar;
4399 uint16_t num_pages;
4400#endif
4401 BE_PHYS_ADDR pages[32];
4402
4403 }request;
4404
4405 }params;
4406

--- 133 unchanged lines hidden (view full) ---

4540
4541} IOCTL_COMMON_GET_CNTL_ATTRIB;
4542
4543
4544typedef union
4545{
4546 IOCTL_COMMON_NOP NOPVar;
4547 IOCTL_FCOE_WQ_CREATE WQCreateVar;
4548 IOCTL_FCOE_WQ_CREATE_V1 WQCreateVar1;
4549 IOCTL_FCOE_RQ_CREATE RQCreateVar;
4550 IOCTL_FCOE_RQ_CREATE_V1 RQCreateVar1;
3520 IOCTL_COMMON_EQ_CREATE EQCreateVar;
3521 IOCTL_COMMON_CQ_CREATE CQCreateVar;
4551 IOCTL_COMMON_EQ_CREATE EQCreateVar;
4552 IOCTL_COMMON_CQ_CREATE CQCreateVar;
4553 IOCTL_COMMON_CQ_CREATE_V2 CQCreateVar2;
3522 IOCTL_COMMON_MQ_CREATE MQCreateVar;
4554 IOCTL_COMMON_MQ_CREATE MQCreateVar;
3523 IOCTL_COMMON_MCC_CREATE_EXT MCCCreateExtVar;
4555 IOCTL_COMMON_MQ_CREATE_EXT MQCreateExtVar;
4556 IOCTL_COMMON_MQ_CREATE_EXT_V1 MQCreateExtVar1;
3524 IOCTL_FCOE_CFG_POST_SGL_PAGES PostSGLVar;
3525 IOCTL_COMMON_GET_CNTL_ATTRIB GetCntlAttributesVar;
3526 IOCTL_FCOE_READ_FCF_TABLE ReadFCFTableVar;
3527 IOCTL_FCOE_ADD_FCF_TABLE AddFCFTableVar;
3528 IOCTL_FCOE_REDISCOVER_FCF_TABLE RediscoverFCFTableVar;
3529 IOCTL_COMMON_FLASHROM FlashRomVar;
3530 IOCTL_COMMON_MANAGE_FAT FATVar;
3531 IOCTL_DCBX_GET_DCBX_MODE GetDCBX;
3532 IOCTL_DCBX_SET_DCBX_MODE SetDCBX;
4557 IOCTL_FCOE_CFG_POST_SGL_PAGES PostSGLVar;
4558 IOCTL_COMMON_GET_CNTL_ATTRIB GetCntlAttributesVar;
4559 IOCTL_FCOE_READ_FCF_TABLE ReadFCFTableVar;
4560 IOCTL_FCOE_ADD_FCF_TABLE AddFCFTableVar;
4561 IOCTL_FCOE_REDISCOVER_FCF_TABLE RediscoverFCFTableVar;
4562 IOCTL_COMMON_FLASHROM FlashRomVar;
4563 IOCTL_COMMON_MANAGE_FAT FATVar;
4564 IOCTL_DCBX_GET_DCBX_MODE GetDCBX;
4565 IOCTL_DCBX_SET_DCBX_MODE SetDCBX;
4566 IOCTL_COMMON_SLI4_PARAMS Sli4ParamVar;
4567 IOCTL_COMMON_EXTENTS ExtentsVar;
4568 IOCTL_COMMON_GET_PHY_DETAILS PHYDetailsVar;
4569 IOCTL_COMMON_GET_PORT_NAME PortNameVar;
4570 IOCTL_COMMON_GET_PORT_NAME_V1 PortNameVar1;
4571 IOCTL_COMMON_WRITE_OBJECT WriteObjVar;
4572 IOCTL_COMMON_BOOT_CFG BootCfgVar;
3533
3534} IOCTL_VARIANTS;
3535
3536/* Structure for MB Command SLI_CONFIG(0x9b) */
3537/* Good for SLI4 only */
3538
3539typedef struct
3540{

--- 8 unchanged lines hidden (view full) ---

3549{
3550 uint32_t varWords[63];
3551 READ_NV_VAR varRDnvp; /* cmd = x02 (READ_NVPARMS) */
3552 INIT_LINK_VAR varInitLnk; /* cmd = x05 (INIT_LINK) */
3553 CONFIG_LINK varCfgLnk; /* cmd = x07 (CONFIG_LINK) */
3554 READ_REV4_VAR varRdRev4; /* cmd = x11 (READ_REV) */
3555 READ_LNK_VAR varRdLnk; /* cmd = x12 (READ_LNK_STAT) */
3556 DUMP4_VAR varDmp4; /* cmd = x17 (DUMP) */
4573
4574} IOCTL_VARIANTS;
4575
4576/* Structure for MB Command SLI_CONFIG(0x9b) */
4577/* Good for SLI4 only */
4578
4579typedef struct
4580{

--- 8 unchanged lines hidden (view full) ---

4589{
4590 uint32_t varWords[63];
4591 READ_NV_VAR varRDnvp; /* cmd = x02 (READ_NVPARMS) */
4592 INIT_LINK_VAR varInitLnk; /* cmd = x05 (INIT_LINK) */
4593 CONFIG_LINK varCfgLnk; /* cmd = x07 (CONFIG_LINK) */
4594 READ_REV4_VAR varRdRev4; /* cmd = x11 (READ_REV) */
4595 READ_LNK_VAR varRdLnk; /* cmd = x12 (READ_LNK_STAT) */
4596 DUMP4_VAR varDmp4; /* cmd = x17 (DUMP) */
4597 UPDATE_CFG_VAR varUpdateCfg; /* cmd = x1b (update Cfg) */
4598 BIU_DIAG_VAR varBIUdiag; /* cmd = x84 (RUN_BIU_DIAG64) */
3557 READ_SPARM_VAR varRdSparm; /* cmd = x8D (READ_SPARM64) */
3558 REG_FCFI_VAR varRegFCFI; /* cmd = xA0 (REG_FCFI) */
3559 UNREG_FCFI_VAR varUnRegFCFI; /* cmd = xA2 (UNREG_FCFI) */
3560 READ_LA_VAR varReadLA; /* cmd = x95 (READ_LA64) */
3561 READ_CONFIG4_VAR varRdConfig4; /* cmd = x0B (READ_CONFIG) */
3562 RESUME_RPI_VAR varResumeRPI; /* cmd = x9E (RESUME_RPI) */
3563 REG_LOGIN_VAR varRegLogin; /* cmd = x93 (REG_RPI) */
3564 UNREG_LOGIN_VAR varUnregLogin; /* cmd = x14 (UNREG_RPI) */

--- 26 unchanged lines hidden (view full) ---

3591#endif
3592#ifdef EMLXS_LITTLE_ENDIAN
3593 uint8_t mbxOwner:1; /* Low order bit first word */
3594 uint8_t mbxHc:1;
3595 uint8_t mbxReserved:6;
3596 uint8_t mbxCommand;
3597 uint16_t mbxStatus;
3598#endif
4599 READ_SPARM_VAR varRdSparm; /* cmd = x8D (READ_SPARM64) */
4600 REG_FCFI_VAR varRegFCFI; /* cmd = xA0 (REG_FCFI) */
4601 UNREG_FCFI_VAR varUnRegFCFI; /* cmd = xA2 (UNREG_FCFI) */
4602 READ_LA_VAR varReadLA; /* cmd = x95 (READ_LA64) */
4603 READ_CONFIG4_VAR varRdConfig4; /* cmd = x0B (READ_CONFIG) */
4604 RESUME_RPI_VAR varResumeRPI; /* cmd = x9E (RESUME_RPI) */
4605 REG_LOGIN_VAR varRegLogin; /* cmd = x93 (REG_RPI) */
4606 UNREG_LOGIN_VAR varUnregLogin; /* cmd = x14 (UNREG_RPI) */

--- 26 unchanged lines hidden (view full) ---

4633#endif
4634#ifdef EMLXS_LITTLE_ENDIAN
4635 uint8_t mbxOwner:1; /* Low order bit first word */
4636 uint8_t mbxHc:1;
4637 uint8_t mbxReserved:6;
4638 uint8_t mbxCommand;
4639 uint16_t mbxStatus;
4640#endif
3599 MAILVARIANTS4 un; /* 124 bytes */
4641 MAILVARIANTS4 un; /* 252 bytes */
3600} MAILBOX4; /* Used for SLI-4 */
3601
3602/*
3603 * End Structure Definitions for Mailbox Commands
3604 */
3605
3606
3607typedef struct emlxs_mbq

--- 205 unchanged lines hidden ---
4642} MAILBOX4; /* Used for SLI-4 */
4643
4644/*
4645 * End Structure Definitions for Mailbox Commands
4646 */
4647
4648
4649typedef struct emlxs_mbq

--- 205 unchanged lines hidden ---