1*14b24e2bSVaishali Kulkarni /*
2*14b24e2bSVaishali Kulkarni * CDDL HEADER START
3*14b24e2bSVaishali Kulkarni *
4*14b24e2bSVaishali Kulkarni * The contents of this file are subject to the terms of the
5*14b24e2bSVaishali Kulkarni * Common Development and Distribution License, v.1,  (the "License").
6*14b24e2bSVaishali Kulkarni * You may not use this file except in compliance with the License.
7*14b24e2bSVaishali Kulkarni *
8*14b24e2bSVaishali Kulkarni * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
9*14b24e2bSVaishali Kulkarni * or http://opensource.org/licenses/CDDL-1.0.
10*14b24e2bSVaishali Kulkarni * See the License for the specific language governing permissions
11*14b24e2bSVaishali Kulkarni * and limitations under the License.
12*14b24e2bSVaishali Kulkarni *
13*14b24e2bSVaishali Kulkarni * When distributing Covered Code, include this CDDL HEADER in each
14*14b24e2bSVaishali Kulkarni * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
15*14b24e2bSVaishali Kulkarni * If applicable, add the following below this CDDL HEADER, with the
16*14b24e2bSVaishali Kulkarni * fields enclosed by brackets "[]" replaced with your own identifying
17*14b24e2bSVaishali Kulkarni * information: Portions Copyright [yyyy] [name of copyright owner]
18*14b24e2bSVaishali Kulkarni *
19*14b24e2bSVaishali Kulkarni * CDDL HEADER END
20*14b24e2bSVaishali Kulkarni */
21*14b24e2bSVaishali Kulkarni 
22*14b24e2bSVaishali Kulkarni /*
23*14b24e2bSVaishali Kulkarni * Copyright 2014-2017 Cavium, Inc.
24*14b24e2bSVaishali Kulkarni * The contents of this file are subject to the terms of the Common Development
25*14b24e2bSVaishali Kulkarni * and Distribution License, v.1,  (the "License").
26*14b24e2bSVaishali Kulkarni 
27*14b24e2bSVaishali Kulkarni * You may not use this file except in compliance with the License.
28*14b24e2bSVaishali Kulkarni 
29*14b24e2bSVaishali Kulkarni * You can obtain a copy of the License at available
30*14b24e2bSVaishali Kulkarni * at http://opensource.org/licenses/CDDL-1.0
31*14b24e2bSVaishali Kulkarni 
32*14b24e2bSVaishali Kulkarni * See the License for the specific language governing permissions and
33*14b24e2bSVaishali Kulkarni * limitations under the License.
34*14b24e2bSVaishali Kulkarni */
35*14b24e2bSVaishali Kulkarni 
36*14b24e2bSVaishali Kulkarni #ifndef __QEDI_HSI__
37*14b24e2bSVaishali Kulkarni #define __QEDI_HSI__
38*14b24e2bSVaishali Kulkarni /********************************/
39*14b24e2bSVaishali Kulkarni /* Add include to common target */
40*14b24e2bSVaishali Kulkarni /********************************/
41*14b24e2bSVaishali Kulkarni #include "common_hsi.h"
42*14b24e2bSVaishali Kulkarni 
43*14b24e2bSVaishali Kulkarni /********************************************************/
44*14b24e2bSVaishali Kulkarni /* Add include to common storage target for upper driver*/
45*14b24e2bSVaishali Kulkarni /*******************************************************/
46*14b24e2bSVaishali Kulkarni #include "qeds_hsi.h"
47*14b24e2bSVaishali Kulkarni 
48*14b24e2bSVaishali Kulkarni /****************************************/
49*14b24e2bSVaishali Kulkarni /* Add include to common storage target */
50*14b24e2bSVaishali Kulkarni /****************************************/
51*14b24e2bSVaishali Kulkarni #include "storage_common.h"
52*14b24e2bSVaishali Kulkarni 
53*14b24e2bSVaishali Kulkarni /************************************************************************/
54*14b24e2bSVaishali Kulkarni /* Add include to common TCP target */
55*14b24e2bSVaishali Kulkarni /************************************************************************/
56*14b24e2bSVaishali Kulkarni #include "tcp_common.h"
57*14b24e2bSVaishali Kulkarni 
58*14b24e2bSVaishali Kulkarni /*************************************************************************/
59*14b24e2bSVaishali Kulkarni /* Add include to common iSCSI target for both eCore and protocol driver */
60*14b24e2bSVaishali Kulkarni /************************************************************************/
61*14b24e2bSVaishali Kulkarni #include "iscsi_common.h"
62*14b24e2bSVaishali Kulkarni 
63*14b24e2bSVaishali Kulkarni 
64*14b24e2bSVaishali Kulkarni /*
65*14b24e2bSVaishali Kulkarni  * iSCSI CMDQ element
66*14b24e2bSVaishali Kulkarni  */
67*14b24e2bSVaishali Kulkarni struct iscsi_cmdqe
68*14b24e2bSVaishali Kulkarni {
69*14b24e2bSVaishali Kulkarni 	__le16 conn_id;
70*14b24e2bSVaishali Kulkarni 	u8 cmdqe_opcode /* indicates the iscsi cmdqe type */;
71*14b24e2bSVaishali Kulkarni 	u8 error_bit_map;
72*14b24e2bSVaishali Kulkarni #define ISCSI_CMDQE_DIF_ERR_BITS_MASK         0x7 /* dif error bit map: [0]-CRC/checksum, [1]-app tag, [2]-reference tag */
73*14b24e2bSVaishali Kulkarni #define ISCSI_CMDQE_DIF_ERR_BITS_SHIFT        0
74*14b24e2bSVaishali Kulkarni #define ISCSI_CMDQE_DATA_DIGEST_ERR_MASK      0x1 /* Signal Immediate Data Digest Error */
75*14b24e2bSVaishali Kulkarni #define ISCSI_CMDQE_DATA_DIGEST_ERR_SHIFT     3
76*14b24e2bSVaishali Kulkarni #define ISCSI_CMDQE_RCV_ON_INVALID_CONN_MASK  0x1 /* Signal Connection Error */
77*14b24e2bSVaishali Kulkarni #define ISCSI_CMDQE_RCV_ON_INVALID_CONN_SHIFT 4
78*14b24e2bSVaishali Kulkarni #define ISCSI_CMDQE_RESERVED_MASK             0x7 /* reserved */
79*14b24e2bSVaishali Kulkarni #define ISCSI_CMDQE_RESERVED_SHIFT            5
80*14b24e2bSVaishali Kulkarni 	struct regpair imm_bd_opaque /* Immediate Data BDs opaque data */;
81*14b24e2bSVaishali Kulkarni 	__le32 cmd_payload[13] /* iSCSI Basic/Additional Header Segment */;
82*14b24e2bSVaishali Kulkarni };
83*14b24e2bSVaishali Kulkarni 
84*14b24e2bSVaishali Kulkarni 
85*14b24e2bSVaishali Kulkarni /*
86*14b24e2bSVaishali Kulkarni  * iSCSI CMDQE Opcode
87*14b24e2bSVaishali Kulkarni  */
88*14b24e2bSVaishali Kulkarni enum iscsi_cmdqe_opcode
89*14b24e2bSVaishali Kulkarni {
90*14b24e2bSVaishali Kulkarni 	ISCSI_CMDQE_OPCODE_NONE /* Used by FW only to indicate that no CMDQE should be consumed */,
91*14b24e2bSVaishali Kulkarni 	ISCSI_CMDQE_OPCODE_BHS_ONLY /* iSCSI BHS without AHS and without immediate data BD */,
92*14b24e2bSVaishali Kulkarni 	ISCSI_CMDQE_OPCODE_BHS_W_IMM /* iSCSI BHS with immediate data BD */,
93*14b24e2bSVaishali Kulkarni 	ISCSI_CMDQE_OPCODE_BHS_W_IMM_NO_BD /* iSCSI BHS arrived with immediate data but BD wasnt consumed */,
94*14b24e2bSVaishali Kulkarni 	ISCSI_CMDQE_OPCODE_BHS_W_AHS /* iSCSI BHS with expected AHS, without immediate data BD */,
95*14b24e2bSVaishali Kulkarni 	ISCSI_CMDQE_OPCODE_BHS_W_AHS_W_IMM /* iSCSI BHS with expected AHS, with immediate data BD */,
96*14b24e2bSVaishali Kulkarni 	ISCSI_CMDQE_OPCODE_AHS /* iSCSI AHS without immediate data BD */,
97*14b24e2bSVaishali Kulkarni 	ISCSI_CMDQE_OPCODE_AHS_W_IMM /* iSCSI AHS, with immediate data BD */,
98*14b24e2bSVaishali Kulkarni 	ISCSI_CMDQE_OPCODE_AHS_W_IMM_NO_BD /* iSCSI AHS where the Command arrived with immediate data but BD wasnt consumed */,
99*14b24e2bSVaishali Kulkarni 	ISCSI_CMDQE_OPCODE_TMF /* iSCSI TMF */,
100*14b24e2bSVaishali Kulkarni 	MAX_ISCSI_CMDQE_OPCODE
101*14b24e2bSVaishali Kulkarni };
102*14b24e2bSVaishali Kulkarni 
103*14b24e2bSVaishali Kulkarni #endif /* __QEDI_HSI__ */
104