diff options
Diffstat (limited to 'drivers/scsi/bnx2i/57xx_iscsi_constants.h')
-rw-r--r-- | drivers/scsi/bnx2i/57xx_iscsi_constants.h | 155 |
1 files changed, 155 insertions, 0 deletions
diff --git a/drivers/scsi/bnx2i/57xx_iscsi_constants.h b/drivers/scsi/bnx2i/57xx_iscsi_constants.h new file mode 100644 index 00000000000..2fceb19eb27 --- /dev/null +++ b/drivers/scsi/bnx2i/57xx_iscsi_constants.h | |||
@@ -0,0 +1,155 @@ | |||
1 | /* 57xx_iscsi_constants.h: Broadcom NetXtreme II iSCSI HSI | ||
2 | * | ||
3 | * Copyright (c) 2006 - 2009 Broadcom Corporation | ||
4 | * | ||
5 | * This program is free software; you can redistribute it and/or modify | ||
6 | * it under the terms of the GNU General Public License as published by | ||
7 | * the Free Software Foundation. | ||
8 | * | ||
9 | * Written by: Anil Veerabhadrappa (anilgv@broadcom.com) | ||
10 | */ | ||
11 | #ifndef __57XX_ISCSI_CONSTANTS_H_ | ||
12 | #define __57XX_ISCSI_CONSTANTS_H_ | ||
13 | |||
14 | /** | ||
15 | * This file defines HSI constants for the iSCSI flows | ||
16 | */ | ||
17 | |||
18 | /* iSCSI request op codes */ | ||
19 | #define ISCSI_OPCODE_CLEANUP_REQUEST (7) | ||
20 | |||
21 | /* iSCSI response/messages op codes */ | ||
22 | #define ISCSI_OPCODE_CLEANUP_RESPONSE (0x27) | ||
23 | #define ISCSI_OPCODE_NOPOUT_LOCAL_COMPLETION (0) | ||
24 | |||
25 | /* iSCSI task types */ | ||
26 | #define ISCSI_TASK_TYPE_READ (0) | ||
27 | #define ISCSI_TASK_TYPE_WRITE (1) | ||
28 | #define ISCSI_TASK_TYPE_MPATH (2) | ||
29 | |||
30 | /* initial CQ sequence numbers */ | ||
31 | #define ISCSI_INITIAL_SN (1) | ||
32 | |||
33 | /* KWQ (kernel work queue) layer codes */ | ||
34 | #define ISCSI_KWQE_LAYER_CODE (6) | ||
35 | |||
36 | /* KWQ (kernel work queue) request op codes */ | ||
37 | #define ISCSI_KWQE_OPCODE_OFFLOAD_CONN1 (0) | ||
38 | #define ISCSI_KWQE_OPCODE_OFFLOAD_CONN2 (1) | ||
39 | #define ISCSI_KWQE_OPCODE_UPDATE_CONN (2) | ||
40 | #define ISCSI_KWQE_OPCODE_DESTROY_CONN (3) | ||
41 | #define ISCSI_KWQE_OPCODE_INIT1 (4) | ||
42 | #define ISCSI_KWQE_OPCODE_INIT2 (5) | ||
43 | |||
44 | /* KCQ (kernel completion queue) response op codes */ | ||
45 | #define ISCSI_KCQE_OPCODE_OFFLOAD_CONN (0x10) | ||
46 | #define ISCSI_KCQE_OPCODE_UPDATE_CONN (0x12) | ||
47 | #define ISCSI_KCQE_OPCODE_DESTROY_CONN (0x13) | ||
48 | #define ISCSI_KCQE_OPCODE_INIT (0x14) | ||
49 | #define ISCSI_KCQE_OPCODE_FW_CLEAN_TASK (0x15) | ||
50 | #define ISCSI_KCQE_OPCODE_TCP_RESET (0x16) | ||
51 | #define ISCSI_KCQE_OPCODE_TCP_SYN (0x17) | ||
52 | #define ISCSI_KCQE_OPCODE_TCP_FIN (0X18) | ||
53 | #define ISCSI_KCQE_OPCODE_TCP_ERROR (0x19) | ||
54 | #define ISCSI_KCQE_OPCODE_CQ_EVENT_NOTIFICATION (0x20) | ||
55 | #define ISCSI_KCQE_OPCODE_ISCSI_ERROR (0x21) | ||
56 | |||
57 | /* KCQ (kernel completion queue) completion status */ | ||
58 | #define ISCSI_KCQE_COMPLETION_STATUS_SUCCESS (0x0) | ||
59 | #define ISCSI_KCQE_COMPLETION_STATUS_INVALID_OPCODE (0x1) | ||
60 | #define ISCSI_KCQE_COMPLETION_STATUS_CTX_ALLOC_FAILURE (0x2) | ||
61 | #define ISCSI_KCQE_COMPLETION_STATUS_CTX_FREE_FAILURE (0x3) | ||
62 | #define ISCSI_KCQE_COMPLETION_STATUS_NIC_ERROR (0x4) | ||
63 | |||
64 | #define ISCSI_KCQE_COMPLETION_STATUS_HDR_DIG_ERR (0x5) | ||
65 | #define ISCSI_KCQE_COMPLETION_STATUS_DATA_DIG_ERR (0x6) | ||
66 | |||
67 | #define ISCSI_KCQE_COMPLETION_STATUS_PROTOCOL_ERR_UNEXPECTED_OPCODE (0xa) | ||
68 | #define ISCSI_KCQE_COMPLETION_STATUS_PROTOCOL_ERR_OPCODE (0xb) | ||
69 | #define ISCSI_KCQE_COMPLETION_STATUS_PROTOCOL_ERR_AHS_LEN (0xc) | ||
70 | #define ISCSI_KCQE_COMPLETION_STATUS_PROTOCOL_ERR_ITT (0xd) | ||
71 | #define ISCSI_KCQE_COMPLETION_STATUS_PROTOCOL_ERR_STATSN (0xe) | ||
72 | |||
73 | /* Response */ | ||
74 | #define ISCSI_KCQE_COMPLETION_STATUS_PROTOCOL_ERR_EXP_DATASN (0xf) | ||
75 | #define ISCSI_KCQE_COMPLETION_STATUS_PROTOCOL_ERR_PEND_R2T (0x10) | ||
76 | #define ISCSI_KCQE_COMPLETION_STATUS_PROTOCOL_ERR_DATA_SEG_LEN_IS_ZERO (0x2c) | ||
77 | #define ISCSI_KCQE_COMPLETION_STATUS_PROTOCOL_ERR_DATA_SEG_LEN_TOO_BIG (0x2d) | ||
78 | #define ISCSI_KCQE_COMPLETION_STATUS_PROTOCOL_ERR_O_U_0 (0x11) | ||
79 | #define ISCSI_KCQE_COMPLETION_STATUS_PROTOCOL_ERR_O_U_1 (0x12) | ||
80 | #define ISCSI_KCQE_COMPLETION_STATUS_PROTOCOL_ERR_O_U_2 (0x13) | ||
81 | #define ISCSI_KCQE_COMPLETION_STATUS_PROTOCOL_ERR_O_U_3 (0x14) | ||
82 | #define ISCSI_KCQE_COMPLETION_STATUS_PROTOCOL_ERR_O_U_4 (0x15) | ||
83 | #define ISCSI_KCQE_COMPLETION_STATUS_PROTOCOL_ERR_O_U_5 (0x16) | ||
84 | #define ISCSI_KCQE_COMPLETION_STATUS_PROTOCOL_ERR_O_U_6 (0x17) | ||
85 | |||
86 | /* Data-In */ | ||
87 | #define ISCSI_KCQE_COMPLETION_STATUS_PROTOCOL_ERR_REMAIN_RCV_LEN (0x18) | ||
88 | #define ISCSI_KCQE_COMPLETION_STATUS_PROTOCOL_ERR_MAX_RCV_PDU_LEN (0x19) | ||
89 | #define ISCSI_KCQE_COMPLETION_STATUS_PROTOCOL_ERR_F_BIT_ZERO (0x1a) | ||
90 | #define ISCSI_KCQE_COMPLETION_STATUS_PROTOCOL_ERR_TTT_NOT_RSRV (0x1b) | ||
91 | #define ISCSI_KCQE_COMPLETION_STATUS_PROTOCOL_ERR_DATASN (0x1c) | ||
92 | #define ISCSI_KCQE_COMPLETION_STATUS_PROTOCOL_ERR_REMAIN_BURST_LEN (0x1d) | ||
93 | |||
94 | /* R2T */ | ||
95 | #define ISCSI_KCQE_COMPLETION_STATUS_PROTOCOL_ERR_BUFFER_OFF (0x1f) | ||
96 | #define ISCSI_KCQE_COMPLETION_STATUS_PROTOCOL_ERR_LUN (0x20) | ||
97 | #define ISCSI_KCQE_COMPLETION_STATUS_PROTOCOL_ERR_R2TSN (0x21) | ||
98 | #define ISCSI_KCQE_COMPLETION_STATUS_PROTOCOL_ERR_DESIRED_DATA_TRNS_LEN_0 (0x22) | ||
99 | #define ISCSI_KCQE_COMPLETION_STATUS_PROTOCOL_ERR_DESIRED_DATA_TRNS_LEN_1 (0x23) | ||
100 | #define ISCSI_KCQE_COMPLETION_STATUS_PROTOCOL_ERR_PEND_R2T_EXCEED (0x24) | ||
101 | #define ISCSI_KCQE_COMPLETION_STATUS_PROTOCOL_ERR_TTT_IS_RSRV (0x25) | ||
102 | #define ISCSI_KCQE_COMPLETION_STATUS_PROTOCOL_ERR_MAX_BURST_LEN (0x26) | ||
103 | #define ISCSI_KCQE_COMPLETION_STATUS_PROTOCOL_ERR_DATA_SEG_LEN_NOT_ZERO (0x27) | ||
104 | |||
105 | /* TMF */ | ||
106 | #define ISCSI_KCQE_COMPLETION_STATUS_PROTOCOL_ERR_REJECT_PDU_LEN (0x28) | ||
107 | #define ISCSI_KCQE_COMPLETION_STATUS_PROTOCOL_ERR_ASYNC_PDU_LEN (0x29) | ||
108 | #define ISCSI_KCQE_COMPLETION_STATUS_PROTOCOL_ERR_NOPIN_PDU_LEN (0x2a) | ||
109 | #define ISCSI_KCQE_COMPLETION_STATUS_PROTOCOL_ERR_PEND_R2T_IN_CLEANUP (0x2b) | ||
110 | |||
111 | /* IP/TCP processing errors: */ | ||
112 | #define ISCI_KCQE_COMPLETION_STATUS_TCP_ERROR_IP_FRAGMENT (0x40) | ||
113 | #define ISCI_KCQE_COMPLETION_STATUS_TCP_ERROR_IP_OPTIONS (0x41) | ||
114 | #define ISCI_KCQE_COMPLETION_STATUS_TCP_ERROR_URGENT_FLAG (0x42) | ||
115 | #define ISCI_KCQE_COMPLETION_STATUS_TCP_ERROR_MAX_RTRANS (0x43) | ||
116 | |||
117 | /* iSCSI licensing errors */ | ||
118 | /* general iSCSI license not installed */ | ||
119 | #define ISCSI_KCQE_COMPLETION_STATUS_ISCSI_NOT_SUPPORTED (0x50) | ||
120 | /* additional LOM specific iSCSI license not installed */ | ||
121 | #define ISCSI_KCQE_COMPLETION_STATUS_LOM_ISCSI_NOT_ENABLED (0x51) | ||
122 | |||
123 | /* SQ/RQ/CQ DB structure sizes */ | ||
124 | #define ISCSI_SQ_DB_SIZE (16) | ||
125 | #define ISCSI_RQ_DB_SIZE (16) | ||
126 | #define ISCSI_CQ_DB_SIZE (80) | ||
127 | |||
128 | #define ISCSI_SQN_TO_NOTIFY_NOT_VALID 0xFFFF | ||
129 | |||
130 | /* Page size codes (for flags field in connection offload request) */ | ||
131 | #define ISCSI_PAGE_SIZE_256 (0) | ||
132 | #define ISCSI_PAGE_SIZE_512 (1) | ||
133 | #define ISCSI_PAGE_SIZE_1K (2) | ||
134 | #define ISCSI_PAGE_SIZE_2K (3) | ||
135 | #define ISCSI_PAGE_SIZE_4K (4) | ||
136 | #define ISCSI_PAGE_SIZE_8K (5) | ||
137 | #define ISCSI_PAGE_SIZE_16K (6) | ||
138 | #define ISCSI_PAGE_SIZE_32K (7) | ||
139 | #define ISCSI_PAGE_SIZE_64K (8) | ||
140 | #define ISCSI_PAGE_SIZE_128K (9) | ||
141 | #define ISCSI_PAGE_SIZE_256K (10) | ||
142 | #define ISCSI_PAGE_SIZE_512K (11) | ||
143 | #define ISCSI_PAGE_SIZE_1M (12) | ||
144 | #define ISCSI_PAGE_SIZE_2M (13) | ||
145 | #define ISCSI_PAGE_SIZE_4M (14) | ||
146 | #define ISCSI_PAGE_SIZE_8M (15) | ||
147 | |||
148 | /* Iscsi PDU related defines */ | ||
149 | #define ISCSI_HEADER_SIZE (48) | ||
150 | #define ISCSI_DIGEST_SHIFT (2) | ||
151 | #define ISCSI_DIGEST_SIZE (4) | ||
152 | |||
153 | #define B577XX_ISCSI_CONNECTION_TYPE 3 | ||
154 | |||
155 | #endif /*__57XX_ISCSI_CONSTANTS_H_ */ | ||