1 /* 2 * Copyright (c) 2017-2018 Cavium, Inc. 3 * All rights reserved. 4 * 5 * Redistribution and use in source and binary forms, with or without 6 * modification, are permitted provided that the following conditions 7 * are met: 8 * 9 * 1. Redistributions of source code must retain the above copyright 10 * notice, this list of conditions and the following disclaimer. 11 * 2. Redistributions in binary form must reproduce the above copyright 12 * notice, this list of conditions and the following disclaimer in the 13 * documentation and/or other materials provided with the distribution. 14 * 15 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" 16 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 17 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 18 * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE 19 * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR 20 * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF 21 * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS 22 * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN 23 * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 24 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 25 * POSSIBILITY OF SUCH DAMAGE. 26 * 27 * $FreeBSD$ 28 * 29 */ 30 31 #ifndef __ECORE_HSI_IWARP__ 32 #define __ECORE_HSI_IWARP__ 33 /************************************************************************/ 34 /* Add include to ecore hsi rdma target for both roce and iwarp ecore driver */ 35 /************************************************************************/ 36 #include "ecore_hsi_rdma.h" 37 /************************************************************************/ 38 /* Add include to common TCP target */ 39 /************************************************************************/ 40 #include "tcp_common.h" 41 42 /************************************************************************/ 43 /* Add include to common iwarp target for both eCore and protocol iwarp driver */ 44 /************************************************************************/ 45 #include "iwarp_common.h" 46 47 /* 48 * The iwarp storm context of Ystorm 49 */ 50 struct ystorm_iwarp_conn_st_ctx 51 { 52 __le32 reserved[4]; 53 }; 54 55 /* 56 * The iwarp storm context of Pstorm 57 */ 58 struct pstorm_iwarp_conn_st_ctx 59 { 60 __le32 reserved[36]; 61 }; 62 63 /* 64 * The iwarp storm context of Xstorm 65 */ 66 struct xstorm_iwarp_conn_st_ctx 67 { 68 __le32 reserved[48]; 69 }; 70 71 struct e4_xstorm_iwarp_conn_ag_ctx 72 { 73 u8 reserved0 /* cdu_validation */; 74 u8 state /* state */; 75 u8 flags0; 76 #define E4_XSTORM_IWARP_CONN_AG_CTX_EXIST_IN_QM0_MASK 0x1 /* exist_in_qm0 */ 77 #define E4_XSTORM_IWARP_CONN_AG_CTX_EXIST_IN_QM0_SHIFT 0 78 #define E4_XSTORM_IWARP_CONN_AG_CTX_EXIST_IN_QM1_MASK 0x1 /* exist_in_qm1 */ 79 #define E4_XSTORM_IWARP_CONN_AG_CTX_EXIST_IN_QM1_SHIFT 1 80 #define E4_XSTORM_IWARP_CONN_AG_CTX_EXIST_IN_QM2_MASK 0x1 /* exist_in_qm2 */ 81 #define E4_XSTORM_IWARP_CONN_AG_CTX_EXIST_IN_QM2_SHIFT 2 82 #define E4_XSTORM_IWARP_CONN_AG_CTX_EXIST_IN_QM3_MASK 0x1 /* exist_in_qm3 */ 83 #define E4_XSTORM_IWARP_CONN_AG_CTX_EXIST_IN_QM3_SHIFT 3 84 #define E4_XSTORM_IWARP_CONN_AG_CTX_BIT4_MASK 0x1 /* bit4 */ 85 #define E4_XSTORM_IWARP_CONN_AG_CTX_BIT4_SHIFT 4 86 #define E4_XSTORM_IWARP_CONN_AG_CTX_RESERVED2_MASK 0x1 /* cf_array_active */ 87 #define E4_XSTORM_IWARP_CONN_AG_CTX_RESERVED2_SHIFT 5 88 #define E4_XSTORM_IWARP_CONN_AG_CTX_BIT6_MASK 0x1 /* bit6 */ 89 #define E4_XSTORM_IWARP_CONN_AG_CTX_BIT6_SHIFT 6 90 #define E4_XSTORM_IWARP_CONN_AG_CTX_BIT7_MASK 0x1 /* bit7 */ 91 #define E4_XSTORM_IWARP_CONN_AG_CTX_BIT7_SHIFT 7 92 u8 flags1; 93 #define E4_XSTORM_IWARP_CONN_AG_CTX_BIT8_MASK 0x1 /* bit8 */ 94 #define E4_XSTORM_IWARP_CONN_AG_CTX_BIT8_SHIFT 0 95 #define E4_XSTORM_IWARP_CONN_AG_CTX_BIT9_MASK 0x1 /* bit9 */ 96 #define E4_XSTORM_IWARP_CONN_AG_CTX_BIT9_SHIFT 1 97 #define E4_XSTORM_IWARP_CONN_AG_CTX_BIT10_MASK 0x1 /* bit10 */ 98 #define E4_XSTORM_IWARP_CONN_AG_CTX_BIT10_SHIFT 2 99 #define E4_XSTORM_IWARP_CONN_AG_CTX_BIT11_MASK 0x1 /* bit11 */ 100 #define E4_XSTORM_IWARP_CONN_AG_CTX_BIT11_SHIFT 3 101 #define E4_XSTORM_IWARP_CONN_AG_CTX_BIT12_MASK 0x1 /* bit12 */ 102 #define E4_XSTORM_IWARP_CONN_AG_CTX_BIT12_SHIFT 4 103 #define E4_XSTORM_IWARP_CONN_AG_CTX_BIT13_MASK 0x1 /* bit13 */ 104 #define E4_XSTORM_IWARP_CONN_AG_CTX_BIT13_SHIFT 5 105 #define E4_XSTORM_IWARP_CONN_AG_CTX_BIT14_MASK 0x1 /* bit14 */ 106 #define E4_XSTORM_IWARP_CONN_AG_CTX_BIT14_SHIFT 6 107 #define E4_XSTORM_IWARP_CONN_AG_CTX_YSTORM_FLUSH_OR_REWIND_SND_MAX_MASK 0x1 /* bit15 */ 108 #define E4_XSTORM_IWARP_CONN_AG_CTX_YSTORM_FLUSH_OR_REWIND_SND_MAX_SHIFT 7 109 u8 flags2; 110 #define E4_XSTORM_IWARP_CONN_AG_CTX_CF0_MASK 0x3 /* timer0cf */ 111 #define E4_XSTORM_IWARP_CONN_AG_CTX_CF0_SHIFT 0 112 #define E4_XSTORM_IWARP_CONN_AG_CTX_CF1_MASK 0x3 /* timer1cf */ 113 #define E4_XSTORM_IWARP_CONN_AG_CTX_CF1_SHIFT 2 114 #define E4_XSTORM_IWARP_CONN_AG_CTX_CF2_MASK 0x3 /* timer2cf */ 115 #define E4_XSTORM_IWARP_CONN_AG_CTX_CF2_SHIFT 4 116 #define E4_XSTORM_IWARP_CONN_AG_CTX_TIMER_STOP_ALL_MASK 0x3 /* timer_stop_all */ 117 #define E4_XSTORM_IWARP_CONN_AG_CTX_TIMER_STOP_ALL_SHIFT 6 118 u8 flags3; 119 #define E4_XSTORM_IWARP_CONN_AG_CTX_CF4_MASK 0x3 /* cf4 */ 120 #define E4_XSTORM_IWARP_CONN_AG_CTX_CF4_SHIFT 0 121 #define E4_XSTORM_IWARP_CONN_AG_CTX_CF5_MASK 0x3 /* cf5 */ 122 #define E4_XSTORM_IWARP_CONN_AG_CTX_CF5_SHIFT 2 123 #define E4_XSTORM_IWARP_CONN_AG_CTX_CF6_MASK 0x3 /* cf6 */ 124 #define E4_XSTORM_IWARP_CONN_AG_CTX_CF6_SHIFT 4 125 #define E4_XSTORM_IWARP_CONN_AG_CTX_CF7_MASK 0x3 /* cf7 */ 126 #define E4_XSTORM_IWARP_CONN_AG_CTX_CF7_SHIFT 6 127 u8 flags4; 128 #define E4_XSTORM_IWARP_CONN_AG_CTX_CF8_MASK 0x3 /* cf8 */ 129 #define E4_XSTORM_IWARP_CONN_AG_CTX_CF8_SHIFT 0 130 #define E4_XSTORM_IWARP_CONN_AG_CTX_CF9_MASK 0x3 /* cf9 */ 131 #define E4_XSTORM_IWARP_CONN_AG_CTX_CF9_SHIFT 2 132 #define E4_XSTORM_IWARP_CONN_AG_CTX_CF10_MASK 0x3 /* cf10 */ 133 #define E4_XSTORM_IWARP_CONN_AG_CTX_CF10_SHIFT 4 134 #define E4_XSTORM_IWARP_CONN_AG_CTX_CF11_MASK 0x3 /* cf11 */ 135 #define E4_XSTORM_IWARP_CONN_AG_CTX_CF11_SHIFT 6 136 u8 flags5; 137 #define E4_XSTORM_IWARP_CONN_AG_CTX_CF12_MASK 0x3 /* cf12 */ 138 #define E4_XSTORM_IWARP_CONN_AG_CTX_CF12_SHIFT 0 139 #define E4_XSTORM_IWARP_CONN_AG_CTX_CF13_MASK 0x3 /* cf13 */ 140 #define E4_XSTORM_IWARP_CONN_AG_CTX_CF13_SHIFT 2 141 #define E4_XSTORM_IWARP_CONN_AG_CTX_SQ_FLUSH_CF_MASK 0x3 /* cf14 */ 142 #define E4_XSTORM_IWARP_CONN_AG_CTX_SQ_FLUSH_CF_SHIFT 4 143 #define E4_XSTORM_IWARP_CONN_AG_CTX_CF15_MASK 0x3 /* cf15 */ 144 #define E4_XSTORM_IWARP_CONN_AG_CTX_CF15_SHIFT 6 145 u8 flags6; 146 #define E4_XSTORM_IWARP_CONN_AG_CTX_MPA_OR_ERROR_WAKEUP_TRIGGER_CF_MASK 0x3 /* cf16 */ 147 #define E4_XSTORM_IWARP_CONN_AG_CTX_MPA_OR_ERROR_WAKEUP_TRIGGER_CF_SHIFT 0 148 #define E4_XSTORM_IWARP_CONN_AG_CTX_CF17_MASK 0x3 /* cf_array_cf */ 149 #define E4_XSTORM_IWARP_CONN_AG_CTX_CF17_SHIFT 2 150 #define E4_XSTORM_IWARP_CONN_AG_CTX_CF18_MASK 0x3 /* cf18 */ 151 #define E4_XSTORM_IWARP_CONN_AG_CTX_CF18_SHIFT 4 152 #define E4_XSTORM_IWARP_CONN_AG_CTX_DQ_FLUSH_MASK 0x3 /* cf19 */ 153 #define E4_XSTORM_IWARP_CONN_AG_CTX_DQ_FLUSH_SHIFT 6 154 u8 flags7; 155 #define E4_XSTORM_IWARP_CONN_AG_CTX_FLUSH_Q0_MASK 0x3 /* cf20 */ 156 #define E4_XSTORM_IWARP_CONN_AG_CTX_FLUSH_Q0_SHIFT 0 157 #define E4_XSTORM_IWARP_CONN_AG_CTX_FLUSH_Q1_MASK 0x3 /* cf21 */ 158 #define E4_XSTORM_IWARP_CONN_AG_CTX_FLUSH_Q1_SHIFT 2 159 #define E4_XSTORM_IWARP_CONN_AG_CTX_SLOW_PATH_MASK 0x3 /* cf22 */ 160 #define E4_XSTORM_IWARP_CONN_AG_CTX_SLOW_PATH_SHIFT 4 161 #define E4_XSTORM_IWARP_CONN_AG_CTX_CF0EN_MASK 0x1 /* cf0en */ 162 #define E4_XSTORM_IWARP_CONN_AG_CTX_CF0EN_SHIFT 6 163 #define E4_XSTORM_IWARP_CONN_AG_CTX_CF1EN_MASK 0x1 /* cf1en */ 164 #define E4_XSTORM_IWARP_CONN_AG_CTX_CF1EN_SHIFT 7 165 u8 flags8; 166 #define E4_XSTORM_IWARP_CONN_AG_CTX_CF2EN_MASK 0x1 /* cf2en */ 167 #define E4_XSTORM_IWARP_CONN_AG_CTX_CF2EN_SHIFT 0 168 #define E4_XSTORM_IWARP_CONN_AG_CTX_TIMER_STOP_ALL_EN_MASK 0x1 /* cf3en */ 169 #define E4_XSTORM_IWARP_CONN_AG_CTX_TIMER_STOP_ALL_EN_SHIFT 1 170 #define E4_XSTORM_IWARP_CONN_AG_CTX_CF4EN_MASK 0x1 /* cf4en */ 171 #define E4_XSTORM_IWARP_CONN_AG_CTX_CF4EN_SHIFT 2 172 #define E4_XSTORM_IWARP_CONN_AG_CTX_CF5EN_MASK 0x1 /* cf5en */ 173 #define E4_XSTORM_IWARP_CONN_AG_CTX_CF5EN_SHIFT 3 174 #define E4_XSTORM_IWARP_CONN_AG_CTX_CF6EN_MASK 0x1 /* cf6en */ 175 #define E4_XSTORM_IWARP_CONN_AG_CTX_CF6EN_SHIFT 4 176 #define E4_XSTORM_IWARP_CONN_AG_CTX_CF7EN_MASK 0x1 /* cf7en */ 177 #define E4_XSTORM_IWARP_CONN_AG_CTX_CF7EN_SHIFT 5 178 #define E4_XSTORM_IWARP_CONN_AG_CTX_CF8EN_MASK 0x1 /* cf8en */ 179 #define E4_XSTORM_IWARP_CONN_AG_CTX_CF8EN_SHIFT 6 180 #define E4_XSTORM_IWARP_CONN_AG_CTX_CF9EN_MASK 0x1 /* cf9en */ 181 #define E4_XSTORM_IWARP_CONN_AG_CTX_CF9EN_SHIFT 7 182 u8 flags9; 183 #define E4_XSTORM_IWARP_CONN_AG_CTX_CF10EN_MASK 0x1 /* cf10en */ 184 #define E4_XSTORM_IWARP_CONN_AG_CTX_CF10EN_SHIFT 0 185 #define E4_XSTORM_IWARP_CONN_AG_CTX_CF11EN_MASK 0x1 /* cf11en */ 186 #define E4_XSTORM_IWARP_CONN_AG_CTX_CF11EN_SHIFT 1 187 #define E4_XSTORM_IWARP_CONN_AG_CTX_CF12EN_MASK 0x1 /* cf12en */ 188 #define E4_XSTORM_IWARP_CONN_AG_CTX_CF12EN_SHIFT 2 189 #define E4_XSTORM_IWARP_CONN_AG_CTX_CF13EN_MASK 0x1 /* cf13en */ 190 #define E4_XSTORM_IWARP_CONN_AG_CTX_CF13EN_SHIFT 3 191 #define E4_XSTORM_IWARP_CONN_AG_CTX_SQ_FLUSH_CF_EN_MASK 0x1 /* cf14en */ 192 #define E4_XSTORM_IWARP_CONN_AG_CTX_SQ_FLUSH_CF_EN_SHIFT 4 193 #define E4_XSTORM_IWARP_CONN_AG_CTX_CF15EN_MASK 0x1 /* cf15en */ 194 #define E4_XSTORM_IWARP_CONN_AG_CTX_CF15EN_SHIFT 5 195 #define E4_XSTORM_IWARP_CONN_AG_CTX_MPA_OR_ERROR_WAKEUP_TRIGGER_CF_EN_MASK 0x1 /* cf16en */ 196 #define E4_XSTORM_IWARP_CONN_AG_CTX_MPA_OR_ERROR_WAKEUP_TRIGGER_CF_EN_SHIFT 6 197 #define E4_XSTORM_IWARP_CONN_AG_CTX_CF17EN_MASK 0x1 /* cf_array_cf_en */ 198 #define E4_XSTORM_IWARP_CONN_AG_CTX_CF17EN_SHIFT 7 199 u8 flags10; 200 #define E4_XSTORM_IWARP_CONN_AG_CTX_CF18EN_MASK 0x1 /* cf18en */ 201 #define E4_XSTORM_IWARP_CONN_AG_CTX_CF18EN_SHIFT 0 202 #define E4_XSTORM_IWARP_CONN_AG_CTX_DQ_FLUSH_EN_MASK 0x1 /* cf19en */ 203 #define E4_XSTORM_IWARP_CONN_AG_CTX_DQ_FLUSH_EN_SHIFT 1 204 #define E4_XSTORM_IWARP_CONN_AG_CTX_FLUSH_Q0_EN_MASK 0x1 /* cf20en */ 205 #define E4_XSTORM_IWARP_CONN_AG_CTX_FLUSH_Q0_EN_SHIFT 2 206 #define E4_XSTORM_IWARP_CONN_AG_CTX_FLUSH_Q1_EN_MASK 0x1 /* cf21en */ 207 #define E4_XSTORM_IWARP_CONN_AG_CTX_FLUSH_Q1_EN_SHIFT 3 208 #define E4_XSTORM_IWARP_CONN_AG_CTX_SLOW_PATH_EN_MASK 0x1 /* cf22en */ 209 #define E4_XSTORM_IWARP_CONN_AG_CTX_SLOW_PATH_EN_SHIFT 4 210 #define E4_XSTORM_IWARP_CONN_AG_CTX_CF23EN_MASK 0x1 /* cf23en */ 211 #define E4_XSTORM_IWARP_CONN_AG_CTX_CF23EN_SHIFT 5 212 #define E4_XSTORM_IWARP_CONN_AG_CTX_RULE0EN_MASK 0x1 /* rule0en */ 213 #define E4_XSTORM_IWARP_CONN_AG_CTX_RULE0EN_SHIFT 6 214 #define E4_XSTORM_IWARP_CONN_AG_CTX_MORE_TO_SEND_RULE_EN_MASK 0x1 /* rule1en */ 215 #define E4_XSTORM_IWARP_CONN_AG_CTX_MORE_TO_SEND_RULE_EN_SHIFT 7 216 u8 flags11; 217 #define E4_XSTORM_IWARP_CONN_AG_CTX_TX_BLOCKED_EN_MASK 0x1 /* rule2en */ 218 #define E4_XSTORM_IWARP_CONN_AG_CTX_TX_BLOCKED_EN_SHIFT 0 219 #define E4_XSTORM_IWARP_CONN_AG_CTX_RULE3EN_MASK 0x1 /* rule3en */ 220 #define E4_XSTORM_IWARP_CONN_AG_CTX_RULE3EN_SHIFT 1 221 #define E4_XSTORM_IWARP_CONN_AG_CTX_RESERVED3_MASK 0x1 /* rule4en */ 222 #define E4_XSTORM_IWARP_CONN_AG_CTX_RESERVED3_SHIFT 2 223 #define E4_XSTORM_IWARP_CONN_AG_CTX_RULE5EN_MASK 0x1 /* rule5en */ 224 #define E4_XSTORM_IWARP_CONN_AG_CTX_RULE5EN_SHIFT 3 225 #define E4_XSTORM_IWARP_CONN_AG_CTX_RULE6EN_MASK 0x1 /* rule6en */ 226 #define E4_XSTORM_IWARP_CONN_AG_CTX_RULE6EN_SHIFT 4 227 #define E4_XSTORM_IWARP_CONN_AG_CTX_RULE7EN_MASK 0x1 /* rule7en */ 228 #define E4_XSTORM_IWARP_CONN_AG_CTX_RULE7EN_SHIFT 5 229 #define E4_XSTORM_IWARP_CONN_AG_CTX_A0_RESERVED1_MASK 0x1 /* rule8en */ 230 #define E4_XSTORM_IWARP_CONN_AG_CTX_A0_RESERVED1_SHIFT 6 231 #define E4_XSTORM_IWARP_CONN_AG_CTX_RULE9EN_MASK 0x1 /* rule9en */ 232 #define E4_XSTORM_IWARP_CONN_AG_CTX_RULE9EN_SHIFT 7 233 u8 flags12; 234 #define E4_XSTORM_IWARP_CONN_AG_CTX_SQ_NOT_EMPTY_RULE_EN_MASK 0x1 /* rule10en */ 235 #define E4_XSTORM_IWARP_CONN_AG_CTX_SQ_NOT_EMPTY_RULE_EN_SHIFT 0 236 #define E4_XSTORM_IWARP_CONN_AG_CTX_RULE11EN_MASK 0x1 /* rule11en */ 237 #define E4_XSTORM_IWARP_CONN_AG_CTX_RULE11EN_SHIFT 1 238 #define E4_XSTORM_IWARP_CONN_AG_CTX_A0_RESERVED2_MASK 0x1 /* rule12en */ 239 #define E4_XSTORM_IWARP_CONN_AG_CTX_A0_RESERVED2_SHIFT 2 240 #define E4_XSTORM_IWARP_CONN_AG_CTX_A0_RESERVED3_MASK 0x1 /* rule13en */ 241 #define E4_XSTORM_IWARP_CONN_AG_CTX_A0_RESERVED3_SHIFT 3 242 #define E4_XSTORM_IWARP_CONN_AG_CTX_SQ_FENCE_RULE_EN_MASK 0x1 /* rule14en */ 243 #define E4_XSTORM_IWARP_CONN_AG_CTX_SQ_FENCE_RULE_EN_SHIFT 4 244 #define E4_XSTORM_IWARP_CONN_AG_CTX_RULE15EN_MASK 0x1 /* rule15en */ 245 #define E4_XSTORM_IWARP_CONN_AG_CTX_RULE15EN_SHIFT 5 246 #define E4_XSTORM_IWARP_CONN_AG_CTX_RULE16EN_MASK 0x1 /* rule16en */ 247 #define E4_XSTORM_IWARP_CONN_AG_CTX_RULE16EN_SHIFT 6 248 #define E4_XSTORM_IWARP_CONN_AG_CTX_RULE17EN_MASK 0x1 /* rule17en */ 249 #define E4_XSTORM_IWARP_CONN_AG_CTX_RULE17EN_SHIFT 7 250 u8 flags13; 251 #define E4_XSTORM_IWARP_CONN_AG_CTX_IRQ_NOT_EMPTY_RULE_EN_MASK 0x1 /* rule18en */ 252 #define E4_XSTORM_IWARP_CONN_AG_CTX_IRQ_NOT_EMPTY_RULE_EN_SHIFT 0 253 #define E4_XSTORM_IWARP_CONN_AG_CTX_HQ_NOT_FULL_RULE_EN_MASK 0x1 /* rule19en */ 254 #define E4_XSTORM_IWARP_CONN_AG_CTX_HQ_NOT_FULL_RULE_EN_SHIFT 1 255 #define E4_XSTORM_IWARP_CONN_AG_CTX_ORQ_RD_FENCE_RULE_EN_MASK 0x1 /* rule20en */ 256 #define E4_XSTORM_IWARP_CONN_AG_CTX_ORQ_RD_FENCE_RULE_EN_SHIFT 2 257 #define E4_XSTORM_IWARP_CONN_AG_CTX_RULE21EN_MASK 0x1 /* rule21en */ 258 #define E4_XSTORM_IWARP_CONN_AG_CTX_RULE21EN_SHIFT 3 259 #define E4_XSTORM_IWARP_CONN_AG_CTX_A0_RESERVED6_MASK 0x1 /* rule22en */ 260 #define E4_XSTORM_IWARP_CONN_AG_CTX_A0_RESERVED6_SHIFT 4 261 #define E4_XSTORM_IWARP_CONN_AG_CTX_ORQ_NOT_FULL_RULE_EN_MASK 0x1 /* rule23en */ 262 #define E4_XSTORM_IWARP_CONN_AG_CTX_ORQ_NOT_FULL_RULE_EN_SHIFT 5 263 #define E4_XSTORM_IWARP_CONN_AG_CTX_A0_RESERVED8_MASK 0x1 /* rule24en */ 264 #define E4_XSTORM_IWARP_CONN_AG_CTX_A0_RESERVED8_SHIFT 6 265 #define E4_XSTORM_IWARP_CONN_AG_CTX_A0_RESERVED9_MASK 0x1 /* rule25en */ 266 #define E4_XSTORM_IWARP_CONN_AG_CTX_A0_RESERVED9_SHIFT 7 267 u8 flags14; 268 #define E4_XSTORM_IWARP_CONN_AG_CTX_BIT16_MASK 0x1 /* bit16 */ 269 #define E4_XSTORM_IWARP_CONN_AG_CTX_BIT16_SHIFT 0 270 #define E4_XSTORM_IWARP_CONN_AG_CTX_BIT17_MASK 0x1 /* bit17 */ 271 #define E4_XSTORM_IWARP_CONN_AG_CTX_BIT17_SHIFT 1 272 #define E4_XSTORM_IWARP_CONN_AG_CTX_BIT18_MASK 0x1 /* bit18 */ 273 #define E4_XSTORM_IWARP_CONN_AG_CTX_BIT18_SHIFT 2 274 #define E4_XSTORM_IWARP_CONN_AG_CTX_E5_RESERVED1_MASK 0x1 /* bit19 */ 275 #define E4_XSTORM_IWARP_CONN_AG_CTX_E5_RESERVED1_SHIFT 3 276 #define E4_XSTORM_IWARP_CONN_AG_CTX_E5_RESERVED2_MASK 0x1 /* bit20 */ 277 #define E4_XSTORM_IWARP_CONN_AG_CTX_E5_RESERVED2_SHIFT 4 278 #define E4_XSTORM_IWARP_CONN_AG_CTX_E5_RESERVED3_MASK 0x1 /* bit21 */ 279 #define E4_XSTORM_IWARP_CONN_AG_CTX_E5_RESERVED3_SHIFT 5 280 #define E4_XSTORM_IWARP_CONN_AG_CTX_CF23_MASK 0x3 /* cf23 */ 281 #define E4_XSTORM_IWARP_CONN_AG_CTX_CF23_SHIFT 6 282 u8 byte2 /* byte2 */; 283 __le16 physical_q0 /* physical_q0 */; 284 __le16 physical_q1 /* physical_q1 */; 285 __le16 sq_comp_cons /* physical_q2 */; 286 __le16 sq_tx_cons /* word3 */; 287 __le16 sq_prod /* word4 */; 288 __le16 word5 /* word5 */; 289 __le16 conn_dpi /* conn_dpi */; 290 u8 byte3 /* byte3 */; 291 u8 byte4 /* byte4 */; 292 u8 byte5 /* byte5 */; 293 u8 byte6 /* byte6 */; 294 __le32 reg0 /* reg0 */; 295 __le32 reg1 /* reg1 */; 296 __le32 reg2 /* reg2 */; 297 __le32 more_to_send_seq /* reg3 */; 298 __le32 reg4 /* reg4 */; 299 __le32 rewinded_snd_max /* cf_array0 */; 300 __le32 rd_msn /* cf_array1 */; 301 __le16 irq_prod_via_msdm /* word7 */; 302 __le16 irq_cons /* word8 */; 303 __le16 hq_cons_th_or_mpa_data /* word9 */; 304 __le16 hq_cons /* word10 */; 305 __le32 atom_msn /* reg7 */; 306 __le32 orq_cons /* reg8 */; 307 __le32 orq_cons_th /* reg9 */; 308 u8 byte7 /* byte7 */; 309 u8 max_ord /* byte8 */; 310 u8 wqe_data_pad_bytes /* byte9 */; 311 u8 former_hq_prod /* byte10 */; 312 u8 irq_prod_via_msem /* byte11 */; 313 u8 byte12 /* byte12 */; 314 u8 max_pkt_pdu_size_lo /* byte13 */; 315 u8 max_pkt_pdu_size_hi /* byte14 */; 316 u8 byte15 /* byte15 */; 317 u8 e5_reserved /* e5_reserved */; 318 __le16 e5_reserved4 /* word11 */; 319 __le32 reg10 /* reg10 */; 320 __le32 reg11 /* reg11 */; 321 __le32 shared_queue_page_addr_lo /* reg12 */; 322 __le32 shared_queue_page_addr_hi /* reg13 */; 323 __le32 reg14 /* reg14 */; 324 __le32 reg15 /* reg15 */; 325 __le32 reg16 /* reg16 */; 326 __le32 reg17 /* reg17 */; 327 }; 328 329 struct e4_tstorm_iwarp_conn_ag_ctx 330 { 331 u8 reserved0 /* cdu_validation */; 332 u8 state /* state */; 333 u8 flags0; 334 #define E4_TSTORM_IWARP_CONN_AG_CTX_EXIST_IN_QM0_MASK 0x1 /* exist_in_qm0 */ 335 #define E4_TSTORM_IWARP_CONN_AG_CTX_EXIST_IN_QM0_SHIFT 0 336 #define E4_TSTORM_IWARP_CONN_AG_CTX_BIT1_MASK 0x1 /* exist_in_qm1 */ 337 #define E4_TSTORM_IWARP_CONN_AG_CTX_BIT1_SHIFT 1 338 #define E4_TSTORM_IWARP_CONN_AG_CTX_BIT2_MASK 0x1 /* bit2 */ 339 #define E4_TSTORM_IWARP_CONN_AG_CTX_BIT2_SHIFT 2 340 #define E4_TSTORM_IWARP_CONN_AG_CTX_MSTORM_FLUSH_MASK 0x1 /* bit3 */ 341 #define E4_TSTORM_IWARP_CONN_AG_CTX_MSTORM_FLUSH_SHIFT 3 342 #define E4_TSTORM_IWARP_CONN_AG_CTX_BIT4_MASK 0x1 /* bit4 */ 343 #define E4_TSTORM_IWARP_CONN_AG_CTX_BIT4_SHIFT 4 344 #define E4_TSTORM_IWARP_CONN_AG_CTX_CACHED_ORQ_MASK 0x1 /* bit5 */ 345 #define E4_TSTORM_IWARP_CONN_AG_CTX_CACHED_ORQ_SHIFT 5 346 #define E4_TSTORM_IWARP_CONN_AG_CTX_CF0_MASK 0x3 /* timer0cf */ 347 #define E4_TSTORM_IWARP_CONN_AG_CTX_CF0_SHIFT 6 348 u8 flags1; 349 #define E4_TSTORM_IWARP_CONN_AG_CTX_RQ_POST_CF_MASK 0x3 /* timer1cf */ 350 #define E4_TSTORM_IWARP_CONN_AG_CTX_RQ_POST_CF_SHIFT 0 351 #define E4_TSTORM_IWARP_CONN_AG_CTX_MPA_TIMEOUT_CF_MASK 0x3 /* timer2cf */ 352 #define E4_TSTORM_IWARP_CONN_AG_CTX_MPA_TIMEOUT_CF_SHIFT 2 353 #define E4_TSTORM_IWARP_CONN_AG_CTX_TIMER_STOP_ALL_MASK 0x3 /* timer_stop_all */ 354 #define E4_TSTORM_IWARP_CONN_AG_CTX_TIMER_STOP_ALL_SHIFT 4 355 #define E4_TSTORM_IWARP_CONN_AG_CTX_CF4_MASK 0x3 /* cf4 */ 356 #define E4_TSTORM_IWARP_CONN_AG_CTX_CF4_SHIFT 6 357 u8 flags2; 358 #define E4_TSTORM_IWARP_CONN_AG_CTX_CF5_MASK 0x3 /* cf5 */ 359 #define E4_TSTORM_IWARP_CONN_AG_CTX_CF5_SHIFT 0 360 #define E4_TSTORM_IWARP_CONN_AG_CTX_CF6_MASK 0x3 /* cf6 */ 361 #define E4_TSTORM_IWARP_CONN_AG_CTX_CF6_SHIFT 2 362 #define E4_TSTORM_IWARP_CONN_AG_CTX_CF7_MASK 0x3 /* cf7 */ 363 #define E4_TSTORM_IWARP_CONN_AG_CTX_CF7_SHIFT 4 364 #define E4_TSTORM_IWARP_CONN_AG_CTX_CF8_MASK 0x3 /* cf8 */ 365 #define E4_TSTORM_IWARP_CONN_AG_CTX_CF8_SHIFT 6 366 u8 flags3; 367 #define E4_TSTORM_IWARP_CONN_AG_CTX_FLUSH_Q0_AND_TCP_HANDSHAKE_COMPLETE_MASK 0x3 /* cf9 */ 368 #define E4_TSTORM_IWARP_CONN_AG_CTX_FLUSH_Q0_AND_TCP_HANDSHAKE_COMPLETE_SHIFT 0 369 #define E4_TSTORM_IWARP_CONN_AG_CTX_FLUSH_OR_ERROR_DETECTED_MASK 0x3 /* cf10 */ 370 #define E4_TSTORM_IWARP_CONN_AG_CTX_FLUSH_OR_ERROR_DETECTED_SHIFT 2 371 #define E4_TSTORM_IWARP_CONN_AG_CTX_CF0EN_MASK 0x1 /* cf0en */ 372 #define E4_TSTORM_IWARP_CONN_AG_CTX_CF0EN_SHIFT 4 373 #define E4_TSTORM_IWARP_CONN_AG_CTX_RQ_POST_CF_EN_MASK 0x1 /* cf1en */ 374 #define E4_TSTORM_IWARP_CONN_AG_CTX_RQ_POST_CF_EN_SHIFT 5 375 #define E4_TSTORM_IWARP_CONN_AG_CTX_MPA_TIMEOUT_CF_EN_MASK 0x1 /* cf2en */ 376 #define E4_TSTORM_IWARP_CONN_AG_CTX_MPA_TIMEOUT_CF_EN_SHIFT 6 377 #define E4_TSTORM_IWARP_CONN_AG_CTX_TIMER_STOP_ALL_EN_MASK 0x1 /* cf3en */ 378 #define E4_TSTORM_IWARP_CONN_AG_CTX_TIMER_STOP_ALL_EN_SHIFT 7 379 u8 flags4; 380 #define E4_TSTORM_IWARP_CONN_AG_CTX_CF4EN_MASK 0x1 /* cf4en */ 381 #define E4_TSTORM_IWARP_CONN_AG_CTX_CF4EN_SHIFT 0 382 #define E4_TSTORM_IWARP_CONN_AG_CTX_CF5EN_MASK 0x1 /* cf5en */ 383 #define E4_TSTORM_IWARP_CONN_AG_CTX_CF5EN_SHIFT 1 384 #define E4_TSTORM_IWARP_CONN_AG_CTX_CF6EN_MASK 0x1 /* cf6en */ 385 #define E4_TSTORM_IWARP_CONN_AG_CTX_CF6EN_SHIFT 2 386 #define E4_TSTORM_IWARP_CONN_AG_CTX_CF7EN_MASK 0x1 /* cf7en */ 387 #define E4_TSTORM_IWARP_CONN_AG_CTX_CF7EN_SHIFT 3 388 #define E4_TSTORM_IWARP_CONN_AG_CTX_CF8EN_MASK 0x1 /* cf8en */ 389 #define E4_TSTORM_IWARP_CONN_AG_CTX_CF8EN_SHIFT 4 390 #define E4_TSTORM_IWARP_CONN_AG_CTX_FLUSH_Q0_AND_TCP_HANDSHAKE_COMPLETE_EN_MASK 0x1 /* cf9en */ 391 #define E4_TSTORM_IWARP_CONN_AG_CTX_FLUSH_Q0_AND_TCP_HANDSHAKE_COMPLETE_EN_SHIFT 5 392 #define E4_TSTORM_IWARP_CONN_AG_CTX_FLUSH_OR_ERROR_DETECTED_EN_MASK 0x1 /* cf10en */ 393 #define E4_TSTORM_IWARP_CONN_AG_CTX_FLUSH_OR_ERROR_DETECTED_EN_SHIFT 6 394 #define E4_TSTORM_IWARP_CONN_AG_CTX_RULE0EN_MASK 0x1 /* rule0en */ 395 #define E4_TSTORM_IWARP_CONN_AG_CTX_RULE0EN_SHIFT 7 396 u8 flags5; 397 #define E4_TSTORM_IWARP_CONN_AG_CTX_RULE1EN_MASK 0x1 /* rule1en */ 398 #define E4_TSTORM_IWARP_CONN_AG_CTX_RULE1EN_SHIFT 0 399 #define E4_TSTORM_IWARP_CONN_AG_CTX_RULE2EN_MASK 0x1 /* rule2en */ 400 #define E4_TSTORM_IWARP_CONN_AG_CTX_RULE2EN_SHIFT 1 401 #define E4_TSTORM_IWARP_CONN_AG_CTX_RULE3EN_MASK 0x1 /* rule3en */ 402 #define E4_TSTORM_IWARP_CONN_AG_CTX_RULE3EN_SHIFT 2 403 #define E4_TSTORM_IWARP_CONN_AG_CTX_RULE4EN_MASK 0x1 /* rule4en */ 404 #define E4_TSTORM_IWARP_CONN_AG_CTX_RULE4EN_SHIFT 3 405 #define E4_TSTORM_IWARP_CONN_AG_CTX_RULE5EN_MASK 0x1 /* rule5en */ 406 #define E4_TSTORM_IWARP_CONN_AG_CTX_RULE5EN_SHIFT 4 407 #define E4_TSTORM_IWARP_CONN_AG_CTX_SND_SQ_CONS_RULE_MASK 0x1 /* rule6en */ 408 #define E4_TSTORM_IWARP_CONN_AG_CTX_SND_SQ_CONS_RULE_SHIFT 5 409 #define E4_TSTORM_IWARP_CONN_AG_CTX_RULE7EN_MASK 0x1 /* rule7en */ 410 #define E4_TSTORM_IWARP_CONN_AG_CTX_RULE7EN_SHIFT 6 411 #define E4_TSTORM_IWARP_CONN_AG_CTX_RULE8EN_MASK 0x1 /* rule8en */ 412 #define E4_TSTORM_IWARP_CONN_AG_CTX_RULE8EN_SHIFT 7 413 __le32 reg0 /* reg0 */; 414 __le32 reg1 /* reg1 */; 415 __le32 unaligned_nxt_seq /* reg2 */; 416 __le32 reg3 /* reg3 */; 417 __le32 reg4 /* reg4 */; 418 __le32 reg5 /* reg5 */; 419 __le32 reg6 /* reg6 */; 420 __le32 reg7 /* reg7 */; 421 __le32 reg8 /* reg8 */; 422 u8 orq_cache_idx /* byte2 */; 423 u8 hq_prod /* byte3 */; 424 __le16 sq_tx_cons_th /* word0 */; 425 u8 orq_prod /* byte4 */; 426 u8 irq_cons /* byte5 */; 427 __le16 sq_tx_cons /* word1 */; 428 __le16 conn_dpi /* conn_dpi */; 429 __le16 rq_prod /* word3 */; 430 __le32 snd_seq /* reg9 */; 431 __le32 last_hq_sequence /* reg10 */; 432 }; 433 434 /* 435 * The iwarp storm context of Tstorm 436 */ 437 struct tstorm_iwarp_conn_st_ctx 438 { 439 __le32 reserved[60]; 440 }; 441 442 /* 443 * The iwarp storm context of Mstorm 444 */ 445 struct mstorm_iwarp_conn_st_ctx 446 { 447 __le32 reserved[32]; 448 }; 449 450 /* 451 * The iwarp storm context of Ustorm 452 */ 453 struct ustorm_iwarp_conn_st_ctx 454 { 455 __le32 reserved[24]; 456 }; 457 458 /* 459 * iwarp connection context 460 */ 461 struct e4_iwarp_conn_context 462 { 463 struct ystorm_iwarp_conn_st_ctx ystorm_st_context /* ystorm storm context */; 464 struct regpair ystorm_st_padding[2] /* padding */; 465 struct pstorm_iwarp_conn_st_ctx pstorm_st_context /* pstorm storm context */; 466 struct regpair pstorm_st_padding[2] /* padding */; 467 struct xstorm_iwarp_conn_st_ctx xstorm_st_context /* xstorm storm context */; 468 struct regpair xstorm_st_padding[2] /* padding */; 469 struct e4_xstorm_iwarp_conn_ag_ctx xstorm_ag_context /* xstorm aggregative context */; 470 struct e4_tstorm_iwarp_conn_ag_ctx tstorm_ag_context /* tstorm aggregative context */; 471 struct timers_context timer_context /* timer context */; 472 struct e4_ustorm_rdma_conn_ag_ctx ustorm_ag_context /* ustorm aggregative context */; 473 struct tstorm_iwarp_conn_st_ctx tstorm_st_context /* tstorm storm context */; 474 struct regpair tstorm_st_padding[2] /* padding */; 475 struct mstorm_iwarp_conn_st_ctx mstorm_st_context /* mstorm storm context */; 476 struct ustorm_iwarp_conn_st_ctx ustorm_st_context /* ustorm storm context */; 477 }; 478 479 struct e5_xstorm_iwarp_conn_ag_ctx 480 { 481 u8 reserved0 /* cdu_validation */; 482 u8 state_and_core_id /* state_and_core_id */; 483 u8 flags0; 484 #define E5_XSTORM_IWARP_CONN_AG_CTX_EXIST_IN_QM0_MASK 0x1 /* exist_in_qm0 */ 485 #define E5_XSTORM_IWARP_CONN_AG_CTX_EXIST_IN_QM0_SHIFT 0 486 #define E5_XSTORM_IWARP_CONN_AG_CTX_EXIST_IN_QM1_MASK 0x1 /* exist_in_qm1 */ 487 #define E5_XSTORM_IWARP_CONN_AG_CTX_EXIST_IN_QM1_SHIFT 1 488 #define E5_XSTORM_IWARP_CONN_AG_CTX_RESERVED1_MASK 0x1 /* exist_in_qm2 */ 489 #define E5_XSTORM_IWARP_CONN_AG_CTX_RESERVED1_SHIFT 2 490 #define E5_XSTORM_IWARP_CONN_AG_CTX_EXIST_IN_QM3_MASK 0x1 /* exist_in_qm3 */ 491 #define E5_XSTORM_IWARP_CONN_AG_CTX_EXIST_IN_QM3_SHIFT 3 492 #define E5_XSTORM_IWARP_CONN_AG_CTX_BIT4_MASK 0x1 /* bit4 */ 493 #define E5_XSTORM_IWARP_CONN_AG_CTX_BIT4_SHIFT 4 494 #define E5_XSTORM_IWARP_CONN_AG_CTX_RESERVED2_MASK 0x1 /* cf_array_active */ 495 #define E5_XSTORM_IWARP_CONN_AG_CTX_RESERVED2_SHIFT 5 496 #define E5_XSTORM_IWARP_CONN_AG_CTX_BIT6_MASK 0x1 /* bit6 */ 497 #define E5_XSTORM_IWARP_CONN_AG_CTX_BIT6_SHIFT 6 498 #define E5_XSTORM_IWARP_CONN_AG_CTX_BIT7_MASK 0x1 /* bit7 */ 499 #define E5_XSTORM_IWARP_CONN_AG_CTX_BIT7_SHIFT 7 500 u8 flags1; 501 #define E5_XSTORM_IWARP_CONN_AG_CTX_BIT8_MASK 0x1 /* bit8 */ 502 #define E5_XSTORM_IWARP_CONN_AG_CTX_BIT8_SHIFT 0 503 #define E5_XSTORM_IWARP_CONN_AG_CTX_BIT9_MASK 0x1 /* bit9 */ 504 #define E5_XSTORM_IWARP_CONN_AG_CTX_BIT9_SHIFT 1 505 #define E5_XSTORM_IWARP_CONN_AG_CTX_BIT10_MASK 0x1 /* bit10 */ 506 #define E5_XSTORM_IWARP_CONN_AG_CTX_BIT10_SHIFT 2 507 #define E5_XSTORM_IWARP_CONN_AG_CTX_BIT11_MASK 0x1 /* bit11 */ 508 #define E5_XSTORM_IWARP_CONN_AG_CTX_BIT11_SHIFT 3 509 #define E5_XSTORM_IWARP_CONN_AG_CTX_BIT12_MASK 0x1 /* bit12 */ 510 #define E5_XSTORM_IWARP_CONN_AG_CTX_BIT12_SHIFT 4 511 #define E5_XSTORM_IWARP_CONN_AG_CTX_BIT13_MASK 0x1 /* bit13 */ 512 #define E5_XSTORM_IWARP_CONN_AG_CTX_BIT13_SHIFT 5 513 #define E5_XSTORM_IWARP_CONN_AG_CTX_BIT14_MASK 0x1 /* bit14 */ 514 #define E5_XSTORM_IWARP_CONN_AG_CTX_BIT14_SHIFT 6 515 #define E5_XSTORM_IWARP_CONN_AG_CTX_YSTORM_FLUSH_OR_REWIND_SND_MAX_MASK 0x1 /* bit15 */ 516 #define E5_XSTORM_IWARP_CONN_AG_CTX_YSTORM_FLUSH_OR_REWIND_SND_MAX_SHIFT 7 517 u8 flags2; 518 #define E5_XSTORM_IWARP_CONN_AG_CTX_CF0_MASK 0x3 /* timer0cf */ 519 #define E5_XSTORM_IWARP_CONN_AG_CTX_CF0_SHIFT 0 520 #define E5_XSTORM_IWARP_CONN_AG_CTX_CF1_MASK 0x3 /* timer1cf */ 521 #define E5_XSTORM_IWARP_CONN_AG_CTX_CF1_SHIFT 2 522 #define E5_XSTORM_IWARP_CONN_AG_CTX_CF2_MASK 0x3 /* timer2cf */ 523 #define E5_XSTORM_IWARP_CONN_AG_CTX_CF2_SHIFT 4 524 #define E5_XSTORM_IWARP_CONN_AG_CTX_TIMER_STOP_ALL_MASK 0x3 /* timer_stop_all */ 525 #define E5_XSTORM_IWARP_CONN_AG_CTX_TIMER_STOP_ALL_SHIFT 6 526 u8 flags3; 527 #define E5_XSTORM_IWARP_CONN_AG_CTX_CF4_MASK 0x3 /* cf4 */ 528 #define E5_XSTORM_IWARP_CONN_AG_CTX_CF4_SHIFT 0 529 #define E5_XSTORM_IWARP_CONN_AG_CTX_CF5_MASK 0x3 /* cf5 */ 530 #define E5_XSTORM_IWARP_CONN_AG_CTX_CF5_SHIFT 2 531 #define E5_XSTORM_IWARP_CONN_AG_CTX_CF6_MASK 0x3 /* cf6 */ 532 #define E5_XSTORM_IWARP_CONN_AG_CTX_CF6_SHIFT 4 533 #define E5_XSTORM_IWARP_CONN_AG_CTX_CF7_MASK 0x3 /* cf7 */ 534 #define E5_XSTORM_IWARP_CONN_AG_CTX_CF7_SHIFT 6 535 u8 flags4; 536 #define E5_XSTORM_IWARP_CONN_AG_CTX_CF8_MASK 0x3 /* cf8 */ 537 #define E5_XSTORM_IWARP_CONN_AG_CTX_CF8_SHIFT 0 538 #define E5_XSTORM_IWARP_CONN_AG_CTX_CF9_MASK 0x3 /* cf9 */ 539 #define E5_XSTORM_IWARP_CONN_AG_CTX_CF9_SHIFT 2 540 #define E5_XSTORM_IWARP_CONN_AG_CTX_CF10_MASK 0x3 /* cf10 */ 541 #define E5_XSTORM_IWARP_CONN_AG_CTX_CF10_SHIFT 4 542 #define E5_XSTORM_IWARP_CONN_AG_CTX_CF11_MASK 0x3 /* cf11 */ 543 #define E5_XSTORM_IWARP_CONN_AG_CTX_CF11_SHIFT 6 544 u8 flags5; 545 #define E5_XSTORM_IWARP_CONN_AG_CTX_CF12_MASK 0x3 /* cf12 */ 546 #define E5_XSTORM_IWARP_CONN_AG_CTX_CF12_SHIFT 0 547 #define E5_XSTORM_IWARP_CONN_AG_CTX_CF13_MASK 0x3 /* cf13 */ 548 #define E5_XSTORM_IWARP_CONN_AG_CTX_CF13_SHIFT 2 549 #define E5_XSTORM_IWARP_CONN_AG_CTX_SQ_FLUSH_CF_MASK 0x3 /* cf14 */ 550 #define E5_XSTORM_IWARP_CONN_AG_CTX_SQ_FLUSH_CF_SHIFT 4 551 #define E5_XSTORM_IWARP_CONN_AG_CTX_CF15_MASK 0x3 /* cf15 */ 552 #define E5_XSTORM_IWARP_CONN_AG_CTX_CF15_SHIFT 6 553 u8 flags6; 554 #define E5_XSTORM_IWARP_CONN_AG_CTX_MPA_OR_ERROR_WAKEUP_TRIGGER_CF_MASK 0x3 /* cf16 */ 555 #define E5_XSTORM_IWARP_CONN_AG_CTX_MPA_OR_ERROR_WAKEUP_TRIGGER_CF_SHIFT 0 556 #define E5_XSTORM_IWARP_CONN_AG_CTX_CF17_MASK 0x3 /* cf_array_cf */ 557 #define E5_XSTORM_IWARP_CONN_AG_CTX_CF17_SHIFT 2 558 #define E5_XSTORM_IWARP_CONN_AG_CTX_CF18_MASK 0x3 /* cf18 */ 559 #define E5_XSTORM_IWARP_CONN_AG_CTX_CF18_SHIFT 4 560 #define E5_XSTORM_IWARP_CONN_AG_CTX_DQ_FLUSH_MASK 0x3 /* cf19 */ 561 #define E5_XSTORM_IWARP_CONN_AG_CTX_DQ_FLUSH_SHIFT 6 562 u8 flags7; 563 #define E5_XSTORM_IWARP_CONN_AG_CTX_FLUSH_Q0_MASK 0x3 /* cf20 */ 564 #define E5_XSTORM_IWARP_CONN_AG_CTX_FLUSH_Q0_SHIFT 0 565 #define E5_XSTORM_IWARP_CONN_AG_CTX_FLUSH_Q1_MASK 0x3 /* cf21 */ 566 #define E5_XSTORM_IWARP_CONN_AG_CTX_FLUSH_Q1_SHIFT 2 567 #define E5_XSTORM_IWARP_CONN_AG_CTX_SLOW_PATH_MASK 0x3 /* cf22 */ 568 #define E5_XSTORM_IWARP_CONN_AG_CTX_SLOW_PATH_SHIFT 4 569 #define E5_XSTORM_IWARP_CONN_AG_CTX_CF0EN_MASK 0x1 /* cf0en */ 570 #define E5_XSTORM_IWARP_CONN_AG_CTX_CF0EN_SHIFT 6 571 #define E5_XSTORM_IWARP_CONN_AG_CTX_CF1EN_MASK 0x1 /* cf1en */ 572 #define E5_XSTORM_IWARP_CONN_AG_CTX_CF1EN_SHIFT 7 573 u8 flags8; 574 #define E5_XSTORM_IWARP_CONN_AG_CTX_CF2EN_MASK 0x1 /* cf2en */ 575 #define E5_XSTORM_IWARP_CONN_AG_CTX_CF2EN_SHIFT 0 576 #define E5_XSTORM_IWARP_CONN_AG_CTX_TIMER_STOP_ALL_EN_MASK 0x1 /* cf3en */ 577 #define E5_XSTORM_IWARP_CONN_AG_CTX_TIMER_STOP_ALL_EN_SHIFT 1 578 #define E5_XSTORM_IWARP_CONN_AG_CTX_CF4EN_MASK 0x1 /* cf4en */ 579 #define E5_XSTORM_IWARP_CONN_AG_CTX_CF4EN_SHIFT 2 580 #define E5_XSTORM_IWARP_CONN_AG_CTX_CF5EN_MASK 0x1 /* cf5en */ 581 #define E5_XSTORM_IWARP_CONN_AG_CTX_CF5EN_SHIFT 3 582 #define E5_XSTORM_IWARP_CONN_AG_CTX_CF6EN_MASK 0x1 /* cf6en */ 583 #define E5_XSTORM_IWARP_CONN_AG_CTX_CF6EN_SHIFT 4 584 #define E5_XSTORM_IWARP_CONN_AG_CTX_CF7EN_MASK 0x1 /* cf7en */ 585 #define E5_XSTORM_IWARP_CONN_AG_CTX_CF7EN_SHIFT 5 586 #define E5_XSTORM_IWARP_CONN_AG_CTX_CF8EN_MASK 0x1 /* cf8en */ 587 #define E5_XSTORM_IWARP_CONN_AG_CTX_CF8EN_SHIFT 6 588 #define E5_XSTORM_IWARP_CONN_AG_CTX_CF9EN_MASK 0x1 /* cf9en */ 589 #define E5_XSTORM_IWARP_CONN_AG_CTX_CF9EN_SHIFT 7 590 u8 flags9; 591 #define E5_XSTORM_IWARP_CONN_AG_CTX_CF10EN_MASK 0x1 /* cf10en */ 592 #define E5_XSTORM_IWARP_CONN_AG_CTX_CF10EN_SHIFT 0 593 #define E5_XSTORM_IWARP_CONN_AG_CTX_CF11EN_MASK 0x1 /* cf11en */ 594 #define E5_XSTORM_IWARP_CONN_AG_CTX_CF11EN_SHIFT 1 595 #define E5_XSTORM_IWARP_CONN_AG_CTX_CF12EN_MASK 0x1 /* cf12en */ 596 #define E5_XSTORM_IWARP_CONN_AG_CTX_CF12EN_SHIFT 2 597 #define E5_XSTORM_IWARP_CONN_AG_CTX_CF13EN_MASK 0x1 /* cf13en */ 598 #define E5_XSTORM_IWARP_CONN_AG_CTX_CF13EN_SHIFT 3 599 #define E5_XSTORM_IWARP_CONN_AG_CTX_SQ_FLUSH_CF_EN_MASK 0x1 /* cf14en */ 600 #define E5_XSTORM_IWARP_CONN_AG_CTX_SQ_FLUSH_CF_EN_SHIFT 4 601 #define E5_XSTORM_IWARP_CONN_AG_CTX_CF15EN_MASK 0x1 /* cf15en */ 602 #define E5_XSTORM_IWARP_CONN_AG_CTX_CF15EN_SHIFT 5 603 #define E5_XSTORM_IWARP_CONN_AG_CTX_MPA_OR_ERROR_WAKEUP_TRIGGER_CF_EN_MASK 0x1 /* cf16en */ 604 #define E5_XSTORM_IWARP_CONN_AG_CTX_MPA_OR_ERROR_WAKEUP_TRIGGER_CF_EN_SHIFT 6 605 #define E5_XSTORM_IWARP_CONN_AG_CTX_CF17EN_MASK 0x1 /* cf_array_cf_en */ 606 #define E5_XSTORM_IWARP_CONN_AG_CTX_CF17EN_SHIFT 7 607 u8 flags10; 608 #define E5_XSTORM_IWARP_CONN_AG_CTX_CF18EN_MASK 0x1 /* cf18en */ 609 #define E5_XSTORM_IWARP_CONN_AG_CTX_CF18EN_SHIFT 0 610 #define E5_XSTORM_IWARP_CONN_AG_CTX_DQ_FLUSH_EN_MASK 0x1 /* cf19en */ 611 #define E5_XSTORM_IWARP_CONN_AG_CTX_DQ_FLUSH_EN_SHIFT 1 612 #define E5_XSTORM_IWARP_CONN_AG_CTX_FLUSH_Q0_EN_MASK 0x1 /* cf20en */ 613 #define E5_XSTORM_IWARP_CONN_AG_CTX_FLUSH_Q0_EN_SHIFT 2 614 #define E5_XSTORM_IWARP_CONN_AG_CTX_FLUSH_Q1_EN_MASK 0x1 /* cf21en */ 615 #define E5_XSTORM_IWARP_CONN_AG_CTX_FLUSH_Q1_EN_SHIFT 3 616 #define E5_XSTORM_IWARP_CONN_AG_CTX_SLOW_PATH_EN_MASK 0x1 /* cf22en */ 617 #define E5_XSTORM_IWARP_CONN_AG_CTX_SLOW_PATH_EN_SHIFT 4 618 #define E5_XSTORM_IWARP_CONN_AG_CTX_CF23EN_MASK 0x1 /* cf23en */ 619 #define E5_XSTORM_IWARP_CONN_AG_CTX_CF23EN_SHIFT 5 620 #define E5_XSTORM_IWARP_CONN_AG_CTX_RULE0EN_MASK 0x1 /* rule0en */ 621 #define E5_XSTORM_IWARP_CONN_AG_CTX_RULE0EN_SHIFT 6 622 #define E5_XSTORM_IWARP_CONN_AG_CTX_MORE_TO_SEND_RULE_EN_MASK 0x1 /* rule1en */ 623 #define E5_XSTORM_IWARP_CONN_AG_CTX_MORE_TO_SEND_RULE_EN_SHIFT 7 624 u8 flags11; 625 #define E5_XSTORM_IWARP_CONN_AG_CTX_TX_BLOCKED_EN_MASK 0x1 /* rule2en */ 626 #define E5_XSTORM_IWARP_CONN_AG_CTX_TX_BLOCKED_EN_SHIFT 0 627 #define E5_XSTORM_IWARP_CONN_AG_CTX_RULE3EN_MASK 0x1 /* rule3en */ 628 #define E5_XSTORM_IWARP_CONN_AG_CTX_RULE3EN_SHIFT 1 629 #define E5_XSTORM_IWARP_CONN_AG_CTX_RESERVED3_MASK 0x1 /* rule4en */ 630 #define E5_XSTORM_IWARP_CONN_AG_CTX_RESERVED3_SHIFT 2 631 #define E5_XSTORM_IWARP_CONN_AG_CTX_RULE5EN_MASK 0x1 /* rule5en */ 632 #define E5_XSTORM_IWARP_CONN_AG_CTX_RULE5EN_SHIFT 3 633 #define E5_XSTORM_IWARP_CONN_AG_CTX_RULE6EN_MASK 0x1 /* rule6en */ 634 #define E5_XSTORM_IWARP_CONN_AG_CTX_RULE6EN_SHIFT 4 635 #define E5_XSTORM_IWARP_CONN_AG_CTX_RULE7EN_MASK 0x1 /* rule7en */ 636 #define E5_XSTORM_IWARP_CONN_AG_CTX_RULE7EN_SHIFT 5 637 #define E5_XSTORM_IWARP_CONN_AG_CTX_A0_RESERVED1_MASK 0x1 /* rule8en */ 638 #define E5_XSTORM_IWARP_CONN_AG_CTX_A0_RESERVED1_SHIFT 6 639 #define E5_XSTORM_IWARP_CONN_AG_CTX_RULE9EN_MASK 0x1 /* rule9en */ 640 #define E5_XSTORM_IWARP_CONN_AG_CTX_RULE9EN_SHIFT 7 641 u8 flags12; 642 #define E5_XSTORM_IWARP_CONN_AG_CTX_SQ_NOT_EMPTY_RULE_EN_MASK 0x1 /* rule10en */ 643 #define E5_XSTORM_IWARP_CONN_AG_CTX_SQ_NOT_EMPTY_RULE_EN_SHIFT 0 644 #define E5_XSTORM_IWARP_CONN_AG_CTX_RULE11EN_MASK 0x1 /* rule11en */ 645 #define E5_XSTORM_IWARP_CONN_AG_CTX_RULE11EN_SHIFT 1 646 #define E5_XSTORM_IWARP_CONN_AG_CTX_A0_RESERVED2_MASK 0x1 /* rule12en */ 647 #define E5_XSTORM_IWARP_CONN_AG_CTX_A0_RESERVED2_SHIFT 2 648 #define E5_XSTORM_IWARP_CONN_AG_CTX_A0_RESERVED3_MASK 0x1 /* rule13en */ 649 #define E5_XSTORM_IWARP_CONN_AG_CTX_A0_RESERVED3_SHIFT 3 650 #define E5_XSTORM_IWARP_CONN_AG_CTX_SQ_FENCE_RULE_EN_MASK 0x1 /* rule14en */ 651 #define E5_XSTORM_IWARP_CONN_AG_CTX_SQ_FENCE_RULE_EN_SHIFT 4 652 #define E5_XSTORM_IWARP_CONN_AG_CTX_RULE15EN_MASK 0x1 /* rule15en */ 653 #define E5_XSTORM_IWARP_CONN_AG_CTX_RULE15EN_SHIFT 5 654 #define E5_XSTORM_IWARP_CONN_AG_CTX_RULE16EN_MASK 0x1 /* rule16en */ 655 #define E5_XSTORM_IWARP_CONN_AG_CTX_RULE16EN_SHIFT 6 656 #define E5_XSTORM_IWARP_CONN_AG_CTX_RULE17EN_MASK 0x1 /* rule17en */ 657 #define E5_XSTORM_IWARP_CONN_AG_CTX_RULE17EN_SHIFT 7 658 u8 flags13; 659 #define E5_XSTORM_IWARP_CONN_AG_CTX_IRQ_NOT_EMPTY_RULE_EN_MASK 0x1 /* rule18en */ 660 #define E5_XSTORM_IWARP_CONN_AG_CTX_IRQ_NOT_EMPTY_RULE_EN_SHIFT 0 661 #define E5_XSTORM_IWARP_CONN_AG_CTX_HQ_NOT_FULL_RULE_EN_MASK 0x1 /* rule19en */ 662 #define E5_XSTORM_IWARP_CONN_AG_CTX_HQ_NOT_FULL_RULE_EN_SHIFT 1 663 #define E5_XSTORM_IWARP_CONN_AG_CTX_ORQ_RD_FENCE_RULE_EN_MASK 0x1 /* rule20en */ 664 #define E5_XSTORM_IWARP_CONN_AG_CTX_ORQ_RD_FENCE_RULE_EN_SHIFT 2 665 #define E5_XSTORM_IWARP_CONN_AG_CTX_RULE21EN_MASK 0x1 /* rule21en */ 666 #define E5_XSTORM_IWARP_CONN_AG_CTX_RULE21EN_SHIFT 3 667 #define E5_XSTORM_IWARP_CONN_AG_CTX_A0_RESERVED6_MASK 0x1 /* rule22en */ 668 #define E5_XSTORM_IWARP_CONN_AG_CTX_A0_RESERVED6_SHIFT 4 669 #define E5_XSTORM_IWARP_CONN_AG_CTX_ORQ_NOT_FULL_RULE_EN_MASK 0x1 /* rule23en */ 670 #define E5_XSTORM_IWARP_CONN_AG_CTX_ORQ_NOT_FULL_RULE_EN_SHIFT 5 671 #define E5_XSTORM_IWARP_CONN_AG_CTX_A0_RESERVED8_MASK 0x1 /* rule24en */ 672 #define E5_XSTORM_IWARP_CONN_AG_CTX_A0_RESERVED8_SHIFT 6 673 #define E5_XSTORM_IWARP_CONN_AG_CTX_A0_RESERVED9_MASK 0x1 /* rule25en */ 674 #define E5_XSTORM_IWARP_CONN_AG_CTX_A0_RESERVED9_SHIFT 7 675 u8 flags14; 676 #define E5_XSTORM_IWARP_CONN_AG_CTX_BIT16_MASK 0x1 /* bit16 */ 677 #define E5_XSTORM_IWARP_CONN_AG_CTX_BIT16_SHIFT 0 678 #define E5_XSTORM_IWARP_CONN_AG_CTX_BIT17_MASK 0x1 /* bit17 */ 679 #define E5_XSTORM_IWARP_CONN_AG_CTX_BIT17_SHIFT 1 680 #define E5_XSTORM_IWARP_CONN_AG_CTX_DPM_PORT_NUM_MASK 0x3 /* bit18 */ 681 #define E5_XSTORM_IWARP_CONN_AG_CTX_DPM_PORT_NUM_SHIFT 2 682 #define E5_XSTORM_IWARP_CONN_AG_CTX_BIT20_MASK 0x1 /* bit20 */ 683 #define E5_XSTORM_IWARP_CONN_AG_CTX_BIT20_SHIFT 4 684 #define E5_XSTORM_IWARP_CONN_AG_CTX_RDMA_EDPM_ENABLE_MASK 0x1 /* bit21 */ 685 #define E5_XSTORM_IWARP_CONN_AG_CTX_RDMA_EDPM_ENABLE_SHIFT 5 686 #define E5_XSTORM_IWARP_CONN_AG_CTX_CF23_MASK 0x3 /* cf23 */ 687 #define E5_XSTORM_IWARP_CONN_AG_CTX_CF23_SHIFT 6 688 u8 byte2 /* byte2 */; 689 __le16 physical_q0 /* physical_q0 */; 690 __le16 physical_q1 /* physical_q1 */; 691 __le16 sq_comp_cons /* physical_q2 */; 692 __le16 sq_tx_cons /* word3 */; 693 __le16 sq_prod /* word4 */; 694 __le16 word5 /* word5 */; 695 __le16 conn_dpi /* conn_dpi */; 696 u8 byte3 /* byte3 */; 697 u8 byte4 /* byte4 */; 698 u8 byte5 /* byte5 */; 699 u8 byte6 /* byte6 */; 700 __le32 reg0 /* reg0 */; 701 __le32 reg1 /* reg1 */; 702 __le32 reg2 /* reg2 */; 703 __le32 more_to_send_seq /* reg3 */; 704 __le32 reg4 /* reg4 */; 705 __le32 rewinded_snd_max /* cf_array0 */; 706 __le32 rd_msn /* cf_array1 */; 707 u8 flags15; 708 #define E5_XSTORM_IWARP_CONN_AG_CTX_E4_RESERVED1_MASK 0x1 /* bit22 */ 709 #define E5_XSTORM_IWARP_CONN_AG_CTX_E4_RESERVED1_SHIFT 0 710 #define E5_XSTORM_IWARP_CONN_AG_CTX_E4_RESERVED2_MASK 0x1 /* bit23 */ 711 #define E5_XSTORM_IWARP_CONN_AG_CTX_E4_RESERVED2_SHIFT 1 712 #define E5_XSTORM_IWARP_CONN_AG_CTX_E4_RESERVED3_MASK 0x1 /* bit24 */ 713 #define E5_XSTORM_IWARP_CONN_AG_CTX_E4_RESERVED3_SHIFT 2 714 #define E5_XSTORM_IWARP_CONN_AG_CTX_E4_RESERVED4_MASK 0x3 /* cf24 */ 715 #define E5_XSTORM_IWARP_CONN_AG_CTX_E4_RESERVED4_SHIFT 3 716 #define E5_XSTORM_IWARP_CONN_AG_CTX_E4_RESERVED5_MASK 0x1 /* cf24en */ 717 #define E5_XSTORM_IWARP_CONN_AG_CTX_E4_RESERVED5_SHIFT 5 718 #define E5_XSTORM_IWARP_CONN_AG_CTX_E4_RESERVED6_MASK 0x1 /* rule26en */ 719 #define E5_XSTORM_IWARP_CONN_AG_CTX_E4_RESERVED6_SHIFT 6 720 #define E5_XSTORM_IWARP_CONN_AG_CTX_E4_RESERVED7_MASK 0x1 /* rule27en */ 721 #define E5_XSTORM_IWARP_CONN_AG_CTX_E4_RESERVED7_SHIFT 7 722 u8 byte7 /* byte7 */; 723 __le16 irq_prod_via_msdm /* word7 */; 724 __le16 irq_cons /* word8 */; 725 __le16 hq_cons_th_or_mpa_data /* word9 */; 726 __le16 hq_cons /* word10 */; 727 __le16 tx_rdma_edpm_usg_cnt /* word11 */; 728 __le32 atom_msn /* reg7 */; 729 __le32 orq_cons /* reg8 */; 730 __le32 orq_cons_th /* reg9 */; 731 u8 max_ord /* byte8 */; 732 u8 wqe_data_pad_bytes /* byte9 */; 733 u8 former_hq_prod /* byte10 */; 734 u8 irq_prod_via_msem /* byte11 */; 735 u8 byte12 /* byte12 */; 736 u8 max_pkt_pdu_size_lo /* byte13 */; 737 u8 max_pkt_pdu_size_hi /* byte14 */; 738 u8 byte15 /* byte15 */; 739 __le32 reg10 /* reg10 */; 740 __le32 reg11 /* reg11 */; 741 __le32 reg12 /* reg12 */; 742 __le32 shared_queue_page_addr_lo /* reg13 */; 743 __le32 shared_queue_page_addr_hi /* reg14 */; 744 __le32 reg15 /* reg15 */; 745 __le32 reg16 /* reg16 */; 746 __le32 reg17 /* reg17 */; 747 }; 748 749 struct e5_tstorm_iwarp_conn_ag_ctx 750 { 751 u8 reserved0 /* cdu_validation */; 752 u8 state_and_core_id /* state_and_core_id */; 753 u8 flags0; 754 #define E5_TSTORM_IWARP_CONN_AG_CTX_EXIST_IN_QM0_MASK 0x1 /* exist_in_qm0 */ 755 #define E5_TSTORM_IWARP_CONN_AG_CTX_EXIST_IN_QM0_SHIFT 0 756 #define E5_TSTORM_IWARP_CONN_AG_CTX_BIT1_MASK 0x1 /* exist_in_qm1 */ 757 #define E5_TSTORM_IWARP_CONN_AG_CTX_BIT1_SHIFT 1 758 #define E5_TSTORM_IWARP_CONN_AG_CTX_BIT2_MASK 0x1 /* bit2 */ 759 #define E5_TSTORM_IWARP_CONN_AG_CTX_BIT2_SHIFT 2 760 #define E5_TSTORM_IWARP_CONN_AG_CTX_MSTORM_FLUSH_MASK 0x1 /* bit3 */ 761 #define E5_TSTORM_IWARP_CONN_AG_CTX_MSTORM_FLUSH_SHIFT 3 762 #define E5_TSTORM_IWARP_CONN_AG_CTX_BIT4_MASK 0x1 /* bit4 */ 763 #define E5_TSTORM_IWARP_CONN_AG_CTX_BIT4_SHIFT 4 764 #define E5_TSTORM_IWARP_CONN_AG_CTX_CACHED_ORQ_MASK 0x1 /* bit5 */ 765 #define E5_TSTORM_IWARP_CONN_AG_CTX_CACHED_ORQ_SHIFT 5 766 #define E5_TSTORM_IWARP_CONN_AG_CTX_CF0_MASK 0x3 /* timer0cf */ 767 #define E5_TSTORM_IWARP_CONN_AG_CTX_CF0_SHIFT 6 768 u8 flags1; 769 #define E5_TSTORM_IWARP_CONN_AG_CTX_RQ_POST_CF_MASK 0x3 /* timer1cf */ 770 #define E5_TSTORM_IWARP_CONN_AG_CTX_RQ_POST_CF_SHIFT 0 771 #define E5_TSTORM_IWARP_CONN_AG_CTX_FLUSH_OR_ERROR_DETECTED_MASK 0x3 /* timer2cf */ 772 #define E5_TSTORM_IWARP_CONN_AG_CTX_FLUSH_OR_ERROR_DETECTED_SHIFT 2 773 #define E5_TSTORM_IWARP_CONN_AG_CTX_TIMER_STOP_ALL_MASK 0x3 /* timer_stop_all */ 774 #define E5_TSTORM_IWARP_CONN_AG_CTX_TIMER_STOP_ALL_SHIFT 4 775 #define E5_TSTORM_IWARP_CONN_AG_CTX_CF4_MASK 0x3 /* cf4 */ 776 #define E5_TSTORM_IWARP_CONN_AG_CTX_CF4_SHIFT 6 777 u8 flags2; 778 #define E5_TSTORM_IWARP_CONN_AG_CTX_CF5_MASK 0x3 /* cf5 */ 779 #define E5_TSTORM_IWARP_CONN_AG_CTX_CF5_SHIFT 0 780 #define E5_TSTORM_IWARP_CONN_AG_CTX_CF6_MASK 0x3 /* cf6 */ 781 #define E5_TSTORM_IWARP_CONN_AG_CTX_CF6_SHIFT 2 782 #define E5_TSTORM_IWARP_CONN_AG_CTX_CF7_MASK 0x3 /* cf7 */ 783 #define E5_TSTORM_IWARP_CONN_AG_CTX_CF7_SHIFT 4 784 #define E5_TSTORM_IWARP_CONN_AG_CTX_CF8_MASK 0x3 /* cf8 */ 785 #define E5_TSTORM_IWARP_CONN_AG_CTX_CF8_SHIFT 6 786 u8 flags3; 787 #define E5_TSTORM_IWARP_CONN_AG_CTX_FLUSH_Q0_MASK 0x3 /* cf9 */ 788 #define E5_TSTORM_IWARP_CONN_AG_CTX_FLUSH_Q0_SHIFT 0 789 #define E5_TSTORM_IWARP_CONN_AG_CTX_CF10_MASK 0x3 /* cf10 */ 790 #define E5_TSTORM_IWARP_CONN_AG_CTX_CF10_SHIFT 2 791 #define E5_TSTORM_IWARP_CONN_AG_CTX_CF0EN_MASK 0x1 /* cf0en */ 792 #define E5_TSTORM_IWARP_CONN_AG_CTX_CF0EN_SHIFT 4 793 #define E5_TSTORM_IWARP_CONN_AG_CTX_RQ_POST_CF_EN_MASK 0x1 /* cf1en */ 794 #define E5_TSTORM_IWARP_CONN_AG_CTX_RQ_POST_CF_EN_SHIFT 5 795 #define E5_TSTORM_IWARP_CONN_AG_CTX_FLUSH_OR_ERROR_DETECTED_EN_MASK 0x1 /* cf2en */ 796 #define E5_TSTORM_IWARP_CONN_AG_CTX_FLUSH_OR_ERROR_DETECTED_EN_SHIFT 6 797 #define E5_TSTORM_IWARP_CONN_AG_CTX_TIMER_STOP_ALL_EN_MASK 0x1 /* cf3en */ 798 #define E5_TSTORM_IWARP_CONN_AG_CTX_TIMER_STOP_ALL_EN_SHIFT 7 799 u8 flags4; 800 #define E5_TSTORM_IWARP_CONN_AG_CTX_CF4EN_MASK 0x1 /* cf4en */ 801 #define E5_TSTORM_IWARP_CONN_AG_CTX_CF4EN_SHIFT 0 802 #define E5_TSTORM_IWARP_CONN_AG_CTX_CF5EN_MASK 0x1 /* cf5en */ 803 #define E5_TSTORM_IWARP_CONN_AG_CTX_CF5EN_SHIFT 1 804 #define E5_TSTORM_IWARP_CONN_AG_CTX_CF6EN_MASK 0x1 /* cf6en */ 805 #define E5_TSTORM_IWARP_CONN_AG_CTX_CF6EN_SHIFT 2 806 #define E5_TSTORM_IWARP_CONN_AG_CTX_CF7EN_MASK 0x1 /* cf7en */ 807 #define E5_TSTORM_IWARP_CONN_AG_CTX_CF7EN_SHIFT 3 808 #define E5_TSTORM_IWARP_CONN_AG_CTX_CF8EN_MASK 0x1 /* cf8en */ 809 #define E5_TSTORM_IWARP_CONN_AG_CTX_CF8EN_SHIFT 4 810 #define E5_TSTORM_IWARP_CONN_AG_CTX_FLUSH_Q0_EN_MASK 0x1 /* cf9en */ 811 #define E5_TSTORM_IWARP_CONN_AG_CTX_FLUSH_Q0_EN_SHIFT 5 812 #define E5_TSTORM_IWARP_CONN_AG_CTX_CF10EN_MASK 0x1 /* cf10en */ 813 #define E5_TSTORM_IWARP_CONN_AG_CTX_CF10EN_SHIFT 6 814 #define E5_TSTORM_IWARP_CONN_AG_CTX_RULE0EN_MASK 0x1 /* rule0en */ 815 #define E5_TSTORM_IWARP_CONN_AG_CTX_RULE0EN_SHIFT 7 816 u8 flags5; 817 #define E5_TSTORM_IWARP_CONN_AG_CTX_RULE1EN_MASK 0x1 /* rule1en */ 818 #define E5_TSTORM_IWARP_CONN_AG_CTX_RULE1EN_SHIFT 0 819 #define E5_TSTORM_IWARP_CONN_AG_CTX_RULE2EN_MASK 0x1 /* rule2en */ 820 #define E5_TSTORM_IWARP_CONN_AG_CTX_RULE2EN_SHIFT 1 821 #define E5_TSTORM_IWARP_CONN_AG_CTX_RULE3EN_MASK 0x1 /* rule3en */ 822 #define E5_TSTORM_IWARP_CONN_AG_CTX_RULE3EN_SHIFT 2 823 #define E5_TSTORM_IWARP_CONN_AG_CTX_RULE4EN_MASK 0x1 /* rule4en */ 824 #define E5_TSTORM_IWARP_CONN_AG_CTX_RULE4EN_SHIFT 3 825 #define E5_TSTORM_IWARP_CONN_AG_CTX_RULE5EN_MASK 0x1 /* rule5en */ 826 #define E5_TSTORM_IWARP_CONN_AG_CTX_RULE5EN_SHIFT 4 827 #define E5_TSTORM_IWARP_CONN_AG_CTX_SND_SQ_CONS_RULE_MASK 0x1 /* rule6en */ 828 #define E5_TSTORM_IWARP_CONN_AG_CTX_SND_SQ_CONS_RULE_SHIFT 5 829 #define E5_TSTORM_IWARP_CONN_AG_CTX_RULE7EN_MASK 0x1 /* rule7en */ 830 #define E5_TSTORM_IWARP_CONN_AG_CTX_RULE7EN_SHIFT 6 831 #define E5_TSTORM_IWARP_CONN_AG_CTX_RULE8EN_MASK 0x1 /* rule8en */ 832 #define E5_TSTORM_IWARP_CONN_AG_CTX_RULE8EN_SHIFT 7 833 u8 flags6; 834 #define E5_TSTORM_IWARP_CONN_AG_CTX_E4_RESERVED1_MASK 0x1 /* bit6 */ 835 #define E5_TSTORM_IWARP_CONN_AG_CTX_E4_RESERVED1_SHIFT 0 836 #define E5_TSTORM_IWARP_CONN_AG_CTX_E4_RESERVED2_MASK 0x1 /* bit7 */ 837 #define E5_TSTORM_IWARP_CONN_AG_CTX_E4_RESERVED2_SHIFT 1 838 #define E5_TSTORM_IWARP_CONN_AG_CTX_E4_RESERVED3_MASK 0x1 /* bit8 */ 839 #define E5_TSTORM_IWARP_CONN_AG_CTX_E4_RESERVED3_SHIFT 2 840 #define E5_TSTORM_IWARP_CONN_AG_CTX_E4_RESERVED4_MASK 0x3 /* cf11 */ 841 #define E5_TSTORM_IWARP_CONN_AG_CTX_E4_RESERVED4_SHIFT 3 842 #define E5_TSTORM_IWARP_CONN_AG_CTX_E4_RESERVED5_MASK 0x1 /* cf11en */ 843 #define E5_TSTORM_IWARP_CONN_AG_CTX_E4_RESERVED5_SHIFT 5 844 #define E5_TSTORM_IWARP_CONN_AG_CTX_E4_RESERVED6_MASK 0x1 /* rule9en */ 845 #define E5_TSTORM_IWARP_CONN_AG_CTX_E4_RESERVED6_SHIFT 6 846 #define E5_TSTORM_IWARP_CONN_AG_CTX_E4_RESERVED7_MASK 0x1 /* rule10en */ 847 #define E5_TSTORM_IWARP_CONN_AG_CTX_E4_RESERVED7_SHIFT 7 848 u8 orq_cache_idx /* byte2 */; 849 __le16 sq_tx_cons_th /* word0 */; 850 __le32 reg0 /* reg0 */; 851 __le32 reg1 /* reg1 */; 852 __le32 unaligned_nxt_seq /* reg2 */; 853 __le32 reg3 /* reg3 */; 854 __le32 reg4 /* reg4 */; 855 __le32 reg5 /* reg5 */; 856 __le32 reg6 /* reg6 */; 857 __le32 reg7 /* reg7 */; 858 __le32 reg8 /* reg8 */; 859 u8 hq_prod /* byte3 */; 860 u8 orq_prod /* byte4 */; 861 u8 irq_cons /* byte5 */; 862 u8 e4_reserved8 /* byte6 */; 863 __le16 sq_tx_cons /* word1 */; 864 __le16 conn_dpi /* conn_dpi */; 865 __le32 snd_seq /* reg9 */; 866 __le16 rq_prod /* word3 */; 867 __le16 e4_reserved9 /* word4 */; 868 }; 869 870 /* 871 * iwarp connection context 872 */ 873 struct e5_iwarp_conn_context 874 { 875 struct ystorm_iwarp_conn_st_ctx ystorm_st_context /* ystorm storm context */; 876 struct regpair ystorm_st_padding[2] /* padding */; 877 struct pstorm_iwarp_conn_st_ctx pstorm_st_context /* pstorm storm context */; 878 struct regpair pstorm_st_padding[2] /* padding */; 879 struct xstorm_iwarp_conn_st_ctx xstorm_st_context /* xstorm storm context */; 880 struct regpair xstorm_st_padding[2] /* padding */; 881 struct e5_xstorm_iwarp_conn_ag_ctx xstorm_ag_context /* xstorm aggregative context */; 882 struct e5_tstorm_iwarp_conn_ag_ctx tstorm_ag_context /* tstorm aggregative context */; 883 struct timers_context timer_context /* timer context */; 884 struct e5_ustorm_rdma_conn_ag_ctx ustorm_ag_context /* ustorm aggregative context */; 885 struct tstorm_iwarp_conn_st_ctx tstorm_st_context /* tstorm storm context */; 886 struct regpair tstorm_st_padding[2] /* padding */; 887 struct mstorm_iwarp_conn_st_ctx mstorm_st_context /* mstorm storm context */; 888 struct ustorm_iwarp_conn_st_ctx ustorm_st_context /* ustorm storm context */; 889 }; 890 891 /* 892 * iWARP create QP params passed by driver to FW in CreateQP Request Ramrod 893 */ 894 struct iwarp_create_qp_ramrod_data 895 { 896 u8 flags; 897 #define IWARP_CREATE_QP_RAMROD_DATA_FMR_AND_RESERVED_EN_MASK 0x1 898 #define IWARP_CREATE_QP_RAMROD_DATA_FMR_AND_RESERVED_EN_SHIFT 0 899 #define IWARP_CREATE_QP_RAMROD_DATA_SIGNALED_COMP_MASK 0x1 900 #define IWARP_CREATE_QP_RAMROD_DATA_SIGNALED_COMP_SHIFT 1 901 #define IWARP_CREATE_QP_RAMROD_DATA_RDMA_RD_EN_MASK 0x1 902 #define IWARP_CREATE_QP_RAMROD_DATA_RDMA_RD_EN_SHIFT 2 903 #define IWARP_CREATE_QP_RAMROD_DATA_RDMA_WR_EN_MASK 0x1 904 #define IWARP_CREATE_QP_RAMROD_DATA_RDMA_WR_EN_SHIFT 3 905 #define IWARP_CREATE_QP_RAMROD_DATA_ATOMIC_EN_MASK 0x1 906 #define IWARP_CREATE_QP_RAMROD_DATA_ATOMIC_EN_SHIFT 4 907 #define IWARP_CREATE_QP_RAMROD_DATA_SRQ_FLG_MASK 0x1 908 #define IWARP_CREATE_QP_RAMROD_DATA_SRQ_FLG_SHIFT 5 909 #define IWARP_CREATE_QP_RAMROD_DATA_LOW_LATENCY_QUEUE_EN_MASK 0x1 910 #define IWARP_CREATE_QP_RAMROD_DATA_LOW_LATENCY_QUEUE_EN_SHIFT 6 911 #define IWARP_CREATE_QP_RAMROD_DATA_RESERVED0_MASK 0x1 912 #define IWARP_CREATE_QP_RAMROD_DATA_RESERVED0_SHIFT 7 913 u8 reserved1 /* Basic/Enhanced (use enum mpa_negotiation_mode) */; 914 __le16 pd; 915 __le16 sq_num_pages; 916 __le16 rq_num_pages; 917 __le32 reserved3[2]; 918 struct regpair qp_handle_for_cqe /* For use in CQEs */; 919 struct rdma_srq_id srq_id; 920 __le32 cq_cid_for_sq /* Cid of the CQ that will be posted from SQ */; 921 __le32 cq_cid_for_rq /* Cid of the CQ that will be posted from RQ */; 922 __le16 dpi; 923 __le16 physical_q0 /* Physical QM queue to be tied to logical Q0 */; 924 __le16 physical_q1 /* Physical QM queue to be tied to logical Q1 */; 925 u8 reserved2[6]; 926 }; 927 928 /* 929 * iWARP completion queue types 930 */ 931 enum iwarp_eqe_async_opcode 932 { 933 IWARP_EVENT_TYPE_ASYNC_CONNECT_COMPLETE /* Async completion oafter TCP 3-way handshake */, 934 IWARP_EVENT_TYPE_ASYNC_ENHANCED_MPA_REPLY_ARRIVED /* Enhanced MPA reply arrived. Driver should either send RTR or reject */, 935 IWARP_EVENT_TYPE_ASYNC_MPA_HANDSHAKE_COMPLETE /* MPA Negotiations completed */, 936 IWARP_EVENT_TYPE_ASYNC_CID_CLEANED /* Async completion that indicates to the driver that the CID can be re-used. */, 937 IWARP_EVENT_TYPE_ASYNC_EXCEPTION_DETECTED /* Async EQE indicating detection of an error/exception on a QP at Firmware */, 938 IWARP_EVENT_TYPE_ASYNC_QP_IN_ERROR_STATE /* Async EQE indicating QP is in Error state. */, 939 IWARP_EVENT_TYPE_ASYNC_CQ_OVERFLOW /* Async EQE indicating CQ, whose handle is sent with this event, has overflowed */, 940 MAX_IWARP_EQE_ASYNC_OPCODE 941 }; 942 943 struct iwarp_eqe_data_mpa_async_completion 944 { 945 __le16 ulp_data_len /* On active side, length of ULP Data, from peers MPA Connect Response */; 946 u8 reserved[6]; 947 }; 948 949 struct iwarp_eqe_data_tcp_async_completion 950 { 951 __le16 ulp_data_len /* On passive side, length of ULP Data, from peers active MPA Connect Request */; 952 u8 mpa_handshake_mode /* Negotiation type Basic/Enhanced */; 953 u8 reserved[5]; 954 }; 955 956 /* 957 * iWARP completion queue types 958 */ 959 enum iwarp_eqe_sync_opcode 960 { 961 IWARP_EVENT_TYPE_TCP_OFFLOAD=11 /* iWARP event queue response after option 2 offload Ramrod */, 962 IWARP_EVENT_TYPE_MPA_OFFLOAD /* Synchronous completion for MPA offload Request */, 963 IWARP_EVENT_TYPE_MPA_OFFLOAD_SEND_RTR, 964 IWARP_EVENT_TYPE_CREATE_QP, 965 IWARP_EVENT_TYPE_QUERY_QP, 966 IWARP_EVENT_TYPE_MODIFY_QP, 967 IWARP_EVENT_TYPE_DESTROY_QP, 968 IWARP_EVENT_TYPE_ABORT_TCP_OFFLOAD, 969 MAX_IWARP_EQE_SYNC_OPCODE 970 }; 971 972 /* 973 * iWARP EQE completion status 974 */ 975 enum iwarp_fw_return_code 976 { 977 IWARP_CONN_ERROR_TCP_CONNECT_INVALID_PACKET=5 /* Got invalid packet SYN/SYN-ACK */, 978 IWARP_CONN_ERROR_TCP_CONNECTION_RST /* Got RST during offload TCP connection */, 979 IWARP_CONN_ERROR_TCP_CONNECT_TIMEOUT /* TCP connection setup timed out */, 980 IWARP_CONN_ERROR_MPA_ERROR_REJECT /* Got Reject in MPA reply. */, 981 IWARP_CONN_ERROR_MPA_NOT_SUPPORTED_VER /* Got MPA request with higher version that we support. */, 982 IWARP_CONN_ERROR_MPA_RST /* Got RST during MPA negotiation */, 983 IWARP_CONN_ERROR_MPA_FIN /* Got FIN during MPA negotiation */, 984 IWARP_CONN_ERROR_MPA_RTR_MISMATCH /* RTR mismatch detected when MPA reply arrived. */, 985 IWARP_CONN_ERROR_MPA_INSUF_IRD /* Insufficient IRD on the MPA reply that arrived. */, 986 IWARP_CONN_ERROR_MPA_INVALID_PACKET /* Incoming MPAp acket failed on FW verifications */, 987 IWARP_CONN_ERROR_MPA_LOCAL_ERROR /* Detected an internal error during MPA negotiation. */, 988 IWARP_CONN_ERROR_MPA_TIMEOUT /* MPA negotiation timed out. */, 989 IWARP_CONN_ERROR_MPA_TERMINATE /* Got Terminate during MPA negotiation. */, 990 IWARP_QP_IN_ERROR_GOOD_CLOSE /* LLP connection was closed gracefully - Used for async IWARP_EVENT_TYPE_ASYNC_QP_IN_ERROR_STATE */, 991 IWARP_QP_IN_ERROR_BAD_CLOSE /* LLP Connection was closed abortively - Used for async IWARP_EVENT_TYPE_ASYNC_QP_IN_ERROR_STATE */, 992 IWARP_EXCEPTION_DETECTED_LLP_CLOSED /* LLP has been disociated from the QP, although the TCP connection may not be closed yet - Used for async IWARP_EVENT_TYPE_ASYNC_EXCEPTION_DETECTED */, 993 IWARP_EXCEPTION_DETECTED_LLP_RESET /* LLP has Reset (either because of an RST, or a bad-close condition) - Used for async IWARP_EVENT_TYPE_ASYNC_EXCEPTION_DETECTED */, 994 IWARP_EXCEPTION_DETECTED_IRQ_FULL /* Peer sent more outstanding Read Requests than IRD - Used for async IWARP_EVENT_TYPE_ASYNC_EXCEPTION_DETECTED */, 995 IWARP_EXCEPTION_DETECTED_RQ_EMPTY /* SEND request received with RQ empty - Used for async IWARP_EVENT_TYPE_ASYNC_EXCEPTION_DETECTED */, 996 IWARP_EXCEPTION_DETECTED_SRQ_EMPTY /* SEND request received with SRQ empty - Used for async IWARP_EVENT_TYPE_ASYNC_EXCEPTION_DETECTED */, 997 IWARP_EXCEPTION_DETECTED_SRQ_LIMIT /* Number of SRQ wqes is below the limit */, 998 IWARP_EXCEPTION_DETECTED_LLP_TIMEOUT /* TCP Retransmissions timed out - Used for async IWARP_EVENT_TYPE_ASYNC_EXCEPTION_DETECTED */, 999 IWARP_EXCEPTION_DETECTED_REMOTE_PROTECTION_ERROR /* Peers Remote Access caused error */, 1000 IWARP_EXCEPTION_DETECTED_CQ_OVERFLOW /* CQ overflow detected */, 1001 IWARP_EXCEPTION_DETECTED_LOCAL_CATASTROPHIC /* Local catastrophic error detected - Used for async IWARP_EVENT_TYPE_ASYNC_EXCEPTION_DETECTED */, 1002 IWARP_EXCEPTION_DETECTED_LOCAL_ACCESS_ERROR /* Local Access error detected while responding - Used for async IWARP_EVENT_TYPE_ASYNC_EXCEPTION_DETECTED */, 1003 IWARP_EXCEPTION_DETECTED_REMOTE_OPERATION_ERROR /* An operation/protocol error caused by Remote Consumer */, 1004 IWARP_EXCEPTION_DETECTED_TERMINATE_RECEIVED /* Peer sent a TERMINATE message */, 1005 MAX_IWARP_FW_RETURN_CODE 1006 }; 1007 1008 /* 1009 * unaligned opaque data received from LL2 1010 */ 1011 struct iwarp_init_func_params 1012 { 1013 u8 ll2_ooo_q_index /* LL2 OOO queue id. The unaligned queue id will be + 1 */; 1014 u8 reserved1[7]; 1015 }; 1016 1017 /* 1018 * iwarp func init ramrod data 1019 */ 1020 struct iwarp_init_func_ramrod_data 1021 { 1022 struct rdma_init_func_ramrod_data rdma; 1023 struct tcp_init_params tcp; 1024 struct iwarp_init_func_params iwarp; 1025 }; 1026 1027 /* 1028 * iWARP QP - possible states to transition to 1029 */ 1030 enum iwarp_modify_qp_new_state_type 1031 { 1032 IWARP_MODIFY_QP_STATE_CLOSING=1 /* graceful close */, 1033 IWARP_MODIFY_QP_STATE_ERROR=2 /* abortive close, if LLP connection still exists */, 1034 MAX_IWARP_MODIFY_QP_NEW_STATE_TYPE 1035 }; 1036 1037 /* 1038 * iwarp modify qp responder ramrod data 1039 */ 1040 struct iwarp_modify_qp_ramrod_data 1041 { 1042 __le16 transition_to_state /* (use enum iwarp_modify_qp_new_state_type) */; 1043 __le16 flags; 1044 #define IWARP_MODIFY_QP_RAMROD_DATA_RDMA_RD_EN_MASK 0x1 1045 #define IWARP_MODIFY_QP_RAMROD_DATA_RDMA_RD_EN_SHIFT 0 1046 #define IWARP_MODIFY_QP_RAMROD_DATA_RDMA_WR_EN_MASK 0x1 1047 #define IWARP_MODIFY_QP_RAMROD_DATA_RDMA_WR_EN_SHIFT 1 1048 #define IWARP_MODIFY_QP_RAMROD_DATA_ATOMIC_EN_MASK 0x1 1049 #define IWARP_MODIFY_QP_RAMROD_DATA_ATOMIC_EN_SHIFT 2 1050 #define IWARP_MODIFY_QP_RAMROD_DATA_STATE_TRANS_EN_MASK 0x1 /* change QP state as per transition_to_state field */ 1051 #define IWARP_MODIFY_QP_RAMROD_DATA_STATE_TRANS_EN_SHIFT 3 1052 #define IWARP_MODIFY_QP_RAMROD_DATA_RDMA_OPS_EN_FLG_MASK 0x1 /* If set, the rdma_rd/wr/atomic_en should be updated */ 1053 #define IWARP_MODIFY_QP_RAMROD_DATA_RDMA_OPS_EN_FLG_SHIFT 4 1054 #define IWARP_MODIFY_QP_RAMROD_DATA_PHYSICAL_QUEUE_FLG_MASK 0x1 /* If set, the physicalQ1Val/physicalQ0Val/regularLatencyPhyQueue should be updated */ 1055 #define IWARP_MODIFY_QP_RAMROD_DATA_PHYSICAL_QUEUE_FLG_SHIFT 5 1056 #define IWARP_MODIFY_QP_RAMROD_DATA_RESERVED_MASK 0x3FF 1057 #define IWARP_MODIFY_QP_RAMROD_DATA_RESERVED_SHIFT 6 1058 __le16 physical_q0 /* Updated physicalQ0Val */; 1059 __le16 physical_q1 /* Updated physicalQ1Val */; 1060 __le32 reserved1[10]; 1061 }; 1062 1063 /* 1064 * MPA params for Enhanced mode 1065 */ 1066 struct mpa_rq_params 1067 { 1068 __le32 ird; 1069 __le32 ord; 1070 }; 1071 1072 /* 1073 * MPA host Address-Len for private data 1074 */ 1075 struct mpa_ulp_buffer 1076 { 1077 struct regpair addr; 1078 __le16 len; 1079 __le16 reserved[3]; 1080 }; 1081 1082 /* 1083 * iWARP MPA offload params common to Basic and Enhanced modes 1084 */ 1085 struct mpa_outgoing_params 1086 { 1087 u8 crc_needed; 1088 u8 reject /* Valid only for passive side. */; 1089 u8 reserved[6]; 1090 struct mpa_rq_params out_rq; 1091 struct mpa_ulp_buffer outgoing_ulp_buffer /* ULP buffer populated by the host */; 1092 }; 1093 1094 /* 1095 * iWARP MPA offload params passed by driver to FW in MPA Offload Request Ramrod 1096 */ 1097 struct iwarp_mpa_offload_ramrod_data 1098 { 1099 struct mpa_outgoing_params common; 1100 __le32 tcp_cid; 1101 u8 mode /* Basic/Enhanced (use enum mpa_negotiation_mode) */; 1102 u8 tcp_connect_side /* Passive/Active. use enum tcp_connect_mode */; 1103 u8 rtr_pref; 1104 #define IWARP_MPA_OFFLOAD_RAMROD_DATA_RTR_SUPPORTED_MASK 0x7 /* (use enum mpa_rtr_type) */ 1105 #define IWARP_MPA_OFFLOAD_RAMROD_DATA_RTR_SUPPORTED_SHIFT 0 1106 #define IWARP_MPA_OFFLOAD_RAMROD_DATA_RESERVED1_MASK 0x1F 1107 #define IWARP_MPA_OFFLOAD_RAMROD_DATA_RESERVED1_SHIFT 3 1108 u8 reserved2; 1109 struct mpa_ulp_buffer incoming_ulp_buffer /* host buffer for placing the incoming MPA reply */; 1110 struct regpair async_eqe_output_buf /* host buffer for async tcp/mpa completion information - must have space for at least 8 bytes */; 1111 struct regpair handle_for_async /* a host cookie that will be echoed back with in every qp-specific async EQE */; 1112 struct regpair shared_queue_addr /* Address of shared queue address that consist of SQ/RQ and FW internal queues (IRQ/ORQ/HQ) */; 1113 __le16 rcv_wnd /* TCP window after scaling */; 1114 u8 stats_counter_id /* Statistics counter ID to use */; 1115 u8 reserved3[13]; 1116 }; 1117 1118 /* 1119 * iWARP TCP connection offload params passed by driver to FW 1120 */ 1121 struct iwarp_offload_params 1122 { 1123 struct mpa_ulp_buffer incoming_ulp_buffer /* host buffer for placing the incoming MPA request */; 1124 struct regpair async_eqe_output_buf /* host buffer for async tcp/mpa completion information - must have space for at least 8 bytes */; 1125 struct regpair handle_for_async /* host handle that will be echoed back with in every qp-specific async EQE */; 1126 __le16 physical_q0 /* Physical QM queue to be tied to logical Q0 */; 1127 __le16 physical_q1 /* Physical QM queue to be tied to logical Q1 */; 1128 u8 stats_counter_id /* Statistics counter ID to use */; 1129 u8 mpa_mode /* Basic/Enahnced. Used for a verification for incoming MPA request (use enum mpa_negotiation_mode) */; 1130 u8 reserved[10]; 1131 }; 1132 1133 /* 1134 * iWARP query QP output params 1135 */ 1136 struct iwarp_query_qp_output_params 1137 { 1138 __le32 flags; 1139 #define IWARP_QUERY_QP_OUTPUT_PARAMS_ERROR_FLG_MASK 0x1 1140 #define IWARP_QUERY_QP_OUTPUT_PARAMS_ERROR_FLG_SHIFT 0 1141 #define IWARP_QUERY_QP_OUTPUT_PARAMS_RESERVED0_MASK 0x7FFFFFFF 1142 #define IWARP_QUERY_QP_OUTPUT_PARAMS_RESERVED0_SHIFT 1 1143 u8 reserved1[4] /* 64 bit alignment */; 1144 }; 1145 1146 /* 1147 * iWARP query QP ramrod data 1148 */ 1149 struct iwarp_query_qp_ramrod_data 1150 { 1151 struct regpair output_params_addr; 1152 }; 1153 1154 /* 1155 * iWARP Ramrod Command IDs 1156 */ 1157 enum iwarp_ramrod_cmd_id 1158 { 1159 IWARP_RAMROD_CMD_ID_TCP_OFFLOAD=11 /* iWARP TCP connection offload ramrod */, 1160 IWARP_RAMROD_CMD_ID_MPA_OFFLOAD /* iWARP MPA offload ramrod */, 1161 IWARP_RAMROD_CMD_ID_MPA_OFFLOAD_SEND_RTR, 1162 IWARP_RAMROD_CMD_ID_CREATE_QP, 1163 IWARP_RAMROD_CMD_ID_QUERY_QP, 1164 IWARP_RAMROD_CMD_ID_MODIFY_QP, 1165 IWARP_RAMROD_CMD_ID_DESTROY_QP, 1166 IWARP_RAMROD_CMD_ID_ABORT_TCP_OFFLOAD, 1167 MAX_IWARP_RAMROD_CMD_ID 1168 }; 1169 1170 /* 1171 * Per PF iWARP retransmit path statistics 1172 */ 1173 struct iwarp_rxmit_stats_drv 1174 { 1175 struct regpair tx_go_to_slow_start_event_cnt /* Number of times slow start event occurred */; 1176 struct regpair tx_fast_retransmit_event_cnt /* Number of times fast retransmit event occurred */; 1177 }; 1178 1179 /* 1180 * iWARP and TCP connection offload params passed by driver to FW in iWARP offload ramrod 1181 */ 1182 struct iwarp_tcp_offload_ramrod_data 1183 { 1184 struct iwarp_offload_params iwarp /* iWARP connection offload params */; 1185 struct tcp_offload_params_opt2 tcp /* tcp offload params */; 1186 }; 1187 1188 /* 1189 * iWARP MPA negotiation types 1190 */ 1191 enum mpa_negotiation_mode 1192 { 1193 MPA_NEGOTIATION_TYPE_BASIC=1, 1194 MPA_NEGOTIATION_TYPE_ENHANCED=2, 1195 MAX_MPA_NEGOTIATION_MODE 1196 }; 1197 1198 /* 1199 * iWARP MPA Enhanced mode RTR types 1200 */ 1201 enum mpa_rtr_type 1202 { 1203 MPA_RTR_TYPE_NONE=0 /* No RTR type */, 1204 MPA_RTR_TYPE_ZERO_SEND=1, 1205 MPA_RTR_TYPE_ZERO_WRITE=2, 1206 MPA_RTR_TYPE_ZERO_SEND_AND_WRITE=3, 1207 MPA_RTR_TYPE_ZERO_READ=4, 1208 MPA_RTR_TYPE_ZERO_SEND_AND_READ=5, 1209 MPA_RTR_TYPE_ZERO_WRITE_AND_READ=6, 1210 MPA_RTR_TYPE_ZERO_SEND_AND_WRITE_AND_READ=7, 1211 MAX_MPA_RTR_TYPE 1212 }; 1213 1214 /* 1215 * unaligned opaque data received from LL2 1216 */ 1217 struct unaligned_opaque_data 1218 { 1219 __le16 first_mpa_offset /* offset of first MPA byte that should be processed */; 1220 u8 tcp_payload_offset /* offset of first the byte that comes after the last byte of the TCP Hdr */; 1221 u8 flags; 1222 #define UNALIGNED_OPAQUE_DATA_PKT_REACHED_WIN_RIGHT_EDGE_MASK 0x1 /* packet reached window right edge */ 1223 #define UNALIGNED_OPAQUE_DATA_PKT_REACHED_WIN_RIGHT_EDGE_SHIFT 0 1224 #define UNALIGNED_OPAQUE_DATA_CONNECTION_CLOSED_MASK 0x1 /* Indication that the connection is closed. Clean all connecitons database. */ 1225 #define UNALIGNED_OPAQUE_DATA_CONNECTION_CLOSED_SHIFT 1 1226 #define UNALIGNED_OPAQUE_DATA_RESERVED_MASK 0x3F 1227 #define UNALIGNED_OPAQUE_DATA_RESERVED_SHIFT 2 1228 __le32 cid; 1229 }; 1230 1231 struct e4_mstorm_iwarp_conn_ag_ctx 1232 { 1233 u8 reserved /* cdu_validation */; 1234 u8 state /* state */; 1235 u8 flags0; 1236 #define E4_MSTORM_IWARP_CONN_AG_CTX_EXIST_IN_QM0_MASK 0x1 /* exist_in_qm0 */ 1237 #define E4_MSTORM_IWARP_CONN_AG_CTX_EXIST_IN_QM0_SHIFT 0 1238 #define E4_MSTORM_IWARP_CONN_AG_CTX_BIT1_MASK 0x1 /* exist_in_qm1 */ 1239 #define E4_MSTORM_IWARP_CONN_AG_CTX_BIT1_SHIFT 1 1240 #define E4_MSTORM_IWARP_CONN_AG_CTX_INV_STAG_DONE_CF_MASK 0x3 /* cf0 */ 1241 #define E4_MSTORM_IWARP_CONN_AG_CTX_INV_STAG_DONE_CF_SHIFT 2 1242 #define E4_MSTORM_IWARP_CONN_AG_CTX_CF1_MASK 0x3 /* cf1 */ 1243 #define E4_MSTORM_IWARP_CONN_AG_CTX_CF1_SHIFT 4 1244 #define E4_MSTORM_IWARP_CONN_AG_CTX_CF2_MASK 0x3 /* cf2 */ 1245 #define E4_MSTORM_IWARP_CONN_AG_CTX_CF2_SHIFT 6 1246 u8 flags1; 1247 #define E4_MSTORM_IWARP_CONN_AG_CTX_INV_STAG_DONE_CF_EN_MASK 0x1 /* cf0en */ 1248 #define E4_MSTORM_IWARP_CONN_AG_CTX_INV_STAG_DONE_CF_EN_SHIFT 0 1249 #define E4_MSTORM_IWARP_CONN_AG_CTX_CF1EN_MASK 0x1 /* cf1en */ 1250 #define E4_MSTORM_IWARP_CONN_AG_CTX_CF1EN_SHIFT 1 1251 #define E4_MSTORM_IWARP_CONN_AG_CTX_CF2EN_MASK 0x1 /* cf2en */ 1252 #define E4_MSTORM_IWARP_CONN_AG_CTX_CF2EN_SHIFT 2 1253 #define E4_MSTORM_IWARP_CONN_AG_CTX_RULE0EN_MASK 0x1 /* rule0en */ 1254 #define E4_MSTORM_IWARP_CONN_AG_CTX_RULE0EN_SHIFT 3 1255 #define E4_MSTORM_IWARP_CONN_AG_CTX_RULE1EN_MASK 0x1 /* rule1en */ 1256 #define E4_MSTORM_IWARP_CONN_AG_CTX_RULE1EN_SHIFT 4 1257 #define E4_MSTORM_IWARP_CONN_AG_CTX_RULE2EN_MASK 0x1 /* rule2en */ 1258 #define E4_MSTORM_IWARP_CONN_AG_CTX_RULE2EN_SHIFT 5 1259 #define E4_MSTORM_IWARP_CONN_AG_CTX_RCQ_CONS_EN_MASK 0x1 /* rule3en */ 1260 #define E4_MSTORM_IWARP_CONN_AG_CTX_RCQ_CONS_EN_SHIFT 6 1261 #define E4_MSTORM_IWARP_CONN_AG_CTX_RULE4EN_MASK 0x1 /* rule4en */ 1262 #define E4_MSTORM_IWARP_CONN_AG_CTX_RULE4EN_SHIFT 7 1263 __le16 rcq_cons /* word0 */; 1264 __le16 rcq_cons_th /* word1 */; 1265 __le32 reg0 /* reg0 */; 1266 __le32 reg1 /* reg1 */; 1267 }; 1268 1269 struct e4_ustorm_iwarp_conn_ag_ctx 1270 { 1271 u8 reserved /* cdu_validation */; 1272 u8 byte1 /* state */; 1273 u8 flags0; 1274 #define E4_USTORM_IWARP_CONN_AG_CTX_EXIST_IN_QM0_MASK 0x1 /* exist_in_qm0 */ 1275 #define E4_USTORM_IWARP_CONN_AG_CTX_EXIST_IN_QM0_SHIFT 0 1276 #define E4_USTORM_IWARP_CONN_AG_CTX_BIT1_MASK 0x1 /* exist_in_qm1 */ 1277 #define E4_USTORM_IWARP_CONN_AG_CTX_BIT1_SHIFT 1 1278 #define E4_USTORM_IWARP_CONN_AG_CTX_CF0_MASK 0x3 /* timer0cf */ 1279 #define E4_USTORM_IWARP_CONN_AG_CTX_CF0_SHIFT 2 1280 #define E4_USTORM_IWARP_CONN_AG_CTX_CF1_MASK 0x3 /* timer1cf */ 1281 #define E4_USTORM_IWARP_CONN_AG_CTX_CF1_SHIFT 4 1282 #define E4_USTORM_IWARP_CONN_AG_CTX_CF2_MASK 0x3 /* timer2cf */ 1283 #define E4_USTORM_IWARP_CONN_AG_CTX_CF2_SHIFT 6 1284 u8 flags1; 1285 #define E4_USTORM_IWARP_CONN_AG_CTX_CF3_MASK 0x3 /* timer_stop_all */ 1286 #define E4_USTORM_IWARP_CONN_AG_CTX_CF3_SHIFT 0 1287 #define E4_USTORM_IWARP_CONN_AG_CTX_CQ_ARM_SE_CF_MASK 0x3 /* cf4 */ 1288 #define E4_USTORM_IWARP_CONN_AG_CTX_CQ_ARM_SE_CF_SHIFT 2 1289 #define E4_USTORM_IWARP_CONN_AG_CTX_CQ_ARM_CF_MASK 0x3 /* cf5 */ 1290 #define E4_USTORM_IWARP_CONN_AG_CTX_CQ_ARM_CF_SHIFT 4 1291 #define E4_USTORM_IWARP_CONN_AG_CTX_CF6_MASK 0x3 /* cf6 */ 1292 #define E4_USTORM_IWARP_CONN_AG_CTX_CF6_SHIFT 6 1293 u8 flags2; 1294 #define E4_USTORM_IWARP_CONN_AG_CTX_CF0EN_MASK 0x1 /* cf0en */ 1295 #define E4_USTORM_IWARP_CONN_AG_CTX_CF0EN_SHIFT 0 1296 #define E4_USTORM_IWARP_CONN_AG_CTX_CF1EN_MASK 0x1 /* cf1en */ 1297 #define E4_USTORM_IWARP_CONN_AG_CTX_CF1EN_SHIFT 1 1298 #define E4_USTORM_IWARP_CONN_AG_CTX_CF2EN_MASK 0x1 /* cf2en */ 1299 #define E4_USTORM_IWARP_CONN_AG_CTX_CF2EN_SHIFT 2 1300 #define E4_USTORM_IWARP_CONN_AG_CTX_CF3EN_MASK 0x1 /* cf3en */ 1301 #define E4_USTORM_IWARP_CONN_AG_CTX_CF3EN_SHIFT 3 1302 #define E4_USTORM_IWARP_CONN_AG_CTX_CQ_ARM_SE_CF_EN_MASK 0x1 /* cf4en */ 1303 #define E4_USTORM_IWARP_CONN_AG_CTX_CQ_ARM_SE_CF_EN_SHIFT 4 1304 #define E4_USTORM_IWARP_CONN_AG_CTX_CQ_ARM_CF_EN_MASK 0x1 /* cf5en */ 1305 #define E4_USTORM_IWARP_CONN_AG_CTX_CQ_ARM_CF_EN_SHIFT 5 1306 #define E4_USTORM_IWARP_CONN_AG_CTX_CF6EN_MASK 0x1 /* cf6en */ 1307 #define E4_USTORM_IWARP_CONN_AG_CTX_CF6EN_SHIFT 6 1308 #define E4_USTORM_IWARP_CONN_AG_CTX_CQ_SE_EN_MASK 0x1 /* rule0en */ 1309 #define E4_USTORM_IWARP_CONN_AG_CTX_CQ_SE_EN_SHIFT 7 1310 u8 flags3; 1311 #define E4_USTORM_IWARP_CONN_AG_CTX_CQ_EN_MASK 0x1 /* rule1en */ 1312 #define E4_USTORM_IWARP_CONN_AG_CTX_CQ_EN_SHIFT 0 1313 #define E4_USTORM_IWARP_CONN_AG_CTX_RULE2EN_MASK 0x1 /* rule2en */ 1314 #define E4_USTORM_IWARP_CONN_AG_CTX_RULE2EN_SHIFT 1 1315 #define E4_USTORM_IWARP_CONN_AG_CTX_RULE3EN_MASK 0x1 /* rule3en */ 1316 #define E4_USTORM_IWARP_CONN_AG_CTX_RULE3EN_SHIFT 2 1317 #define E4_USTORM_IWARP_CONN_AG_CTX_RULE4EN_MASK 0x1 /* rule4en */ 1318 #define E4_USTORM_IWARP_CONN_AG_CTX_RULE4EN_SHIFT 3 1319 #define E4_USTORM_IWARP_CONN_AG_CTX_RULE5EN_MASK 0x1 /* rule5en */ 1320 #define E4_USTORM_IWARP_CONN_AG_CTX_RULE5EN_SHIFT 4 1321 #define E4_USTORM_IWARP_CONN_AG_CTX_RULE6EN_MASK 0x1 /* rule6en */ 1322 #define E4_USTORM_IWARP_CONN_AG_CTX_RULE6EN_SHIFT 5 1323 #define E4_USTORM_IWARP_CONN_AG_CTX_RULE7EN_MASK 0x1 /* rule7en */ 1324 #define E4_USTORM_IWARP_CONN_AG_CTX_RULE7EN_SHIFT 6 1325 #define E4_USTORM_IWARP_CONN_AG_CTX_RULE8EN_MASK 0x1 /* rule8en */ 1326 #define E4_USTORM_IWARP_CONN_AG_CTX_RULE8EN_SHIFT 7 1327 u8 byte2 /* byte2 */; 1328 u8 byte3 /* byte3 */; 1329 __le16 word0 /* conn_dpi */; 1330 __le16 word1 /* word1 */; 1331 __le32 cq_cons /* reg0 */; 1332 __le32 cq_se_prod /* reg1 */; 1333 __le32 cq_prod /* reg2 */; 1334 __le32 reg3 /* reg3 */; 1335 __le16 word2 /* word2 */; 1336 __le16 word3 /* word3 */; 1337 }; 1338 1339 struct e4_ystorm_iwarp_conn_ag_ctx 1340 { 1341 u8 byte0 /* cdu_validation */; 1342 u8 byte1 /* state */; 1343 u8 flags0; 1344 #define E4_YSTORM_IWARP_CONN_AG_CTX_BIT0_MASK 0x1 /* exist_in_qm0 */ 1345 #define E4_YSTORM_IWARP_CONN_AG_CTX_BIT0_SHIFT 0 1346 #define E4_YSTORM_IWARP_CONN_AG_CTX_BIT1_MASK 0x1 /* exist_in_qm1 */ 1347 #define E4_YSTORM_IWARP_CONN_AG_CTX_BIT1_SHIFT 1 1348 #define E4_YSTORM_IWARP_CONN_AG_CTX_CF0_MASK 0x3 /* cf0 */ 1349 #define E4_YSTORM_IWARP_CONN_AG_CTX_CF0_SHIFT 2 1350 #define E4_YSTORM_IWARP_CONN_AG_CTX_CF1_MASK 0x3 /* cf1 */ 1351 #define E4_YSTORM_IWARP_CONN_AG_CTX_CF1_SHIFT 4 1352 #define E4_YSTORM_IWARP_CONN_AG_CTX_CF2_MASK 0x3 /* cf2 */ 1353 #define E4_YSTORM_IWARP_CONN_AG_CTX_CF2_SHIFT 6 1354 u8 flags1; 1355 #define E4_YSTORM_IWARP_CONN_AG_CTX_CF0EN_MASK 0x1 /* cf0en */ 1356 #define E4_YSTORM_IWARP_CONN_AG_CTX_CF0EN_SHIFT 0 1357 #define E4_YSTORM_IWARP_CONN_AG_CTX_CF1EN_MASK 0x1 /* cf1en */ 1358 #define E4_YSTORM_IWARP_CONN_AG_CTX_CF1EN_SHIFT 1 1359 #define E4_YSTORM_IWARP_CONN_AG_CTX_CF2EN_MASK 0x1 /* cf2en */ 1360 #define E4_YSTORM_IWARP_CONN_AG_CTX_CF2EN_SHIFT 2 1361 #define E4_YSTORM_IWARP_CONN_AG_CTX_RULE0EN_MASK 0x1 /* rule0en */ 1362 #define E4_YSTORM_IWARP_CONN_AG_CTX_RULE0EN_SHIFT 3 1363 #define E4_YSTORM_IWARP_CONN_AG_CTX_RULE1EN_MASK 0x1 /* rule1en */ 1364 #define E4_YSTORM_IWARP_CONN_AG_CTX_RULE1EN_SHIFT 4 1365 #define E4_YSTORM_IWARP_CONN_AG_CTX_RULE2EN_MASK 0x1 /* rule2en */ 1366 #define E4_YSTORM_IWARP_CONN_AG_CTX_RULE2EN_SHIFT 5 1367 #define E4_YSTORM_IWARP_CONN_AG_CTX_RULE3EN_MASK 0x1 /* rule3en */ 1368 #define E4_YSTORM_IWARP_CONN_AG_CTX_RULE3EN_SHIFT 6 1369 #define E4_YSTORM_IWARP_CONN_AG_CTX_RULE4EN_MASK 0x1 /* rule4en */ 1370 #define E4_YSTORM_IWARP_CONN_AG_CTX_RULE4EN_SHIFT 7 1371 u8 byte2 /* byte2 */; 1372 u8 byte3 /* byte3 */; 1373 __le16 word0 /* word0 */; 1374 __le32 reg0 /* reg0 */; 1375 __le32 reg1 /* reg1 */; 1376 __le16 word1 /* word1 */; 1377 __le16 word2 /* word2 */; 1378 __le16 word3 /* word3 */; 1379 __le16 word4 /* word4 */; 1380 __le32 reg2 /* reg2 */; 1381 __le32 reg3 /* reg3 */; 1382 }; 1383 1384 struct e5_mstorm_iwarp_conn_ag_ctx 1385 { 1386 u8 reserved /* cdu_validation */; 1387 u8 state_and_core_id /* state_and_core_id */; 1388 u8 flags0; 1389 #define E5_MSTORM_IWARP_CONN_AG_CTX_EXIST_IN_QM0_MASK 0x1 /* exist_in_qm0 */ 1390 #define E5_MSTORM_IWARP_CONN_AG_CTX_EXIST_IN_QM0_SHIFT 0 1391 #define E5_MSTORM_IWARP_CONN_AG_CTX_BIT1_MASK 0x1 /* exist_in_qm1 */ 1392 #define E5_MSTORM_IWARP_CONN_AG_CTX_BIT1_SHIFT 1 1393 #define E5_MSTORM_IWARP_CONN_AG_CTX_INV_STAG_DONE_CF_MASK 0x3 /* cf0 */ 1394 #define E5_MSTORM_IWARP_CONN_AG_CTX_INV_STAG_DONE_CF_SHIFT 2 1395 #define E5_MSTORM_IWARP_CONN_AG_CTX_CF1_MASK 0x3 /* cf1 */ 1396 #define E5_MSTORM_IWARP_CONN_AG_CTX_CF1_SHIFT 4 1397 #define E5_MSTORM_IWARP_CONN_AG_CTX_CF2_MASK 0x3 /* cf2 */ 1398 #define E5_MSTORM_IWARP_CONN_AG_CTX_CF2_SHIFT 6 1399 u8 flags1; 1400 #define E5_MSTORM_IWARP_CONN_AG_CTX_INV_STAG_DONE_CF_EN_MASK 0x1 /* cf0en */ 1401 #define E5_MSTORM_IWARP_CONN_AG_CTX_INV_STAG_DONE_CF_EN_SHIFT 0 1402 #define E5_MSTORM_IWARP_CONN_AG_CTX_CF1EN_MASK 0x1 /* cf1en */ 1403 #define E5_MSTORM_IWARP_CONN_AG_CTX_CF1EN_SHIFT 1 1404 #define E5_MSTORM_IWARP_CONN_AG_CTX_CF2EN_MASK 0x1 /* cf2en */ 1405 #define E5_MSTORM_IWARP_CONN_AG_CTX_CF2EN_SHIFT 2 1406 #define E5_MSTORM_IWARP_CONN_AG_CTX_RULE0EN_MASK 0x1 /* rule0en */ 1407 #define E5_MSTORM_IWARP_CONN_AG_CTX_RULE0EN_SHIFT 3 1408 #define E5_MSTORM_IWARP_CONN_AG_CTX_RULE1EN_MASK 0x1 /* rule1en */ 1409 #define E5_MSTORM_IWARP_CONN_AG_CTX_RULE1EN_SHIFT 4 1410 #define E5_MSTORM_IWARP_CONN_AG_CTX_RULE2EN_MASK 0x1 /* rule2en */ 1411 #define E5_MSTORM_IWARP_CONN_AG_CTX_RULE2EN_SHIFT 5 1412 #define E5_MSTORM_IWARP_CONN_AG_CTX_RCQ_CONS_EN_MASK 0x1 /* rule3en */ 1413 #define E5_MSTORM_IWARP_CONN_AG_CTX_RCQ_CONS_EN_SHIFT 6 1414 #define E5_MSTORM_IWARP_CONN_AG_CTX_RULE4EN_MASK 0x1 /* rule4en */ 1415 #define E5_MSTORM_IWARP_CONN_AG_CTX_RULE4EN_SHIFT 7 1416 __le16 rcq_cons /* word0 */; 1417 __le16 rcq_cons_th /* word1 */; 1418 __le32 reg0 /* reg0 */; 1419 __le32 reg1 /* reg1 */; 1420 }; 1421 1422 struct e5_ustorm_iwarp_conn_ag_ctx 1423 { 1424 u8 reserved /* cdu_validation */; 1425 u8 byte1 /* state_and_core_id */; 1426 u8 flags0; 1427 #define E5_USTORM_IWARP_CONN_AG_CTX_EXIST_IN_QM0_MASK 0x1 /* exist_in_qm0 */ 1428 #define E5_USTORM_IWARP_CONN_AG_CTX_EXIST_IN_QM0_SHIFT 0 1429 #define E5_USTORM_IWARP_CONN_AG_CTX_BIT1_MASK 0x1 /* exist_in_qm1 */ 1430 #define E5_USTORM_IWARP_CONN_AG_CTX_BIT1_SHIFT 1 1431 #define E5_USTORM_IWARP_CONN_AG_CTX_CF0_MASK 0x3 /* timer0cf */ 1432 #define E5_USTORM_IWARP_CONN_AG_CTX_CF0_SHIFT 2 1433 #define E5_USTORM_IWARP_CONN_AG_CTX_CF1_MASK 0x3 /* timer1cf */ 1434 #define E5_USTORM_IWARP_CONN_AG_CTX_CF1_SHIFT 4 1435 #define E5_USTORM_IWARP_CONN_AG_CTX_CF2_MASK 0x3 /* timer2cf */ 1436 #define E5_USTORM_IWARP_CONN_AG_CTX_CF2_SHIFT 6 1437 u8 flags1; 1438 #define E5_USTORM_IWARP_CONN_AG_CTX_CF3_MASK 0x3 /* timer_stop_all */ 1439 #define E5_USTORM_IWARP_CONN_AG_CTX_CF3_SHIFT 0 1440 #define E5_USTORM_IWARP_CONN_AG_CTX_CQ_ARM_SE_CF_MASK 0x3 /* cf4 */ 1441 #define E5_USTORM_IWARP_CONN_AG_CTX_CQ_ARM_SE_CF_SHIFT 2 1442 #define E5_USTORM_IWARP_CONN_AG_CTX_CQ_ARM_CF_MASK 0x3 /* cf5 */ 1443 #define E5_USTORM_IWARP_CONN_AG_CTX_CQ_ARM_CF_SHIFT 4 1444 #define E5_USTORM_IWARP_CONN_AG_CTX_CF6_MASK 0x3 /* cf6 */ 1445 #define E5_USTORM_IWARP_CONN_AG_CTX_CF6_SHIFT 6 1446 u8 flags2; 1447 #define E5_USTORM_IWARP_CONN_AG_CTX_CF0EN_MASK 0x1 /* cf0en */ 1448 #define E5_USTORM_IWARP_CONN_AG_CTX_CF0EN_SHIFT 0 1449 #define E5_USTORM_IWARP_CONN_AG_CTX_CF1EN_MASK 0x1 /* cf1en */ 1450 #define E5_USTORM_IWARP_CONN_AG_CTX_CF1EN_SHIFT 1 1451 #define E5_USTORM_IWARP_CONN_AG_CTX_CF2EN_MASK 0x1 /* cf2en */ 1452 #define E5_USTORM_IWARP_CONN_AG_CTX_CF2EN_SHIFT 2 1453 #define E5_USTORM_IWARP_CONN_AG_CTX_CF3EN_MASK 0x1 /* cf3en */ 1454 #define E5_USTORM_IWARP_CONN_AG_CTX_CF3EN_SHIFT 3 1455 #define E5_USTORM_IWARP_CONN_AG_CTX_CQ_ARM_SE_CF_EN_MASK 0x1 /* cf4en */ 1456 #define E5_USTORM_IWARP_CONN_AG_CTX_CQ_ARM_SE_CF_EN_SHIFT 4 1457 #define E5_USTORM_IWARP_CONN_AG_CTX_CQ_ARM_CF_EN_MASK 0x1 /* cf5en */ 1458 #define E5_USTORM_IWARP_CONN_AG_CTX_CQ_ARM_CF_EN_SHIFT 5 1459 #define E5_USTORM_IWARP_CONN_AG_CTX_CF6EN_MASK 0x1 /* cf6en */ 1460 #define E5_USTORM_IWARP_CONN_AG_CTX_CF6EN_SHIFT 6 1461 #define E5_USTORM_IWARP_CONN_AG_CTX_CQ_SE_EN_MASK 0x1 /* rule0en */ 1462 #define E5_USTORM_IWARP_CONN_AG_CTX_CQ_SE_EN_SHIFT 7 1463 u8 flags3; 1464 #define E5_USTORM_IWARP_CONN_AG_CTX_CQ_EN_MASK 0x1 /* rule1en */ 1465 #define E5_USTORM_IWARP_CONN_AG_CTX_CQ_EN_SHIFT 0 1466 #define E5_USTORM_IWARP_CONN_AG_CTX_RULE2EN_MASK 0x1 /* rule2en */ 1467 #define E5_USTORM_IWARP_CONN_AG_CTX_RULE2EN_SHIFT 1 1468 #define E5_USTORM_IWARP_CONN_AG_CTX_RULE3EN_MASK 0x1 /* rule3en */ 1469 #define E5_USTORM_IWARP_CONN_AG_CTX_RULE3EN_SHIFT 2 1470 #define E5_USTORM_IWARP_CONN_AG_CTX_RULE4EN_MASK 0x1 /* rule4en */ 1471 #define E5_USTORM_IWARP_CONN_AG_CTX_RULE4EN_SHIFT 3 1472 #define E5_USTORM_IWARP_CONN_AG_CTX_RULE5EN_MASK 0x1 /* rule5en */ 1473 #define E5_USTORM_IWARP_CONN_AG_CTX_RULE5EN_SHIFT 4 1474 #define E5_USTORM_IWARP_CONN_AG_CTX_RULE6EN_MASK 0x1 /* rule6en */ 1475 #define E5_USTORM_IWARP_CONN_AG_CTX_RULE6EN_SHIFT 5 1476 #define E5_USTORM_IWARP_CONN_AG_CTX_RULE7EN_MASK 0x1 /* rule7en */ 1477 #define E5_USTORM_IWARP_CONN_AG_CTX_RULE7EN_SHIFT 6 1478 #define E5_USTORM_IWARP_CONN_AG_CTX_RULE8EN_MASK 0x1 /* rule8en */ 1479 #define E5_USTORM_IWARP_CONN_AG_CTX_RULE8EN_SHIFT 7 1480 u8 flags4; 1481 #define E5_USTORM_IWARP_CONN_AG_CTX_E4_RESERVED1_MASK 0x1 /* bit2 */ 1482 #define E5_USTORM_IWARP_CONN_AG_CTX_E4_RESERVED1_SHIFT 0 1483 #define E5_USTORM_IWARP_CONN_AG_CTX_E4_RESERVED2_MASK 0x1 /* bit3 */ 1484 #define E5_USTORM_IWARP_CONN_AG_CTX_E4_RESERVED2_SHIFT 1 1485 #define E5_USTORM_IWARP_CONN_AG_CTX_E4_RESERVED3_MASK 0x3 /* cf7 */ 1486 #define E5_USTORM_IWARP_CONN_AG_CTX_E4_RESERVED3_SHIFT 2 1487 #define E5_USTORM_IWARP_CONN_AG_CTX_E4_RESERVED4_MASK 0x3 /* cf8 */ 1488 #define E5_USTORM_IWARP_CONN_AG_CTX_E4_RESERVED4_SHIFT 4 1489 #define E5_USTORM_IWARP_CONN_AG_CTX_E4_RESERVED5_MASK 0x1 /* cf7en */ 1490 #define E5_USTORM_IWARP_CONN_AG_CTX_E4_RESERVED5_SHIFT 6 1491 #define E5_USTORM_IWARP_CONN_AG_CTX_E4_RESERVED6_MASK 0x1 /* cf8en */ 1492 #define E5_USTORM_IWARP_CONN_AG_CTX_E4_RESERVED6_SHIFT 7 1493 u8 byte2 /* byte2 */; 1494 __le16 word0 /* conn_dpi */; 1495 __le16 word1 /* word1 */; 1496 __le32 cq_cons /* reg0 */; 1497 __le32 cq_se_prod /* reg1 */; 1498 __le32 cq_prod /* reg2 */; 1499 __le32 reg3 /* reg3 */; 1500 __le16 word2 /* word2 */; 1501 __le16 word3 /* word3 */; 1502 }; 1503 1504 struct e5_ystorm_iwarp_conn_ag_ctx 1505 { 1506 u8 byte0 /* cdu_validation */; 1507 u8 byte1 /* state_and_core_id */; 1508 u8 flags0; 1509 #define E5_YSTORM_IWARP_CONN_AG_CTX_BIT0_MASK 0x1 /* exist_in_qm0 */ 1510 #define E5_YSTORM_IWARP_CONN_AG_CTX_BIT0_SHIFT 0 1511 #define E5_YSTORM_IWARP_CONN_AG_CTX_BIT1_MASK 0x1 /* exist_in_qm1 */ 1512 #define E5_YSTORM_IWARP_CONN_AG_CTX_BIT1_SHIFT 1 1513 #define E5_YSTORM_IWARP_CONN_AG_CTX_CF0_MASK 0x3 /* cf0 */ 1514 #define E5_YSTORM_IWARP_CONN_AG_CTX_CF0_SHIFT 2 1515 #define E5_YSTORM_IWARP_CONN_AG_CTX_CF1_MASK 0x3 /* cf1 */ 1516 #define E5_YSTORM_IWARP_CONN_AG_CTX_CF1_SHIFT 4 1517 #define E5_YSTORM_IWARP_CONN_AG_CTX_CF2_MASK 0x3 /* cf2 */ 1518 #define E5_YSTORM_IWARP_CONN_AG_CTX_CF2_SHIFT 6 1519 u8 flags1; 1520 #define E5_YSTORM_IWARP_CONN_AG_CTX_CF0EN_MASK 0x1 /* cf0en */ 1521 #define E5_YSTORM_IWARP_CONN_AG_CTX_CF0EN_SHIFT 0 1522 #define E5_YSTORM_IWARP_CONN_AG_CTX_CF1EN_MASK 0x1 /* cf1en */ 1523 #define E5_YSTORM_IWARP_CONN_AG_CTX_CF1EN_SHIFT 1 1524 #define E5_YSTORM_IWARP_CONN_AG_CTX_CF2EN_MASK 0x1 /* cf2en */ 1525 #define E5_YSTORM_IWARP_CONN_AG_CTX_CF2EN_SHIFT 2 1526 #define E5_YSTORM_IWARP_CONN_AG_CTX_RULE0EN_MASK 0x1 /* rule0en */ 1527 #define E5_YSTORM_IWARP_CONN_AG_CTX_RULE0EN_SHIFT 3 1528 #define E5_YSTORM_IWARP_CONN_AG_CTX_RULE1EN_MASK 0x1 /* rule1en */ 1529 #define E5_YSTORM_IWARP_CONN_AG_CTX_RULE1EN_SHIFT 4 1530 #define E5_YSTORM_IWARP_CONN_AG_CTX_RULE2EN_MASK 0x1 /* rule2en */ 1531 #define E5_YSTORM_IWARP_CONN_AG_CTX_RULE2EN_SHIFT 5 1532 #define E5_YSTORM_IWARP_CONN_AG_CTX_RULE3EN_MASK 0x1 /* rule3en */ 1533 #define E5_YSTORM_IWARP_CONN_AG_CTX_RULE3EN_SHIFT 6 1534 #define E5_YSTORM_IWARP_CONN_AG_CTX_RULE4EN_MASK 0x1 /* rule4en */ 1535 #define E5_YSTORM_IWARP_CONN_AG_CTX_RULE4EN_SHIFT 7 1536 u8 byte2 /* byte2 */; 1537 u8 byte3 /* byte3 */; 1538 __le16 word0 /* word0 */; 1539 __le32 reg0 /* reg0 */; 1540 __le32 reg1 /* reg1 */; 1541 __le16 word1 /* word1 */; 1542 __le16 word2 /* word2 */; 1543 __le16 word3 /* word3 */; 1544 __le16 word4 /* word4 */; 1545 __le32 reg2 /* reg2 */; 1546 __le32 reg3 /* reg3 */; 1547 }; 1548 1549 #endif /* __ECORE_HSI_IWARP__ */ 1550