1 /* QLogic qed NIC Driver 2 * Copyright (c) 2015 QLogic Corporation 3 * 4 * This software is available under the terms of the GNU General Public License 5 * (GPL) Version 2, available from the file COPYING in the main directory of 6 * this source tree. 7 */ 8 9 #ifndef _QED_HSI_H 10 #define _QED_HSI_H 11 12 #include <linux/types.h> 13 #include <linux/io.h> 14 #include <linux/bitops.h> 15 #include <linux/delay.h> 16 #include <linux/kernel.h> 17 #include <linux/list.h> 18 #include <linux/slab.h> 19 #include <linux/qed/common_hsi.h> 20 #include <linux/qed/storage_common.h> 21 #include <linux/qed/tcp_common.h> 22 #include <linux/qed/eth_common.h> 23 #include <linux/qed/iscsi_common.h> 24 #include <linux/qed/rdma_common.h> 25 #include <linux/qed/roce_common.h> 26 27 struct qed_hwfn; 28 struct qed_ptt; 29 30 /* opcodes for the event ring */ 31 enum common_event_opcode { 32 COMMON_EVENT_PF_START, 33 COMMON_EVENT_PF_STOP, 34 COMMON_EVENT_VF_START, 35 COMMON_EVENT_VF_STOP, 36 COMMON_EVENT_VF_PF_CHANNEL, 37 COMMON_EVENT_VF_FLR, 38 COMMON_EVENT_PF_UPDATE, 39 COMMON_EVENT_MALICIOUS_VF, 40 COMMON_EVENT_RL_UPDATE, 41 COMMON_EVENT_EMPTY, 42 MAX_COMMON_EVENT_OPCODE 43 }; 44 45 /* Common Ramrod Command IDs */ 46 enum common_ramrod_cmd_id { 47 COMMON_RAMROD_UNUSED, 48 COMMON_RAMROD_PF_START, 49 COMMON_RAMROD_PF_STOP, 50 COMMON_RAMROD_VF_START, 51 COMMON_RAMROD_VF_STOP, 52 COMMON_RAMROD_PF_UPDATE, 53 COMMON_RAMROD_RL_UPDATE, 54 COMMON_RAMROD_EMPTY, 55 MAX_COMMON_RAMROD_CMD_ID 56 }; 57 58 /* The core storm context for the Ystorm */ 59 struct ystorm_core_conn_st_ctx { 60 __le32 reserved[4]; 61 }; 62 63 /* The core storm context for the Pstorm */ 64 struct pstorm_core_conn_st_ctx { 65 __le32 reserved[4]; 66 }; 67 68 /* Core Slowpath Connection storm context of Xstorm */ 69 struct xstorm_core_conn_st_ctx { 70 __le32 spq_base_lo; 71 __le32 spq_base_hi; 72 struct regpair consolid_base_addr; 73 __le16 spq_cons; 74 __le16 consolid_cons; 75 __le32 reserved0[55]; 76 }; 77 78 struct xstorm_core_conn_ag_ctx { 79 u8 reserved0; 80 u8 core_state; 81 u8 flags0; 82 #define XSTORM_CORE_CONN_AG_CTX_EXIST_IN_QM0_MASK 0x1 83 #define XSTORM_CORE_CONN_AG_CTX_EXIST_IN_QM0_SHIFT 0 84 #define XSTORM_CORE_CONN_AG_CTX_RESERVED1_MASK 0x1 85 #define XSTORM_CORE_CONN_AG_CTX_RESERVED1_SHIFT 1 86 #define XSTORM_CORE_CONN_AG_CTX_RESERVED2_MASK 0x1 87 #define XSTORM_CORE_CONN_AG_CTX_RESERVED2_SHIFT 2 88 #define XSTORM_CORE_CONN_AG_CTX_EXIST_IN_QM3_MASK 0x1 89 #define XSTORM_CORE_CONN_AG_CTX_EXIST_IN_QM3_SHIFT 3 90 #define XSTORM_CORE_CONN_AG_CTX_RESERVED3_MASK 0x1 91 #define XSTORM_CORE_CONN_AG_CTX_RESERVED3_SHIFT 4 92 #define XSTORM_CORE_CONN_AG_CTX_RESERVED4_MASK 0x1 93 #define XSTORM_CORE_CONN_AG_CTX_RESERVED4_SHIFT 5 94 #define XSTORM_CORE_CONN_AG_CTX_RESERVED5_MASK 0x1 95 #define XSTORM_CORE_CONN_AG_CTX_RESERVED5_SHIFT 6 96 #define XSTORM_CORE_CONN_AG_CTX_RESERVED6_MASK 0x1 97 #define XSTORM_CORE_CONN_AG_CTX_RESERVED6_SHIFT 7 98 u8 flags1; 99 #define XSTORM_CORE_CONN_AG_CTX_RESERVED7_MASK 0x1 100 #define XSTORM_CORE_CONN_AG_CTX_RESERVED7_SHIFT 0 101 #define XSTORM_CORE_CONN_AG_CTX_RESERVED8_MASK 0x1 102 #define XSTORM_CORE_CONN_AG_CTX_RESERVED8_SHIFT 1 103 #define XSTORM_CORE_CONN_AG_CTX_RESERVED9_MASK 0x1 104 #define XSTORM_CORE_CONN_AG_CTX_RESERVED9_SHIFT 2 105 #define XSTORM_CORE_CONN_AG_CTX_BIT11_MASK 0x1 106 #define XSTORM_CORE_CONN_AG_CTX_BIT11_SHIFT 3 107 #define XSTORM_CORE_CONN_AG_CTX_BIT12_MASK 0x1 108 #define XSTORM_CORE_CONN_AG_CTX_BIT12_SHIFT 4 109 #define XSTORM_CORE_CONN_AG_CTX_BIT13_MASK 0x1 110 #define XSTORM_CORE_CONN_AG_CTX_BIT13_SHIFT 5 111 #define XSTORM_CORE_CONN_AG_CTX_TX_RULE_ACTIVE_MASK 0x1 112 #define XSTORM_CORE_CONN_AG_CTX_TX_RULE_ACTIVE_SHIFT 6 113 #define XSTORM_CORE_CONN_AG_CTX_DQ_CF_ACTIVE_MASK 0x1 114 #define XSTORM_CORE_CONN_AG_CTX_DQ_CF_ACTIVE_SHIFT 7 115 u8 flags2; 116 #define XSTORM_CORE_CONN_AG_CTX_CF0_MASK 0x3 117 #define XSTORM_CORE_CONN_AG_CTX_CF0_SHIFT 0 118 #define XSTORM_CORE_CONN_AG_CTX_CF1_MASK 0x3 119 #define XSTORM_CORE_CONN_AG_CTX_CF1_SHIFT 2 120 #define XSTORM_CORE_CONN_AG_CTX_CF2_MASK 0x3 121 #define XSTORM_CORE_CONN_AG_CTX_CF2_SHIFT 4 122 #define XSTORM_CORE_CONN_AG_CTX_CF3_MASK 0x3 123 #define XSTORM_CORE_CONN_AG_CTX_CF3_SHIFT 6 124 u8 flags3; 125 #define XSTORM_CORE_CONN_AG_CTX_CF4_MASK 0x3 126 #define XSTORM_CORE_CONN_AG_CTX_CF4_SHIFT 0 127 #define XSTORM_CORE_CONN_AG_CTX_CF5_MASK 0x3 128 #define XSTORM_CORE_CONN_AG_CTX_CF5_SHIFT 2 129 #define XSTORM_CORE_CONN_AG_CTX_CF6_MASK 0x3 130 #define XSTORM_CORE_CONN_AG_CTX_CF6_SHIFT 4 131 #define XSTORM_CORE_CONN_AG_CTX_CF7_MASK 0x3 132 #define XSTORM_CORE_CONN_AG_CTX_CF7_SHIFT 6 133 u8 flags4; 134 #define XSTORM_CORE_CONN_AG_CTX_CF8_MASK 0x3 135 #define XSTORM_CORE_CONN_AG_CTX_CF8_SHIFT 0 136 #define XSTORM_CORE_CONN_AG_CTX_CF9_MASK 0x3 137 #define XSTORM_CORE_CONN_AG_CTX_CF9_SHIFT 2 138 #define XSTORM_CORE_CONN_AG_CTX_CF10_MASK 0x3 139 #define XSTORM_CORE_CONN_AG_CTX_CF10_SHIFT 4 140 #define XSTORM_CORE_CONN_AG_CTX_CF11_MASK 0x3 141 #define XSTORM_CORE_CONN_AG_CTX_CF11_SHIFT 6 142 u8 flags5; 143 #define XSTORM_CORE_CONN_AG_CTX_CF12_MASK 0x3 144 #define XSTORM_CORE_CONN_AG_CTX_CF12_SHIFT 0 145 #define XSTORM_CORE_CONN_AG_CTX_CF13_MASK 0x3 146 #define XSTORM_CORE_CONN_AG_CTX_CF13_SHIFT 2 147 #define XSTORM_CORE_CONN_AG_CTX_CF14_MASK 0x3 148 #define XSTORM_CORE_CONN_AG_CTX_CF14_SHIFT 4 149 #define XSTORM_CORE_CONN_AG_CTX_CF15_MASK 0x3 150 #define XSTORM_CORE_CONN_AG_CTX_CF15_SHIFT 6 151 u8 flags6; 152 #define XSTORM_CORE_CONN_AG_CTX_CONSOLID_PROD_CF_MASK 0x3 153 #define XSTORM_CORE_CONN_AG_CTX_CONSOLID_PROD_CF_SHIFT 0 154 #define XSTORM_CORE_CONN_AG_CTX_CF17_MASK 0x3 155 #define XSTORM_CORE_CONN_AG_CTX_CF17_SHIFT 2 156 #define XSTORM_CORE_CONN_AG_CTX_DQ_CF_MASK 0x3 157 #define XSTORM_CORE_CONN_AG_CTX_DQ_CF_SHIFT 4 158 #define XSTORM_CORE_CONN_AG_CTX_TERMINATE_CF_MASK 0x3 159 #define XSTORM_CORE_CONN_AG_CTX_TERMINATE_CF_SHIFT 6 160 u8 flags7; 161 #define XSTORM_CORE_CONN_AG_CTX_FLUSH_Q0_MASK 0x3 162 #define XSTORM_CORE_CONN_AG_CTX_FLUSH_Q0_SHIFT 0 163 #define XSTORM_CORE_CONN_AG_CTX_RESERVED10_MASK 0x3 164 #define XSTORM_CORE_CONN_AG_CTX_RESERVED10_SHIFT 2 165 #define XSTORM_CORE_CONN_AG_CTX_SLOW_PATH_MASK 0x3 166 #define XSTORM_CORE_CONN_AG_CTX_SLOW_PATH_SHIFT 4 167 #define XSTORM_CORE_CONN_AG_CTX_CF0EN_MASK 0x1 168 #define XSTORM_CORE_CONN_AG_CTX_CF0EN_SHIFT 6 169 #define XSTORM_CORE_CONN_AG_CTX_CF1EN_MASK 0x1 170 #define XSTORM_CORE_CONN_AG_CTX_CF1EN_SHIFT 7 171 u8 flags8; 172 #define XSTORM_CORE_CONN_AG_CTX_CF2EN_MASK 0x1 173 #define XSTORM_CORE_CONN_AG_CTX_CF2EN_SHIFT 0 174 #define XSTORM_CORE_CONN_AG_CTX_CF3EN_MASK 0x1 175 #define XSTORM_CORE_CONN_AG_CTX_CF3EN_SHIFT 1 176 #define XSTORM_CORE_CONN_AG_CTX_CF4EN_MASK 0x1 177 #define XSTORM_CORE_CONN_AG_CTX_CF4EN_SHIFT 2 178 #define XSTORM_CORE_CONN_AG_CTX_CF5EN_MASK 0x1 179 #define XSTORM_CORE_CONN_AG_CTX_CF5EN_SHIFT 3 180 #define XSTORM_CORE_CONN_AG_CTX_CF6EN_MASK 0x1 181 #define XSTORM_CORE_CONN_AG_CTX_CF6EN_SHIFT 4 182 #define XSTORM_CORE_CONN_AG_CTX_CF7EN_MASK 0x1 183 #define XSTORM_CORE_CONN_AG_CTX_CF7EN_SHIFT 5 184 #define XSTORM_CORE_CONN_AG_CTX_CF8EN_MASK 0x1 185 #define XSTORM_CORE_CONN_AG_CTX_CF8EN_SHIFT 6 186 #define XSTORM_CORE_CONN_AG_CTX_CF9EN_MASK 0x1 187 #define XSTORM_CORE_CONN_AG_CTX_CF9EN_SHIFT 7 188 u8 flags9; 189 #define XSTORM_CORE_CONN_AG_CTX_CF10EN_MASK 0x1 190 #define XSTORM_CORE_CONN_AG_CTX_CF10EN_SHIFT 0 191 #define XSTORM_CORE_CONN_AG_CTX_CF11EN_MASK 0x1 192 #define XSTORM_CORE_CONN_AG_CTX_CF11EN_SHIFT 1 193 #define XSTORM_CORE_CONN_AG_CTX_CF12EN_MASK 0x1 194 #define XSTORM_CORE_CONN_AG_CTX_CF12EN_SHIFT 2 195 #define XSTORM_CORE_CONN_AG_CTX_CF13EN_MASK 0x1 196 #define XSTORM_CORE_CONN_AG_CTX_CF13EN_SHIFT 3 197 #define XSTORM_CORE_CONN_AG_CTX_CF14EN_MASK 0x1 198 #define XSTORM_CORE_CONN_AG_CTX_CF14EN_SHIFT 4 199 #define XSTORM_CORE_CONN_AG_CTX_CF15EN_MASK 0x1 200 #define XSTORM_CORE_CONN_AG_CTX_CF15EN_SHIFT 5 201 #define XSTORM_CORE_CONN_AG_CTX_CONSOLID_PROD_CF_EN_MASK 0x1 202 #define XSTORM_CORE_CONN_AG_CTX_CONSOLID_PROD_CF_EN_SHIFT 6 203 #define XSTORM_CORE_CONN_AG_CTX_CF17EN_MASK 0x1 204 #define XSTORM_CORE_CONN_AG_CTX_CF17EN_SHIFT 7 205 u8 flags10; 206 #define XSTORM_CORE_CONN_AG_CTX_DQ_CF_EN_MASK 0x1 207 #define XSTORM_CORE_CONN_AG_CTX_DQ_CF_EN_SHIFT 0 208 #define XSTORM_CORE_CONN_AG_CTX_TERMINATE_CF_EN_MASK 0x1 209 #define XSTORM_CORE_CONN_AG_CTX_TERMINATE_CF_EN_SHIFT 1 210 #define XSTORM_CORE_CONN_AG_CTX_FLUSH_Q0_EN_MASK 0x1 211 #define XSTORM_CORE_CONN_AG_CTX_FLUSH_Q0_EN_SHIFT 2 212 #define XSTORM_CORE_CONN_AG_CTX_RESERVED11_MASK 0x1 213 #define XSTORM_CORE_CONN_AG_CTX_RESERVED11_SHIFT 3 214 #define XSTORM_CORE_CONN_AG_CTX_SLOW_PATH_EN_MASK 0x1 215 #define XSTORM_CORE_CONN_AG_CTX_SLOW_PATH_EN_SHIFT 4 216 #define XSTORM_CORE_CONN_AG_CTX_CF23EN_MASK 0x1 217 #define XSTORM_CORE_CONN_AG_CTX_CF23EN_SHIFT 5 218 #define XSTORM_CORE_CONN_AG_CTX_RESERVED12_MASK 0x1 219 #define XSTORM_CORE_CONN_AG_CTX_RESERVED12_SHIFT 6 220 #define XSTORM_CORE_CONN_AG_CTX_RESERVED13_MASK 0x1 221 #define XSTORM_CORE_CONN_AG_CTX_RESERVED13_SHIFT 7 222 u8 flags11; 223 #define XSTORM_CORE_CONN_AG_CTX_RESERVED14_MASK 0x1 224 #define XSTORM_CORE_CONN_AG_CTX_RESERVED14_SHIFT 0 225 #define XSTORM_CORE_CONN_AG_CTX_RESERVED15_MASK 0x1 226 #define XSTORM_CORE_CONN_AG_CTX_RESERVED15_SHIFT 1 227 #define XSTORM_CORE_CONN_AG_CTX_TX_DEC_RULE_EN_MASK 0x1 228 #define XSTORM_CORE_CONN_AG_CTX_TX_DEC_RULE_EN_SHIFT 2 229 #define XSTORM_CORE_CONN_AG_CTX_RULE5EN_MASK 0x1 230 #define XSTORM_CORE_CONN_AG_CTX_RULE5EN_SHIFT 3 231 #define XSTORM_CORE_CONN_AG_CTX_RULE6EN_MASK 0x1 232 #define XSTORM_CORE_CONN_AG_CTX_RULE6EN_SHIFT 4 233 #define XSTORM_CORE_CONN_AG_CTX_RULE7EN_MASK 0x1 234 #define XSTORM_CORE_CONN_AG_CTX_RULE7EN_SHIFT 5 235 #define XSTORM_CORE_CONN_AG_CTX_A0_RESERVED1_MASK 0x1 236 #define XSTORM_CORE_CONN_AG_CTX_A0_RESERVED1_SHIFT 6 237 #define XSTORM_CORE_CONN_AG_CTX_RULE9EN_MASK 0x1 238 #define XSTORM_CORE_CONN_AG_CTX_RULE9EN_SHIFT 7 239 u8 flags12; 240 #define XSTORM_CORE_CONN_AG_CTX_RULE10EN_MASK 0x1 241 #define XSTORM_CORE_CONN_AG_CTX_RULE10EN_SHIFT 0 242 #define XSTORM_CORE_CONN_AG_CTX_RULE11EN_MASK 0x1 243 #define XSTORM_CORE_CONN_AG_CTX_RULE11EN_SHIFT 1 244 #define XSTORM_CORE_CONN_AG_CTX_A0_RESERVED2_MASK 0x1 245 #define XSTORM_CORE_CONN_AG_CTX_A0_RESERVED2_SHIFT 2 246 #define XSTORM_CORE_CONN_AG_CTX_A0_RESERVED3_MASK 0x1 247 #define XSTORM_CORE_CONN_AG_CTX_A0_RESERVED3_SHIFT 3 248 #define XSTORM_CORE_CONN_AG_CTX_RULE14EN_MASK 0x1 249 #define XSTORM_CORE_CONN_AG_CTX_RULE14EN_SHIFT 4 250 #define XSTORM_CORE_CONN_AG_CTX_RULE15EN_MASK 0x1 251 #define XSTORM_CORE_CONN_AG_CTX_RULE15EN_SHIFT 5 252 #define XSTORM_CORE_CONN_AG_CTX_RULE16EN_MASK 0x1 253 #define XSTORM_CORE_CONN_AG_CTX_RULE16EN_SHIFT 6 254 #define XSTORM_CORE_CONN_AG_CTX_RULE17EN_MASK 0x1 255 #define XSTORM_CORE_CONN_AG_CTX_RULE17EN_SHIFT 7 256 u8 flags13; 257 #define XSTORM_CORE_CONN_AG_CTX_RULE18EN_MASK 0x1 258 #define XSTORM_CORE_CONN_AG_CTX_RULE18EN_SHIFT 0 259 #define XSTORM_CORE_CONN_AG_CTX_RULE19EN_MASK 0x1 260 #define XSTORM_CORE_CONN_AG_CTX_RULE19EN_SHIFT 1 261 #define XSTORM_CORE_CONN_AG_CTX_A0_RESERVED4_MASK 0x1 262 #define XSTORM_CORE_CONN_AG_CTX_A0_RESERVED4_SHIFT 2 263 #define XSTORM_CORE_CONN_AG_CTX_A0_RESERVED5_MASK 0x1 264 #define XSTORM_CORE_CONN_AG_CTX_A0_RESERVED5_SHIFT 3 265 #define XSTORM_CORE_CONN_AG_CTX_A0_RESERVED6_MASK 0x1 266 #define XSTORM_CORE_CONN_AG_CTX_A0_RESERVED6_SHIFT 4 267 #define XSTORM_CORE_CONN_AG_CTX_A0_RESERVED7_MASK 0x1 268 #define XSTORM_CORE_CONN_AG_CTX_A0_RESERVED7_SHIFT 5 269 #define XSTORM_CORE_CONN_AG_CTX_A0_RESERVED8_MASK 0x1 270 #define XSTORM_CORE_CONN_AG_CTX_A0_RESERVED8_SHIFT 6 271 #define XSTORM_CORE_CONN_AG_CTX_A0_RESERVED9_MASK 0x1 272 #define XSTORM_CORE_CONN_AG_CTX_A0_RESERVED9_SHIFT 7 273 u8 flags14; 274 #define XSTORM_CORE_CONN_AG_CTX_BIT16_MASK 0x1 275 #define XSTORM_CORE_CONN_AG_CTX_BIT16_SHIFT 0 276 #define XSTORM_CORE_CONN_AG_CTX_BIT17_MASK 0x1 277 #define XSTORM_CORE_CONN_AG_CTX_BIT17_SHIFT 1 278 #define XSTORM_CORE_CONN_AG_CTX_BIT18_MASK 0x1 279 #define XSTORM_CORE_CONN_AG_CTX_BIT18_SHIFT 2 280 #define XSTORM_CORE_CONN_AG_CTX_BIT19_MASK 0x1 281 #define XSTORM_CORE_CONN_AG_CTX_BIT19_SHIFT 3 282 #define XSTORM_CORE_CONN_AG_CTX_BIT20_MASK 0x1 283 #define XSTORM_CORE_CONN_AG_CTX_BIT20_SHIFT 4 284 #define XSTORM_CORE_CONN_AG_CTX_BIT21_MASK 0x1 285 #define XSTORM_CORE_CONN_AG_CTX_BIT21_SHIFT 5 286 #define XSTORM_CORE_CONN_AG_CTX_CF23_MASK 0x3 287 #define XSTORM_CORE_CONN_AG_CTX_CF23_SHIFT 6 288 u8 byte2; 289 __le16 physical_q0; 290 __le16 consolid_prod; 291 __le16 reserved16; 292 __le16 tx_bd_cons; 293 __le16 tx_bd_or_spq_prod; 294 __le16 word5; 295 __le16 conn_dpi; 296 u8 byte3; 297 u8 byte4; 298 u8 byte5; 299 u8 byte6; 300 __le32 reg0; 301 __le32 reg1; 302 __le32 reg2; 303 __le32 reg3; 304 __le32 reg4; 305 __le32 reg5; 306 __le32 reg6; 307 __le16 word7; 308 __le16 word8; 309 __le16 word9; 310 __le16 word10; 311 __le32 reg7; 312 __le32 reg8; 313 __le32 reg9; 314 u8 byte7; 315 u8 byte8; 316 u8 byte9; 317 u8 byte10; 318 u8 byte11; 319 u8 byte12; 320 u8 byte13; 321 u8 byte14; 322 u8 byte15; 323 u8 byte16; 324 __le16 word11; 325 __le32 reg10; 326 __le32 reg11; 327 __le32 reg12; 328 __le32 reg13; 329 __le32 reg14; 330 __le32 reg15; 331 __le32 reg16; 332 __le32 reg17; 333 __le32 reg18; 334 __le32 reg19; 335 __le16 word12; 336 __le16 word13; 337 __le16 word14; 338 __le16 word15; 339 }; 340 341 struct tstorm_core_conn_ag_ctx { 342 u8 byte0; 343 u8 byte1; 344 u8 flags0; 345 #define TSTORM_CORE_CONN_AG_CTX_BIT0_MASK 0x1 346 #define TSTORM_CORE_CONN_AG_CTX_BIT0_SHIFT 0 347 #define TSTORM_CORE_CONN_AG_CTX_BIT1_MASK 0x1 348 #define TSTORM_CORE_CONN_AG_CTX_BIT1_SHIFT 1 349 #define TSTORM_CORE_CONN_AG_CTX_BIT2_MASK 0x1 350 #define TSTORM_CORE_CONN_AG_CTX_BIT2_SHIFT 2 351 #define TSTORM_CORE_CONN_AG_CTX_BIT3_MASK 0x1 352 #define TSTORM_CORE_CONN_AG_CTX_BIT3_SHIFT 3 353 #define TSTORM_CORE_CONN_AG_CTX_BIT4_MASK 0x1 354 #define TSTORM_CORE_CONN_AG_CTX_BIT4_SHIFT 4 355 #define TSTORM_CORE_CONN_AG_CTX_BIT5_MASK 0x1 356 #define TSTORM_CORE_CONN_AG_CTX_BIT5_SHIFT 5 357 #define TSTORM_CORE_CONN_AG_CTX_CF0_MASK 0x3 358 #define TSTORM_CORE_CONN_AG_CTX_CF0_SHIFT 6 359 u8 flags1; 360 #define TSTORM_CORE_CONN_AG_CTX_CF1_MASK 0x3 361 #define TSTORM_CORE_CONN_AG_CTX_CF1_SHIFT 0 362 #define TSTORM_CORE_CONN_AG_CTX_CF2_MASK 0x3 363 #define TSTORM_CORE_CONN_AG_CTX_CF2_SHIFT 2 364 #define TSTORM_CORE_CONN_AG_CTX_CF3_MASK 0x3 365 #define TSTORM_CORE_CONN_AG_CTX_CF3_SHIFT 4 366 #define TSTORM_CORE_CONN_AG_CTX_CF4_MASK 0x3 367 #define TSTORM_CORE_CONN_AG_CTX_CF4_SHIFT 6 368 u8 flags2; 369 #define TSTORM_CORE_CONN_AG_CTX_CF5_MASK 0x3 370 #define TSTORM_CORE_CONN_AG_CTX_CF5_SHIFT 0 371 #define TSTORM_CORE_CONN_AG_CTX_CF6_MASK 0x3 372 #define TSTORM_CORE_CONN_AG_CTX_CF6_SHIFT 2 373 #define TSTORM_CORE_CONN_AG_CTX_CF7_MASK 0x3 374 #define TSTORM_CORE_CONN_AG_CTX_CF7_SHIFT 4 375 #define TSTORM_CORE_CONN_AG_CTX_CF8_MASK 0x3 376 #define TSTORM_CORE_CONN_AG_CTX_CF8_SHIFT 6 377 u8 flags3; 378 #define TSTORM_CORE_CONN_AG_CTX_CF9_MASK 0x3 379 #define TSTORM_CORE_CONN_AG_CTX_CF9_SHIFT 0 380 #define TSTORM_CORE_CONN_AG_CTX_CF10_MASK 0x3 381 #define TSTORM_CORE_CONN_AG_CTX_CF10_SHIFT 2 382 #define TSTORM_CORE_CONN_AG_CTX_CF0EN_MASK 0x1 383 #define TSTORM_CORE_CONN_AG_CTX_CF0EN_SHIFT 4 384 #define TSTORM_CORE_CONN_AG_CTX_CF1EN_MASK 0x1 385 #define TSTORM_CORE_CONN_AG_CTX_CF1EN_SHIFT 5 386 #define TSTORM_CORE_CONN_AG_CTX_CF2EN_MASK 0x1 387 #define TSTORM_CORE_CONN_AG_CTX_CF2EN_SHIFT 6 388 #define TSTORM_CORE_CONN_AG_CTX_CF3EN_MASK 0x1 389 #define TSTORM_CORE_CONN_AG_CTX_CF3EN_SHIFT 7 390 u8 flags4; 391 #define TSTORM_CORE_CONN_AG_CTX_CF4EN_MASK 0x1 392 #define TSTORM_CORE_CONN_AG_CTX_CF4EN_SHIFT 0 393 #define TSTORM_CORE_CONN_AG_CTX_CF5EN_MASK 0x1 394 #define TSTORM_CORE_CONN_AG_CTX_CF5EN_SHIFT 1 395 #define TSTORM_CORE_CONN_AG_CTX_CF6EN_MASK 0x1 396 #define TSTORM_CORE_CONN_AG_CTX_CF6EN_SHIFT 2 397 #define TSTORM_CORE_CONN_AG_CTX_CF7EN_MASK 0x1 398 #define TSTORM_CORE_CONN_AG_CTX_CF7EN_SHIFT 3 399 #define TSTORM_CORE_CONN_AG_CTX_CF8EN_MASK 0x1 400 #define TSTORM_CORE_CONN_AG_CTX_CF8EN_SHIFT 4 401 #define TSTORM_CORE_CONN_AG_CTX_CF9EN_MASK 0x1 402 #define TSTORM_CORE_CONN_AG_CTX_CF9EN_SHIFT 5 403 #define TSTORM_CORE_CONN_AG_CTX_CF10EN_MASK 0x1 404 #define TSTORM_CORE_CONN_AG_CTX_CF10EN_SHIFT 6 405 #define TSTORM_CORE_CONN_AG_CTX_RULE0EN_MASK 0x1 406 #define TSTORM_CORE_CONN_AG_CTX_RULE0EN_SHIFT 7 407 u8 flags5; 408 #define TSTORM_CORE_CONN_AG_CTX_RULE1EN_MASK 0x1 409 #define TSTORM_CORE_CONN_AG_CTX_RULE1EN_SHIFT 0 410 #define TSTORM_CORE_CONN_AG_CTX_RULE2EN_MASK 0x1 411 #define TSTORM_CORE_CONN_AG_CTX_RULE2EN_SHIFT 1 412 #define TSTORM_CORE_CONN_AG_CTX_RULE3EN_MASK 0x1 413 #define TSTORM_CORE_CONN_AG_CTX_RULE3EN_SHIFT 2 414 #define TSTORM_CORE_CONN_AG_CTX_RULE4EN_MASK 0x1 415 #define TSTORM_CORE_CONN_AG_CTX_RULE4EN_SHIFT 3 416 #define TSTORM_CORE_CONN_AG_CTX_RULE5EN_MASK 0x1 417 #define TSTORM_CORE_CONN_AG_CTX_RULE5EN_SHIFT 4 418 #define TSTORM_CORE_CONN_AG_CTX_RULE6EN_MASK 0x1 419 #define TSTORM_CORE_CONN_AG_CTX_RULE6EN_SHIFT 5 420 #define TSTORM_CORE_CONN_AG_CTX_RULE7EN_MASK 0x1 421 #define TSTORM_CORE_CONN_AG_CTX_RULE7EN_SHIFT 6 422 #define TSTORM_CORE_CONN_AG_CTX_RULE8EN_MASK 0x1 423 #define TSTORM_CORE_CONN_AG_CTX_RULE8EN_SHIFT 7 424 __le32 reg0; 425 __le32 reg1; 426 __le32 reg2; 427 __le32 reg3; 428 __le32 reg4; 429 __le32 reg5; 430 __le32 reg6; 431 __le32 reg7; 432 __le32 reg8; 433 u8 byte2; 434 u8 byte3; 435 __le16 word0; 436 u8 byte4; 437 u8 byte5; 438 __le16 word1; 439 __le16 word2; 440 __le16 word3; 441 __le32 reg9; 442 __le32 reg10; 443 }; 444 445 struct ustorm_core_conn_ag_ctx { 446 u8 reserved; 447 u8 byte1; 448 u8 flags0; 449 #define USTORM_CORE_CONN_AG_CTX_BIT0_MASK 0x1 450 #define USTORM_CORE_CONN_AG_CTX_BIT0_SHIFT 0 451 #define USTORM_CORE_CONN_AG_CTX_BIT1_MASK 0x1 452 #define USTORM_CORE_CONN_AG_CTX_BIT1_SHIFT 1 453 #define USTORM_CORE_CONN_AG_CTX_CF0_MASK 0x3 454 #define USTORM_CORE_CONN_AG_CTX_CF0_SHIFT 2 455 #define USTORM_CORE_CONN_AG_CTX_CF1_MASK 0x3 456 #define USTORM_CORE_CONN_AG_CTX_CF1_SHIFT 4 457 #define USTORM_CORE_CONN_AG_CTX_CF2_MASK 0x3 458 #define USTORM_CORE_CONN_AG_CTX_CF2_SHIFT 6 459 u8 flags1; 460 #define USTORM_CORE_CONN_AG_CTX_CF3_MASK 0x3 461 #define USTORM_CORE_CONN_AG_CTX_CF3_SHIFT 0 462 #define USTORM_CORE_CONN_AG_CTX_CF4_MASK 0x3 463 #define USTORM_CORE_CONN_AG_CTX_CF4_SHIFT 2 464 #define USTORM_CORE_CONN_AG_CTX_CF5_MASK 0x3 465 #define USTORM_CORE_CONN_AG_CTX_CF5_SHIFT 4 466 #define USTORM_CORE_CONN_AG_CTX_CF6_MASK 0x3 467 #define USTORM_CORE_CONN_AG_CTX_CF6_SHIFT 6 468 u8 flags2; 469 #define USTORM_CORE_CONN_AG_CTX_CF0EN_MASK 0x1 470 #define USTORM_CORE_CONN_AG_CTX_CF0EN_SHIFT 0 471 #define USTORM_CORE_CONN_AG_CTX_CF1EN_MASK 0x1 472 #define USTORM_CORE_CONN_AG_CTX_CF1EN_SHIFT 1 473 #define USTORM_CORE_CONN_AG_CTX_CF2EN_MASK 0x1 474 #define USTORM_CORE_CONN_AG_CTX_CF2EN_SHIFT 2 475 #define USTORM_CORE_CONN_AG_CTX_CF3EN_MASK 0x1 476 #define USTORM_CORE_CONN_AG_CTX_CF3EN_SHIFT 3 477 #define USTORM_CORE_CONN_AG_CTX_CF4EN_MASK 0x1 478 #define USTORM_CORE_CONN_AG_CTX_CF4EN_SHIFT 4 479 #define USTORM_CORE_CONN_AG_CTX_CF5EN_MASK 0x1 480 #define USTORM_CORE_CONN_AG_CTX_CF5EN_SHIFT 5 481 #define USTORM_CORE_CONN_AG_CTX_CF6EN_MASK 0x1 482 #define USTORM_CORE_CONN_AG_CTX_CF6EN_SHIFT 6 483 #define USTORM_CORE_CONN_AG_CTX_RULE0EN_MASK 0x1 484 #define USTORM_CORE_CONN_AG_CTX_RULE0EN_SHIFT 7 485 u8 flags3; 486 #define USTORM_CORE_CONN_AG_CTX_RULE1EN_MASK 0x1 487 #define USTORM_CORE_CONN_AG_CTX_RULE1EN_SHIFT 0 488 #define USTORM_CORE_CONN_AG_CTX_RULE2EN_MASK 0x1 489 #define USTORM_CORE_CONN_AG_CTX_RULE2EN_SHIFT 1 490 #define USTORM_CORE_CONN_AG_CTX_RULE3EN_MASK 0x1 491 #define USTORM_CORE_CONN_AG_CTX_RULE3EN_SHIFT 2 492 #define USTORM_CORE_CONN_AG_CTX_RULE4EN_MASK 0x1 493 #define USTORM_CORE_CONN_AG_CTX_RULE4EN_SHIFT 3 494 #define USTORM_CORE_CONN_AG_CTX_RULE5EN_MASK 0x1 495 #define USTORM_CORE_CONN_AG_CTX_RULE5EN_SHIFT 4 496 #define USTORM_CORE_CONN_AG_CTX_RULE6EN_MASK 0x1 497 #define USTORM_CORE_CONN_AG_CTX_RULE6EN_SHIFT 5 498 #define USTORM_CORE_CONN_AG_CTX_RULE7EN_MASK 0x1 499 #define USTORM_CORE_CONN_AG_CTX_RULE7EN_SHIFT 6 500 #define USTORM_CORE_CONN_AG_CTX_RULE8EN_MASK 0x1 501 #define USTORM_CORE_CONN_AG_CTX_RULE8EN_SHIFT 7 502 u8 byte2; 503 u8 byte3; 504 __le16 word0; 505 __le16 word1; 506 __le32 rx_producers; 507 __le32 reg1; 508 __le32 reg2; 509 __le32 reg3; 510 __le16 word2; 511 __le16 word3; 512 }; 513 514 /* The core storm context for the Mstorm */ 515 struct mstorm_core_conn_st_ctx { 516 __le32 reserved[24]; 517 }; 518 519 /* The core storm context for the Ustorm */ 520 struct ustorm_core_conn_st_ctx { 521 __le32 reserved[4]; 522 }; 523 524 /* core connection context */ 525 struct core_conn_context { 526 struct ystorm_core_conn_st_ctx ystorm_st_context; 527 struct regpair ystorm_st_padding[2]; 528 struct pstorm_core_conn_st_ctx pstorm_st_context; 529 struct regpair pstorm_st_padding[2]; 530 struct xstorm_core_conn_st_ctx xstorm_st_context; 531 struct xstorm_core_conn_ag_ctx xstorm_ag_context; 532 struct tstorm_core_conn_ag_ctx tstorm_ag_context; 533 struct ustorm_core_conn_ag_ctx ustorm_ag_context; 534 struct mstorm_core_conn_st_ctx mstorm_st_context; 535 struct ustorm_core_conn_st_ctx ustorm_st_context; 536 struct regpair ustorm_st_padding[2]; 537 }; 538 539 struct eth_mstorm_per_pf_stat { 540 struct regpair gre_discard_pkts; 541 struct regpair vxlan_discard_pkts; 542 struct regpair geneve_discard_pkts; 543 struct regpair lb_discard_pkts; 544 }; 545 546 struct eth_mstorm_per_queue_stat { 547 struct regpair ttl0_discard; 548 struct regpair packet_too_big_discard; 549 struct regpair no_buff_discard; 550 struct regpair not_active_discard; 551 struct regpair tpa_coalesced_pkts; 552 struct regpair tpa_coalesced_events; 553 struct regpair tpa_aborts_num; 554 struct regpair tpa_coalesced_bytes; 555 }; 556 557 /* Ethernet TX Per PF */ 558 struct eth_pstorm_per_pf_stat { 559 struct regpair sent_lb_ucast_bytes; 560 struct regpair sent_lb_mcast_bytes; 561 struct regpair sent_lb_bcast_bytes; 562 struct regpair sent_lb_ucast_pkts; 563 struct regpair sent_lb_mcast_pkts; 564 struct regpair sent_lb_bcast_pkts; 565 struct regpair sent_gre_bytes; 566 struct regpair sent_vxlan_bytes; 567 struct regpair sent_geneve_bytes; 568 struct regpair sent_gre_pkts; 569 struct regpair sent_vxlan_pkts; 570 struct regpair sent_geneve_pkts; 571 struct regpair gre_drop_pkts; 572 struct regpair vxlan_drop_pkts; 573 struct regpair geneve_drop_pkts; 574 }; 575 576 /* Ethernet TX Per Queue Stats */ 577 struct eth_pstorm_per_queue_stat { 578 struct regpair sent_ucast_bytes; 579 struct regpair sent_mcast_bytes; 580 struct regpair sent_bcast_bytes; 581 struct regpair sent_ucast_pkts; 582 struct regpair sent_mcast_pkts; 583 struct regpair sent_bcast_pkts; 584 struct regpair error_drop_pkts; 585 }; 586 587 /* ETH Rx producers data */ 588 struct eth_rx_rate_limit { 589 __le16 mult; 590 __le16 cnst; 591 u8 add_sub_cnst; 592 u8 reserved0; 593 __le16 reserved1; 594 }; 595 596 struct eth_ustorm_per_pf_stat { 597 struct regpair rcv_lb_ucast_bytes; 598 struct regpair rcv_lb_mcast_bytes; 599 struct regpair rcv_lb_bcast_bytes; 600 struct regpair rcv_lb_ucast_pkts; 601 struct regpair rcv_lb_mcast_pkts; 602 struct regpair rcv_lb_bcast_pkts; 603 struct regpair rcv_gre_bytes; 604 struct regpair rcv_vxlan_bytes; 605 struct regpair rcv_geneve_bytes; 606 struct regpair rcv_gre_pkts; 607 struct regpair rcv_vxlan_pkts; 608 struct regpair rcv_geneve_pkts; 609 }; 610 611 struct eth_ustorm_per_queue_stat { 612 struct regpair rcv_ucast_bytes; 613 struct regpair rcv_mcast_bytes; 614 struct regpair rcv_bcast_bytes; 615 struct regpair rcv_ucast_pkts; 616 struct regpair rcv_mcast_pkts; 617 struct regpair rcv_bcast_pkts; 618 }; 619 620 /* Event Ring Next Page Address */ 621 struct event_ring_next_addr { 622 struct regpair addr; 623 __le32 reserved[2]; 624 }; 625 626 /* Event Ring Element */ 627 union event_ring_element { 628 struct event_ring_entry entry; 629 struct event_ring_next_addr next_addr; 630 }; 631 632 /* Major and Minor hsi Versions */ 633 struct hsi_fp_ver_struct { 634 u8 minor_ver_arr[2]; 635 u8 major_ver_arr[2]; 636 }; 637 638 /* Mstorm non-triggering VF zone */ 639 struct mstorm_non_trigger_vf_zone { 640 struct eth_mstorm_per_queue_stat eth_queue_stat; 641 struct eth_rx_prod_data eth_rx_queue_producers[ETH_MAX_NUM_RX_QUEUES_PER_VF]; 642 }; 643 644 /* Mstorm VF zone */ 645 struct mstorm_vf_zone { 646 struct mstorm_non_trigger_vf_zone non_trigger; 647 648 }; 649 650 /* personality per PF */ 651 enum personality_type { 652 BAD_PERSONALITY_TYP, 653 PERSONALITY_ISCSI, 654 PERSONALITY_RESERVED2, 655 PERSONALITY_RDMA_AND_ETH, 656 PERSONALITY_RESERVED3, 657 PERSONALITY_CORE, 658 PERSONALITY_ETH, 659 PERSONALITY_RESERVED4, 660 MAX_PERSONALITY_TYPE 661 }; 662 663 /* tunnel configuration */ 664 struct pf_start_tunnel_config { 665 u8 set_vxlan_udp_port_flg; 666 u8 set_geneve_udp_port_flg; 667 u8 tx_enable_vxlan; 668 u8 tx_enable_l2geneve; 669 u8 tx_enable_ipgeneve; 670 u8 tx_enable_l2gre; 671 u8 tx_enable_ipgre; 672 u8 tunnel_clss_vxlan; 673 u8 tunnel_clss_l2geneve; 674 u8 tunnel_clss_ipgeneve; 675 u8 tunnel_clss_l2gre; 676 u8 tunnel_clss_ipgre; 677 __le16 vxlan_udp_port; 678 __le16 geneve_udp_port; 679 }; 680 681 /* Ramrod data for PF start ramrod */ 682 struct pf_start_ramrod_data { 683 struct regpair event_ring_pbl_addr; 684 struct regpair consolid_q_pbl_addr; 685 struct pf_start_tunnel_config tunnel_config; 686 __le16 event_ring_sb_id; 687 u8 base_vf_id; 688 u8 num_vfs; 689 u8 event_ring_num_pages; 690 u8 event_ring_sb_index; 691 u8 path_id; 692 u8 warning_as_error; 693 u8 dont_log_ramrods; 694 u8 personality; 695 __le16 log_type_mask; 696 u8 mf_mode; 697 u8 integ_phase; 698 u8 allow_npar_tx_switching; 699 u8 inner_to_outer_pri_map[8]; 700 u8 pri_map_valid; 701 __le32 outer_tag; 702 struct hsi_fp_ver_struct hsi_fp_ver; 703 704 }; 705 706 struct protocol_dcb_data { 707 u8 dcb_enable_flag; 708 u8 dcb_priority; 709 u8 dcb_tc; 710 u8 reserved; 711 }; 712 713 struct pf_update_tunnel_config { 714 u8 update_rx_pf_clss; 715 u8 update_tx_pf_clss; 716 u8 set_vxlan_udp_port_flg; 717 u8 set_geneve_udp_port_flg; 718 u8 tx_enable_vxlan; 719 u8 tx_enable_l2geneve; 720 u8 tx_enable_ipgeneve; 721 u8 tx_enable_l2gre; 722 u8 tx_enable_ipgre; 723 u8 tunnel_clss_vxlan; 724 u8 tunnel_clss_l2geneve; 725 u8 tunnel_clss_ipgeneve; 726 u8 tunnel_clss_l2gre; 727 u8 tunnel_clss_ipgre; 728 __le16 vxlan_udp_port; 729 __le16 geneve_udp_port; 730 __le16 reserved[3]; 731 }; 732 733 struct pf_update_ramrod_data { 734 u8 pf_id; 735 u8 update_eth_dcb_data_flag; 736 u8 update_fcoe_dcb_data_flag; 737 u8 update_iscsi_dcb_data_flag; 738 u8 update_roce_dcb_data_flag; 739 u8 update_iwarp_dcb_data_flag; 740 u8 update_mf_vlan_flag; 741 u8 reserved; 742 struct protocol_dcb_data eth_dcb_data; 743 struct protocol_dcb_data fcoe_dcb_data; 744 struct protocol_dcb_data iscsi_dcb_data; 745 struct protocol_dcb_data roce_dcb_data; 746 struct protocol_dcb_data iwarp_dcb_data; 747 __le16 mf_vlan; 748 __le16 reserved2; 749 struct pf_update_tunnel_config tunnel_config; 750 }; 751 752 /* Ports mode */ 753 enum ports_mode { 754 ENGX2_PORTX1, 755 ENGX2_PORTX2, 756 ENGX1_PORTX1, 757 ENGX1_PORTX2, 758 ENGX1_PORTX4, 759 MAX_PORTS_MODE 760 }; 761 762 /* use to index in hsi_fp_[major|minor]_ver_arr per protocol */ 763 enum protocol_version_array_key { 764 ETH_VER_KEY = 0, 765 ROCE_VER_KEY, 766 MAX_PROTOCOL_VERSION_ARRAY_KEY 767 }; 768 769 /* Pstorm non-triggering VF zone */ 770 struct pstorm_non_trigger_vf_zone { 771 struct eth_pstorm_per_queue_stat eth_queue_stat; 772 struct regpair reserved[2]; 773 }; 774 775 /* Pstorm VF zone */ 776 struct pstorm_vf_zone { 777 struct pstorm_non_trigger_vf_zone non_trigger; 778 struct regpair reserved[7]; 779 }; 780 781 /* Ramrod Header of SPQE */ 782 struct ramrod_header { 783 __le32 cid; 784 u8 cmd_id; 785 u8 protocol_id; 786 __le16 echo; 787 }; 788 789 /* Slowpath Element (SPQE) */ 790 struct slow_path_element { 791 struct ramrod_header hdr; 792 struct regpair data_ptr; 793 }; 794 795 /* Tstorm non-triggering VF zone */ 796 struct tstorm_non_trigger_vf_zone { 797 struct regpair reserved[2]; 798 }; 799 800 struct tstorm_per_port_stat { 801 struct regpair trunc_error_discard; 802 struct regpair mac_error_discard; 803 struct regpair mftag_filter_discard; 804 struct regpair eth_mac_filter_discard; 805 struct regpair reserved[5]; 806 struct regpair eth_irregular_pkt; 807 struct regpair reserved1[2]; 808 struct regpair eth_gre_tunn_filter_discard; 809 struct regpair eth_vxlan_tunn_filter_discard; 810 struct regpair eth_geneve_tunn_filter_discard; 811 }; 812 813 /* Tstorm VF zone */ 814 struct tstorm_vf_zone { 815 struct tstorm_non_trigger_vf_zone non_trigger; 816 }; 817 818 /* Tunnel classification scheme */ 819 enum tunnel_clss { 820 TUNNEL_CLSS_MAC_VLAN = 0, 821 TUNNEL_CLSS_MAC_VNI, 822 TUNNEL_CLSS_INNER_MAC_VLAN, 823 TUNNEL_CLSS_INNER_MAC_VNI, 824 TUNNEL_CLSS_MAC_VLAN_DUAL_STAGE, 825 MAX_TUNNEL_CLSS 826 }; 827 828 /* Ustorm non-triggering VF zone */ 829 struct ustorm_non_trigger_vf_zone { 830 struct eth_ustorm_per_queue_stat eth_queue_stat; 831 struct regpair vf_pf_msg_addr; 832 }; 833 834 /* Ustorm triggering VF zone */ 835 struct ustorm_trigger_vf_zone { 836 u8 vf_pf_msg_valid; 837 u8 reserved[7]; 838 }; 839 840 /* Ustorm VF zone */ 841 struct ustorm_vf_zone { 842 struct ustorm_non_trigger_vf_zone non_trigger; 843 struct ustorm_trigger_vf_zone trigger; 844 }; 845 846 /* VF-PF channel data */ 847 struct vf_pf_channel_data { 848 __le32 ready; 849 u8 valid; 850 u8 reserved0; 851 __le16 reserved1; 852 }; 853 854 /* Ramrod data for VF start ramrod */ 855 struct vf_start_ramrod_data { 856 u8 vf_id; 857 u8 enable_flr_ack; 858 __le16 opaque_fid; 859 u8 personality; 860 u8 reserved[7]; 861 struct hsi_fp_ver_struct hsi_fp_ver; 862 863 }; 864 865 /* Ramrod data for VF start ramrod */ 866 struct vf_stop_ramrod_data { 867 u8 vf_id; 868 u8 reserved0; 869 __le16 reserved1; 870 __le32 reserved2; 871 }; 872 873 /* Attentions status block */ 874 struct atten_status_block { 875 __le32 atten_bits; 876 __le32 atten_ack; 877 __le16 reserved0; 878 __le16 sb_index; 879 __le32 reserved1; 880 }; 881 882 enum command_type_bit { 883 IGU_COMMAND_TYPE_NOP = 0, 884 IGU_COMMAND_TYPE_SET = 1, 885 MAX_COMMAND_TYPE_BIT 886 }; 887 888 /* DMAE command */ 889 struct dmae_cmd { 890 __le32 opcode; 891 #define DMAE_CMD_SRC_MASK 0x1 892 #define DMAE_CMD_SRC_SHIFT 0 893 #define DMAE_CMD_DST_MASK 0x3 894 #define DMAE_CMD_DST_SHIFT 1 895 #define DMAE_CMD_C_DST_MASK 0x1 896 #define DMAE_CMD_C_DST_SHIFT 3 897 #define DMAE_CMD_CRC_RESET_MASK 0x1 898 #define DMAE_CMD_CRC_RESET_SHIFT 4 899 #define DMAE_CMD_SRC_ADDR_RESET_MASK 0x1 900 #define DMAE_CMD_SRC_ADDR_RESET_SHIFT 5 901 #define DMAE_CMD_DST_ADDR_RESET_MASK 0x1 902 #define DMAE_CMD_DST_ADDR_RESET_SHIFT 6 903 #define DMAE_CMD_COMP_FUNC_MASK 0x1 904 #define DMAE_CMD_COMP_FUNC_SHIFT 7 905 #define DMAE_CMD_COMP_WORD_EN_MASK 0x1 906 #define DMAE_CMD_COMP_WORD_EN_SHIFT 8 907 #define DMAE_CMD_COMP_CRC_EN_MASK 0x1 908 #define DMAE_CMD_COMP_CRC_EN_SHIFT 9 909 #define DMAE_CMD_COMP_CRC_OFFSET_MASK 0x7 910 #define DMAE_CMD_COMP_CRC_OFFSET_SHIFT 10 911 #define DMAE_CMD_RESERVED1_MASK 0x1 912 #define DMAE_CMD_RESERVED1_SHIFT 13 913 #define DMAE_CMD_ENDIANITY_MODE_MASK 0x3 914 #define DMAE_CMD_ENDIANITY_MODE_SHIFT 14 915 #define DMAE_CMD_ERR_HANDLING_MASK 0x3 916 #define DMAE_CMD_ERR_HANDLING_SHIFT 16 917 #define DMAE_CMD_PORT_ID_MASK 0x3 918 #define DMAE_CMD_PORT_ID_SHIFT 18 919 #define DMAE_CMD_SRC_PF_ID_MASK 0xF 920 #define DMAE_CMD_SRC_PF_ID_SHIFT 20 921 #define DMAE_CMD_DST_PF_ID_MASK 0xF 922 #define DMAE_CMD_DST_PF_ID_SHIFT 24 923 #define DMAE_CMD_SRC_VF_ID_VALID_MASK 0x1 924 #define DMAE_CMD_SRC_VF_ID_VALID_SHIFT 28 925 #define DMAE_CMD_DST_VF_ID_VALID_MASK 0x1 926 #define DMAE_CMD_DST_VF_ID_VALID_SHIFT 29 927 #define DMAE_CMD_RESERVED2_MASK 0x3 928 #define DMAE_CMD_RESERVED2_SHIFT 30 929 __le32 src_addr_lo; 930 __le32 src_addr_hi; 931 __le32 dst_addr_lo; 932 __le32 dst_addr_hi; 933 __le16 length_dw; 934 __le16 opcode_b; 935 #define DMAE_CMD_SRC_VF_ID_MASK 0xFF 936 #define DMAE_CMD_SRC_VF_ID_SHIFT 0 937 #define DMAE_CMD_DST_VF_ID_MASK 0xFF 938 #define DMAE_CMD_DST_VF_ID_SHIFT 8 939 __le32 comp_addr_lo; 940 __le32 comp_addr_hi; 941 __le32 comp_val; 942 __le32 crc32; 943 __le32 crc_32_c; 944 __le16 crc16; 945 __le16 crc16_c; 946 __le16 crc10; 947 __le16 reserved; 948 __le16 xsum16; 949 __le16 xsum8; 950 }; 951 952 enum dmae_cmd_comp_crc_en_enum { 953 dmae_cmd_comp_crc_disabled, 954 dmae_cmd_comp_crc_enabled, 955 MAX_DMAE_CMD_COMP_CRC_EN_ENUM 956 }; 957 958 enum dmae_cmd_comp_func_enum { 959 dmae_cmd_comp_func_to_src, 960 dmae_cmd_comp_func_to_dst, 961 MAX_DMAE_CMD_COMP_FUNC_ENUM 962 }; 963 964 enum dmae_cmd_comp_word_en_enum { 965 dmae_cmd_comp_word_disabled, 966 dmae_cmd_comp_word_enabled, 967 MAX_DMAE_CMD_COMP_WORD_EN_ENUM 968 }; 969 970 enum dmae_cmd_c_dst_enum { 971 dmae_cmd_c_dst_pcie, 972 dmae_cmd_c_dst_grc, 973 MAX_DMAE_CMD_C_DST_ENUM 974 }; 975 976 enum dmae_cmd_dst_enum { 977 dmae_cmd_dst_none_0, 978 dmae_cmd_dst_pcie, 979 dmae_cmd_dst_grc, 980 dmae_cmd_dst_none_3, 981 MAX_DMAE_CMD_DST_ENUM 982 }; 983 984 enum dmae_cmd_error_handling_enum { 985 dmae_cmd_error_handling_send_regular_comp, 986 dmae_cmd_error_handling_send_comp_with_err, 987 dmae_cmd_error_handling_dont_send_comp, 988 MAX_DMAE_CMD_ERROR_HANDLING_ENUM 989 }; 990 991 enum dmae_cmd_src_enum { 992 dmae_cmd_src_pcie, 993 dmae_cmd_src_grc, 994 MAX_DMAE_CMD_SRC_ENUM 995 }; 996 997 /* IGU cleanup command */ 998 struct igu_cleanup { 999 __le32 sb_id_and_flags; 1000 #define IGU_CLEANUP_RESERVED0_MASK 0x7FFFFFF 1001 #define IGU_CLEANUP_RESERVED0_SHIFT 0 1002 #define IGU_CLEANUP_CLEANUP_SET_MASK 0x1 1003 #define IGU_CLEANUP_CLEANUP_SET_SHIFT 27 1004 #define IGU_CLEANUP_CLEANUP_TYPE_MASK 0x7 1005 #define IGU_CLEANUP_CLEANUP_TYPE_SHIFT 28 1006 #define IGU_CLEANUP_COMMAND_TYPE_MASK 0x1 1007 #define IGU_CLEANUP_COMMAND_TYPE_SHIFT 31 1008 __le32 reserved1; 1009 }; 1010 1011 /* IGU firmware driver command */ 1012 union igu_command { 1013 struct igu_prod_cons_update prod_cons_update; 1014 struct igu_cleanup cleanup; 1015 }; 1016 1017 /* IGU firmware driver command */ 1018 struct igu_command_reg_ctrl { 1019 __le16 opaque_fid; 1020 __le16 igu_command_reg_ctrl_fields; 1021 #define IGU_COMMAND_REG_CTRL_PXP_BAR_ADDR_MASK 0xFFF 1022 #define IGU_COMMAND_REG_CTRL_PXP_BAR_ADDR_SHIFT 0 1023 #define IGU_COMMAND_REG_CTRL_RESERVED_MASK 0x7 1024 #define IGU_COMMAND_REG_CTRL_RESERVED_SHIFT 12 1025 #define IGU_COMMAND_REG_CTRL_COMMAND_TYPE_MASK 0x1 1026 #define IGU_COMMAND_REG_CTRL_COMMAND_TYPE_SHIFT 15 1027 }; 1028 1029 /* IGU mapping line structure */ 1030 struct igu_mapping_line { 1031 __le32 igu_mapping_line_fields; 1032 #define IGU_MAPPING_LINE_VALID_MASK 0x1 1033 #define IGU_MAPPING_LINE_VALID_SHIFT 0 1034 #define IGU_MAPPING_LINE_VECTOR_NUMBER_MASK 0xFF 1035 #define IGU_MAPPING_LINE_VECTOR_NUMBER_SHIFT 1 1036 #define IGU_MAPPING_LINE_FUNCTION_NUMBER_MASK 0xFF 1037 #define IGU_MAPPING_LINE_FUNCTION_NUMBER_SHIFT 9 1038 #define IGU_MAPPING_LINE_PF_VALID_MASK 0x1 1039 #define IGU_MAPPING_LINE_PF_VALID_SHIFT 17 1040 #define IGU_MAPPING_LINE_IPS_GROUP_MASK 0x3F 1041 #define IGU_MAPPING_LINE_IPS_GROUP_SHIFT 18 1042 #define IGU_MAPPING_LINE_RESERVED_MASK 0xFF 1043 #define IGU_MAPPING_LINE_RESERVED_SHIFT 24 1044 }; 1045 1046 /* IGU MSIX line structure */ 1047 struct igu_msix_vector { 1048 struct regpair address; 1049 __le32 data; 1050 __le32 msix_vector_fields; 1051 #define IGU_MSIX_VECTOR_MASK_BIT_MASK 0x1 1052 #define IGU_MSIX_VECTOR_MASK_BIT_SHIFT 0 1053 #define IGU_MSIX_VECTOR_RESERVED0_MASK 0x7FFF 1054 #define IGU_MSIX_VECTOR_RESERVED0_SHIFT 1 1055 #define IGU_MSIX_VECTOR_STEERING_TAG_MASK 0xFF 1056 #define IGU_MSIX_VECTOR_STEERING_TAG_SHIFT 16 1057 #define IGU_MSIX_VECTOR_RESERVED1_MASK 0xFF 1058 #define IGU_MSIX_VECTOR_RESERVED1_SHIFT 24 1059 }; 1060 1061 struct mstorm_core_conn_ag_ctx { 1062 u8 byte0; 1063 u8 byte1; 1064 u8 flags0; 1065 #define MSTORM_CORE_CONN_AG_CTX_BIT0_MASK 0x1 1066 #define MSTORM_CORE_CONN_AG_CTX_BIT0_SHIFT 0 1067 #define MSTORM_CORE_CONN_AG_CTX_BIT1_MASK 0x1 1068 #define MSTORM_CORE_CONN_AG_CTX_BIT1_SHIFT 1 1069 #define MSTORM_CORE_CONN_AG_CTX_CF0_MASK 0x3 1070 #define MSTORM_CORE_CONN_AG_CTX_CF0_SHIFT 2 1071 #define MSTORM_CORE_CONN_AG_CTX_CF1_MASK 0x3 1072 #define MSTORM_CORE_CONN_AG_CTX_CF1_SHIFT 4 1073 #define MSTORM_CORE_CONN_AG_CTX_CF2_MASK 0x3 1074 #define MSTORM_CORE_CONN_AG_CTX_CF2_SHIFT 6 1075 u8 flags1; 1076 #define MSTORM_CORE_CONN_AG_CTX_CF0EN_MASK 0x1 1077 #define MSTORM_CORE_CONN_AG_CTX_CF0EN_SHIFT 0 1078 #define MSTORM_CORE_CONN_AG_CTX_CF1EN_MASK 0x1 1079 #define MSTORM_CORE_CONN_AG_CTX_CF1EN_SHIFT 1 1080 #define MSTORM_CORE_CONN_AG_CTX_CF2EN_MASK 0x1 1081 #define MSTORM_CORE_CONN_AG_CTX_CF2EN_SHIFT 2 1082 #define MSTORM_CORE_CONN_AG_CTX_RULE0EN_MASK 0x1 1083 #define MSTORM_CORE_CONN_AG_CTX_RULE0EN_SHIFT 3 1084 #define MSTORM_CORE_CONN_AG_CTX_RULE1EN_MASK 0x1 1085 #define MSTORM_CORE_CONN_AG_CTX_RULE1EN_SHIFT 4 1086 #define MSTORM_CORE_CONN_AG_CTX_RULE2EN_MASK 0x1 1087 #define MSTORM_CORE_CONN_AG_CTX_RULE2EN_SHIFT 5 1088 #define MSTORM_CORE_CONN_AG_CTX_RULE3EN_MASK 0x1 1089 #define MSTORM_CORE_CONN_AG_CTX_RULE3EN_SHIFT 6 1090 #define MSTORM_CORE_CONN_AG_CTX_RULE4EN_MASK 0x1 1091 #define MSTORM_CORE_CONN_AG_CTX_RULE4EN_SHIFT 7 1092 __le16 word0; 1093 __le16 word1; 1094 __le32 reg0; 1095 __le32 reg1; 1096 }; 1097 1098 /* per encapsulation type enabling flags */ 1099 struct prs_reg_encapsulation_type_en { 1100 u8 flags; 1101 #define PRS_REG_ENCAPSULATION_TYPE_EN_ETH_OVER_GRE_ENABLE_MASK 0x1 1102 #define PRS_REG_ENCAPSULATION_TYPE_EN_ETH_OVER_GRE_ENABLE_SHIFT 0 1103 #define PRS_REG_ENCAPSULATION_TYPE_EN_IP_OVER_GRE_ENABLE_MASK 0x1 1104 #define PRS_REG_ENCAPSULATION_TYPE_EN_IP_OVER_GRE_ENABLE_SHIFT 1 1105 #define PRS_REG_ENCAPSULATION_TYPE_EN_VXLAN_ENABLE_MASK 0x1 1106 #define PRS_REG_ENCAPSULATION_TYPE_EN_VXLAN_ENABLE_SHIFT 2 1107 #define PRS_REG_ENCAPSULATION_TYPE_EN_T_TAG_ENABLE_MASK 0x1 1108 #define PRS_REG_ENCAPSULATION_TYPE_EN_T_TAG_ENABLE_SHIFT 3 1109 #define PRS_REG_ENCAPSULATION_TYPE_EN_ETH_OVER_GENEVE_ENABLE_MASK 0x1 1110 #define PRS_REG_ENCAPSULATION_TYPE_EN_ETH_OVER_GENEVE_ENABLE_SHIFT 4 1111 #define PRS_REG_ENCAPSULATION_TYPE_EN_IP_OVER_GENEVE_ENABLE_MASK 0x1 1112 #define PRS_REG_ENCAPSULATION_TYPE_EN_IP_OVER_GENEVE_ENABLE_SHIFT 5 1113 #define PRS_REG_ENCAPSULATION_TYPE_EN_RESERVED_MASK 0x3 1114 #define PRS_REG_ENCAPSULATION_TYPE_EN_RESERVED_SHIFT 6 1115 }; 1116 1117 enum pxp_tph_st_hint { 1118 TPH_ST_HINT_BIDIR, 1119 TPH_ST_HINT_REQUESTER, 1120 TPH_ST_HINT_TARGET, 1121 TPH_ST_HINT_TARGET_PRIO, 1122 MAX_PXP_TPH_ST_HINT 1123 }; 1124 1125 /* QM hardware structure of enable bypass credit mask */ 1126 struct qm_rf_bypass_mask { 1127 u8 flags; 1128 #define QM_RF_BYPASS_MASK_LINEVOQ_MASK 0x1 1129 #define QM_RF_BYPASS_MASK_LINEVOQ_SHIFT 0 1130 #define QM_RF_BYPASS_MASK_RESERVED0_MASK 0x1 1131 #define QM_RF_BYPASS_MASK_RESERVED0_SHIFT 1 1132 #define QM_RF_BYPASS_MASK_PFWFQ_MASK 0x1 1133 #define QM_RF_BYPASS_MASK_PFWFQ_SHIFT 2 1134 #define QM_RF_BYPASS_MASK_VPWFQ_MASK 0x1 1135 #define QM_RF_BYPASS_MASK_VPWFQ_SHIFT 3 1136 #define QM_RF_BYPASS_MASK_PFRL_MASK 0x1 1137 #define QM_RF_BYPASS_MASK_PFRL_SHIFT 4 1138 #define QM_RF_BYPASS_MASK_VPQCNRL_MASK 0x1 1139 #define QM_RF_BYPASS_MASK_VPQCNRL_SHIFT 5 1140 #define QM_RF_BYPASS_MASK_FWPAUSE_MASK 0x1 1141 #define QM_RF_BYPASS_MASK_FWPAUSE_SHIFT 6 1142 #define QM_RF_BYPASS_MASK_RESERVED1_MASK 0x1 1143 #define QM_RF_BYPASS_MASK_RESERVED1_SHIFT 7 1144 }; 1145 1146 /* QM hardware structure of opportunistic credit mask */ 1147 struct qm_rf_opportunistic_mask { 1148 __le16 flags; 1149 #define QM_RF_OPPORTUNISTIC_MASK_LINEVOQ_MASK 0x1 1150 #define QM_RF_OPPORTUNISTIC_MASK_LINEVOQ_SHIFT 0 1151 #define QM_RF_OPPORTUNISTIC_MASK_BYTEVOQ_MASK 0x1 1152 #define QM_RF_OPPORTUNISTIC_MASK_BYTEVOQ_SHIFT 1 1153 #define QM_RF_OPPORTUNISTIC_MASK_PFWFQ_MASK 0x1 1154 #define QM_RF_OPPORTUNISTIC_MASK_PFWFQ_SHIFT 2 1155 #define QM_RF_OPPORTUNISTIC_MASK_VPWFQ_MASK 0x1 1156 #define QM_RF_OPPORTUNISTIC_MASK_VPWFQ_SHIFT 3 1157 #define QM_RF_OPPORTUNISTIC_MASK_PFRL_MASK 0x1 1158 #define QM_RF_OPPORTUNISTIC_MASK_PFRL_SHIFT 4 1159 #define QM_RF_OPPORTUNISTIC_MASK_VPQCNRL_MASK 0x1 1160 #define QM_RF_OPPORTUNISTIC_MASK_VPQCNRL_SHIFT 5 1161 #define QM_RF_OPPORTUNISTIC_MASK_FWPAUSE_MASK 0x1 1162 #define QM_RF_OPPORTUNISTIC_MASK_FWPAUSE_SHIFT 6 1163 #define QM_RF_OPPORTUNISTIC_MASK_RESERVED0_MASK 0x1 1164 #define QM_RF_OPPORTUNISTIC_MASK_RESERVED0_SHIFT 7 1165 #define QM_RF_OPPORTUNISTIC_MASK_QUEUEEMPTY_MASK 0x1 1166 #define QM_RF_OPPORTUNISTIC_MASK_QUEUEEMPTY_SHIFT 8 1167 #define QM_RF_OPPORTUNISTIC_MASK_RESERVED1_MASK 0x7F 1168 #define QM_RF_OPPORTUNISTIC_MASK_RESERVED1_SHIFT 9 1169 }; 1170 1171 /* QM hardware structure of QM map memory */ 1172 struct qm_rf_pq_map { 1173 __le32 reg; 1174 #define QM_RF_PQ_MAP_PQ_VALID_MASK 0x1 1175 #define QM_RF_PQ_MAP_PQ_VALID_SHIFT 0 1176 #define QM_RF_PQ_MAP_RL_ID_MASK 0xFF 1177 #define QM_RF_PQ_MAP_RL_ID_SHIFT 1 1178 #define QM_RF_PQ_MAP_VP_PQ_ID_MASK 0x1FF 1179 #define QM_RF_PQ_MAP_VP_PQ_ID_SHIFT 9 1180 #define QM_RF_PQ_MAP_VOQ_MASK 0x1F 1181 #define QM_RF_PQ_MAP_VOQ_SHIFT 18 1182 #define QM_RF_PQ_MAP_WRR_WEIGHT_GROUP_MASK 0x3 1183 #define QM_RF_PQ_MAP_WRR_WEIGHT_GROUP_SHIFT 23 1184 #define QM_RF_PQ_MAP_RL_VALID_MASK 0x1 1185 #define QM_RF_PQ_MAP_RL_VALID_SHIFT 25 1186 #define QM_RF_PQ_MAP_RESERVED_MASK 0x3F 1187 #define QM_RF_PQ_MAP_RESERVED_SHIFT 26 1188 }; 1189 1190 /* Completion params for aggregated interrupt completion */ 1191 struct sdm_agg_int_comp_params { 1192 __le16 params; 1193 #define SDM_AGG_INT_COMP_PARAMS_AGG_INT_INDEX_MASK 0x3F 1194 #define SDM_AGG_INT_COMP_PARAMS_AGG_INT_INDEX_SHIFT 0 1195 #define SDM_AGG_INT_COMP_PARAMS_AGG_VECTOR_ENABLE_MASK 0x1 1196 #define SDM_AGG_INT_COMP_PARAMS_AGG_VECTOR_ENABLE_SHIFT 6 1197 #define SDM_AGG_INT_COMP_PARAMS_AGG_VECTOR_BIT_MASK 0x1FF 1198 #define SDM_AGG_INT_COMP_PARAMS_AGG_VECTOR_BIT_SHIFT 7 1199 }; 1200 1201 /* SDM operation gen command (generate aggregative interrupt) */ 1202 struct sdm_op_gen { 1203 __le32 command; 1204 #define SDM_OP_GEN_COMP_PARAM_MASK 0xFFFF 1205 #define SDM_OP_GEN_COMP_PARAM_SHIFT 0 1206 #define SDM_OP_GEN_COMP_TYPE_MASK 0xF 1207 #define SDM_OP_GEN_COMP_TYPE_SHIFT 16 1208 #define SDM_OP_GEN_RESERVED_MASK 0xFFF 1209 #define SDM_OP_GEN_RESERVED_SHIFT 20 1210 }; 1211 1212 struct ystorm_core_conn_ag_ctx { 1213 u8 byte0; 1214 u8 byte1; 1215 u8 flags0; 1216 #define YSTORM_CORE_CONN_AG_CTX_BIT0_MASK 0x1 1217 #define YSTORM_CORE_CONN_AG_CTX_BIT0_SHIFT 0 1218 #define YSTORM_CORE_CONN_AG_CTX_BIT1_MASK 0x1 1219 #define YSTORM_CORE_CONN_AG_CTX_BIT1_SHIFT 1 1220 #define YSTORM_CORE_CONN_AG_CTX_CF0_MASK 0x3 1221 #define YSTORM_CORE_CONN_AG_CTX_CF0_SHIFT 2 1222 #define YSTORM_CORE_CONN_AG_CTX_CF1_MASK 0x3 1223 #define YSTORM_CORE_CONN_AG_CTX_CF1_SHIFT 4 1224 #define YSTORM_CORE_CONN_AG_CTX_CF2_MASK 0x3 1225 #define YSTORM_CORE_CONN_AG_CTX_CF2_SHIFT 6 1226 u8 flags1; 1227 #define YSTORM_CORE_CONN_AG_CTX_CF0EN_MASK 0x1 1228 #define YSTORM_CORE_CONN_AG_CTX_CF0EN_SHIFT 0 1229 #define YSTORM_CORE_CONN_AG_CTX_CF1EN_MASK 0x1 1230 #define YSTORM_CORE_CONN_AG_CTX_CF1EN_SHIFT 1 1231 #define YSTORM_CORE_CONN_AG_CTX_CF2EN_MASK 0x1 1232 #define YSTORM_CORE_CONN_AG_CTX_CF2EN_SHIFT 2 1233 #define YSTORM_CORE_CONN_AG_CTX_RULE0EN_MASK 0x1 1234 #define YSTORM_CORE_CONN_AG_CTX_RULE0EN_SHIFT 3 1235 #define YSTORM_CORE_CONN_AG_CTX_RULE1EN_MASK 0x1 1236 #define YSTORM_CORE_CONN_AG_CTX_RULE1EN_SHIFT 4 1237 #define YSTORM_CORE_CONN_AG_CTX_RULE2EN_MASK 0x1 1238 #define YSTORM_CORE_CONN_AG_CTX_RULE2EN_SHIFT 5 1239 #define YSTORM_CORE_CONN_AG_CTX_RULE3EN_MASK 0x1 1240 #define YSTORM_CORE_CONN_AG_CTX_RULE3EN_SHIFT 6 1241 #define YSTORM_CORE_CONN_AG_CTX_RULE4EN_MASK 0x1 1242 #define YSTORM_CORE_CONN_AG_CTX_RULE4EN_SHIFT 7 1243 u8 byte2; 1244 u8 byte3; 1245 __le16 word0; 1246 __le32 reg0; 1247 __le32 reg1; 1248 __le16 word1; 1249 __le16 word2; 1250 __le16 word3; 1251 __le16 word4; 1252 __le32 reg2; 1253 __le32 reg3; 1254 }; 1255 1256 /****************************************/ 1257 /* Debug Tools HSI constants and macros */ 1258 /****************************************/ 1259 1260 enum block_addr { 1261 GRCBASE_GRC = 0x50000, 1262 GRCBASE_MISCS = 0x9000, 1263 GRCBASE_MISC = 0x8000, 1264 GRCBASE_DBU = 0xa000, 1265 GRCBASE_PGLUE_B = 0x2a8000, 1266 GRCBASE_CNIG = 0x218000, 1267 GRCBASE_CPMU = 0x30000, 1268 GRCBASE_NCSI = 0x40000, 1269 GRCBASE_OPTE = 0x53000, 1270 GRCBASE_BMB = 0x540000, 1271 GRCBASE_PCIE = 0x54000, 1272 GRCBASE_MCP = 0xe00000, 1273 GRCBASE_MCP2 = 0x52000, 1274 GRCBASE_PSWHST = 0x2a0000, 1275 GRCBASE_PSWHST2 = 0x29e000, 1276 GRCBASE_PSWRD = 0x29c000, 1277 GRCBASE_PSWRD2 = 0x29d000, 1278 GRCBASE_PSWWR = 0x29a000, 1279 GRCBASE_PSWWR2 = 0x29b000, 1280 GRCBASE_PSWRQ = 0x280000, 1281 GRCBASE_PSWRQ2 = 0x240000, 1282 GRCBASE_PGLCS = 0x0, 1283 GRCBASE_DMAE = 0xc000, 1284 GRCBASE_PTU = 0x560000, 1285 GRCBASE_TCM = 0x1180000, 1286 GRCBASE_MCM = 0x1200000, 1287 GRCBASE_UCM = 0x1280000, 1288 GRCBASE_XCM = 0x1000000, 1289 GRCBASE_YCM = 0x1080000, 1290 GRCBASE_PCM = 0x1100000, 1291 GRCBASE_QM = 0x2f0000, 1292 GRCBASE_TM = 0x2c0000, 1293 GRCBASE_DORQ = 0x100000, 1294 GRCBASE_BRB = 0x340000, 1295 GRCBASE_SRC = 0x238000, 1296 GRCBASE_PRS = 0x1f0000, 1297 GRCBASE_TSDM = 0xfb0000, 1298 GRCBASE_MSDM = 0xfc0000, 1299 GRCBASE_USDM = 0xfd0000, 1300 GRCBASE_XSDM = 0xf80000, 1301 GRCBASE_YSDM = 0xf90000, 1302 GRCBASE_PSDM = 0xfa0000, 1303 GRCBASE_TSEM = 0x1700000, 1304 GRCBASE_MSEM = 0x1800000, 1305 GRCBASE_USEM = 0x1900000, 1306 GRCBASE_XSEM = 0x1400000, 1307 GRCBASE_YSEM = 0x1500000, 1308 GRCBASE_PSEM = 0x1600000, 1309 GRCBASE_RSS = 0x238800, 1310 GRCBASE_TMLD = 0x4d0000, 1311 GRCBASE_MULD = 0x4e0000, 1312 GRCBASE_YULD = 0x4c8000, 1313 GRCBASE_XYLD = 0x4c0000, 1314 GRCBASE_PRM = 0x230000, 1315 GRCBASE_PBF_PB1 = 0xda0000, 1316 GRCBASE_PBF_PB2 = 0xda4000, 1317 GRCBASE_RPB = 0x23c000, 1318 GRCBASE_BTB = 0xdb0000, 1319 GRCBASE_PBF = 0xd80000, 1320 GRCBASE_RDIF = 0x300000, 1321 GRCBASE_TDIF = 0x310000, 1322 GRCBASE_CDU = 0x580000, 1323 GRCBASE_CCFC = 0x2e0000, 1324 GRCBASE_TCFC = 0x2d0000, 1325 GRCBASE_IGU = 0x180000, 1326 GRCBASE_CAU = 0x1c0000, 1327 GRCBASE_UMAC = 0x51000, 1328 GRCBASE_XMAC = 0x210000, 1329 GRCBASE_DBG = 0x10000, 1330 GRCBASE_NIG = 0x500000, 1331 GRCBASE_WOL = 0x600000, 1332 GRCBASE_BMBN = 0x610000, 1333 GRCBASE_IPC = 0x20000, 1334 GRCBASE_NWM = 0x800000, 1335 GRCBASE_NWS = 0x700000, 1336 GRCBASE_MS = 0x6a0000, 1337 GRCBASE_PHY_PCIE = 0x620000, 1338 GRCBASE_LED = 0x6b8000, 1339 GRCBASE_MISC_AEU = 0x8000, 1340 GRCBASE_BAR0_MAP = 0x1c00000, 1341 MAX_BLOCK_ADDR 1342 }; 1343 1344 enum block_id { 1345 BLOCK_GRC, 1346 BLOCK_MISCS, 1347 BLOCK_MISC, 1348 BLOCK_DBU, 1349 BLOCK_PGLUE_B, 1350 BLOCK_CNIG, 1351 BLOCK_CPMU, 1352 BLOCK_NCSI, 1353 BLOCK_OPTE, 1354 BLOCK_BMB, 1355 BLOCK_PCIE, 1356 BLOCK_MCP, 1357 BLOCK_MCP2, 1358 BLOCK_PSWHST, 1359 BLOCK_PSWHST2, 1360 BLOCK_PSWRD, 1361 BLOCK_PSWRD2, 1362 BLOCK_PSWWR, 1363 BLOCK_PSWWR2, 1364 BLOCK_PSWRQ, 1365 BLOCK_PSWRQ2, 1366 BLOCK_PGLCS, 1367 BLOCK_DMAE, 1368 BLOCK_PTU, 1369 BLOCK_TCM, 1370 BLOCK_MCM, 1371 BLOCK_UCM, 1372 BLOCK_XCM, 1373 BLOCK_YCM, 1374 BLOCK_PCM, 1375 BLOCK_QM, 1376 BLOCK_TM, 1377 BLOCK_DORQ, 1378 BLOCK_BRB, 1379 BLOCK_SRC, 1380 BLOCK_PRS, 1381 BLOCK_TSDM, 1382 BLOCK_MSDM, 1383 BLOCK_USDM, 1384 BLOCK_XSDM, 1385 BLOCK_YSDM, 1386 BLOCK_PSDM, 1387 BLOCK_TSEM, 1388 BLOCK_MSEM, 1389 BLOCK_USEM, 1390 BLOCK_XSEM, 1391 BLOCK_YSEM, 1392 BLOCK_PSEM, 1393 BLOCK_RSS, 1394 BLOCK_TMLD, 1395 BLOCK_MULD, 1396 BLOCK_YULD, 1397 BLOCK_XYLD, 1398 BLOCK_PRM, 1399 BLOCK_PBF_PB1, 1400 BLOCK_PBF_PB2, 1401 BLOCK_RPB, 1402 BLOCK_BTB, 1403 BLOCK_PBF, 1404 BLOCK_RDIF, 1405 BLOCK_TDIF, 1406 BLOCK_CDU, 1407 BLOCK_CCFC, 1408 BLOCK_TCFC, 1409 BLOCK_IGU, 1410 BLOCK_CAU, 1411 BLOCK_UMAC, 1412 BLOCK_XMAC, 1413 BLOCK_DBG, 1414 BLOCK_NIG, 1415 BLOCK_WOL, 1416 BLOCK_BMBN, 1417 BLOCK_IPC, 1418 BLOCK_NWM, 1419 BLOCK_NWS, 1420 BLOCK_MS, 1421 BLOCK_PHY_PCIE, 1422 BLOCK_LED, 1423 BLOCK_MISC_AEU, 1424 BLOCK_BAR0_MAP, 1425 MAX_BLOCK_ID 1426 }; 1427 1428 /* binary debug buffer types */ 1429 enum bin_dbg_buffer_type { 1430 BIN_BUF_DBG_MODE_TREE, 1431 BIN_BUF_DBG_DUMP_REG, 1432 BIN_BUF_DBG_DUMP_MEM, 1433 BIN_BUF_DBG_IDLE_CHK_REGS, 1434 BIN_BUF_DBG_IDLE_CHK_IMMS, 1435 BIN_BUF_DBG_IDLE_CHK_RULES, 1436 BIN_BUF_DBG_IDLE_CHK_PARSING_DATA, 1437 BIN_BUF_DBG_ATTN_BLOCKS, 1438 BIN_BUF_DBG_ATTN_REGS, 1439 BIN_BUF_DBG_ATTN_INDEXES, 1440 BIN_BUF_DBG_ATTN_NAME_OFFSETS, 1441 BIN_BUF_DBG_PARSING_STRINGS, 1442 MAX_BIN_DBG_BUFFER_TYPE 1443 }; 1444 1445 /* Chip IDs */ 1446 enum chip_ids { 1447 CHIP_RESERVED, 1448 CHIP_BB_B0, 1449 CHIP_RESERVED2, 1450 MAX_CHIP_IDS 1451 }; 1452 1453 /* Attention bit mapping */ 1454 struct dbg_attn_bit_mapping { 1455 __le16 data; 1456 #define DBG_ATTN_BIT_MAPPING_VAL_MASK 0x7FFF 1457 #define DBG_ATTN_BIT_MAPPING_VAL_SHIFT 0 1458 #define DBG_ATTN_BIT_MAPPING_IS_UNUSED_BIT_CNT_MASK 0x1 1459 #define DBG_ATTN_BIT_MAPPING_IS_UNUSED_BIT_CNT_SHIFT 15 1460 }; 1461 1462 /* Attention block per-type data */ 1463 struct dbg_attn_block_type_data { 1464 __le16 names_offset; 1465 __le16 reserved1; 1466 u8 num_regs; 1467 u8 reserved2; 1468 __le16 regs_offset; 1469 }; 1470 1471 /* Block attentions */ 1472 struct dbg_attn_block { 1473 struct dbg_attn_block_type_data per_type_data[2]; 1474 }; 1475 1476 /* Attention register result */ 1477 struct dbg_attn_reg_result { 1478 __le32 data; 1479 #define DBG_ATTN_REG_RESULT_STS_ADDRESS_MASK 0xFFFFFF 1480 #define DBG_ATTN_REG_RESULT_STS_ADDRESS_SHIFT 0 1481 #define DBG_ATTN_REG_RESULT_NUM_ATTN_IDX_MASK 0xFF 1482 #define DBG_ATTN_REG_RESULT_NUM_ATTN_IDX_SHIFT 24 1483 __le16 attn_idx_offset; 1484 __le16 reserved; 1485 __le32 sts_val; 1486 __le32 mask_val; 1487 }; 1488 1489 /* Attention block result */ 1490 struct dbg_attn_block_result { 1491 u8 block_id; 1492 u8 data; 1493 #define DBG_ATTN_BLOCK_RESULT_ATTN_TYPE_MASK 0x3 1494 #define DBG_ATTN_BLOCK_RESULT_ATTN_TYPE_SHIFT 0 1495 #define DBG_ATTN_BLOCK_RESULT_NUM_REGS_MASK 0x3F 1496 #define DBG_ATTN_BLOCK_RESULT_NUM_REGS_SHIFT 2 1497 __le16 names_offset; 1498 struct dbg_attn_reg_result reg_results[15]; 1499 }; 1500 1501 /* mode header */ 1502 struct dbg_mode_hdr { 1503 __le16 data; 1504 #define DBG_MODE_HDR_EVAL_MODE_MASK 0x1 1505 #define DBG_MODE_HDR_EVAL_MODE_SHIFT 0 1506 #define DBG_MODE_HDR_MODES_BUF_OFFSET_MASK 0x7FFF 1507 #define DBG_MODE_HDR_MODES_BUF_OFFSET_SHIFT 1 1508 }; 1509 1510 /* Attention register */ 1511 struct dbg_attn_reg { 1512 struct dbg_mode_hdr mode; 1513 __le16 attn_idx_offset; 1514 __le32 data; 1515 #define DBG_ATTN_REG_STS_ADDRESS_MASK 0xFFFFFF 1516 #define DBG_ATTN_REG_STS_ADDRESS_SHIFT 0 1517 #define DBG_ATTN_REG_NUM_ATTN_IDX_MASK 0xFF 1518 #define DBG_ATTN_REG_NUM_ATTN_IDX_SHIFT 24 1519 __le32 sts_clr_address; 1520 __le32 mask_address; 1521 }; 1522 1523 /* attention types */ 1524 enum dbg_attn_type { 1525 ATTN_TYPE_INTERRUPT, 1526 ATTN_TYPE_PARITY, 1527 MAX_DBG_ATTN_TYPE 1528 }; 1529 1530 /* Debug status codes */ 1531 enum dbg_status { 1532 DBG_STATUS_OK, 1533 DBG_STATUS_APP_VERSION_NOT_SET, 1534 DBG_STATUS_UNSUPPORTED_APP_VERSION, 1535 DBG_STATUS_DBG_BLOCK_NOT_RESET, 1536 DBG_STATUS_INVALID_ARGS, 1537 DBG_STATUS_OUTPUT_ALREADY_SET, 1538 DBG_STATUS_INVALID_PCI_BUF_SIZE, 1539 DBG_STATUS_PCI_BUF_ALLOC_FAILED, 1540 DBG_STATUS_PCI_BUF_NOT_ALLOCATED, 1541 DBG_STATUS_TOO_MANY_INPUTS, 1542 DBG_STATUS_INPUT_OVERLAP, 1543 DBG_STATUS_HW_ONLY_RECORDING, 1544 DBG_STATUS_STORM_ALREADY_ENABLED, 1545 DBG_STATUS_STORM_NOT_ENABLED, 1546 DBG_STATUS_BLOCK_ALREADY_ENABLED, 1547 DBG_STATUS_BLOCK_NOT_ENABLED, 1548 DBG_STATUS_NO_INPUT_ENABLED, 1549 DBG_STATUS_NO_FILTER_TRIGGER_64B, 1550 DBG_STATUS_FILTER_ALREADY_ENABLED, 1551 DBG_STATUS_TRIGGER_ALREADY_ENABLED, 1552 DBG_STATUS_TRIGGER_NOT_ENABLED, 1553 DBG_STATUS_CANT_ADD_CONSTRAINT, 1554 DBG_STATUS_TOO_MANY_TRIGGER_STATES, 1555 DBG_STATUS_TOO_MANY_CONSTRAINTS, 1556 DBG_STATUS_RECORDING_NOT_STARTED, 1557 DBG_STATUS_DATA_DIDNT_TRIGGER, 1558 DBG_STATUS_NO_DATA_RECORDED, 1559 DBG_STATUS_DUMP_BUF_TOO_SMALL, 1560 DBG_STATUS_DUMP_NOT_CHUNK_ALIGNED, 1561 DBG_STATUS_UNKNOWN_CHIP, 1562 DBG_STATUS_VIRT_MEM_ALLOC_FAILED, 1563 DBG_STATUS_BLOCK_IN_RESET, 1564 DBG_STATUS_INVALID_TRACE_SIGNATURE, 1565 DBG_STATUS_INVALID_NVRAM_BUNDLE, 1566 DBG_STATUS_NVRAM_GET_IMAGE_FAILED, 1567 DBG_STATUS_NON_ALIGNED_NVRAM_IMAGE, 1568 DBG_STATUS_NVRAM_READ_FAILED, 1569 DBG_STATUS_IDLE_CHK_PARSE_FAILED, 1570 DBG_STATUS_MCP_TRACE_BAD_DATA, 1571 DBG_STATUS_MCP_TRACE_NO_META, 1572 DBG_STATUS_MCP_COULD_NOT_HALT, 1573 DBG_STATUS_MCP_COULD_NOT_RESUME, 1574 DBG_STATUS_DMAE_FAILED, 1575 DBG_STATUS_SEMI_FIFO_NOT_EMPTY, 1576 DBG_STATUS_IGU_FIFO_BAD_DATA, 1577 DBG_STATUS_MCP_COULD_NOT_MASK_PRTY, 1578 DBG_STATUS_FW_ASSERTS_PARSE_FAILED, 1579 DBG_STATUS_REG_FIFO_BAD_DATA, 1580 DBG_STATUS_PROTECTION_OVERRIDE_BAD_DATA, 1581 DBG_STATUS_DBG_ARRAY_NOT_SET, 1582 MAX_DBG_STATUS 1583 }; 1584 1585 /********************************/ 1586 /* HSI Init Functions constants */ 1587 /********************************/ 1588 1589 /* Number of VLAN priorities */ 1590 #define NUM_OF_VLAN_PRIORITIES 8 1591 1592 /* QM per-port init parameters */ 1593 struct init_qm_port_params { 1594 u8 active; 1595 u8 active_phys_tcs; 1596 __le16 num_pbf_cmd_lines; 1597 __le16 num_btb_blocks; 1598 __le16 reserved; 1599 }; 1600 1601 /* QM per-PQ init parameters */ 1602 struct init_qm_pq_params { 1603 u8 vport_id; 1604 u8 tc_id; 1605 u8 wrr_group; 1606 u8 rl_valid; 1607 }; 1608 1609 /* QM per-vport init parameters */ 1610 struct init_qm_vport_params { 1611 __le32 vport_rl; 1612 __le16 vport_wfq; 1613 __le16 first_tx_pq_id[NUM_OF_TCS]; 1614 }; 1615 1616 /**************************************/ 1617 /* Init Tool HSI constants and macros */ 1618 /**************************************/ 1619 1620 /* Width of GRC address in bits (addresses are specified in dwords) */ 1621 #define GRC_ADDR_BITS 23 1622 #define MAX_GRC_ADDR ((1 << GRC_ADDR_BITS) - 1) 1623 1624 /* indicates an init that should be applied to any phase ID */ 1625 #define ANY_PHASE_ID 0xffff 1626 1627 /* Max size in dwords of a zipped array */ 1628 #define MAX_ZIPPED_SIZE 8192 1629 1630 enum init_modes { 1631 MODE_RESERVED, 1632 MODE_BB_B0, 1633 MODE_RESERVED2, 1634 MODE_ASIC, 1635 MODE_RESERVED3, 1636 MODE_RESERVED4, 1637 MODE_RESERVED5, 1638 MODE_RESERVED6, 1639 MODE_SF, 1640 MODE_MF_SD, 1641 MODE_MF_SI, 1642 MODE_PORTS_PER_ENG_1, 1643 MODE_PORTS_PER_ENG_2, 1644 MODE_PORTS_PER_ENG_4, 1645 MODE_100G, 1646 MODE_40G, 1647 MODE_RESERVED7, 1648 MAX_INIT_MODES 1649 }; 1650 1651 enum init_phases { 1652 PHASE_ENGINE, 1653 PHASE_PORT, 1654 PHASE_PF, 1655 PHASE_VF, 1656 PHASE_QM_PF, 1657 MAX_INIT_PHASES 1658 }; 1659 1660 enum init_split_types { 1661 SPLIT_TYPE_NONE, 1662 SPLIT_TYPE_PORT, 1663 SPLIT_TYPE_PF, 1664 SPLIT_TYPE_PORT_PF, 1665 SPLIT_TYPE_VF, 1666 MAX_INIT_SPLIT_TYPES 1667 }; 1668 1669 /* Binary buffer header */ 1670 struct bin_buffer_hdr { 1671 __le32 offset; 1672 __le32 length; 1673 }; 1674 1675 /* binary init buffer types */ 1676 enum bin_init_buffer_type { 1677 BIN_BUF_FW_VER_INFO, 1678 BIN_BUF_INIT_CMD, 1679 BIN_BUF_INIT_VAL, 1680 BIN_BUF_INIT_MODE_TREE, 1681 BIN_BUF_IRO, 1682 MAX_BIN_INIT_BUFFER_TYPE 1683 }; 1684 1685 /* init array header: raw */ 1686 struct init_array_raw_hdr { 1687 __le32 data; 1688 #define INIT_ARRAY_RAW_HDR_TYPE_MASK 0xF 1689 #define INIT_ARRAY_RAW_HDR_TYPE_SHIFT 0 1690 #define INIT_ARRAY_RAW_HDR_PARAMS_MASK 0xFFFFFFF 1691 #define INIT_ARRAY_RAW_HDR_PARAMS_SHIFT 4 1692 }; 1693 1694 /* init array header: standard */ 1695 struct init_array_standard_hdr { 1696 __le32 data; 1697 #define INIT_ARRAY_STANDARD_HDR_TYPE_MASK 0xF 1698 #define INIT_ARRAY_STANDARD_HDR_TYPE_SHIFT 0 1699 #define INIT_ARRAY_STANDARD_HDR_SIZE_MASK 0xFFFFFFF 1700 #define INIT_ARRAY_STANDARD_HDR_SIZE_SHIFT 4 1701 }; 1702 1703 /* init array header: zipped */ 1704 struct init_array_zipped_hdr { 1705 __le32 data; 1706 #define INIT_ARRAY_ZIPPED_HDR_TYPE_MASK 0xF 1707 #define INIT_ARRAY_ZIPPED_HDR_TYPE_SHIFT 0 1708 #define INIT_ARRAY_ZIPPED_HDR_ZIPPED_SIZE_MASK 0xFFFFFFF 1709 #define INIT_ARRAY_ZIPPED_HDR_ZIPPED_SIZE_SHIFT 4 1710 }; 1711 1712 /* init array header: pattern */ 1713 struct init_array_pattern_hdr { 1714 __le32 data; 1715 #define INIT_ARRAY_PATTERN_HDR_TYPE_MASK 0xF 1716 #define INIT_ARRAY_PATTERN_HDR_TYPE_SHIFT 0 1717 #define INIT_ARRAY_PATTERN_HDR_PATTERN_SIZE_MASK 0xF 1718 #define INIT_ARRAY_PATTERN_HDR_PATTERN_SIZE_SHIFT 4 1719 #define INIT_ARRAY_PATTERN_HDR_REPETITIONS_MASK 0xFFFFFF 1720 #define INIT_ARRAY_PATTERN_HDR_REPETITIONS_SHIFT 8 1721 }; 1722 1723 /* init array header union */ 1724 union init_array_hdr { 1725 struct init_array_raw_hdr raw; 1726 struct init_array_standard_hdr standard; 1727 struct init_array_zipped_hdr zipped; 1728 struct init_array_pattern_hdr pattern; 1729 }; 1730 1731 /* init array types */ 1732 enum init_array_types { 1733 INIT_ARR_STANDARD, 1734 INIT_ARR_ZIPPED, 1735 INIT_ARR_PATTERN, 1736 MAX_INIT_ARRAY_TYPES 1737 }; 1738 1739 /* init operation: callback */ 1740 struct init_callback_op { 1741 __le32 op_data; 1742 #define INIT_CALLBACK_OP_OP_MASK 0xF 1743 #define INIT_CALLBACK_OP_OP_SHIFT 0 1744 #define INIT_CALLBACK_OP_RESERVED_MASK 0xFFFFFFF 1745 #define INIT_CALLBACK_OP_RESERVED_SHIFT 4 1746 __le16 callback_id; 1747 __le16 block_id; 1748 }; 1749 1750 /* init operation: delay */ 1751 struct init_delay_op { 1752 __le32 op_data; 1753 #define INIT_DELAY_OP_OP_MASK 0xF 1754 #define INIT_DELAY_OP_OP_SHIFT 0 1755 #define INIT_DELAY_OP_RESERVED_MASK 0xFFFFFFF 1756 #define INIT_DELAY_OP_RESERVED_SHIFT 4 1757 __le32 delay; 1758 }; 1759 1760 /* init operation: if_mode */ 1761 struct init_if_mode_op { 1762 __le32 op_data; 1763 #define INIT_IF_MODE_OP_OP_MASK 0xF 1764 #define INIT_IF_MODE_OP_OP_SHIFT 0 1765 #define INIT_IF_MODE_OP_RESERVED1_MASK 0xFFF 1766 #define INIT_IF_MODE_OP_RESERVED1_SHIFT 4 1767 #define INIT_IF_MODE_OP_CMD_OFFSET_MASK 0xFFFF 1768 #define INIT_IF_MODE_OP_CMD_OFFSET_SHIFT 16 1769 __le16 reserved2; 1770 __le16 modes_buf_offset; 1771 }; 1772 1773 /* init operation: if_phase */ 1774 struct init_if_phase_op { 1775 __le32 op_data; 1776 #define INIT_IF_PHASE_OP_OP_MASK 0xF 1777 #define INIT_IF_PHASE_OP_OP_SHIFT 0 1778 #define INIT_IF_PHASE_OP_DMAE_ENABLE_MASK 0x1 1779 #define INIT_IF_PHASE_OP_DMAE_ENABLE_SHIFT 4 1780 #define INIT_IF_PHASE_OP_RESERVED1_MASK 0x7FF 1781 #define INIT_IF_PHASE_OP_RESERVED1_SHIFT 5 1782 #define INIT_IF_PHASE_OP_CMD_OFFSET_MASK 0xFFFF 1783 #define INIT_IF_PHASE_OP_CMD_OFFSET_SHIFT 16 1784 __le32 phase_data; 1785 #define INIT_IF_PHASE_OP_PHASE_MASK 0xFF 1786 #define INIT_IF_PHASE_OP_PHASE_SHIFT 0 1787 #define INIT_IF_PHASE_OP_RESERVED2_MASK 0xFF 1788 #define INIT_IF_PHASE_OP_RESERVED2_SHIFT 8 1789 #define INIT_IF_PHASE_OP_PHASE_ID_MASK 0xFFFF 1790 #define INIT_IF_PHASE_OP_PHASE_ID_SHIFT 16 1791 }; 1792 1793 /* init mode operators */ 1794 enum init_mode_ops { 1795 INIT_MODE_OP_NOT, 1796 INIT_MODE_OP_OR, 1797 INIT_MODE_OP_AND, 1798 MAX_INIT_MODE_OPS 1799 }; 1800 1801 /* init operation: raw */ 1802 struct init_raw_op { 1803 __le32 op_data; 1804 #define INIT_RAW_OP_OP_MASK 0xF 1805 #define INIT_RAW_OP_OP_SHIFT 0 1806 #define INIT_RAW_OP_PARAM1_MASK 0xFFFFFFF 1807 #define INIT_RAW_OP_PARAM1_SHIFT 4 1808 __le32 param2; 1809 }; 1810 1811 /* init array params */ 1812 struct init_op_array_params { 1813 __le16 size; 1814 __le16 offset; 1815 }; 1816 1817 /* Write init operation arguments */ 1818 union init_write_args { 1819 __le32 inline_val; 1820 __le32 zeros_count; 1821 __le32 array_offset; 1822 struct init_op_array_params runtime; 1823 }; 1824 1825 /* init operation: write */ 1826 struct init_write_op { 1827 __le32 data; 1828 #define INIT_WRITE_OP_OP_MASK 0xF 1829 #define INIT_WRITE_OP_OP_SHIFT 0 1830 #define INIT_WRITE_OP_SOURCE_MASK 0x7 1831 #define INIT_WRITE_OP_SOURCE_SHIFT 4 1832 #define INIT_WRITE_OP_RESERVED_MASK 0x1 1833 #define INIT_WRITE_OP_RESERVED_SHIFT 7 1834 #define INIT_WRITE_OP_WIDE_BUS_MASK 0x1 1835 #define INIT_WRITE_OP_WIDE_BUS_SHIFT 8 1836 #define INIT_WRITE_OP_ADDRESS_MASK 0x7FFFFF 1837 #define INIT_WRITE_OP_ADDRESS_SHIFT 9 1838 union init_write_args args; 1839 }; 1840 1841 /* init operation: read */ 1842 struct init_read_op { 1843 __le32 op_data; 1844 #define INIT_READ_OP_OP_MASK 0xF 1845 #define INIT_READ_OP_OP_SHIFT 0 1846 #define INIT_READ_OP_POLL_TYPE_MASK 0xF 1847 #define INIT_READ_OP_POLL_TYPE_SHIFT 4 1848 #define INIT_READ_OP_RESERVED_MASK 0x1 1849 #define INIT_READ_OP_RESERVED_SHIFT 8 1850 #define INIT_READ_OP_ADDRESS_MASK 0x7FFFFF 1851 #define INIT_READ_OP_ADDRESS_SHIFT 9 1852 __le32 expected_val; 1853 1854 }; 1855 1856 /* Init operations union */ 1857 union init_op { 1858 struct init_raw_op raw; 1859 struct init_write_op write; 1860 struct init_read_op read; 1861 struct init_if_mode_op if_mode; 1862 struct init_if_phase_op if_phase; 1863 struct init_callback_op callback; 1864 struct init_delay_op delay; 1865 }; 1866 1867 /* Init command operation types */ 1868 enum init_op_types { 1869 INIT_OP_READ, 1870 INIT_OP_WRITE, 1871 INIT_OP_IF_MODE, 1872 INIT_OP_IF_PHASE, 1873 INIT_OP_DELAY, 1874 INIT_OP_CALLBACK, 1875 MAX_INIT_OP_TYPES 1876 }; 1877 1878 /* init polling types */ 1879 enum init_poll_types { 1880 INIT_POLL_NONE, 1881 INIT_POLL_EQ, 1882 INIT_POLL_OR, 1883 INIT_POLL_AND, 1884 MAX_INIT_POLL_TYPES 1885 }; 1886 1887 /* init source types */ 1888 enum init_source_types { 1889 INIT_SRC_INLINE, 1890 INIT_SRC_ZEROS, 1891 INIT_SRC_ARRAY, 1892 INIT_SRC_RUNTIME, 1893 MAX_INIT_SOURCE_TYPES 1894 }; 1895 1896 /* Internal RAM Offsets macro data */ 1897 struct iro { 1898 __le32 base; 1899 __le16 m1; 1900 __le16 m2; 1901 __le16 m3; 1902 __le16 size; 1903 }; 1904 1905 /** 1906 * @brief qed_dbg_print_attn - Prints attention registers values in the specified results struct. 1907 * 1908 * @param p_hwfn 1909 * @param results - Pointer to the attention read results 1910 * 1911 * @return error if one of the following holds: 1912 * - the version wasn't set 1913 * Otherwise, returns ok. 1914 */ 1915 enum dbg_status qed_dbg_print_attn(struct qed_hwfn *p_hwfn, 1916 struct dbg_attn_block_result *results); 1917 1918 #define MAX_NAME_LEN 16 1919 1920 /* Win 2 */ 1921 #define GTT_BAR0_MAP_REG_IGU_CMD \ 1922 0x00f000UL 1923 1924 /* Win 3 */ 1925 #define GTT_BAR0_MAP_REG_TSDM_RAM \ 1926 0x010000UL 1927 1928 /* Win 4 */ 1929 #define GTT_BAR0_MAP_REG_MSDM_RAM \ 1930 0x011000UL 1931 1932 /* Win 5 */ 1933 #define GTT_BAR0_MAP_REG_MSDM_RAM_1024 \ 1934 0x012000UL 1935 1936 /* Win 6 */ 1937 #define GTT_BAR0_MAP_REG_USDM_RAM \ 1938 0x013000UL 1939 1940 /* Win 7 */ 1941 #define GTT_BAR0_MAP_REG_USDM_RAM_1024 \ 1942 0x014000UL 1943 1944 /* Win 8 */ 1945 #define GTT_BAR0_MAP_REG_USDM_RAM_2048 \ 1946 0x015000UL 1947 1948 /* Win 9 */ 1949 #define GTT_BAR0_MAP_REG_XSDM_RAM \ 1950 0x016000UL 1951 1952 /* Win 10 */ 1953 #define GTT_BAR0_MAP_REG_YSDM_RAM \ 1954 0x017000UL 1955 1956 /* Win 11 */ 1957 #define GTT_BAR0_MAP_REG_PSDM_RAM \ 1958 0x018000UL 1959 1960 /** 1961 * @brief qed_qm_pf_mem_size - prepare QM ILT sizes 1962 * 1963 * Returns the required host memory size in 4KB units. 1964 * Must be called before all QM init HSI functions. 1965 * 1966 * @param pf_id - physical function ID 1967 * @param num_pf_cids - number of connections used by this PF 1968 * @param num_vf_cids - number of connections used by VFs of this PF 1969 * @param num_tids - number of tasks used by this PF 1970 * @param num_pf_pqs - number of PQs used by this PF 1971 * @param num_vf_pqs - number of PQs used by VFs of this PF 1972 * 1973 * @return The required host memory size in 4KB units. 1974 */ 1975 u32 qed_qm_pf_mem_size(u8 pf_id, 1976 u32 num_pf_cids, 1977 u32 num_vf_cids, 1978 u32 num_tids, u16 num_pf_pqs, u16 num_vf_pqs); 1979 1980 struct qed_qm_common_rt_init_params { 1981 u8 max_ports_per_engine; 1982 u8 max_phys_tcs_per_port; 1983 bool pf_rl_en; 1984 bool pf_wfq_en; 1985 bool vport_rl_en; 1986 bool vport_wfq_en; 1987 struct init_qm_port_params *port_params; 1988 }; 1989 1990 int qed_qm_common_rt_init(struct qed_hwfn *p_hwfn, 1991 struct qed_qm_common_rt_init_params *p_params); 1992 1993 struct qed_qm_pf_rt_init_params { 1994 u8 port_id; 1995 u8 pf_id; 1996 u8 max_phys_tcs_per_port; 1997 bool is_first_pf; 1998 u32 num_pf_cids; 1999 u32 num_vf_cids; 2000 u32 num_tids; 2001 u16 start_pq; 2002 u16 num_pf_pqs; 2003 u16 num_vf_pqs; 2004 u8 start_vport; 2005 u8 num_vports; 2006 u8 pf_wfq; 2007 u32 pf_rl; 2008 struct init_qm_pq_params *pq_params; 2009 struct init_qm_vport_params *vport_params; 2010 }; 2011 2012 int qed_qm_pf_rt_init(struct qed_hwfn *p_hwfn, 2013 struct qed_ptt *p_ptt, 2014 struct qed_qm_pf_rt_init_params *p_params); 2015 2016 /** 2017 * @brief qed_init_pf_wfq - Initializes the WFQ weight of the specified PF 2018 * 2019 * @param p_hwfn 2020 * @param p_ptt - ptt window used for writing the registers 2021 * @param pf_id - PF ID 2022 * @param pf_wfq - WFQ weight. Must be non-zero. 2023 * 2024 * @return 0 on success, -1 on error. 2025 */ 2026 int qed_init_pf_wfq(struct qed_hwfn *p_hwfn, 2027 struct qed_ptt *p_ptt, u8 pf_id, u16 pf_wfq); 2028 2029 /** 2030 * @brief qed_init_pf_rl - Initializes the rate limit of the specified PF 2031 * 2032 * @param p_hwfn 2033 * @param p_ptt - ptt window used for writing the registers 2034 * @param pf_id - PF ID 2035 * @param pf_rl - rate limit in Mb/sec units 2036 * 2037 * @return 0 on success, -1 on error. 2038 */ 2039 int qed_init_pf_rl(struct qed_hwfn *p_hwfn, 2040 struct qed_ptt *p_ptt, u8 pf_id, u32 pf_rl); 2041 2042 /** 2043 * @brief qed_init_vport_wfq Initializes the WFQ weight of the specified VPORT 2044 * 2045 * @param p_hwfn 2046 * @param p_ptt - ptt window used for writing the registers 2047 * @param first_tx_pq_id- An array containing the first Tx PQ ID associated 2048 * with the VPORT for each TC. This array is filled by 2049 * qed_qm_pf_rt_init 2050 * @param vport_wfq - WFQ weight. Must be non-zero. 2051 * 2052 * @return 0 on success, -1 on error. 2053 */ 2054 int qed_init_vport_wfq(struct qed_hwfn *p_hwfn, 2055 struct qed_ptt *p_ptt, 2056 u16 first_tx_pq_id[NUM_OF_TCS], u16 vport_wfq); 2057 2058 /** 2059 * @brief qed_init_vport_rl - Initializes the rate limit of the specified VPORT 2060 * 2061 * @param p_hwfn 2062 * @param p_ptt - ptt window used for writing the registers 2063 * @param vport_id - VPORT ID 2064 * @param vport_rl - rate limit in Mb/sec units 2065 * 2066 * @return 0 on success, -1 on error. 2067 */ 2068 int qed_init_vport_rl(struct qed_hwfn *p_hwfn, 2069 struct qed_ptt *p_ptt, u8 vport_id, u32 vport_rl); 2070 /** 2071 * @brief qed_send_qm_stop_cmd Sends a stop command to the QM 2072 * 2073 * @param p_hwfn 2074 * @param p_ptt 2075 * @param is_release_cmd - true for release, false for stop. 2076 * @param is_tx_pq - true for Tx PQs, false for Other PQs. 2077 * @param start_pq - first PQ ID to stop 2078 * @param num_pqs - Number of PQs to stop, starting from start_pq. 2079 * 2080 * @return bool, true if successful, false if timeout occured while waiting for QM command done. 2081 */ 2082 bool qed_send_qm_stop_cmd(struct qed_hwfn *p_hwfn, 2083 struct qed_ptt *p_ptt, 2084 bool is_release_cmd, 2085 bool is_tx_pq, u16 start_pq, u16 num_pqs); 2086 2087 /** 2088 * @brief qed_set_vxlan_dest_port - initializes vxlan tunnel destination udp port 2089 * 2090 * @param p_ptt - ptt window used for writing the registers. 2091 * @param dest_port - vxlan destination udp port. 2092 */ 2093 void qed_set_vxlan_dest_port(struct qed_hwfn *p_hwfn, 2094 struct qed_ptt *p_ptt, u16 dest_port); 2095 2096 /** 2097 * @brief qed_set_vxlan_enable - enable or disable VXLAN tunnel in HW 2098 * 2099 * @param p_ptt - ptt window used for writing the registers. 2100 * @param vxlan_enable - vxlan enable flag. 2101 */ 2102 void qed_set_vxlan_enable(struct qed_hwfn *p_hwfn, 2103 struct qed_ptt *p_ptt, bool vxlan_enable); 2104 2105 /** 2106 * @brief qed_set_gre_enable - enable or disable GRE tunnel in HW 2107 * 2108 * @param p_ptt - ptt window used for writing the registers. 2109 * @param eth_gre_enable - eth GRE enable enable flag. 2110 * @param ip_gre_enable - IP GRE enable enable flag. 2111 */ 2112 void qed_set_gre_enable(struct qed_hwfn *p_hwfn, 2113 struct qed_ptt *p_ptt, 2114 bool eth_gre_enable, bool ip_gre_enable); 2115 2116 /** 2117 * @brief qed_set_geneve_dest_port - initializes geneve tunnel destination udp port 2118 * 2119 * @param p_ptt - ptt window used for writing the registers. 2120 * @param dest_port - geneve destination udp port. 2121 */ 2122 void qed_set_geneve_dest_port(struct qed_hwfn *p_hwfn, 2123 struct qed_ptt *p_ptt, u16 dest_port); 2124 2125 /** 2126 * @brief qed_set_gre_enable - enable or disable GRE tunnel in HW 2127 * 2128 * @param p_ptt - ptt window used for writing the registers. 2129 * @param eth_geneve_enable - eth GENEVE enable enable flag. 2130 * @param ip_geneve_enable - IP GENEVE enable enable flag. 2131 */ 2132 void qed_set_geneve_enable(struct qed_hwfn *p_hwfn, 2133 struct qed_ptt *p_ptt, 2134 bool eth_geneve_enable, bool ip_geneve_enable); 2135 2136 #define YSTORM_FLOW_CONTROL_MODE_OFFSET (IRO[0].base) 2137 #define YSTORM_FLOW_CONTROL_MODE_SIZE (IRO[0].size) 2138 #define TSTORM_PORT_STAT_OFFSET(port_id) \ 2139 (IRO[1].base + ((port_id) * IRO[1].m1)) 2140 #define TSTORM_PORT_STAT_SIZE (IRO[1].size) 2141 #define USTORM_VF_PF_CHANNEL_READY_OFFSET(vf_id) \ 2142 (IRO[3].base + ((vf_id) * IRO[3].m1)) 2143 #define USTORM_VF_PF_CHANNEL_READY_SIZE (IRO[3].size) 2144 #define USTORM_FLR_FINAL_ACK_OFFSET(pf_id) \ 2145 (IRO[4].base + (pf_id) * IRO[4].m1) 2146 #define USTORM_FLR_FINAL_ACK_SIZE (IRO[4].size) 2147 #define USTORM_EQE_CONS_OFFSET(pf_id) \ 2148 (IRO[5].base + ((pf_id) * IRO[5].m1)) 2149 #define USTORM_EQE_CONS_SIZE (IRO[5].size) 2150 #define USTORM_ETH_QUEUE_ZONE_OFFSET(queue_zone_id) \ 2151 (IRO[6].base + ((queue_zone_id) * IRO[6].m1)) 2152 #define USTORM_ETH_QUEUE_ZONE_SIZE (IRO[6].size) 2153 #define USTORM_COMMON_QUEUE_CONS_OFFSET(queue_zone_id) \ 2154 (IRO[7].base + ((queue_zone_id) * IRO[7].m1)) 2155 #define USTORM_COMMON_QUEUE_CONS_SIZE (IRO[7].size) 2156 #define MSTORM_QUEUE_STAT_OFFSET(stat_counter_id) \ 2157 (IRO[18].base + ((stat_counter_id) * IRO[18].m1)) 2158 #define MSTORM_QUEUE_STAT_SIZE (IRO[18].size) 2159 #define MSTORM_ETH_PF_PRODS_OFFSET(queue_id) \ 2160 (IRO[19].base + ((queue_id) * IRO[19].m1)) 2161 #define MSTORM_ETH_PF_PRODS_SIZE (IRO[19].size) 2162 #define MSTORM_TPA_TIMEOUT_US_OFFSET (IRO[20].base) 2163 #define MSTORM_TPA_TIMEOUT_US_SIZE (IRO[20].size) 2164 #define MSTORM_ETH_PF_STAT_OFFSET(pf_id) \ 2165 (IRO[21].base + ((pf_id) * IRO[21].m1)) 2166 #define MSTORM_ETH_PF_STAT_SIZE (IRO[21].size) 2167 #define USTORM_QUEUE_STAT_OFFSET(stat_counter_id) \ 2168 (IRO[22].base + ((stat_counter_id) * IRO[22].m1)) 2169 #define USTORM_QUEUE_STAT_SIZE (IRO[22].size) 2170 #define USTORM_ETH_PF_STAT_OFFSET(pf_id) \ 2171 (IRO[23].base + ((pf_id) * IRO[23].m1)) 2172 #define USTORM_ETH_PF_STAT_SIZE (IRO[23].size) 2173 #define PSTORM_QUEUE_STAT_OFFSET(stat_counter_id) \ 2174 (IRO[24].base + ((stat_counter_id) * IRO[24].m1)) 2175 #define PSTORM_QUEUE_STAT_SIZE (IRO[24].size) 2176 #define PSTORM_ETH_PF_STAT_OFFSET(pf_id) \ 2177 (IRO[25].base + ((pf_id) * IRO[25].m1)) 2178 #define PSTORM_ETH_PF_STAT_SIZE (IRO[25].size) 2179 #define PSTORM_CTL_FRAME_ETHTYPE_OFFSET(ethtype) \ 2180 (IRO[26].base + ((ethtype) * IRO[26].m1)) 2181 #define PSTORM_CTL_FRAME_ETHTYPE_SIZE (IRO[26].size) 2182 #define TSTORM_ETH_PRS_INPUT_OFFSET (IRO[27].base) 2183 #define TSTORM_ETH_PRS_INPUT_SIZE (IRO[27].size) 2184 #define ETH_RX_RATE_LIMIT_OFFSET(pf_id) \ 2185 (IRO[28].base + ((pf_id) * IRO[28].m1)) 2186 #define ETH_RX_RATE_LIMIT_SIZE (IRO[28].size) 2187 #define XSTORM_ETH_QUEUE_ZONE_OFFSET(queue_id) \ 2188 (IRO[29].base + ((queue_id) * IRO[29].m1)) 2189 #define XSTORM_ETH_QUEUE_ZONE_SIZE (IRO[29].size) 2190 2191 static const struct iro iro_arr[46] = { 2192 {0x0, 0x0, 0x0, 0x0, 0x8}, 2193 {0x4cb0, 0x78, 0x0, 0x0, 0x78}, 2194 {0x6318, 0x20, 0x0, 0x0, 0x20}, 2195 {0xb00, 0x8, 0x0, 0x0, 0x4}, 2196 {0xa80, 0x8, 0x0, 0x0, 0x4}, 2197 {0x0, 0x8, 0x0, 0x0, 0x2}, 2198 {0x80, 0x8, 0x0, 0x0, 0x4}, 2199 {0x84, 0x8, 0x0, 0x0, 0x2}, 2200 {0x4bc0, 0x0, 0x0, 0x0, 0x78}, 2201 {0x3df0, 0x0, 0x0, 0x0, 0x78}, 2202 {0x29b0, 0x0, 0x0, 0x0, 0x78}, 2203 {0x4c38, 0x0, 0x0, 0x0, 0x78}, 2204 {0x4a48, 0x0, 0x0, 0x0, 0x78}, 2205 {0x7e48, 0x0, 0x0, 0x0, 0x78}, 2206 {0xa28, 0x8, 0x0, 0x0, 0x8}, 2207 {0x60f8, 0x10, 0x0, 0x0, 0x10}, 2208 {0xb820, 0x30, 0x0, 0x0, 0x30}, 2209 {0x95b8, 0x30, 0x0, 0x0, 0x30}, 2210 {0x4c18, 0x80, 0x0, 0x0, 0x40}, 2211 {0x1f8, 0x4, 0x0, 0x0, 0x4}, 2212 {0xc9a8, 0x0, 0x0, 0x0, 0x4}, 2213 {0x4c58, 0x80, 0x0, 0x0, 0x20}, 2214 {0x8050, 0x40, 0x0, 0x0, 0x30}, 2215 {0xe770, 0x60, 0x0, 0x0, 0x60}, 2216 {0x2b48, 0x80, 0x0, 0x0, 0x38}, 2217 {0xdf88, 0x78, 0x0, 0x0, 0x78}, 2218 {0x1f8, 0x4, 0x0, 0x0, 0x4}, 2219 {0xacf0, 0x0, 0x0, 0x0, 0xf0}, 2220 {0xade0, 0x8, 0x0, 0x0, 0x8}, 2221 {0x1f8, 0x8, 0x0, 0x0, 0x8}, 2222 {0xac0, 0x8, 0x0, 0x0, 0x8}, 2223 {0x2578, 0x8, 0x0, 0x0, 0x8}, 2224 {0x24f8, 0x8, 0x0, 0x0, 0x8}, 2225 {0x0, 0x8, 0x0, 0x0, 0x8}, 2226 {0x200, 0x10, 0x8, 0x0, 0x8}, 2227 {0xb78, 0x10, 0x8, 0x0, 0x2}, 2228 {0xd888, 0x38, 0x0, 0x0, 0x24}, 2229 {0x12120, 0x10, 0x0, 0x0, 0x8}, 2230 {0x11b20, 0x38, 0x0, 0x0, 0x18}, 2231 {0xa8c0, 0x30, 0x0, 0x0, 0x10}, 2232 {0x86f8, 0x28, 0x0, 0x0, 0x18}, 2233 {0xeff8, 0x10, 0x0, 0x0, 0x10}, 2234 {0xdd08, 0x48, 0x0, 0x0, 0x38}, 2235 {0xf460, 0x20, 0x0, 0x0, 0x20}, 2236 {0x2b80, 0x80, 0x0, 0x0, 0x10}, 2237 {0x5000, 0x10, 0x0, 0x0, 0x10}, 2238 }; 2239 2240 /* Runtime array offsets */ 2241 #define DORQ_REG_PF_MAX_ICID_0_RT_OFFSET 0 2242 #define DORQ_REG_PF_MAX_ICID_1_RT_OFFSET 1 2243 #define DORQ_REG_PF_MAX_ICID_2_RT_OFFSET 2 2244 #define DORQ_REG_PF_MAX_ICID_3_RT_OFFSET 3 2245 #define DORQ_REG_PF_MAX_ICID_4_RT_OFFSET 4 2246 #define DORQ_REG_PF_MAX_ICID_5_RT_OFFSET 5 2247 #define DORQ_REG_PF_MAX_ICID_6_RT_OFFSET 6 2248 #define DORQ_REG_PF_MAX_ICID_7_RT_OFFSET 7 2249 #define DORQ_REG_VF_MAX_ICID_0_RT_OFFSET 8 2250 #define DORQ_REG_VF_MAX_ICID_1_RT_OFFSET 9 2251 #define DORQ_REG_VF_MAX_ICID_2_RT_OFFSET 10 2252 #define DORQ_REG_VF_MAX_ICID_3_RT_OFFSET 11 2253 #define DORQ_REG_VF_MAX_ICID_4_RT_OFFSET 12 2254 #define DORQ_REG_VF_MAX_ICID_5_RT_OFFSET 13 2255 #define DORQ_REG_VF_MAX_ICID_6_RT_OFFSET 14 2256 #define DORQ_REG_VF_MAX_ICID_7_RT_OFFSET 15 2257 #define DORQ_REG_PF_WAKE_ALL_RT_OFFSET 16 2258 #define DORQ_REG_TAG1_ETHERTYPE_RT_OFFSET 17 2259 #define IGU_REG_PF_CONFIGURATION_RT_OFFSET 18 2260 #define IGU_REG_VF_CONFIGURATION_RT_OFFSET 19 2261 #define IGU_REG_ATTN_MSG_ADDR_L_RT_OFFSET 20 2262 #define IGU_REG_ATTN_MSG_ADDR_H_RT_OFFSET 21 2263 #define IGU_REG_LEADING_EDGE_LATCH_RT_OFFSET 22 2264 #define IGU_REG_TRAILING_EDGE_LATCH_RT_OFFSET 23 2265 #define CAU_REG_CQE_AGG_UNIT_SIZE_RT_OFFSET 24 2266 #define CAU_REG_SB_VAR_MEMORY_RT_OFFSET 761 2267 #define CAU_REG_SB_VAR_MEMORY_RT_SIZE 736 2268 #define CAU_REG_SB_VAR_MEMORY_RT_OFFSET 761 2269 #define CAU_REG_SB_VAR_MEMORY_RT_SIZE 736 2270 #define CAU_REG_SB_ADDR_MEMORY_RT_OFFSET 1497 2271 #define CAU_REG_SB_ADDR_MEMORY_RT_SIZE 736 2272 #define CAU_REG_PI_MEMORY_RT_OFFSET 2233 2273 #define CAU_REG_PI_MEMORY_RT_SIZE 4416 2274 #define PRS_REG_SEARCH_RESP_INITIATOR_TYPE_RT_OFFSET 6649 2275 #define PRS_REG_TASK_ID_MAX_INITIATOR_PF_RT_OFFSET 6650 2276 #define PRS_REG_TASK_ID_MAX_INITIATOR_VF_RT_OFFSET 6651 2277 #define PRS_REG_TASK_ID_MAX_TARGET_PF_RT_OFFSET 6652 2278 #define PRS_REG_TASK_ID_MAX_TARGET_VF_RT_OFFSET 6653 2279 #define PRS_REG_SEARCH_TCP_RT_OFFSET 6654 2280 #define PRS_REG_SEARCH_FCOE_RT_OFFSET 6655 2281 #define PRS_REG_SEARCH_ROCE_RT_OFFSET 6656 2282 #define PRS_REG_ROCE_DEST_QP_MAX_VF_RT_OFFSET 6657 2283 #define PRS_REG_ROCE_DEST_QP_MAX_PF_RT_OFFSET 6658 2284 #define PRS_REG_SEARCH_OPENFLOW_RT_OFFSET 6659 2285 #define PRS_REG_SEARCH_NON_IP_AS_OPENFLOW_RT_OFFSET 6660 2286 #define PRS_REG_OPENFLOW_SUPPORT_ONLY_KNOWN_OVER_IP_RT_OFFSET 6661 2287 #define PRS_REG_OPENFLOW_SEARCH_KEY_MASK_RT_OFFSET 6662 2288 #define PRS_REG_TAG_ETHERTYPE_0_RT_OFFSET 6663 2289 #define PRS_REG_LIGHT_L2_ETHERTYPE_EN_RT_OFFSET 6664 2290 #define SRC_REG_FIRSTFREE_RT_OFFSET 6665 2291 #define SRC_REG_FIRSTFREE_RT_SIZE 2 2292 #define SRC_REG_LASTFREE_RT_OFFSET 6667 2293 #define SRC_REG_LASTFREE_RT_SIZE 2 2294 #define SRC_REG_COUNTFREE_RT_OFFSET 6669 2295 #define SRC_REG_NUMBER_HASH_BITS_RT_OFFSET 6670 2296 #define PSWRQ2_REG_CDUT_P_SIZE_RT_OFFSET 6671 2297 #define PSWRQ2_REG_CDUC_P_SIZE_RT_OFFSET 6672 2298 #define PSWRQ2_REG_TM_P_SIZE_RT_OFFSET 6673 2299 #define PSWRQ2_REG_QM_P_SIZE_RT_OFFSET 6674 2300 #define PSWRQ2_REG_SRC_P_SIZE_RT_OFFSET 6675 2301 #define PSWRQ2_REG_TSDM_P_SIZE_RT_OFFSET 6676 2302 #define PSWRQ2_REG_TM_FIRST_ILT_RT_OFFSET 6677 2303 #define PSWRQ2_REG_TM_LAST_ILT_RT_OFFSET 6678 2304 #define PSWRQ2_REG_QM_FIRST_ILT_RT_OFFSET 6679 2305 #define PSWRQ2_REG_QM_LAST_ILT_RT_OFFSET 6680 2306 #define PSWRQ2_REG_SRC_FIRST_ILT_RT_OFFSET 6681 2307 #define PSWRQ2_REG_SRC_LAST_ILT_RT_OFFSET 6682 2308 #define PSWRQ2_REG_CDUC_FIRST_ILT_RT_OFFSET 6683 2309 #define PSWRQ2_REG_CDUC_LAST_ILT_RT_OFFSET 6684 2310 #define PSWRQ2_REG_CDUT_FIRST_ILT_RT_OFFSET 6685 2311 #define PSWRQ2_REG_CDUT_LAST_ILT_RT_OFFSET 6686 2312 #define PSWRQ2_REG_TSDM_FIRST_ILT_RT_OFFSET 6687 2313 #define PSWRQ2_REG_TSDM_LAST_ILT_RT_OFFSET 6688 2314 #define PSWRQ2_REG_TM_NUMBER_OF_PF_BLOCKS_RT_OFFSET 6689 2315 #define PSWRQ2_REG_CDUT_NUMBER_OF_PF_BLOCKS_RT_OFFSET 6690 2316 #define PSWRQ2_REG_CDUC_NUMBER_OF_PF_BLOCKS_RT_OFFSET 6691 2317 #define PSWRQ2_REG_TM_VF_BLOCKS_RT_OFFSET 6692 2318 #define PSWRQ2_REG_CDUT_VF_BLOCKS_RT_OFFSET 6693 2319 #define PSWRQ2_REG_CDUC_VF_BLOCKS_RT_OFFSET 6694 2320 #define PSWRQ2_REG_TM_BLOCKS_FACTOR_RT_OFFSET 6695 2321 #define PSWRQ2_REG_CDUT_BLOCKS_FACTOR_RT_OFFSET 6696 2322 #define PSWRQ2_REG_CDUC_BLOCKS_FACTOR_RT_OFFSET 6697 2323 #define PSWRQ2_REG_VF_BASE_RT_OFFSET 6698 2324 #define PSWRQ2_REG_VF_LAST_ILT_RT_OFFSET 6699 2325 #define PSWRQ2_REG_WR_MBS0_RT_OFFSET 6700 2326 #define PSWRQ2_REG_RD_MBS0_RT_OFFSET 6701 2327 #define PSWRQ2_REG_DRAM_ALIGN_WR_RT_OFFSET 6702 2328 #define PSWRQ2_REG_DRAM_ALIGN_RD_RT_OFFSET 6703 2329 #define PSWRQ2_REG_ILT_MEMORY_RT_OFFSET 6704 2330 #define PSWRQ2_REG_ILT_MEMORY_RT_SIZE 22000 2331 #define PGLUE_REG_B_VF_BASE_RT_OFFSET 28704 2332 #define PGLUE_REG_B_CACHE_LINE_SIZE_RT_OFFSET 28705 2333 #define PGLUE_REG_B_PF_BAR0_SIZE_RT_OFFSET 28706 2334 #define PGLUE_REG_B_PF_BAR1_SIZE_RT_OFFSET 28707 2335 #define PGLUE_REG_B_VF_BAR1_SIZE_RT_OFFSET 28708 2336 #define TM_REG_VF_ENABLE_CONN_RT_OFFSET 28709 2337 #define TM_REG_PF_ENABLE_CONN_RT_OFFSET 28710 2338 #define TM_REG_PF_ENABLE_TASK_RT_OFFSET 28711 2339 #define TM_REG_GROUP_SIZE_RESOLUTION_CONN_RT_OFFSET 28712 2340 #define TM_REG_GROUP_SIZE_RESOLUTION_TASK_RT_OFFSET 28713 2341 #define TM_REG_CONFIG_CONN_MEM_RT_OFFSET 28714 2342 #define TM_REG_CONFIG_CONN_MEM_RT_SIZE 416 2343 #define TM_REG_CONFIG_TASK_MEM_RT_OFFSET 29130 2344 #define TM_REG_CONFIG_TASK_MEM_RT_SIZE 512 2345 #define QM_REG_MAXPQSIZE_0_RT_OFFSET 29642 2346 #define QM_REG_MAXPQSIZE_1_RT_OFFSET 29643 2347 #define QM_REG_MAXPQSIZE_2_RT_OFFSET 29644 2348 #define QM_REG_MAXPQSIZETXSEL_0_RT_OFFSET 29645 2349 #define QM_REG_MAXPQSIZETXSEL_1_RT_OFFSET 29646 2350 #define QM_REG_MAXPQSIZETXSEL_2_RT_OFFSET 29647 2351 #define QM_REG_MAXPQSIZETXSEL_3_RT_OFFSET 29648 2352 #define QM_REG_MAXPQSIZETXSEL_4_RT_OFFSET 29649 2353 #define QM_REG_MAXPQSIZETXSEL_5_RT_OFFSET 29650 2354 #define QM_REG_MAXPQSIZETXSEL_6_RT_OFFSET 29651 2355 #define QM_REG_MAXPQSIZETXSEL_7_RT_OFFSET 29652 2356 #define QM_REG_MAXPQSIZETXSEL_8_RT_OFFSET 29653 2357 #define QM_REG_MAXPQSIZETXSEL_9_RT_OFFSET 29654 2358 #define QM_REG_MAXPQSIZETXSEL_10_RT_OFFSET 29655 2359 #define QM_REG_MAXPQSIZETXSEL_11_RT_OFFSET 29656 2360 #define QM_REG_MAXPQSIZETXSEL_12_RT_OFFSET 29657 2361 #define QM_REG_MAXPQSIZETXSEL_13_RT_OFFSET 29658 2362 #define QM_REG_MAXPQSIZETXSEL_14_RT_OFFSET 29659 2363 #define QM_REG_MAXPQSIZETXSEL_15_RT_OFFSET 29660 2364 #define QM_REG_MAXPQSIZETXSEL_16_RT_OFFSET 29661 2365 #define QM_REG_MAXPQSIZETXSEL_17_RT_OFFSET 29662 2366 #define QM_REG_MAXPQSIZETXSEL_18_RT_OFFSET 29663 2367 #define QM_REG_MAXPQSIZETXSEL_19_RT_OFFSET 29664 2368 #define QM_REG_MAXPQSIZETXSEL_20_RT_OFFSET 29665 2369 #define QM_REG_MAXPQSIZETXSEL_21_RT_OFFSET 29666 2370 #define QM_REG_MAXPQSIZETXSEL_22_RT_OFFSET 29667 2371 #define QM_REG_MAXPQSIZETXSEL_23_RT_OFFSET 29668 2372 #define QM_REG_MAXPQSIZETXSEL_24_RT_OFFSET 29669 2373 #define QM_REG_MAXPQSIZETXSEL_25_RT_OFFSET 29670 2374 #define QM_REG_MAXPQSIZETXSEL_26_RT_OFFSET 29671 2375 #define QM_REG_MAXPQSIZETXSEL_27_RT_OFFSET 29672 2376 #define QM_REG_MAXPQSIZETXSEL_28_RT_OFFSET 29673 2377 #define QM_REG_MAXPQSIZETXSEL_29_RT_OFFSET 29674 2378 #define QM_REG_MAXPQSIZETXSEL_30_RT_OFFSET 29675 2379 #define QM_REG_MAXPQSIZETXSEL_31_RT_OFFSET 29676 2380 #define QM_REG_MAXPQSIZETXSEL_32_RT_OFFSET 29677 2381 #define QM_REG_MAXPQSIZETXSEL_33_RT_OFFSET 29678 2382 #define QM_REG_MAXPQSIZETXSEL_34_RT_OFFSET 29679 2383 #define QM_REG_MAXPQSIZETXSEL_35_RT_OFFSET 29680 2384 #define QM_REG_MAXPQSIZETXSEL_36_RT_OFFSET 29681 2385 #define QM_REG_MAXPQSIZETXSEL_37_RT_OFFSET 29682 2386 #define QM_REG_MAXPQSIZETXSEL_38_RT_OFFSET 29683 2387 #define QM_REG_MAXPQSIZETXSEL_39_RT_OFFSET 29684 2388 #define QM_REG_MAXPQSIZETXSEL_40_RT_OFFSET 29685 2389 #define QM_REG_MAXPQSIZETXSEL_41_RT_OFFSET 29686 2390 #define QM_REG_MAXPQSIZETXSEL_42_RT_OFFSET 29687 2391 #define QM_REG_MAXPQSIZETXSEL_43_RT_OFFSET 29688 2392 #define QM_REG_MAXPQSIZETXSEL_44_RT_OFFSET 29689 2393 #define QM_REG_MAXPQSIZETXSEL_45_RT_OFFSET 29690 2394 #define QM_REG_MAXPQSIZETXSEL_46_RT_OFFSET 29691 2395 #define QM_REG_MAXPQSIZETXSEL_47_RT_OFFSET 29692 2396 #define QM_REG_MAXPQSIZETXSEL_48_RT_OFFSET 29693 2397 #define QM_REG_MAXPQSIZETXSEL_49_RT_OFFSET 29694 2398 #define QM_REG_MAXPQSIZETXSEL_50_RT_OFFSET 29695 2399 #define QM_REG_MAXPQSIZETXSEL_51_RT_OFFSET 29696 2400 #define QM_REG_MAXPQSIZETXSEL_52_RT_OFFSET 29697 2401 #define QM_REG_MAXPQSIZETXSEL_53_RT_OFFSET 29698 2402 #define QM_REG_MAXPQSIZETXSEL_54_RT_OFFSET 29699 2403 #define QM_REG_MAXPQSIZETXSEL_55_RT_OFFSET 29700 2404 #define QM_REG_MAXPQSIZETXSEL_56_RT_OFFSET 29701 2405 #define QM_REG_MAXPQSIZETXSEL_57_RT_OFFSET 29702 2406 #define QM_REG_MAXPQSIZETXSEL_58_RT_OFFSET 29703 2407 #define QM_REG_MAXPQSIZETXSEL_59_RT_OFFSET 29704 2408 #define QM_REG_MAXPQSIZETXSEL_60_RT_OFFSET 29705 2409 #define QM_REG_MAXPQSIZETXSEL_61_RT_OFFSET 29706 2410 #define QM_REG_MAXPQSIZETXSEL_62_RT_OFFSET 29707 2411 #define QM_REG_MAXPQSIZETXSEL_63_RT_OFFSET 29708 2412 #define QM_REG_BASEADDROTHERPQ_RT_OFFSET 29709 2413 #define QM_REG_BASEADDROTHERPQ_RT_SIZE 128 2414 #define QM_REG_VOQCRDLINE_RT_OFFSET 29837 2415 #define QM_REG_VOQCRDLINE_RT_SIZE 20 2416 #define QM_REG_VOQINITCRDLINE_RT_OFFSET 29857 2417 #define QM_REG_VOQINITCRDLINE_RT_SIZE 20 2418 #define QM_REG_AFULLQMBYPTHRPFWFQ_RT_OFFSET 29877 2419 #define QM_REG_AFULLQMBYPTHRVPWFQ_RT_OFFSET 29878 2420 #define QM_REG_AFULLQMBYPTHRPFRL_RT_OFFSET 29879 2421 #define QM_REG_AFULLQMBYPTHRGLBLRL_RT_OFFSET 29880 2422 #define QM_REG_AFULLOPRTNSTCCRDMASK_RT_OFFSET 29881 2423 #define QM_REG_WRROTHERPQGRP_0_RT_OFFSET 29882 2424 #define QM_REG_WRROTHERPQGRP_1_RT_OFFSET 29883 2425 #define QM_REG_WRROTHERPQGRP_2_RT_OFFSET 29884 2426 #define QM_REG_WRROTHERPQGRP_3_RT_OFFSET 29885 2427 #define QM_REG_WRROTHERPQGRP_4_RT_OFFSET 29886 2428 #define QM_REG_WRROTHERPQGRP_5_RT_OFFSET 29887 2429 #define QM_REG_WRROTHERPQGRP_6_RT_OFFSET 29888 2430 #define QM_REG_WRROTHERPQGRP_7_RT_OFFSET 29889 2431 #define QM_REG_WRROTHERPQGRP_8_RT_OFFSET 29890 2432 #define QM_REG_WRROTHERPQGRP_9_RT_OFFSET 29891 2433 #define QM_REG_WRROTHERPQGRP_10_RT_OFFSET 29892 2434 #define QM_REG_WRROTHERPQGRP_11_RT_OFFSET 29893 2435 #define QM_REG_WRROTHERPQGRP_12_RT_OFFSET 29894 2436 #define QM_REG_WRROTHERPQGRP_13_RT_OFFSET 29895 2437 #define QM_REG_WRROTHERPQGRP_14_RT_OFFSET 29896 2438 #define QM_REG_WRROTHERPQGRP_15_RT_OFFSET 29897 2439 #define QM_REG_WRROTHERGRPWEIGHT_0_RT_OFFSET 29898 2440 #define QM_REG_WRROTHERGRPWEIGHT_1_RT_OFFSET 29899 2441 #define QM_REG_WRROTHERGRPWEIGHT_2_RT_OFFSET 29900 2442 #define QM_REG_WRROTHERGRPWEIGHT_3_RT_OFFSET 29901 2443 #define QM_REG_WRRTXGRPWEIGHT_0_RT_OFFSET 29902 2444 #define QM_REG_WRRTXGRPWEIGHT_1_RT_OFFSET 29903 2445 #define QM_REG_PQTX2PF_0_RT_OFFSET 29904 2446 #define QM_REG_PQTX2PF_1_RT_OFFSET 29905 2447 #define QM_REG_PQTX2PF_2_RT_OFFSET 29906 2448 #define QM_REG_PQTX2PF_3_RT_OFFSET 29907 2449 #define QM_REG_PQTX2PF_4_RT_OFFSET 29908 2450 #define QM_REG_PQTX2PF_5_RT_OFFSET 29909 2451 #define QM_REG_PQTX2PF_6_RT_OFFSET 29910 2452 #define QM_REG_PQTX2PF_7_RT_OFFSET 29911 2453 #define QM_REG_PQTX2PF_8_RT_OFFSET 29912 2454 #define QM_REG_PQTX2PF_9_RT_OFFSET 29913 2455 #define QM_REG_PQTX2PF_10_RT_OFFSET 29914 2456 #define QM_REG_PQTX2PF_11_RT_OFFSET 29915 2457 #define QM_REG_PQTX2PF_12_RT_OFFSET 29916 2458 #define QM_REG_PQTX2PF_13_RT_OFFSET 29917 2459 #define QM_REG_PQTX2PF_14_RT_OFFSET 29918 2460 #define QM_REG_PQTX2PF_15_RT_OFFSET 29919 2461 #define QM_REG_PQTX2PF_16_RT_OFFSET 29920 2462 #define QM_REG_PQTX2PF_17_RT_OFFSET 29921 2463 #define QM_REG_PQTX2PF_18_RT_OFFSET 29922 2464 #define QM_REG_PQTX2PF_19_RT_OFFSET 29923 2465 #define QM_REG_PQTX2PF_20_RT_OFFSET 29924 2466 #define QM_REG_PQTX2PF_21_RT_OFFSET 29925 2467 #define QM_REG_PQTX2PF_22_RT_OFFSET 29926 2468 #define QM_REG_PQTX2PF_23_RT_OFFSET 29927 2469 #define QM_REG_PQTX2PF_24_RT_OFFSET 29928 2470 #define QM_REG_PQTX2PF_25_RT_OFFSET 29929 2471 #define QM_REG_PQTX2PF_26_RT_OFFSET 29930 2472 #define QM_REG_PQTX2PF_27_RT_OFFSET 29931 2473 #define QM_REG_PQTX2PF_28_RT_OFFSET 29932 2474 #define QM_REG_PQTX2PF_29_RT_OFFSET 29933 2475 #define QM_REG_PQTX2PF_30_RT_OFFSET 29934 2476 #define QM_REG_PQTX2PF_31_RT_OFFSET 29935 2477 #define QM_REG_PQTX2PF_32_RT_OFFSET 29936 2478 #define QM_REG_PQTX2PF_33_RT_OFFSET 29937 2479 #define QM_REG_PQTX2PF_34_RT_OFFSET 29938 2480 #define QM_REG_PQTX2PF_35_RT_OFFSET 29939 2481 #define QM_REG_PQTX2PF_36_RT_OFFSET 29940 2482 #define QM_REG_PQTX2PF_37_RT_OFFSET 29941 2483 #define QM_REG_PQTX2PF_38_RT_OFFSET 29942 2484 #define QM_REG_PQTX2PF_39_RT_OFFSET 29943 2485 #define QM_REG_PQTX2PF_40_RT_OFFSET 29944 2486 #define QM_REG_PQTX2PF_41_RT_OFFSET 29945 2487 #define QM_REG_PQTX2PF_42_RT_OFFSET 29946 2488 #define QM_REG_PQTX2PF_43_RT_OFFSET 29947 2489 #define QM_REG_PQTX2PF_44_RT_OFFSET 29948 2490 #define QM_REG_PQTX2PF_45_RT_OFFSET 29949 2491 #define QM_REG_PQTX2PF_46_RT_OFFSET 29950 2492 #define QM_REG_PQTX2PF_47_RT_OFFSET 29951 2493 #define QM_REG_PQTX2PF_48_RT_OFFSET 29952 2494 #define QM_REG_PQTX2PF_49_RT_OFFSET 29953 2495 #define QM_REG_PQTX2PF_50_RT_OFFSET 29954 2496 #define QM_REG_PQTX2PF_51_RT_OFFSET 29955 2497 #define QM_REG_PQTX2PF_52_RT_OFFSET 29956 2498 #define QM_REG_PQTX2PF_53_RT_OFFSET 29957 2499 #define QM_REG_PQTX2PF_54_RT_OFFSET 29958 2500 #define QM_REG_PQTX2PF_55_RT_OFFSET 29959 2501 #define QM_REG_PQTX2PF_56_RT_OFFSET 29960 2502 #define QM_REG_PQTX2PF_57_RT_OFFSET 29961 2503 #define QM_REG_PQTX2PF_58_RT_OFFSET 29962 2504 #define QM_REG_PQTX2PF_59_RT_OFFSET 29963 2505 #define QM_REG_PQTX2PF_60_RT_OFFSET 29964 2506 #define QM_REG_PQTX2PF_61_RT_OFFSET 29965 2507 #define QM_REG_PQTX2PF_62_RT_OFFSET 29966 2508 #define QM_REG_PQTX2PF_63_RT_OFFSET 29967 2509 #define QM_REG_PQOTHER2PF_0_RT_OFFSET 29968 2510 #define QM_REG_PQOTHER2PF_1_RT_OFFSET 29969 2511 #define QM_REG_PQOTHER2PF_2_RT_OFFSET 29970 2512 #define QM_REG_PQOTHER2PF_3_RT_OFFSET 29971 2513 #define QM_REG_PQOTHER2PF_4_RT_OFFSET 29972 2514 #define QM_REG_PQOTHER2PF_5_RT_OFFSET 29973 2515 #define QM_REG_PQOTHER2PF_6_RT_OFFSET 29974 2516 #define QM_REG_PQOTHER2PF_7_RT_OFFSET 29975 2517 #define QM_REG_PQOTHER2PF_8_RT_OFFSET 29976 2518 #define QM_REG_PQOTHER2PF_9_RT_OFFSET 29977 2519 #define QM_REG_PQOTHER2PF_10_RT_OFFSET 29978 2520 #define QM_REG_PQOTHER2PF_11_RT_OFFSET 29979 2521 #define QM_REG_PQOTHER2PF_12_RT_OFFSET 29980 2522 #define QM_REG_PQOTHER2PF_13_RT_OFFSET 29981 2523 #define QM_REG_PQOTHER2PF_14_RT_OFFSET 29982 2524 #define QM_REG_PQOTHER2PF_15_RT_OFFSET 29983 2525 #define QM_REG_RLGLBLPERIOD_0_RT_OFFSET 29984 2526 #define QM_REG_RLGLBLPERIOD_1_RT_OFFSET 29985 2527 #define QM_REG_RLGLBLPERIODTIMER_0_RT_OFFSET 29986 2528 #define QM_REG_RLGLBLPERIODTIMER_1_RT_OFFSET 29987 2529 #define QM_REG_RLGLBLPERIODSEL_0_RT_OFFSET 29988 2530 #define QM_REG_RLGLBLPERIODSEL_1_RT_OFFSET 29989 2531 #define QM_REG_RLGLBLPERIODSEL_2_RT_OFFSET 29990 2532 #define QM_REG_RLGLBLPERIODSEL_3_RT_OFFSET 29991 2533 #define QM_REG_RLGLBLPERIODSEL_4_RT_OFFSET 29992 2534 #define QM_REG_RLGLBLPERIODSEL_5_RT_OFFSET 29993 2535 #define QM_REG_RLGLBLPERIODSEL_6_RT_OFFSET 29994 2536 #define QM_REG_RLGLBLPERIODSEL_7_RT_OFFSET 29995 2537 #define QM_REG_RLGLBLINCVAL_RT_OFFSET 29996 2538 #define QM_REG_RLGLBLINCVAL_RT_SIZE 256 2539 #define QM_REG_RLGLBLUPPERBOUND_RT_OFFSET 30252 2540 #define QM_REG_RLGLBLUPPERBOUND_RT_SIZE 256 2541 #define QM_REG_RLGLBLCRD_RT_OFFSET 30508 2542 #define QM_REG_RLGLBLCRD_RT_SIZE 256 2543 #define QM_REG_RLGLBLENABLE_RT_OFFSET 30764 2544 #define QM_REG_RLPFPERIOD_RT_OFFSET 30765 2545 #define QM_REG_RLPFPERIODTIMER_RT_OFFSET 30766 2546 #define QM_REG_RLPFINCVAL_RT_OFFSET 30767 2547 #define QM_REG_RLPFINCVAL_RT_SIZE 16 2548 #define QM_REG_RLPFUPPERBOUND_RT_OFFSET 30783 2549 #define QM_REG_RLPFUPPERBOUND_RT_SIZE 16 2550 #define QM_REG_RLPFCRD_RT_OFFSET 30799 2551 #define QM_REG_RLPFCRD_RT_SIZE 16 2552 #define QM_REG_RLPFENABLE_RT_OFFSET 30815 2553 #define QM_REG_RLPFVOQENABLE_RT_OFFSET 30816 2554 #define QM_REG_WFQPFWEIGHT_RT_OFFSET 30817 2555 #define QM_REG_WFQPFWEIGHT_RT_SIZE 16 2556 #define QM_REG_WFQPFUPPERBOUND_RT_OFFSET 30833 2557 #define QM_REG_WFQPFUPPERBOUND_RT_SIZE 16 2558 #define QM_REG_WFQPFCRD_RT_OFFSET 30849 2559 #define QM_REG_WFQPFCRD_RT_SIZE 160 2560 #define QM_REG_WFQPFENABLE_RT_OFFSET 31009 2561 #define QM_REG_WFQVPENABLE_RT_OFFSET 31010 2562 #define QM_REG_BASEADDRTXPQ_RT_OFFSET 31011 2563 #define QM_REG_BASEADDRTXPQ_RT_SIZE 512 2564 #define QM_REG_TXPQMAP_RT_OFFSET 31523 2565 #define QM_REG_TXPQMAP_RT_SIZE 512 2566 #define QM_REG_WFQVPWEIGHT_RT_OFFSET 32035 2567 #define QM_REG_WFQVPWEIGHT_RT_SIZE 512 2568 #define QM_REG_WFQVPCRD_RT_OFFSET 32547 2569 #define QM_REG_WFQVPCRD_RT_SIZE 512 2570 #define QM_REG_WFQVPMAP_RT_OFFSET 33059 2571 #define QM_REG_WFQVPMAP_RT_SIZE 512 2572 #define QM_REG_WFQPFCRD_MSB_RT_OFFSET 33571 2573 #define QM_REG_WFQPFCRD_MSB_RT_SIZE 160 2574 #define NIG_REG_TAG_ETHERTYPE_0_RT_OFFSET 33731 2575 #define NIG_REG_OUTER_TAG_VALUE_LIST0_RT_OFFSET 33732 2576 #define NIG_REG_OUTER_TAG_VALUE_LIST1_RT_OFFSET 33733 2577 #define NIG_REG_OUTER_TAG_VALUE_LIST2_RT_OFFSET 33734 2578 #define NIG_REG_OUTER_TAG_VALUE_LIST3_RT_OFFSET 33735 2579 #define NIG_REG_OUTER_TAG_VALUE_MASK_RT_OFFSET 33736 2580 #define NIG_REG_LLH_FUNC_TAGMAC_CLS_TYPE_RT_OFFSET 33737 2581 #define NIG_REG_LLH_FUNC_TAG_EN_RT_OFFSET 33738 2582 #define NIG_REG_LLH_FUNC_TAG_EN_RT_SIZE 4 2583 #define NIG_REG_LLH_FUNC_TAG_HDR_SEL_RT_OFFSET 33742 2584 #define NIG_REG_LLH_FUNC_TAG_HDR_SEL_RT_SIZE 4 2585 #define NIG_REG_LLH_FUNC_TAG_VALUE_RT_OFFSET 33746 2586 #define NIG_REG_LLH_FUNC_TAG_VALUE_RT_SIZE 4 2587 #define NIG_REG_LLH_FUNC_NO_TAG_RT_OFFSET 33750 2588 #define NIG_REG_LLH_FUNC_FILTER_VALUE_RT_OFFSET 33751 2589 #define NIG_REG_LLH_FUNC_FILTER_VALUE_RT_SIZE 32 2590 #define NIG_REG_LLH_FUNC_FILTER_EN_RT_OFFSET 33783 2591 #define NIG_REG_LLH_FUNC_FILTER_EN_RT_SIZE 16 2592 #define NIG_REG_LLH_FUNC_FILTER_MODE_RT_OFFSET 33799 2593 #define NIG_REG_LLH_FUNC_FILTER_MODE_RT_SIZE 16 2594 #define NIG_REG_LLH_FUNC_FILTER_PROTOCOL_TYPE_RT_OFFSET 33815 2595 #define NIG_REG_LLH_FUNC_FILTER_PROTOCOL_TYPE_RT_SIZE 16 2596 #define NIG_REG_LLH_FUNC_FILTER_HDR_SEL_RT_OFFSET 33831 2597 #define NIG_REG_LLH_FUNC_FILTER_HDR_SEL_RT_SIZE 16 2598 #define NIG_REG_TX_EDPM_CTRL_RT_OFFSET 33847 2599 #define NIG_REG_ROCE_DUPLICATE_TO_HOST_RT_OFFSET 33848 2600 #define CDU_REG_CID_ADDR_PARAMS_RT_OFFSET 33849 2601 #define CDU_REG_SEGMENT0_PARAMS_RT_OFFSET 33850 2602 #define CDU_REG_SEGMENT1_PARAMS_RT_OFFSET 33851 2603 #define CDU_REG_PF_SEG0_TYPE_OFFSET_RT_OFFSET 33852 2604 #define CDU_REG_PF_SEG1_TYPE_OFFSET_RT_OFFSET 33853 2605 #define CDU_REG_PF_SEG2_TYPE_OFFSET_RT_OFFSET 33854 2606 #define CDU_REG_PF_SEG3_TYPE_OFFSET_RT_OFFSET 33855 2607 #define CDU_REG_PF_FL_SEG0_TYPE_OFFSET_RT_OFFSET 33856 2608 #define CDU_REG_PF_FL_SEG1_TYPE_OFFSET_RT_OFFSET 33857 2609 #define CDU_REG_PF_FL_SEG2_TYPE_OFFSET_RT_OFFSET 33858 2610 #define CDU_REG_PF_FL_SEG3_TYPE_OFFSET_RT_OFFSET 33859 2611 #define CDU_REG_VF_SEG_TYPE_OFFSET_RT_OFFSET 33860 2612 #define CDU_REG_VF_FL_SEG_TYPE_OFFSET_RT_OFFSET 33861 2613 #define PBF_REG_TAG_ETHERTYPE_0_RT_OFFSET 33862 2614 #define PBF_REG_BTB_SHARED_AREA_SIZE_RT_OFFSET 33863 2615 #define PBF_REG_YCMD_QS_NUM_LINES_VOQ0_RT_OFFSET 33864 2616 #define PBF_REG_BTB_GUARANTEED_VOQ0_RT_OFFSET 33865 2617 #define PBF_REG_BTB_SHARED_AREA_SETUP_VOQ0_RT_OFFSET 33866 2618 #define PBF_REG_YCMD_QS_NUM_LINES_VOQ1_RT_OFFSET 33867 2619 #define PBF_REG_BTB_GUARANTEED_VOQ1_RT_OFFSET 33868 2620 #define PBF_REG_BTB_SHARED_AREA_SETUP_VOQ1_RT_OFFSET 33869 2621 #define PBF_REG_YCMD_QS_NUM_LINES_VOQ2_RT_OFFSET 33870 2622 #define PBF_REG_BTB_GUARANTEED_VOQ2_RT_OFFSET 33871 2623 #define PBF_REG_BTB_SHARED_AREA_SETUP_VOQ2_RT_OFFSET 33872 2624 #define PBF_REG_YCMD_QS_NUM_LINES_VOQ3_RT_OFFSET 33873 2625 #define PBF_REG_BTB_GUARANTEED_VOQ3_RT_OFFSET 33874 2626 #define PBF_REG_BTB_SHARED_AREA_SETUP_VOQ3_RT_OFFSET 33875 2627 #define PBF_REG_YCMD_QS_NUM_LINES_VOQ4_RT_OFFSET 33876 2628 #define PBF_REG_BTB_GUARANTEED_VOQ4_RT_OFFSET 33877 2629 #define PBF_REG_BTB_SHARED_AREA_SETUP_VOQ4_RT_OFFSET 33878 2630 #define PBF_REG_YCMD_QS_NUM_LINES_VOQ5_RT_OFFSET 33879 2631 #define PBF_REG_BTB_GUARANTEED_VOQ5_RT_OFFSET 33880 2632 #define PBF_REG_BTB_SHARED_AREA_SETUP_VOQ5_RT_OFFSET 33881 2633 #define PBF_REG_YCMD_QS_NUM_LINES_VOQ6_RT_OFFSET 33882 2634 #define PBF_REG_BTB_GUARANTEED_VOQ6_RT_OFFSET 33883 2635 #define PBF_REG_BTB_SHARED_AREA_SETUP_VOQ6_RT_OFFSET 33884 2636 #define PBF_REG_YCMD_QS_NUM_LINES_VOQ7_RT_OFFSET 33885 2637 #define PBF_REG_BTB_GUARANTEED_VOQ7_RT_OFFSET 33886 2638 #define PBF_REG_BTB_SHARED_AREA_SETUP_VOQ7_RT_OFFSET 33887 2639 #define PBF_REG_YCMD_QS_NUM_LINES_VOQ8_RT_OFFSET 33888 2640 #define PBF_REG_BTB_GUARANTEED_VOQ8_RT_OFFSET 33889 2641 #define PBF_REG_BTB_SHARED_AREA_SETUP_VOQ8_RT_OFFSET 33890 2642 #define PBF_REG_YCMD_QS_NUM_LINES_VOQ9_RT_OFFSET 33891 2643 #define PBF_REG_BTB_GUARANTEED_VOQ9_RT_OFFSET 33892 2644 #define PBF_REG_BTB_SHARED_AREA_SETUP_VOQ9_RT_OFFSET 33893 2645 #define PBF_REG_YCMD_QS_NUM_LINES_VOQ10_RT_OFFSET 33894 2646 #define PBF_REG_BTB_GUARANTEED_VOQ10_RT_OFFSET 33895 2647 #define PBF_REG_BTB_SHARED_AREA_SETUP_VOQ10_RT_OFFSET 33896 2648 #define PBF_REG_YCMD_QS_NUM_LINES_VOQ11_RT_OFFSET 33897 2649 #define PBF_REG_BTB_GUARANTEED_VOQ11_RT_OFFSET 33898 2650 #define PBF_REG_BTB_SHARED_AREA_SETUP_VOQ11_RT_OFFSET 33899 2651 #define PBF_REG_YCMD_QS_NUM_LINES_VOQ12_RT_OFFSET 33900 2652 #define PBF_REG_BTB_GUARANTEED_VOQ12_RT_OFFSET 33901 2653 #define PBF_REG_BTB_SHARED_AREA_SETUP_VOQ12_RT_OFFSET 33902 2654 #define PBF_REG_YCMD_QS_NUM_LINES_VOQ13_RT_OFFSET 33903 2655 #define PBF_REG_BTB_GUARANTEED_VOQ13_RT_OFFSET 33904 2656 #define PBF_REG_BTB_SHARED_AREA_SETUP_VOQ13_RT_OFFSET 33905 2657 #define PBF_REG_YCMD_QS_NUM_LINES_VOQ14_RT_OFFSET 33906 2658 #define PBF_REG_BTB_GUARANTEED_VOQ14_RT_OFFSET 33907 2659 #define PBF_REG_BTB_SHARED_AREA_SETUP_VOQ14_RT_OFFSET 33908 2660 #define PBF_REG_YCMD_QS_NUM_LINES_VOQ15_RT_OFFSET 33909 2661 #define PBF_REG_BTB_GUARANTEED_VOQ15_RT_OFFSET 33910 2662 #define PBF_REG_BTB_SHARED_AREA_SETUP_VOQ15_RT_OFFSET 33911 2663 #define PBF_REG_YCMD_QS_NUM_LINES_VOQ16_RT_OFFSET 33912 2664 #define PBF_REG_BTB_GUARANTEED_VOQ16_RT_OFFSET 33913 2665 #define PBF_REG_BTB_SHARED_AREA_SETUP_VOQ16_RT_OFFSET 33914 2666 #define PBF_REG_YCMD_QS_NUM_LINES_VOQ17_RT_OFFSET 33915 2667 #define PBF_REG_BTB_GUARANTEED_VOQ17_RT_OFFSET 33916 2668 #define PBF_REG_BTB_SHARED_AREA_SETUP_VOQ17_RT_OFFSET 33917 2669 #define PBF_REG_YCMD_QS_NUM_LINES_VOQ18_RT_OFFSET 33918 2670 #define PBF_REG_BTB_GUARANTEED_VOQ18_RT_OFFSET 33919 2671 #define PBF_REG_BTB_SHARED_AREA_SETUP_VOQ18_RT_OFFSET 33920 2672 #define PBF_REG_YCMD_QS_NUM_LINES_VOQ19_RT_OFFSET 33921 2673 #define PBF_REG_BTB_GUARANTEED_VOQ19_RT_OFFSET 33922 2674 #define PBF_REG_BTB_SHARED_AREA_SETUP_VOQ19_RT_OFFSET 33923 2675 #define XCM_REG_CON_PHY_Q3_RT_OFFSET 33924 2676 2677 #define RUNTIME_ARRAY_SIZE 33925 2678 2679 /* The eth storm context for the Tstorm */ 2680 struct tstorm_eth_conn_st_ctx { 2681 __le32 reserved[4]; 2682 }; 2683 2684 /* The eth storm context for the Pstorm */ 2685 struct pstorm_eth_conn_st_ctx { 2686 __le32 reserved[8]; 2687 }; 2688 2689 /* The eth storm context for the Xstorm */ 2690 struct xstorm_eth_conn_st_ctx { 2691 __le32 reserved[60]; 2692 }; 2693 2694 struct xstorm_eth_conn_ag_ctx { 2695 u8 reserved0; 2696 u8 eth_state; 2697 u8 flags0; 2698 #define XSTORM_ETH_CONN_AG_CTX_EXIST_IN_QM0_MASK 0x1 2699 #define XSTORM_ETH_CONN_AG_CTX_EXIST_IN_QM0_SHIFT 0 2700 #define XSTORM_ETH_CONN_AG_CTX_RESERVED1_MASK 0x1 2701 #define XSTORM_ETH_CONN_AG_CTX_RESERVED1_SHIFT 1 2702 #define XSTORM_ETH_CONN_AG_CTX_RESERVED2_MASK 0x1 2703 #define XSTORM_ETH_CONN_AG_CTX_RESERVED2_SHIFT 2 2704 #define XSTORM_ETH_CONN_AG_CTX_EXIST_IN_QM3_MASK 0x1 2705 #define XSTORM_ETH_CONN_AG_CTX_EXIST_IN_QM3_SHIFT 3 2706 #define XSTORM_ETH_CONN_AG_CTX_RESERVED3_MASK 0x1 2707 #define XSTORM_ETH_CONN_AG_CTX_RESERVED3_SHIFT 4 2708 #define XSTORM_ETH_CONN_AG_CTX_RESERVED4_MASK 0x1 2709 #define XSTORM_ETH_CONN_AG_CTX_RESERVED4_SHIFT 5 2710 #define XSTORM_ETH_CONN_AG_CTX_RESERVED5_MASK 0x1 2711 #define XSTORM_ETH_CONN_AG_CTX_RESERVED5_SHIFT 6 2712 #define XSTORM_ETH_CONN_AG_CTX_RESERVED6_MASK 0x1 2713 #define XSTORM_ETH_CONN_AG_CTX_RESERVED6_SHIFT 7 2714 u8 flags1; 2715 #define XSTORM_ETH_CONN_AG_CTX_RESERVED7_MASK 0x1 2716 #define XSTORM_ETH_CONN_AG_CTX_RESERVED7_SHIFT 0 2717 #define XSTORM_ETH_CONN_AG_CTX_RESERVED8_MASK 0x1 2718 #define XSTORM_ETH_CONN_AG_CTX_RESERVED8_SHIFT 1 2719 #define XSTORM_ETH_CONN_AG_CTX_RESERVED9_MASK 0x1 2720 #define XSTORM_ETH_CONN_AG_CTX_RESERVED9_SHIFT 2 2721 #define XSTORM_ETH_CONN_AG_CTX_BIT11_MASK 0x1 2722 #define XSTORM_ETH_CONN_AG_CTX_BIT11_SHIFT 3 2723 #define XSTORM_ETH_CONN_AG_CTX_BIT12_MASK 0x1 2724 #define XSTORM_ETH_CONN_AG_CTX_BIT12_SHIFT 4 2725 #define XSTORM_ETH_CONN_AG_CTX_BIT13_MASK 0x1 2726 #define XSTORM_ETH_CONN_AG_CTX_BIT13_SHIFT 5 2727 #define XSTORM_ETH_CONN_AG_CTX_TX_RULE_ACTIVE_MASK 0x1 2728 #define XSTORM_ETH_CONN_AG_CTX_TX_RULE_ACTIVE_SHIFT 6 2729 #define XSTORM_ETH_CONN_AG_CTX_DQ_CF_ACTIVE_MASK 0x1 2730 #define XSTORM_ETH_CONN_AG_CTX_DQ_CF_ACTIVE_SHIFT 7 2731 u8 flags2; 2732 #define XSTORM_ETH_CONN_AG_CTX_CF0_MASK 0x3 2733 #define XSTORM_ETH_CONN_AG_CTX_CF0_SHIFT 0 2734 #define XSTORM_ETH_CONN_AG_CTX_CF1_MASK 0x3 2735 #define XSTORM_ETH_CONN_AG_CTX_CF1_SHIFT 2 2736 #define XSTORM_ETH_CONN_AG_CTX_CF2_MASK 0x3 2737 #define XSTORM_ETH_CONN_AG_CTX_CF2_SHIFT 4 2738 #define XSTORM_ETH_CONN_AG_CTX_CF3_MASK 0x3 2739 #define XSTORM_ETH_CONN_AG_CTX_CF3_SHIFT 6 2740 u8 flags3; 2741 #define XSTORM_ETH_CONN_AG_CTX_CF4_MASK 0x3 2742 #define XSTORM_ETH_CONN_AG_CTX_CF4_SHIFT 0 2743 #define XSTORM_ETH_CONN_AG_CTX_CF5_MASK 0x3 2744 #define XSTORM_ETH_CONN_AG_CTX_CF5_SHIFT 2 2745 #define XSTORM_ETH_CONN_AG_CTX_CF6_MASK 0x3 2746 #define XSTORM_ETH_CONN_AG_CTX_CF6_SHIFT 4 2747 #define XSTORM_ETH_CONN_AG_CTX_CF7_MASK 0x3 2748 #define XSTORM_ETH_CONN_AG_CTX_CF7_SHIFT 6 2749 u8 flags4; 2750 #define XSTORM_ETH_CONN_AG_CTX_CF8_MASK 0x3 2751 #define XSTORM_ETH_CONN_AG_CTX_CF8_SHIFT 0 2752 #define XSTORM_ETH_CONN_AG_CTX_CF9_MASK 0x3 2753 #define XSTORM_ETH_CONN_AG_CTX_CF9_SHIFT 2 2754 #define XSTORM_ETH_CONN_AG_CTX_CF10_MASK 0x3 2755 #define XSTORM_ETH_CONN_AG_CTX_CF10_SHIFT 4 2756 #define XSTORM_ETH_CONN_AG_CTX_CF11_MASK 0x3 2757 #define XSTORM_ETH_CONN_AG_CTX_CF11_SHIFT 6 2758 u8 flags5; 2759 #define XSTORM_ETH_CONN_AG_CTX_CF12_MASK 0x3 2760 #define XSTORM_ETH_CONN_AG_CTX_CF12_SHIFT 0 2761 #define XSTORM_ETH_CONN_AG_CTX_CF13_MASK 0x3 2762 #define XSTORM_ETH_CONN_AG_CTX_CF13_SHIFT 2 2763 #define XSTORM_ETH_CONN_AG_CTX_CF14_MASK 0x3 2764 #define XSTORM_ETH_CONN_AG_CTX_CF14_SHIFT 4 2765 #define XSTORM_ETH_CONN_AG_CTX_CF15_MASK 0x3 2766 #define XSTORM_ETH_CONN_AG_CTX_CF15_SHIFT 6 2767 u8 flags6; 2768 #define XSTORM_ETH_CONN_AG_CTX_GO_TO_BD_CONS_CF_MASK 0x3 2769 #define XSTORM_ETH_CONN_AG_CTX_GO_TO_BD_CONS_CF_SHIFT 0 2770 #define XSTORM_ETH_CONN_AG_CTX_MULTI_UNICAST_CF_MASK 0x3 2771 #define XSTORM_ETH_CONN_AG_CTX_MULTI_UNICAST_CF_SHIFT 2 2772 #define XSTORM_ETH_CONN_AG_CTX_DQ_CF_MASK 0x3 2773 #define XSTORM_ETH_CONN_AG_CTX_DQ_CF_SHIFT 4 2774 #define XSTORM_ETH_CONN_AG_CTX_TERMINATE_CF_MASK 0x3 2775 #define XSTORM_ETH_CONN_AG_CTX_TERMINATE_CF_SHIFT 6 2776 u8 flags7; 2777 #define XSTORM_ETH_CONN_AG_CTX_FLUSH_Q0_MASK 0x3 2778 #define XSTORM_ETH_CONN_AG_CTX_FLUSH_Q0_SHIFT 0 2779 #define XSTORM_ETH_CONN_AG_CTX_RESERVED10_MASK 0x3 2780 #define XSTORM_ETH_CONN_AG_CTX_RESERVED10_SHIFT 2 2781 #define XSTORM_ETH_CONN_AG_CTX_SLOW_PATH_MASK 0x3 2782 #define XSTORM_ETH_CONN_AG_CTX_SLOW_PATH_SHIFT 4 2783 #define XSTORM_ETH_CONN_AG_CTX_CF0EN_MASK 0x1 2784 #define XSTORM_ETH_CONN_AG_CTX_CF0EN_SHIFT 6 2785 #define XSTORM_ETH_CONN_AG_CTX_CF1EN_MASK 0x1 2786 #define XSTORM_ETH_CONN_AG_CTX_CF1EN_SHIFT 7 2787 u8 flags8; 2788 #define XSTORM_ETH_CONN_AG_CTX_CF2EN_MASK 0x1 2789 #define XSTORM_ETH_CONN_AG_CTX_CF2EN_SHIFT 0 2790 #define XSTORM_ETH_CONN_AG_CTX_CF3EN_MASK 0x1 2791 #define XSTORM_ETH_CONN_AG_CTX_CF3EN_SHIFT 1 2792 #define XSTORM_ETH_CONN_AG_CTX_CF4EN_MASK 0x1 2793 #define XSTORM_ETH_CONN_AG_CTX_CF4EN_SHIFT 2 2794 #define XSTORM_ETH_CONN_AG_CTX_CF5EN_MASK 0x1 2795 #define XSTORM_ETH_CONN_AG_CTX_CF5EN_SHIFT 3 2796 #define XSTORM_ETH_CONN_AG_CTX_CF6EN_MASK 0x1 2797 #define XSTORM_ETH_CONN_AG_CTX_CF6EN_SHIFT 4 2798 #define XSTORM_ETH_CONN_AG_CTX_CF7EN_MASK 0x1 2799 #define XSTORM_ETH_CONN_AG_CTX_CF7EN_SHIFT 5 2800 #define XSTORM_ETH_CONN_AG_CTX_CF8EN_MASK 0x1 2801 #define XSTORM_ETH_CONN_AG_CTX_CF8EN_SHIFT 6 2802 #define XSTORM_ETH_CONN_AG_CTX_CF9EN_MASK 0x1 2803 #define XSTORM_ETH_CONN_AG_CTX_CF9EN_SHIFT 7 2804 u8 flags9; 2805 #define XSTORM_ETH_CONN_AG_CTX_CF10EN_MASK 0x1 2806 #define XSTORM_ETH_CONN_AG_CTX_CF10EN_SHIFT 0 2807 #define XSTORM_ETH_CONN_AG_CTX_CF11EN_MASK 0x1 2808 #define XSTORM_ETH_CONN_AG_CTX_CF11EN_SHIFT 1 2809 #define XSTORM_ETH_CONN_AG_CTX_CF12EN_MASK 0x1 2810 #define XSTORM_ETH_CONN_AG_CTX_CF12EN_SHIFT 2 2811 #define XSTORM_ETH_CONN_AG_CTX_CF13EN_MASK 0x1 2812 #define XSTORM_ETH_CONN_AG_CTX_CF13EN_SHIFT 3 2813 #define XSTORM_ETH_CONN_AG_CTX_CF14EN_MASK 0x1 2814 #define XSTORM_ETH_CONN_AG_CTX_CF14EN_SHIFT 4 2815 #define XSTORM_ETH_CONN_AG_CTX_CF15EN_MASK 0x1 2816 #define XSTORM_ETH_CONN_AG_CTX_CF15EN_SHIFT 5 2817 #define XSTORM_ETH_CONN_AG_CTX_GO_TO_BD_CONS_CF_EN_MASK 0x1 2818 #define XSTORM_ETH_CONN_AG_CTX_GO_TO_BD_CONS_CF_EN_SHIFT 6 2819 #define XSTORM_ETH_CONN_AG_CTX_MULTI_UNICAST_CF_EN_MASK 0x1 2820 #define XSTORM_ETH_CONN_AG_CTX_MULTI_UNICAST_CF_EN_SHIFT 7 2821 u8 flags10; 2822 #define XSTORM_ETH_CONN_AG_CTX_DQ_CF_EN_MASK 0x1 2823 #define XSTORM_ETH_CONN_AG_CTX_DQ_CF_EN_SHIFT 0 2824 #define XSTORM_ETH_CONN_AG_CTX_TERMINATE_CF_EN_MASK 0x1 2825 #define XSTORM_ETH_CONN_AG_CTX_TERMINATE_CF_EN_SHIFT 1 2826 #define XSTORM_ETH_CONN_AG_CTX_FLUSH_Q0_EN_MASK 0x1 2827 #define XSTORM_ETH_CONN_AG_CTX_FLUSH_Q0_EN_SHIFT 2 2828 #define XSTORM_ETH_CONN_AG_CTX_RESERVED11_MASK 0x1 2829 #define XSTORM_ETH_CONN_AG_CTX_RESERVED11_SHIFT 3 2830 #define XSTORM_ETH_CONN_AG_CTX_SLOW_PATH_EN_MASK 0x1 2831 #define XSTORM_ETH_CONN_AG_CTX_SLOW_PATH_EN_SHIFT 4 2832 #define XSTORM_ETH_CONN_AG_CTX_TPH_ENABLE_EN_RESERVED_MASK 0x1 2833 #define XSTORM_ETH_CONN_AG_CTX_TPH_ENABLE_EN_RESERVED_SHIFT 5 2834 #define XSTORM_ETH_CONN_AG_CTX_RESERVED12_MASK 0x1 2835 #define XSTORM_ETH_CONN_AG_CTX_RESERVED12_SHIFT 6 2836 #define XSTORM_ETH_CONN_AG_CTX_RESERVED13_MASK 0x1 2837 #define XSTORM_ETH_CONN_AG_CTX_RESERVED13_SHIFT 7 2838 u8 flags11; 2839 #define XSTORM_ETH_CONN_AG_CTX_RESERVED14_MASK 0x1 2840 #define XSTORM_ETH_CONN_AG_CTX_RESERVED14_SHIFT 0 2841 #define XSTORM_ETH_CONN_AG_CTX_RESERVED15_MASK 0x1 2842 #define XSTORM_ETH_CONN_AG_CTX_RESERVED15_SHIFT 1 2843 #define XSTORM_ETH_CONN_AG_CTX_TX_DEC_RULE_EN_MASK 0x1 2844 #define XSTORM_ETH_CONN_AG_CTX_TX_DEC_RULE_EN_SHIFT 2 2845 #define XSTORM_ETH_CONN_AG_CTX_RULE5EN_MASK 0x1 2846 #define XSTORM_ETH_CONN_AG_CTX_RULE5EN_SHIFT 3 2847 #define XSTORM_ETH_CONN_AG_CTX_RULE6EN_MASK 0x1 2848 #define XSTORM_ETH_CONN_AG_CTX_RULE6EN_SHIFT 4 2849 #define XSTORM_ETH_CONN_AG_CTX_RULE7EN_MASK 0x1 2850 #define XSTORM_ETH_CONN_AG_CTX_RULE7EN_SHIFT 5 2851 #define XSTORM_ETH_CONN_AG_CTX_A0_RESERVED1_MASK 0x1 2852 #define XSTORM_ETH_CONN_AG_CTX_A0_RESERVED1_SHIFT 6 2853 #define XSTORM_ETH_CONN_AG_CTX_RULE9EN_MASK 0x1 2854 #define XSTORM_ETH_CONN_AG_CTX_RULE9EN_SHIFT 7 2855 u8 flags12; 2856 #define XSTORM_ETH_CONN_AG_CTX_RULE10EN_MASK 0x1 2857 #define XSTORM_ETH_CONN_AG_CTX_RULE10EN_SHIFT 0 2858 #define XSTORM_ETH_CONN_AG_CTX_RULE11EN_MASK 0x1 2859 #define XSTORM_ETH_CONN_AG_CTX_RULE11EN_SHIFT 1 2860 #define XSTORM_ETH_CONN_AG_CTX_A0_RESERVED2_MASK 0x1 2861 #define XSTORM_ETH_CONN_AG_CTX_A0_RESERVED2_SHIFT 2 2862 #define XSTORM_ETH_CONN_AG_CTX_A0_RESERVED3_MASK 0x1 2863 #define XSTORM_ETH_CONN_AG_CTX_A0_RESERVED3_SHIFT 3 2864 #define XSTORM_ETH_CONN_AG_CTX_RULE14EN_MASK 0x1 2865 #define XSTORM_ETH_CONN_AG_CTX_RULE14EN_SHIFT 4 2866 #define XSTORM_ETH_CONN_AG_CTX_RULE15EN_MASK 0x1 2867 #define XSTORM_ETH_CONN_AG_CTX_RULE15EN_SHIFT 5 2868 #define XSTORM_ETH_CONN_AG_CTX_RULE16EN_MASK 0x1 2869 #define XSTORM_ETH_CONN_AG_CTX_RULE16EN_SHIFT 6 2870 #define XSTORM_ETH_CONN_AG_CTX_RULE17EN_MASK 0x1 2871 #define XSTORM_ETH_CONN_AG_CTX_RULE17EN_SHIFT 7 2872 u8 flags13; 2873 #define XSTORM_ETH_CONN_AG_CTX_RULE18EN_MASK 0x1 2874 #define XSTORM_ETH_CONN_AG_CTX_RULE18EN_SHIFT 0 2875 #define XSTORM_ETH_CONN_AG_CTX_RULE19EN_MASK 0x1 2876 #define XSTORM_ETH_CONN_AG_CTX_RULE19EN_SHIFT 1 2877 #define XSTORM_ETH_CONN_AG_CTX_A0_RESERVED4_MASK 0x1 2878 #define XSTORM_ETH_CONN_AG_CTX_A0_RESERVED4_SHIFT 2 2879 #define XSTORM_ETH_CONN_AG_CTX_A0_RESERVED5_MASK 0x1 2880 #define XSTORM_ETH_CONN_AG_CTX_A0_RESERVED5_SHIFT 3 2881 #define XSTORM_ETH_CONN_AG_CTX_A0_RESERVED6_MASK 0x1 2882 #define XSTORM_ETH_CONN_AG_CTX_A0_RESERVED6_SHIFT 4 2883 #define XSTORM_ETH_CONN_AG_CTX_A0_RESERVED7_MASK 0x1 2884 #define XSTORM_ETH_CONN_AG_CTX_A0_RESERVED7_SHIFT 5 2885 #define XSTORM_ETH_CONN_AG_CTX_A0_RESERVED8_MASK 0x1 2886 #define XSTORM_ETH_CONN_AG_CTX_A0_RESERVED8_SHIFT 6 2887 #define XSTORM_ETH_CONN_AG_CTX_A0_RESERVED9_MASK 0x1 2888 #define XSTORM_ETH_CONN_AG_CTX_A0_RESERVED9_SHIFT 7 2889 u8 flags14; 2890 #define XSTORM_ETH_CONN_AG_CTX_EDPM_USE_EXT_HDR_MASK 0x1 2891 #define XSTORM_ETH_CONN_AG_CTX_EDPM_USE_EXT_HDR_SHIFT 0 2892 #define XSTORM_ETH_CONN_AG_CTX_EDPM_SEND_RAW_L3L4_MASK 0x1 2893 #define XSTORM_ETH_CONN_AG_CTX_EDPM_SEND_RAW_L3L4_SHIFT 1 2894 #define XSTORM_ETH_CONN_AG_CTX_EDPM_INBAND_PROP_HDR_MASK 0x1 2895 #define XSTORM_ETH_CONN_AG_CTX_EDPM_INBAND_PROP_HDR_SHIFT 2 2896 #define XSTORM_ETH_CONN_AG_CTX_EDPM_SEND_EXT_TUNNEL_MASK 0x1 2897 #define XSTORM_ETH_CONN_AG_CTX_EDPM_SEND_EXT_TUNNEL_SHIFT 3 2898 #define XSTORM_ETH_CONN_AG_CTX_L2_EDPM_ENABLE_MASK 0x1 2899 #define XSTORM_ETH_CONN_AG_CTX_L2_EDPM_ENABLE_SHIFT 4 2900 #define XSTORM_ETH_CONN_AG_CTX_ROCE_EDPM_ENABLE_MASK 0x1 2901 #define XSTORM_ETH_CONN_AG_CTX_ROCE_EDPM_ENABLE_SHIFT 5 2902 #define XSTORM_ETH_CONN_AG_CTX_TPH_ENABLE_MASK 0x3 2903 #define XSTORM_ETH_CONN_AG_CTX_TPH_ENABLE_SHIFT 6 2904 u8 edpm_event_id; 2905 __le16 physical_q0; 2906 __le16 quota; 2907 __le16 edpm_num_bds; 2908 __le16 tx_bd_cons; 2909 __le16 tx_bd_prod; 2910 __le16 tx_class; 2911 __le16 conn_dpi; 2912 u8 byte3; 2913 u8 byte4; 2914 u8 byte5; 2915 u8 byte6; 2916 __le32 reg0; 2917 __le32 reg1; 2918 __le32 reg2; 2919 __le32 reg3; 2920 __le32 reg4; 2921 __le32 reg5; 2922 __le32 reg6; 2923 __le16 word7; 2924 __le16 word8; 2925 __le16 word9; 2926 __le16 word10; 2927 __le32 reg7; 2928 __le32 reg8; 2929 __le32 reg9; 2930 u8 byte7; 2931 u8 byte8; 2932 u8 byte9; 2933 u8 byte10; 2934 u8 byte11; 2935 u8 byte12; 2936 u8 byte13; 2937 u8 byte14; 2938 u8 byte15; 2939 u8 byte16; 2940 __le16 word11; 2941 __le32 reg10; 2942 __le32 reg11; 2943 __le32 reg12; 2944 __le32 reg13; 2945 __le32 reg14; 2946 __le32 reg15; 2947 __le32 reg16; 2948 __le32 reg17; 2949 __le32 reg18; 2950 __le32 reg19; 2951 __le16 word12; 2952 __le16 word13; 2953 __le16 word14; 2954 __le16 word15; 2955 }; 2956 2957 /* The eth storm context for the Ystorm */ 2958 struct ystorm_eth_conn_st_ctx { 2959 __le32 reserved[8]; 2960 }; 2961 2962 struct ystorm_eth_conn_ag_ctx { 2963 u8 byte0; 2964 u8 state; 2965 u8 flags0; 2966 #define YSTORM_ETH_CONN_AG_CTX_BIT0_MASK 0x1 2967 #define YSTORM_ETH_CONN_AG_CTX_BIT0_SHIFT 0 2968 #define YSTORM_ETH_CONN_AG_CTX_BIT1_MASK 0x1 2969 #define YSTORM_ETH_CONN_AG_CTX_BIT1_SHIFT 1 2970 #define YSTORM_ETH_CONN_AG_CTX_TX_BD_CONS_UPD_CF_MASK 0x3 2971 #define YSTORM_ETH_CONN_AG_CTX_TX_BD_CONS_UPD_CF_SHIFT 2 2972 #define YSTORM_ETH_CONN_AG_CTX_PMD_TERMINATE_CF_MASK 0x3 2973 #define YSTORM_ETH_CONN_AG_CTX_PMD_TERMINATE_CF_SHIFT 4 2974 #define YSTORM_ETH_CONN_AG_CTX_CF2_MASK 0x3 2975 #define YSTORM_ETH_CONN_AG_CTX_CF2_SHIFT 6 2976 u8 flags1; 2977 #define YSTORM_ETH_CONN_AG_CTX_TX_BD_CONS_UPD_CF_EN_MASK 0x1 2978 #define YSTORM_ETH_CONN_AG_CTX_TX_BD_CONS_UPD_CF_EN_SHIFT 0 2979 #define YSTORM_ETH_CONN_AG_CTX_PMD_TERMINATE_CF_EN_MASK 0x1 2980 #define YSTORM_ETH_CONN_AG_CTX_PMD_TERMINATE_CF_EN_SHIFT 1 2981 #define YSTORM_ETH_CONN_AG_CTX_CF2EN_MASK 0x1 2982 #define YSTORM_ETH_CONN_AG_CTX_CF2EN_SHIFT 2 2983 #define YSTORM_ETH_CONN_AG_CTX_RULE0EN_MASK 0x1 2984 #define YSTORM_ETH_CONN_AG_CTX_RULE0EN_SHIFT 3 2985 #define YSTORM_ETH_CONN_AG_CTX_RULE1EN_MASK 0x1 2986 #define YSTORM_ETH_CONN_AG_CTX_RULE1EN_SHIFT 4 2987 #define YSTORM_ETH_CONN_AG_CTX_RULE2EN_MASK 0x1 2988 #define YSTORM_ETH_CONN_AG_CTX_RULE2EN_SHIFT 5 2989 #define YSTORM_ETH_CONN_AG_CTX_RULE3EN_MASK 0x1 2990 #define YSTORM_ETH_CONN_AG_CTX_RULE3EN_SHIFT 6 2991 #define YSTORM_ETH_CONN_AG_CTX_RULE4EN_MASK 0x1 2992 #define YSTORM_ETH_CONN_AG_CTX_RULE4EN_SHIFT 7 2993 u8 tx_q0_int_coallecing_timeset; 2994 u8 byte3; 2995 __le16 word0; 2996 __le32 terminate_spqe; 2997 __le32 reg1; 2998 __le16 tx_bd_cons_upd; 2999 __le16 word2; 3000 __le16 word3; 3001 __le16 word4; 3002 __le32 reg2; 3003 __le32 reg3; 3004 }; 3005 3006 struct tstorm_eth_conn_ag_ctx { 3007 u8 byte0; 3008 u8 byte1; 3009 u8 flags0; 3010 #define TSTORM_ETH_CONN_AG_CTX_BIT0_MASK 0x1 3011 #define TSTORM_ETH_CONN_AG_CTX_BIT0_SHIFT 0 3012 #define TSTORM_ETH_CONN_AG_CTX_BIT1_MASK 0x1 3013 #define TSTORM_ETH_CONN_AG_CTX_BIT1_SHIFT 1 3014 #define TSTORM_ETH_CONN_AG_CTX_BIT2_MASK 0x1 3015 #define TSTORM_ETH_CONN_AG_CTX_BIT2_SHIFT 2 3016 #define TSTORM_ETH_CONN_AG_CTX_BIT3_MASK 0x1 3017 #define TSTORM_ETH_CONN_AG_CTX_BIT3_SHIFT 3 3018 #define TSTORM_ETH_CONN_AG_CTX_BIT4_MASK 0x1 3019 #define TSTORM_ETH_CONN_AG_CTX_BIT4_SHIFT 4 3020 #define TSTORM_ETH_CONN_AG_CTX_BIT5_MASK 0x1 3021 #define TSTORM_ETH_CONN_AG_CTX_BIT5_SHIFT 5 3022 #define TSTORM_ETH_CONN_AG_CTX_CF0_MASK 0x3 3023 #define TSTORM_ETH_CONN_AG_CTX_CF0_SHIFT 6 3024 u8 flags1; 3025 #define TSTORM_ETH_CONN_AG_CTX_CF1_MASK 0x3 3026 #define TSTORM_ETH_CONN_AG_CTX_CF1_SHIFT 0 3027 #define TSTORM_ETH_CONN_AG_CTX_CF2_MASK 0x3 3028 #define TSTORM_ETH_CONN_AG_CTX_CF2_SHIFT 2 3029 #define TSTORM_ETH_CONN_AG_CTX_CF3_MASK 0x3 3030 #define TSTORM_ETH_CONN_AG_CTX_CF3_SHIFT 4 3031 #define TSTORM_ETH_CONN_AG_CTX_CF4_MASK 0x3 3032 #define TSTORM_ETH_CONN_AG_CTX_CF4_SHIFT 6 3033 u8 flags2; 3034 #define TSTORM_ETH_CONN_AG_CTX_CF5_MASK 0x3 3035 #define TSTORM_ETH_CONN_AG_CTX_CF5_SHIFT 0 3036 #define TSTORM_ETH_CONN_AG_CTX_CF6_MASK 0x3 3037 #define TSTORM_ETH_CONN_AG_CTX_CF6_SHIFT 2 3038 #define TSTORM_ETH_CONN_AG_CTX_CF7_MASK 0x3 3039 #define TSTORM_ETH_CONN_AG_CTX_CF7_SHIFT 4 3040 #define TSTORM_ETH_CONN_AG_CTX_CF8_MASK 0x3 3041 #define TSTORM_ETH_CONN_AG_CTX_CF8_SHIFT 6 3042 u8 flags3; 3043 #define TSTORM_ETH_CONN_AG_CTX_CF9_MASK 0x3 3044 #define TSTORM_ETH_CONN_AG_CTX_CF9_SHIFT 0 3045 #define TSTORM_ETH_CONN_AG_CTX_CF10_MASK 0x3 3046 #define TSTORM_ETH_CONN_AG_CTX_CF10_SHIFT 2 3047 #define TSTORM_ETH_CONN_AG_CTX_CF0EN_MASK 0x1 3048 #define TSTORM_ETH_CONN_AG_CTX_CF0EN_SHIFT 4 3049 #define TSTORM_ETH_CONN_AG_CTX_CF1EN_MASK 0x1 3050 #define TSTORM_ETH_CONN_AG_CTX_CF1EN_SHIFT 5 3051 #define TSTORM_ETH_CONN_AG_CTX_CF2EN_MASK 0x1 3052 #define TSTORM_ETH_CONN_AG_CTX_CF2EN_SHIFT 6 3053 #define TSTORM_ETH_CONN_AG_CTX_CF3EN_MASK 0x1 3054 #define TSTORM_ETH_CONN_AG_CTX_CF3EN_SHIFT 7 3055 u8 flags4; 3056 #define TSTORM_ETH_CONN_AG_CTX_CF4EN_MASK 0x1 3057 #define TSTORM_ETH_CONN_AG_CTX_CF4EN_SHIFT 0 3058 #define TSTORM_ETH_CONN_AG_CTX_CF5EN_MASK 0x1 3059 #define TSTORM_ETH_CONN_AG_CTX_CF5EN_SHIFT 1 3060 #define TSTORM_ETH_CONN_AG_CTX_CF6EN_MASK 0x1 3061 #define TSTORM_ETH_CONN_AG_CTX_CF6EN_SHIFT 2 3062 #define TSTORM_ETH_CONN_AG_CTX_CF7EN_MASK 0x1 3063 #define TSTORM_ETH_CONN_AG_CTX_CF7EN_SHIFT 3 3064 #define TSTORM_ETH_CONN_AG_CTX_CF8EN_MASK 0x1 3065 #define TSTORM_ETH_CONN_AG_CTX_CF8EN_SHIFT 4 3066 #define TSTORM_ETH_CONN_AG_CTX_CF9EN_MASK 0x1 3067 #define TSTORM_ETH_CONN_AG_CTX_CF9EN_SHIFT 5 3068 #define TSTORM_ETH_CONN_AG_CTX_CF10EN_MASK 0x1 3069 #define TSTORM_ETH_CONN_AG_CTX_CF10EN_SHIFT 6 3070 #define TSTORM_ETH_CONN_AG_CTX_RULE0EN_MASK 0x1 3071 #define TSTORM_ETH_CONN_AG_CTX_RULE0EN_SHIFT 7 3072 u8 flags5; 3073 #define TSTORM_ETH_CONN_AG_CTX_RULE1EN_MASK 0x1 3074 #define TSTORM_ETH_CONN_AG_CTX_RULE1EN_SHIFT 0 3075 #define TSTORM_ETH_CONN_AG_CTX_RULE2EN_MASK 0x1 3076 #define TSTORM_ETH_CONN_AG_CTX_RULE2EN_SHIFT 1 3077 #define TSTORM_ETH_CONN_AG_CTX_RULE3EN_MASK 0x1 3078 #define TSTORM_ETH_CONN_AG_CTX_RULE3EN_SHIFT 2 3079 #define TSTORM_ETH_CONN_AG_CTX_RULE4EN_MASK 0x1 3080 #define TSTORM_ETH_CONN_AG_CTX_RULE4EN_SHIFT 3 3081 #define TSTORM_ETH_CONN_AG_CTX_RULE5EN_MASK 0x1 3082 #define TSTORM_ETH_CONN_AG_CTX_RULE5EN_SHIFT 4 3083 #define TSTORM_ETH_CONN_AG_CTX_RX_BD_EN_MASK 0x1 3084 #define TSTORM_ETH_CONN_AG_CTX_RX_BD_EN_SHIFT 5 3085 #define TSTORM_ETH_CONN_AG_CTX_RULE7EN_MASK 0x1 3086 #define TSTORM_ETH_CONN_AG_CTX_RULE7EN_SHIFT 6 3087 #define TSTORM_ETH_CONN_AG_CTX_RULE8EN_MASK 0x1 3088 #define TSTORM_ETH_CONN_AG_CTX_RULE8EN_SHIFT 7 3089 __le32 reg0; 3090 __le32 reg1; 3091 __le32 reg2; 3092 __le32 reg3; 3093 __le32 reg4; 3094 __le32 reg5; 3095 __le32 reg6; 3096 __le32 reg7; 3097 __le32 reg8; 3098 u8 byte2; 3099 u8 byte3; 3100 __le16 rx_bd_cons; 3101 u8 byte4; 3102 u8 byte5; 3103 __le16 rx_bd_prod; 3104 __le16 word2; 3105 __le16 word3; 3106 __le32 reg9; 3107 __le32 reg10; 3108 }; 3109 3110 struct ustorm_eth_conn_ag_ctx { 3111 u8 byte0; 3112 u8 byte1; 3113 u8 flags0; 3114 #define USTORM_ETH_CONN_AG_CTX_BIT0_MASK 0x1 3115 #define USTORM_ETH_CONN_AG_CTX_BIT0_SHIFT 0 3116 #define USTORM_ETH_CONN_AG_CTX_BIT1_MASK 0x1 3117 #define USTORM_ETH_CONN_AG_CTX_BIT1_SHIFT 1 3118 #define USTORM_ETH_CONN_AG_CTX_TX_PMD_TERMINATE_CF_MASK 0x3 3119 #define USTORM_ETH_CONN_AG_CTX_TX_PMD_TERMINATE_CF_SHIFT 2 3120 #define USTORM_ETH_CONN_AG_CTX_RX_PMD_TERMINATE_CF_MASK 0x3 3121 #define USTORM_ETH_CONN_AG_CTX_RX_PMD_TERMINATE_CF_SHIFT 4 3122 #define USTORM_ETH_CONN_AG_CTX_CF2_MASK 0x3 3123 #define USTORM_ETH_CONN_AG_CTX_CF2_SHIFT 6 3124 u8 flags1; 3125 #define USTORM_ETH_CONN_AG_CTX_CF3_MASK 0x3 3126 #define USTORM_ETH_CONN_AG_CTX_CF3_SHIFT 0 3127 #define USTORM_ETH_CONN_AG_CTX_TX_ARM_CF_MASK 0x3 3128 #define USTORM_ETH_CONN_AG_CTX_TX_ARM_CF_SHIFT 2 3129 #define USTORM_ETH_CONN_AG_CTX_RX_ARM_CF_MASK 0x3 3130 #define USTORM_ETH_CONN_AG_CTX_RX_ARM_CF_SHIFT 4 3131 #define USTORM_ETH_CONN_AG_CTX_TX_BD_CONS_UPD_CF_MASK 0x3 3132 #define USTORM_ETH_CONN_AG_CTX_TX_BD_CONS_UPD_CF_SHIFT 6 3133 u8 flags2; 3134 #define USTORM_ETH_CONN_AG_CTX_TX_PMD_TERMINATE_CF_EN_MASK 0x1 3135 #define USTORM_ETH_CONN_AG_CTX_TX_PMD_TERMINATE_CF_EN_SHIFT 0 3136 #define USTORM_ETH_CONN_AG_CTX_RX_PMD_TERMINATE_CF_EN_MASK 0x1 3137 #define USTORM_ETH_CONN_AG_CTX_RX_PMD_TERMINATE_CF_EN_SHIFT 1 3138 #define USTORM_ETH_CONN_AG_CTX_CF2EN_MASK 0x1 3139 #define USTORM_ETH_CONN_AG_CTX_CF2EN_SHIFT 2 3140 #define USTORM_ETH_CONN_AG_CTX_CF3EN_MASK 0x1 3141 #define USTORM_ETH_CONN_AG_CTX_CF3EN_SHIFT 3 3142 #define USTORM_ETH_CONN_AG_CTX_TX_ARM_CF_EN_MASK 0x1 3143 #define USTORM_ETH_CONN_AG_CTX_TX_ARM_CF_EN_SHIFT 4 3144 #define USTORM_ETH_CONN_AG_CTX_RX_ARM_CF_EN_MASK 0x1 3145 #define USTORM_ETH_CONN_AG_CTX_RX_ARM_CF_EN_SHIFT 5 3146 #define USTORM_ETH_CONN_AG_CTX_TX_BD_CONS_UPD_CF_EN_MASK 0x1 3147 #define USTORM_ETH_CONN_AG_CTX_TX_BD_CONS_UPD_CF_EN_SHIFT 6 3148 #define USTORM_ETH_CONN_AG_CTX_RULE0EN_MASK 0x1 3149 #define USTORM_ETH_CONN_AG_CTX_RULE0EN_SHIFT 7 3150 u8 flags3; 3151 #define USTORM_ETH_CONN_AG_CTX_RULE1EN_MASK 0x1 3152 #define USTORM_ETH_CONN_AG_CTX_RULE1EN_SHIFT 0 3153 #define USTORM_ETH_CONN_AG_CTX_RULE2EN_MASK 0x1 3154 #define USTORM_ETH_CONN_AG_CTX_RULE2EN_SHIFT 1 3155 #define USTORM_ETH_CONN_AG_CTX_RULE3EN_MASK 0x1 3156 #define USTORM_ETH_CONN_AG_CTX_RULE3EN_SHIFT 2 3157 #define USTORM_ETH_CONN_AG_CTX_RULE4EN_MASK 0x1 3158 #define USTORM_ETH_CONN_AG_CTX_RULE4EN_SHIFT 3 3159 #define USTORM_ETH_CONN_AG_CTX_RULE5EN_MASK 0x1 3160 #define USTORM_ETH_CONN_AG_CTX_RULE5EN_SHIFT 4 3161 #define USTORM_ETH_CONN_AG_CTX_RULE6EN_MASK 0x1 3162 #define USTORM_ETH_CONN_AG_CTX_RULE6EN_SHIFT 5 3163 #define USTORM_ETH_CONN_AG_CTX_RULE7EN_MASK 0x1 3164 #define USTORM_ETH_CONN_AG_CTX_RULE7EN_SHIFT 6 3165 #define USTORM_ETH_CONN_AG_CTX_RULE8EN_MASK 0x1 3166 #define USTORM_ETH_CONN_AG_CTX_RULE8EN_SHIFT 7 3167 u8 byte2; 3168 u8 byte3; 3169 __le16 word0; 3170 __le16 tx_bd_cons; 3171 __le32 reg0; 3172 __le32 reg1; 3173 __le32 reg2; 3174 __le32 tx_int_coallecing_timeset; 3175 __le16 tx_drv_bd_cons; 3176 __le16 rx_drv_cqe_cons; 3177 }; 3178 3179 /* The eth storm context for the Ustorm */ 3180 struct ustorm_eth_conn_st_ctx { 3181 __le32 reserved[40]; 3182 }; 3183 3184 /* The eth storm context for the Mstorm */ 3185 struct mstorm_eth_conn_st_ctx { 3186 __le32 reserved[8]; 3187 }; 3188 3189 /* eth connection context */ 3190 struct eth_conn_context { 3191 struct tstorm_eth_conn_st_ctx tstorm_st_context; 3192 struct regpair tstorm_st_padding[2]; 3193 struct pstorm_eth_conn_st_ctx pstorm_st_context; 3194 struct xstorm_eth_conn_st_ctx xstorm_st_context; 3195 struct xstorm_eth_conn_ag_ctx xstorm_ag_context; 3196 struct ystorm_eth_conn_st_ctx ystorm_st_context; 3197 struct ystorm_eth_conn_ag_ctx ystorm_ag_context; 3198 struct tstorm_eth_conn_ag_ctx tstorm_ag_context; 3199 struct ustorm_eth_conn_ag_ctx ustorm_ag_context; 3200 struct ustorm_eth_conn_st_ctx ustorm_st_context; 3201 struct mstorm_eth_conn_st_ctx mstorm_st_context; 3202 }; 3203 3204 /* opcodes for the event ring */ 3205 enum eth_event_opcode { 3206 ETH_EVENT_UNUSED, 3207 ETH_EVENT_VPORT_START, 3208 ETH_EVENT_VPORT_UPDATE, 3209 ETH_EVENT_VPORT_STOP, 3210 ETH_EVENT_TX_QUEUE_START, 3211 ETH_EVENT_TX_QUEUE_STOP, 3212 ETH_EVENT_RX_QUEUE_START, 3213 ETH_EVENT_RX_QUEUE_UPDATE, 3214 ETH_EVENT_RX_QUEUE_STOP, 3215 ETH_EVENT_FILTERS_UPDATE, 3216 ETH_EVENT_RESERVED, 3217 ETH_EVENT_RESERVED2, 3218 ETH_EVENT_RESERVED3, 3219 ETH_EVENT_RX_ADD_UDP_FILTER, 3220 ETH_EVENT_RX_DELETE_UDP_FILTER, 3221 ETH_EVENT_RESERVED4, 3222 ETH_EVENT_RESERVED5, 3223 MAX_ETH_EVENT_OPCODE 3224 }; 3225 3226 /* Classify rule types in E2/E3 */ 3227 enum eth_filter_action { 3228 ETH_FILTER_ACTION_UNUSED, 3229 ETH_FILTER_ACTION_REMOVE, 3230 ETH_FILTER_ACTION_ADD, 3231 ETH_FILTER_ACTION_REMOVE_ALL, 3232 MAX_ETH_FILTER_ACTION 3233 }; 3234 3235 /* Command for adding/removing a classification rule $$KEEP_ENDIANNESS$$ */ 3236 struct eth_filter_cmd { 3237 u8 type; 3238 u8 vport_id; 3239 u8 action; 3240 u8 reserved0; 3241 __le32 vni; 3242 __le16 mac_lsb; 3243 __le16 mac_mid; 3244 __le16 mac_msb; 3245 __le16 vlan_id; 3246 }; 3247 3248 /* $$KEEP_ENDIANNESS$$ */ 3249 struct eth_filter_cmd_header { 3250 u8 rx; 3251 u8 tx; 3252 u8 cmd_cnt; 3253 u8 assert_on_error; 3254 u8 reserved1[4]; 3255 }; 3256 3257 /* Ethernet filter types: mac/vlan/pair */ 3258 enum eth_filter_type { 3259 ETH_FILTER_TYPE_UNUSED, 3260 ETH_FILTER_TYPE_MAC, 3261 ETH_FILTER_TYPE_VLAN, 3262 ETH_FILTER_TYPE_PAIR, 3263 ETH_FILTER_TYPE_INNER_MAC, 3264 ETH_FILTER_TYPE_INNER_VLAN, 3265 ETH_FILTER_TYPE_INNER_PAIR, 3266 ETH_FILTER_TYPE_INNER_MAC_VNI_PAIR, 3267 ETH_FILTER_TYPE_MAC_VNI_PAIR, 3268 ETH_FILTER_TYPE_VNI, 3269 MAX_ETH_FILTER_TYPE 3270 }; 3271 3272 /* Ethernet Ramrod Command IDs */ 3273 enum eth_ramrod_cmd_id { 3274 ETH_RAMROD_UNUSED, 3275 ETH_RAMROD_VPORT_START, 3276 ETH_RAMROD_VPORT_UPDATE, 3277 ETH_RAMROD_VPORT_STOP, 3278 ETH_RAMROD_RX_QUEUE_START, 3279 ETH_RAMROD_RX_QUEUE_STOP, 3280 ETH_RAMROD_TX_QUEUE_START, 3281 ETH_RAMROD_TX_QUEUE_STOP, 3282 ETH_RAMROD_FILTERS_UPDATE, 3283 ETH_RAMROD_RX_QUEUE_UPDATE, 3284 ETH_RAMROD_RX_CREATE_OPENFLOW_ACTION, 3285 ETH_RAMROD_RX_ADD_OPENFLOW_FILTER, 3286 ETH_RAMROD_RX_DELETE_OPENFLOW_FILTER, 3287 ETH_RAMROD_RX_ADD_UDP_FILTER, 3288 ETH_RAMROD_RX_DELETE_UDP_FILTER, 3289 ETH_RAMROD_RX_CREATE_GFT_ACTION, 3290 ETH_RAMROD_GFT_UPDATE_FILTER, 3291 MAX_ETH_RAMROD_CMD_ID 3292 }; 3293 3294 /* return code from eth sp ramrods */ 3295 struct eth_return_code { 3296 u8 value; 3297 #define ETH_RETURN_CODE_ERR_CODE_MASK 0x1F 3298 #define ETH_RETURN_CODE_ERR_CODE_SHIFT 0 3299 #define ETH_RETURN_CODE_RESERVED_MASK 0x3 3300 #define ETH_RETURN_CODE_RESERVED_SHIFT 5 3301 #define ETH_RETURN_CODE_RX_TX_MASK 0x1 3302 #define ETH_RETURN_CODE_RX_TX_SHIFT 7 3303 }; 3304 3305 /* What to do in case an error occurs */ 3306 enum eth_tx_err { 3307 ETH_TX_ERR_DROP, 3308 ETH_TX_ERR_ASSERT_MALICIOUS, 3309 MAX_ETH_TX_ERR 3310 }; 3311 3312 /* Array of the different error type behaviors */ 3313 struct eth_tx_err_vals { 3314 __le16 values; 3315 #define ETH_TX_ERR_VALS_ILLEGAL_VLAN_MODE_MASK 0x1 3316 #define ETH_TX_ERR_VALS_ILLEGAL_VLAN_MODE_SHIFT 0 3317 #define ETH_TX_ERR_VALS_PACKET_TOO_SMALL_MASK 0x1 3318 #define ETH_TX_ERR_VALS_PACKET_TOO_SMALL_SHIFT 1 3319 #define ETH_TX_ERR_VALS_ANTI_SPOOFING_ERR_MASK 0x1 3320 #define ETH_TX_ERR_VALS_ANTI_SPOOFING_ERR_SHIFT 2 3321 #define ETH_TX_ERR_VALS_ILLEGAL_INBAND_TAGS_MASK 0x1 3322 #define ETH_TX_ERR_VALS_ILLEGAL_INBAND_TAGS_SHIFT 3 3323 #define ETH_TX_ERR_VALS_VLAN_INSERTION_W_INBAND_TAG_MASK 0x1 3324 #define ETH_TX_ERR_VALS_VLAN_INSERTION_W_INBAND_TAG_SHIFT 4 3325 #define ETH_TX_ERR_VALS_MTU_VIOLATION_MASK 0x1 3326 #define ETH_TX_ERR_VALS_MTU_VIOLATION_SHIFT 5 3327 #define ETH_TX_ERR_VALS_ILLEGAL_CONTROL_FRAME_MASK 0x1 3328 #define ETH_TX_ERR_VALS_ILLEGAL_CONTROL_FRAME_SHIFT 6 3329 #define ETH_TX_ERR_VALS_RESERVED_MASK 0x1FF 3330 #define ETH_TX_ERR_VALS_RESERVED_SHIFT 7 3331 }; 3332 3333 /* vport rss configuration data */ 3334 struct eth_vport_rss_config { 3335 __le16 capabilities; 3336 #define ETH_VPORT_RSS_CONFIG_IPV4_CAPABILITY_MASK 0x1 3337 #define ETH_VPORT_RSS_CONFIG_IPV4_CAPABILITY_SHIFT 0 3338 #define ETH_VPORT_RSS_CONFIG_IPV6_CAPABILITY_MASK 0x1 3339 #define ETH_VPORT_RSS_CONFIG_IPV6_CAPABILITY_SHIFT 1 3340 #define ETH_VPORT_RSS_CONFIG_IPV4_TCP_CAPABILITY_MASK 0x1 3341 #define ETH_VPORT_RSS_CONFIG_IPV4_TCP_CAPABILITY_SHIFT 2 3342 #define ETH_VPORT_RSS_CONFIG_IPV6_TCP_CAPABILITY_MASK 0x1 3343 #define ETH_VPORT_RSS_CONFIG_IPV6_TCP_CAPABILITY_SHIFT 3 3344 #define ETH_VPORT_RSS_CONFIG_IPV4_UDP_CAPABILITY_MASK 0x1 3345 #define ETH_VPORT_RSS_CONFIG_IPV4_UDP_CAPABILITY_SHIFT 4 3346 #define ETH_VPORT_RSS_CONFIG_IPV6_UDP_CAPABILITY_MASK 0x1 3347 #define ETH_VPORT_RSS_CONFIG_IPV6_UDP_CAPABILITY_SHIFT 5 3348 #define ETH_VPORT_RSS_CONFIG_EN_5_TUPLE_CAPABILITY_MASK 0x1 3349 #define ETH_VPORT_RSS_CONFIG_EN_5_TUPLE_CAPABILITY_SHIFT 6 3350 #define ETH_VPORT_RSS_CONFIG_RESERVED0_MASK 0x1FF 3351 #define ETH_VPORT_RSS_CONFIG_RESERVED0_SHIFT 7 3352 u8 rss_id; 3353 u8 rss_mode; 3354 u8 update_rss_key; 3355 u8 update_rss_ind_table; 3356 u8 update_rss_capabilities; 3357 u8 tbl_size; 3358 __le32 reserved2[2]; 3359 __le16 indirection_table[ETH_RSS_IND_TABLE_ENTRIES_NUM]; 3360 3361 __le32 rss_key[ETH_RSS_KEY_SIZE_REGS]; 3362 __le32 reserved3[2]; 3363 }; 3364 3365 /* eth vport RSS mode */ 3366 enum eth_vport_rss_mode { 3367 ETH_VPORT_RSS_MODE_DISABLED, 3368 ETH_VPORT_RSS_MODE_REGULAR, 3369 MAX_ETH_VPORT_RSS_MODE 3370 }; 3371 3372 /* Command for setting classification flags for a vport $$KEEP_ENDIANNESS$$ */ 3373 struct eth_vport_rx_mode { 3374 __le16 state; 3375 #define ETH_VPORT_RX_MODE_UCAST_DROP_ALL_MASK 0x1 3376 #define ETH_VPORT_RX_MODE_UCAST_DROP_ALL_SHIFT 0 3377 #define ETH_VPORT_RX_MODE_UCAST_ACCEPT_ALL_MASK 0x1 3378 #define ETH_VPORT_RX_MODE_UCAST_ACCEPT_ALL_SHIFT 1 3379 #define ETH_VPORT_RX_MODE_UCAST_ACCEPT_UNMATCHED_MASK 0x1 3380 #define ETH_VPORT_RX_MODE_UCAST_ACCEPT_UNMATCHED_SHIFT 2 3381 #define ETH_VPORT_RX_MODE_MCAST_DROP_ALL_MASK 0x1 3382 #define ETH_VPORT_RX_MODE_MCAST_DROP_ALL_SHIFT 3 3383 #define ETH_VPORT_RX_MODE_MCAST_ACCEPT_ALL_MASK 0x1 3384 #define ETH_VPORT_RX_MODE_MCAST_ACCEPT_ALL_SHIFT 4 3385 #define ETH_VPORT_RX_MODE_BCAST_ACCEPT_ALL_MASK 0x1 3386 #define ETH_VPORT_RX_MODE_BCAST_ACCEPT_ALL_SHIFT 5 3387 #define ETH_VPORT_RX_MODE_RESERVED1_MASK 0x3FF 3388 #define ETH_VPORT_RX_MODE_RESERVED1_SHIFT 6 3389 __le16 reserved2[3]; 3390 }; 3391 3392 /* Command for setting tpa parameters */ 3393 struct eth_vport_tpa_param { 3394 u8 tpa_ipv4_en_flg; 3395 u8 tpa_ipv6_en_flg; 3396 u8 tpa_ipv4_tunn_en_flg; 3397 u8 tpa_ipv6_tunn_en_flg; 3398 u8 tpa_pkt_split_flg; 3399 u8 tpa_hdr_data_split_flg; 3400 u8 tpa_gro_consistent_flg; 3401 3402 u8 tpa_max_aggs_num; 3403 3404 __le16 tpa_max_size; 3405 __le16 tpa_min_size_to_start; 3406 3407 __le16 tpa_min_size_to_cont; 3408 u8 max_buff_num; 3409 u8 reserved; 3410 }; 3411 3412 /* Command for setting classification flags for a vport $$KEEP_ENDIANNESS$$ */ 3413 struct eth_vport_tx_mode { 3414 __le16 state; 3415 #define ETH_VPORT_TX_MODE_UCAST_DROP_ALL_MASK 0x1 3416 #define ETH_VPORT_TX_MODE_UCAST_DROP_ALL_SHIFT 0 3417 #define ETH_VPORT_TX_MODE_UCAST_ACCEPT_ALL_MASK 0x1 3418 #define ETH_VPORT_TX_MODE_UCAST_ACCEPT_ALL_SHIFT 1 3419 #define ETH_VPORT_TX_MODE_MCAST_DROP_ALL_MASK 0x1 3420 #define ETH_VPORT_TX_MODE_MCAST_DROP_ALL_SHIFT 2 3421 #define ETH_VPORT_TX_MODE_MCAST_ACCEPT_ALL_MASK 0x1 3422 #define ETH_VPORT_TX_MODE_MCAST_ACCEPT_ALL_SHIFT 3 3423 #define ETH_VPORT_TX_MODE_BCAST_ACCEPT_ALL_MASK 0x1 3424 #define ETH_VPORT_TX_MODE_BCAST_ACCEPT_ALL_SHIFT 4 3425 #define ETH_VPORT_TX_MODE_RESERVED1_MASK 0x7FF 3426 #define ETH_VPORT_TX_MODE_RESERVED1_SHIFT 5 3427 __le16 reserved2[3]; 3428 }; 3429 3430 /* Ramrod data for rx queue start ramrod */ 3431 struct rx_queue_start_ramrod_data { 3432 __le16 rx_queue_id; 3433 __le16 num_of_pbl_pages; 3434 __le16 bd_max_bytes; 3435 __le16 sb_id; 3436 u8 sb_index; 3437 u8 vport_id; 3438 u8 default_rss_queue_flg; 3439 u8 complete_cqe_flg; 3440 u8 complete_event_flg; 3441 u8 stats_counter_id; 3442 u8 pin_context; 3443 u8 pxp_tph_valid_bd; 3444 u8 pxp_tph_valid_pkt; 3445 u8 pxp_st_hint; 3446 3447 __le16 pxp_st_index; 3448 u8 pmd_mode; 3449 3450 u8 notify_en; 3451 u8 toggle_val; 3452 3453 u8 vf_rx_prod_index; 3454 3455 u8 reserved[6]; 3456 __le16 reserved1; 3457 struct regpair cqe_pbl_addr; 3458 struct regpair bd_base; 3459 struct regpair reserved2; 3460 }; 3461 3462 /* Ramrod data for rx queue start ramrod */ 3463 struct rx_queue_stop_ramrod_data { 3464 __le16 rx_queue_id; 3465 u8 complete_cqe_flg; 3466 u8 complete_event_flg; 3467 u8 vport_id; 3468 u8 reserved[3]; 3469 }; 3470 3471 /* Ramrod data for rx queue update ramrod */ 3472 struct rx_queue_update_ramrod_data { 3473 __le16 rx_queue_id; 3474 u8 complete_cqe_flg; 3475 u8 complete_event_flg; 3476 u8 vport_id; 3477 u8 reserved[4]; 3478 u8 reserved1; 3479 u8 reserved2; 3480 u8 reserved3; 3481 __le16 reserved4; 3482 __le16 reserved5; 3483 struct regpair reserved6; 3484 }; 3485 3486 /* Ramrod data for rx Add UDP Filter */ 3487 struct rx_udp_filter_data { 3488 __le16 action_icid; 3489 __le16 vlan_id; 3490 u8 ip_type; 3491 u8 tenant_id_exists; 3492 __le16 reserved1; 3493 __le32 ip_dst_addr[4]; 3494 __le32 ip_src_addr[4]; 3495 __le16 udp_dst_port; 3496 __le16 udp_src_port; 3497 __le32 tenant_id; 3498 }; 3499 3500 /* Ramrod data for rx queue start ramrod */ 3501 struct tx_queue_start_ramrod_data { 3502 __le16 sb_id; 3503 u8 sb_index; 3504 u8 vport_id; 3505 u8 reserved0; 3506 u8 stats_counter_id; 3507 __le16 qm_pq_id; 3508 u8 flags; 3509 #define TX_QUEUE_START_RAMROD_DATA_DISABLE_OPPORTUNISTIC_MASK 0x1 3510 #define TX_QUEUE_START_RAMROD_DATA_DISABLE_OPPORTUNISTIC_SHIFT 0 3511 #define TX_QUEUE_START_RAMROD_DATA_TEST_MODE_PKT_DUP_MASK 0x1 3512 #define TX_QUEUE_START_RAMROD_DATA_TEST_MODE_PKT_DUP_SHIFT 1 3513 #define TX_QUEUE_START_RAMROD_DATA_TEST_MODE_TX_DEST_MASK 0x1 3514 #define TX_QUEUE_START_RAMROD_DATA_TEST_MODE_TX_DEST_SHIFT 2 3515 #define TX_QUEUE_START_RAMROD_DATA_PMD_MODE_MASK 0x1 3516 #define TX_QUEUE_START_RAMROD_DATA_PMD_MODE_SHIFT 3 3517 #define TX_QUEUE_START_RAMROD_DATA_NOTIFY_EN_MASK 0x1 3518 #define TX_QUEUE_START_RAMROD_DATA_NOTIFY_EN_SHIFT 4 3519 #define TX_QUEUE_START_RAMROD_DATA_PIN_CONTEXT_MASK 0x1 3520 #define TX_QUEUE_START_RAMROD_DATA_PIN_CONTEXT_SHIFT 5 3521 #define TX_QUEUE_START_RAMROD_DATA_RESERVED1_MASK 0x3 3522 #define TX_QUEUE_START_RAMROD_DATA_RESERVED1_SHIFT 6 3523 u8 pxp_st_hint; 3524 u8 pxp_tph_valid_bd; 3525 u8 pxp_tph_valid_pkt; 3526 __le16 pxp_st_index; 3527 __le16 comp_agg_size; 3528 __le16 queue_zone_id; 3529 __le16 test_dup_count; 3530 __le16 pbl_size; 3531 __le16 tx_queue_id; 3532 3533 struct regpair pbl_base_addr; 3534 struct regpair bd_cons_address; 3535 }; 3536 3537 /* Ramrod data for tx queue stop ramrod */ 3538 struct tx_queue_stop_ramrod_data { 3539 __le16 reserved[4]; 3540 }; 3541 3542 /* Ramrod data for vport update ramrod */ 3543 struct vport_filter_update_ramrod_data { 3544 struct eth_filter_cmd_header filter_cmd_hdr; 3545 struct eth_filter_cmd filter_cmds[ETH_FILTER_RULES_COUNT]; 3546 }; 3547 3548 /* Ramrod data for vport start ramrod */ 3549 struct vport_start_ramrod_data { 3550 u8 vport_id; 3551 u8 sw_fid; 3552 __le16 mtu; 3553 u8 drop_ttl0_en; 3554 u8 inner_vlan_removal_en; 3555 struct eth_vport_rx_mode rx_mode; 3556 struct eth_vport_tx_mode tx_mode; 3557 struct eth_vport_tpa_param tpa_param; 3558 __le16 default_vlan; 3559 u8 tx_switching_en; 3560 u8 anti_spoofing_en; 3561 3562 u8 default_vlan_en; 3563 3564 u8 handle_ptp_pkts; 3565 u8 silent_vlan_removal_en; 3566 u8 untagged; 3567 struct eth_tx_err_vals tx_err_behav; 3568 3569 u8 zero_placement_offset; 3570 u8 ctl_frame_mac_check_en; 3571 u8 ctl_frame_ethtype_check_en; 3572 u8 reserved[5]; 3573 }; 3574 3575 /* Ramrod data for vport stop ramrod */ 3576 struct vport_stop_ramrod_data { 3577 u8 vport_id; 3578 u8 reserved[7]; 3579 }; 3580 3581 /* Ramrod data for vport update ramrod */ 3582 struct vport_update_ramrod_data_cmn { 3583 u8 vport_id; 3584 u8 update_rx_active_flg; 3585 u8 rx_active_flg; 3586 u8 update_tx_active_flg; 3587 u8 tx_active_flg; 3588 u8 update_rx_mode_flg; 3589 u8 update_tx_mode_flg; 3590 u8 update_approx_mcast_flg; 3591 3592 u8 update_rss_flg; 3593 u8 update_inner_vlan_removal_en_flg; 3594 3595 u8 inner_vlan_removal_en; 3596 u8 update_tpa_param_flg; 3597 u8 update_tpa_en_flg; 3598 u8 update_tx_switching_en_flg; 3599 3600 u8 tx_switching_en; 3601 u8 update_anti_spoofing_en_flg; 3602 3603 u8 anti_spoofing_en; 3604 u8 update_handle_ptp_pkts; 3605 3606 u8 handle_ptp_pkts; 3607 u8 update_default_vlan_en_flg; 3608 3609 u8 default_vlan_en; 3610 3611 u8 update_default_vlan_flg; 3612 3613 __le16 default_vlan; 3614 u8 update_accept_any_vlan_flg; 3615 3616 u8 accept_any_vlan; 3617 u8 silent_vlan_removal_en; 3618 u8 update_mtu_flg; 3619 3620 __le16 mtu; 3621 u8 reserved[2]; 3622 }; 3623 3624 struct vport_update_ramrod_mcast { 3625 __le32 bins[ETH_MULTICAST_MAC_BINS_IN_REGS]; 3626 }; 3627 3628 /* Ramrod data for vport update ramrod */ 3629 struct vport_update_ramrod_data { 3630 struct vport_update_ramrod_data_cmn common; 3631 3632 struct eth_vport_rx_mode rx_mode; 3633 struct eth_vport_tx_mode tx_mode; 3634 struct eth_vport_tpa_param tpa_param; 3635 struct vport_update_ramrod_mcast approx_mcast; 3636 struct eth_vport_rss_config rss_config; 3637 }; 3638 3639 struct mstorm_rdma_task_st_ctx { 3640 struct regpair temp[4]; 3641 }; 3642 3643 struct rdma_close_func_ramrod_data { 3644 u8 cnq_start_offset; 3645 u8 num_cnqs; 3646 u8 vf_id; 3647 u8 vf_valid; 3648 u8 reserved[4]; 3649 }; 3650 3651 struct rdma_cnq_params { 3652 __le16 sb_num; 3653 u8 sb_index; 3654 u8 num_pbl_pages; 3655 __le32 reserved; 3656 struct regpair pbl_base_addr; 3657 __le16 queue_zone_num; 3658 u8 reserved1[6]; 3659 }; 3660 3661 struct rdma_create_cq_ramrod_data { 3662 struct regpair cq_handle; 3663 struct regpair pbl_addr; 3664 __le32 max_cqes; 3665 __le16 pbl_num_pages; 3666 __le16 dpi; 3667 u8 is_two_level_pbl; 3668 u8 cnq_id; 3669 u8 pbl_log_page_size; 3670 u8 toggle_bit; 3671 __le16 int_timeout; 3672 __le16 reserved1; 3673 }; 3674 3675 struct rdma_deregister_tid_ramrod_data { 3676 __le32 itid; 3677 __le32 reserved; 3678 }; 3679 3680 struct rdma_destroy_cq_output_params { 3681 __le16 cnq_num; 3682 __le16 reserved0; 3683 __le32 reserved1; 3684 }; 3685 3686 struct rdma_destroy_cq_ramrod_data { 3687 struct regpair output_params_addr; 3688 }; 3689 3690 enum rdma_event_opcode { 3691 RDMA_EVENT_UNUSED, 3692 RDMA_EVENT_FUNC_INIT, 3693 RDMA_EVENT_FUNC_CLOSE, 3694 RDMA_EVENT_REGISTER_MR, 3695 RDMA_EVENT_DEREGISTER_MR, 3696 RDMA_EVENT_CREATE_CQ, 3697 RDMA_EVENT_RESIZE_CQ, 3698 RDMA_EVENT_DESTROY_CQ, 3699 RDMA_EVENT_CREATE_SRQ, 3700 RDMA_EVENT_MODIFY_SRQ, 3701 RDMA_EVENT_DESTROY_SRQ, 3702 MAX_RDMA_EVENT_OPCODE 3703 }; 3704 3705 enum rdma_fw_return_code { 3706 RDMA_RETURN_OK = 0, 3707 RDMA_RETURN_REGISTER_MR_BAD_STATE_ERR, 3708 RDMA_RETURN_DEREGISTER_MR_BAD_STATE_ERR, 3709 RDMA_RETURN_RESIZE_CQ_ERR, 3710 RDMA_RETURN_NIG_DRAIN_REQ, 3711 MAX_RDMA_FW_RETURN_CODE 3712 }; 3713 3714 struct rdma_init_func_hdr { 3715 u8 cnq_start_offset; 3716 u8 num_cnqs; 3717 u8 cq_ring_mode; 3718 u8 cnp_vlan_priority; 3719 __le32 cnp_send_timeout; 3720 u8 cnp_dscp; 3721 u8 vf_id; 3722 u8 vf_valid; 3723 u8 reserved[5]; 3724 }; 3725 3726 struct rdma_init_func_ramrod_data { 3727 struct rdma_init_func_hdr params_header; 3728 struct rdma_cnq_params cnq_params[NUM_OF_GLOBAL_QUEUES]; 3729 }; 3730 3731 enum rdma_ramrod_cmd_id { 3732 RDMA_RAMROD_UNUSED, 3733 RDMA_RAMROD_FUNC_INIT, 3734 RDMA_RAMROD_FUNC_CLOSE, 3735 RDMA_RAMROD_REGISTER_MR, 3736 RDMA_RAMROD_DEREGISTER_MR, 3737 RDMA_RAMROD_CREATE_CQ, 3738 RDMA_RAMROD_RESIZE_CQ, 3739 RDMA_RAMROD_DESTROY_CQ, 3740 RDMA_RAMROD_CREATE_SRQ, 3741 RDMA_RAMROD_MODIFY_SRQ, 3742 RDMA_RAMROD_DESTROY_SRQ, 3743 MAX_RDMA_RAMROD_CMD_ID 3744 }; 3745 3746 struct rdma_register_tid_ramrod_data { 3747 __le32 flags; 3748 #define RDMA_REGISTER_TID_RAMROD_DATA_MAX_ID_MASK 0x3FFFF 3749 #define RDMA_REGISTER_TID_RAMROD_DATA_MAX_ID_SHIFT 0 3750 #define RDMA_REGISTER_TID_RAMROD_DATA_PAGE_SIZE_LOG_MASK 0x1F 3751 #define RDMA_REGISTER_TID_RAMROD_DATA_PAGE_SIZE_LOG_SHIFT 18 3752 #define RDMA_REGISTER_TID_RAMROD_DATA_TWO_LEVEL_PBL_MASK 0x1 3753 #define RDMA_REGISTER_TID_RAMROD_DATA_TWO_LEVEL_PBL_SHIFT 23 3754 #define RDMA_REGISTER_TID_RAMROD_DATA_ZERO_BASED_MASK 0x1 3755 #define RDMA_REGISTER_TID_RAMROD_DATA_ZERO_BASED_SHIFT 24 3756 #define RDMA_REGISTER_TID_RAMROD_DATA_PHY_MR_MASK 0x1 3757 #define RDMA_REGISTER_TID_RAMROD_DATA_PHY_MR_SHIFT 25 3758 #define RDMA_REGISTER_TID_RAMROD_DATA_REMOTE_READ_MASK 0x1 3759 #define RDMA_REGISTER_TID_RAMROD_DATA_REMOTE_READ_SHIFT 26 3760 #define RDMA_REGISTER_TID_RAMROD_DATA_REMOTE_WRITE_MASK 0x1 3761 #define RDMA_REGISTER_TID_RAMROD_DATA_REMOTE_WRITE_SHIFT 27 3762 #define RDMA_REGISTER_TID_RAMROD_DATA_REMOTE_ATOMIC_MASK 0x1 3763 #define RDMA_REGISTER_TID_RAMROD_DATA_REMOTE_ATOMIC_SHIFT 28 3764 #define RDMA_REGISTER_TID_RAMROD_DATA_LOCAL_WRITE_MASK 0x1 3765 #define RDMA_REGISTER_TID_RAMROD_DATA_LOCAL_WRITE_SHIFT 29 3766 #define RDMA_REGISTER_TID_RAMROD_DATA_LOCAL_READ_MASK 0x1 3767 #define RDMA_REGISTER_TID_RAMROD_DATA_LOCAL_READ_SHIFT 30 3768 #define RDMA_REGISTER_TID_RAMROD_DATA_ENABLE_MW_BIND_MASK 0x1 3769 #define RDMA_REGISTER_TID_RAMROD_DATA_ENABLE_MW_BIND_SHIFT 31 3770 u8 flags1; 3771 #define RDMA_REGISTER_TID_RAMROD_DATA_PBL_PAGE_SIZE_LOG_MASK 0x1F 3772 #define RDMA_REGISTER_TID_RAMROD_DATA_PBL_PAGE_SIZE_LOG_SHIFT 0 3773 #define RDMA_REGISTER_TID_RAMROD_DATA_TID_TYPE_MASK 0x7 3774 #define RDMA_REGISTER_TID_RAMROD_DATA_TID_TYPE_SHIFT 5 3775 u8 flags2; 3776 #define RDMA_REGISTER_TID_RAMROD_DATA_DMA_MR_MASK 0x1 3777 #define RDMA_REGISTER_TID_RAMROD_DATA_DMA_MR_SHIFT 0 3778 #define RDMA_REGISTER_TID_RAMROD_DATA_DIF_ON_HOST_FLG_MASK 0x1 3779 #define RDMA_REGISTER_TID_RAMROD_DATA_DIF_ON_HOST_FLG_SHIFT 1 3780 #define RDMA_REGISTER_TID_RAMROD_DATA_RESERVED1_MASK 0x3F 3781 #define RDMA_REGISTER_TID_RAMROD_DATA_RESERVED1_SHIFT 2 3782 u8 key; 3783 u8 length_hi; 3784 u8 vf_id; 3785 u8 vf_valid; 3786 __le16 pd; 3787 __le32 length_lo; 3788 __le32 itid; 3789 __le32 reserved2; 3790 struct regpair va; 3791 struct regpair pbl_base; 3792 struct regpair dif_error_addr; 3793 struct regpair dif_runt_addr; 3794 __le32 reserved3[2]; 3795 }; 3796 3797 struct rdma_resize_cq_output_params { 3798 __le32 old_cq_cons; 3799 __le32 old_cq_prod; 3800 }; 3801 3802 struct rdma_resize_cq_ramrod_data { 3803 u8 flags; 3804 #define RDMA_RESIZE_CQ_RAMROD_DATA_TOGGLE_BIT_MASK 0x1 3805 #define RDMA_RESIZE_CQ_RAMROD_DATA_TOGGLE_BIT_SHIFT 0 3806 #define RDMA_RESIZE_CQ_RAMROD_DATA_IS_TWO_LEVEL_PBL_MASK 0x1 3807 #define RDMA_RESIZE_CQ_RAMROD_DATA_IS_TWO_LEVEL_PBL_SHIFT 1 3808 #define RDMA_RESIZE_CQ_RAMROD_DATA_RESERVED_MASK 0x3F 3809 #define RDMA_RESIZE_CQ_RAMROD_DATA_RESERVED_SHIFT 2 3810 u8 pbl_log_page_size; 3811 __le16 pbl_num_pages; 3812 __le32 max_cqes; 3813 struct regpair pbl_addr; 3814 struct regpair output_params_addr; 3815 }; 3816 3817 struct rdma_srq_context { 3818 struct regpair temp[8]; 3819 }; 3820 3821 struct rdma_srq_create_ramrod_data { 3822 struct regpair pbl_base_addr; 3823 __le16 pages_in_srq_pbl; 3824 __le16 pd_id; 3825 struct rdma_srq_id srq_id; 3826 __le16 page_size; 3827 __le16 reserved1; 3828 __le32 reserved2; 3829 struct regpair producers_addr; 3830 }; 3831 3832 struct rdma_srq_destroy_ramrod_data { 3833 struct rdma_srq_id srq_id; 3834 __le32 reserved; 3835 }; 3836 3837 struct rdma_srq_modify_ramrod_data { 3838 struct rdma_srq_id srq_id; 3839 __le32 wqe_limit; 3840 }; 3841 3842 struct ystorm_rdma_task_st_ctx { 3843 struct regpair temp[4]; 3844 }; 3845 3846 struct ystorm_rdma_task_ag_ctx { 3847 u8 reserved; 3848 u8 byte1; 3849 __le16 msem_ctx_upd_seq; 3850 u8 flags0; 3851 #define YSTORM_RDMA_TASK_AG_CTX_CONNECTION_TYPE_MASK 0xF 3852 #define YSTORM_RDMA_TASK_AG_CTX_CONNECTION_TYPE_SHIFT 0 3853 #define YSTORM_RDMA_TASK_AG_CTX_EXIST_IN_QM0_MASK 0x1 3854 #define YSTORM_RDMA_TASK_AG_CTX_EXIST_IN_QM0_SHIFT 4 3855 #define YSTORM_RDMA_TASK_AG_CTX_BIT1_MASK 0x1 3856 #define YSTORM_RDMA_TASK_AG_CTX_BIT1_SHIFT 5 3857 #define YSTORM_RDMA_TASK_AG_CTX_VALID_MASK 0x1 3858 #define YSTORM_RDMA_TASK_AG_CTX_VALID_SHIFT 6 3859 #define YSTORM_RDMA_TASK_AG_CTX_BIT3_MASK 0x1 3860 #define YSTORM_RDMA_TASK_AG_CTX_BIT3_SHIFT 7 3861 u8 flags1; 3862 #define YSTORM_RDMA_TASK_AG_CTX_CF0_MASK 0x3 3863 #define YSTORM_RDMA_TASK_AG_CTX_CF0_SHIFT 0 3864 #define YSTORM_RDMA_TASK_AG_CTX_CF1_MASK 0x3 3865 #define YSTORM_RDMA_TASK_AG_CTX_CF1_SHIFT 2 3866 #define YSTORM_RDMA_TASK_AG_CTX_CF2SPECIAL_MASK 0x3 3867 #define YSTORM_RDMA_TASK_AG_CTX_CF2SPECIAL_SHIFT 4 3868 #define YSTORM_RDMA_TASK_AG_CTX_CF0EN_MASK 0x1 3869 #define YSTORM_RDMA_TASK_AG_CTX_CF0EN_SHIFT 6 3870 #define YSTORM_RDMA_TASK_AG_CTX_CF1EN_MASK 0x1 3871 #define YSTORM_RDMA_TASK_AG_CTX_CF1EN_SHIFT 7 3872 u8 flags2; 3873 #define YSTORM_RDMA_TASK_AG_CTX_BIT4_MASK 0x1 3874 #define YSTORM_RDMA_TASK_AG_CTX_BIT4_SHIFT 0 3875 #define YSTORM_RDMA_TASK_AG_CTX_RULE0EN_MASK 0x1 3876 #define YSTORM_RDMA_TASK_AG_CTX_RULE0EN_SHIFT 1 3877 #define YSTORM_RDMA_TASK_AG_CTX_RULE1EN_MASK 0x1 3878 #define YSTORM_RDMA_TASK_AG_CTX_RULE1EN_SHIFT 2 3879 #define YSTORM_RDMA_TASK_AG_CTX_RULE2EN_MASK 0x1 3880 #define YSTORM_RDMA_TASK_AG_CTX_RULE2EN_SHIFT 3 3881 #define YSTORM_RDMA_TASK_AG_CTX_RULE3EN_MASK 0x1 3882 #define YSTORM_RDMA_TASK_AG_CTX_RULE3EN_SHIFT 4 3883 #define YSTORM_RDMA_TASK_AG_CTX_RULE4EN_MASK 0x1 3884 #define YSTORM_RDMA_TASK_AG_CTX_RULE4EN_SHIFT 5 3885 #define YSTORM_RDMA_TASK_AG_CTX_RULE5EN_MASK 0x1 3886 #define YSTORM_RDMA_TASK_AG_CTX_RULE5EN_SHIFT 6 3887 #define YSTORM_RDMA_TASK_AG_CTX_RULE6EN_MASK 0x1 3888 #define YSTORM_RDMA_TASK_AG_CTX_RULE6EN_SHIFT 7 3889 u8 key; 3890 __le32 mw_cnt; 3891 u8 ref_cnt_seq; 3892 u8 ctx_upd_seq; 3893 __le16 dif_flags; 3894 __le16 tx_ref_count; 3895 __le16 last_used_ltid; 3896 __le16 parent_mr_lo; 3897 __le16 parent_mr_hi; 3898 __le32 fbo_lo; 3899 __le32 fbo_hi; 3900 }; 3901 3902 struct mstorm_rdma_task_ag_ctx { 3903 u8 reserved; 3904 u8 byte1; 3905 __le16 icid; 3906 u8 flags0; 3907 #define MSTORM_RDMA_TASK_AG_CTX_CONNECTION_TYPE_MASK 0xF 3908 #define MSTORM_RDMA_TASK_AG_CTX_CONNECTION_TYPE_SHIFT 0 3909 #define MSTORM_RDMA_TASK_AG_CTX_EXIST_IN_QM0_MASK 0x1 3910 #define MSTORM_RDMA_TASK_AG_CTX_EXIST_IN_QM0_SHIFT 4 3911 #define MSTORM_RDMA_TASK_AG_CTX_BIT1_MASK 0x1 3912 #define MSTORM_RDMA_TASK_AG_CTX_BIT1_SHIFT 5 3913 #define MSTORM_RDMA_TASK_AG_CTX_BIT2_MASK 0x1 3914 #define MSTORM_RDMA_TASK_AG_CTX_BIT2_SHIFT 6 3915 #define MSTORM_RDMA_TASK_AG_CTX_BIT3_MASK 0x1 3916 #define MSTORM_RDMA_TASK_AG_CTX_BIT3_SHIFT 7 3917 u8 flags1; 3918 #define MSTORM_RDMA_TASK_AG_CTX_CF0_MASK 0x3 3919 #define MSTORM_RDMA_TASK_AG_CTX_CF0_SHIFT 0 3920 #define MSTORM_RDMA_TASK_AG_CTX_CF1_MASK 0x3 3921 #define MSTORM_RDMA_TASK_AG_CTX_CF1_SHIFT 2 3922 #define MSTORM_RDMA_TASK_AG_CTX_CF2_MASK 0x3 3923 #define MSTORM_RDMA_TASK_AG_CTX_CF2_SHIFT 4 3924 #define MSTORM_RDMA_TASK_AG_CTX_CF0EN_MASK 0x1 3925 #define MSTORM_RDMA_TASK_AG_CTX_CF0EN_SHIFT 6 3926 #define MSTORM_RDMA_TASK_AG_CTX_CF1EN_MASK 0x1 3927 #define MSTORM_RDMA_TASK_AG_CTX_CF1EN_SHIFT 7 3928 u8 flags2; 3929 #define MSTORM_RDMA_TASK_AG_CTX_CF2EN_MASK 0x1 3930 #define MSTORM_RDMA_TASK_AG_CTX_CF2EN_SHIFT 0 3931 #define MSTORM_RDMA_TASK_AG_CTX_RULE0EN_MASK 0x1 3932 #define MSTORM_RDMA_TASK_AG_CTX_RULE0EN_SHIFT 1 3933 #define MSTORM_RDMA_TASK_AG_CTX_RULE1EN_MASK 0x1 3934 #define MSTORM_RDMA_TASK_AG_CTX_RULE1EN_SHIFT 2 3935 #define MSTORM_RDMA_TASK_AG_CTX_RULE2EN_MASK 0x1 3936 #define MSTORM_RDMA_TASK_AG_CTX_RULE2EN_SHIFT 3 3937 #define MSTORM_RDMA_TASK_AG_CTX_RULE3EN_MASK 0x1 3938 #define MSTORM_RDMA_TASK_AG_CTX_RULE3EN_SHIFT 4 3939 #define MSTORM_RDMA_TASK_AG_CTX_RULE4EN_MASK 0x1 3940 #define MSTORM_RDMA_TASK_AG_CTX_RULE4EN_SHIFT 5 3941 #define MSTORM_RDMA_TASK_AG_CTX_RULE5EN_MASK 0x1 3942 #define MSTORM_RDMA_TASK_AG_CTX_RULE5EN_SHIFT 6 3943 #define MSTORM_RDMA_TASK_AG_CTX_RULE6EN_MASK 0x1 3944 #define MSTORM_RDMA_TASK_AG_CTX_RULE6EN_SHIFT 7 3945 u8 key; 3946 __le32 mw_cnt; 3947 u8 ref_cnt_seq; 3948 u8 ctx_upd_seq; 3949 __le16 dif_flags; 3950 __le16 tx_ref_count; 3951 __le16 last_used_ltid; 3952 __le16 parent_mr_lo; 3953 __le16 parent_mr_hi; 3954 __le32 fbo_lo; 3955 __le32 fbo_hi; 3956 }; 3957 3958 struct ustorm_rdma_task_st_ctx { 3959 struct regpair temp[2]; 3960 }; 3961 3962 struct ustorm_rdma_task_ag_ctx { 3963 u8 reserved; 3964 u8 byte1; 3965 __le16 icid; 3966 u8 flags0; 3967 #define USTORM_RDMA_TASK_AG_CTX_CONNECTION_TYPE_MASK 0xF 3968 #define USTORM_RDMA_TASK_AG_CTX_CONNECTION_TYPE_SHIFT 0 3969 #define USTORM_RDMA_TASK_AG_CTX_EXIST_IN_QM0_MASK 0x1 3970 #define USTORM_RDMA_TASK_AG_CTX_EXIST_IN_QM0_SHIFT 4 3971 #define USTORM_RDMA_TASK_AG_CTX_DIF_RUNT_VALID_MASK 0x1 3972 #define USTORM_RDMA_TASK_AG_CTX_DIF_RUNT_VALID_SHIFT 5 3973 #define USTORM_RDMA_TASK_AG_CTX_DIF_WRITE_RESULT_CF_MASK 0x3 3974 #define USTORM_RDMA_TASK_AG_CTX_DIF_WRITE_RESULT_CF_SHIFT 6 3975 u8 flags1; 3976 #define USTORM_RDMA_TASK_AG_CTX_DIF_RESULT_TOGGLE_BIT_MASK 0x3 3977 #define USTORM_RDMA_TASK_AG_CTX_DIF_RESULT_TOGGLE_BIT_SHIFT 0 3978 #define USTORM_RDMA_TASK_AG_CTX_DIF_TX_IO_FLG_MASK 0x3 3979 #define USTORM_RDMA_TASK_AG_CTX_DIF_TX_IO_FLG_SHIFT 2 3980 #define USTORM_RDMA_TASK_AG_CTX_CF3_MASK 0x3 3981 #define USTORM_RDMA_TASK_AG_CTX_CF3_SHIFT 4 3982 #define USTORM_RDMA_TASK_AG_CTX_DIF_ERROR_CF_MASK 0x3 3983 #define USTORM_RDMA_TASK_AG_CTX_DIF_ERROR_CF_SHIFT 6 3984 u8 flags2; 3985 #define USTORM_RDMA_TASK_AG_CTX_DIF_WRITE_RESULT_CF_EN_MASK 0x1 3986 #define USTORM_RDMA_TASK_AG_CTX_DIF_WRITE_RESULT_CF_EN_SHIFT 0 3987 #define USTORM_RDMA_TASK_AG_CTX_RESERVED2_MASK 0x1 3988 #define USTORM_RDMA_TASK_AG_CTX_RESERVED2_SHIFT 1 3989 #define USTORM_RDMA_TASK_AG_CTX_RESERVED3_MASK 0x1 3990 #define USTORM_RDMA_TASK_AG_CTX_RESERVED3_SHIFT 2 3991 #define USTORM_RDMA_TASK_AG_CTX_CF3EN_MASK 0x1 3992 #define USTORM_RDMA_TASK_AG_CTX_CF3EN_SHIFT 3 3993 #define USTORM_RDMA_TASK_AG_CTX_DIF_ERROR_CF_EN_MASK 0x1 3994 #define USTORM_RDMA_TASK_AG_CTX_DIF_ERROR_CF_EN_SHIFT 4 3995 #define USTORM_RDMA_TASK_AG_CTX_RULE0EN_MASK 0x1 3996 #define USTORM_RDMA_TASK_AG_CTX_RULE0EN_SHIFT 5 3997 #define USTORM_RDMA_TASK_AG_CTX_RULE1EN_MASK 0x1 3998 #define USTORM_RDMA_TASK_AG_CTX_RULE1EN_SHIFT 6 3999 #define USTORM_RDMA_TASK_AG_CTX_RULE2EN_MASK 0x1 4000 #define USTORM_RDMA_TASK_AG_CTX_RULE2EN_SHIFT 7 4001 u8 flags3; 4002 #define USTORM_RDMA_TASK_AG_CTX_RULE3EN_MASK 0x1 4003 #define USTORM_RDMA_TASK_AG_CTX_RULE3EN_SHIFT 0 4004 #define USTORM_RDMA_TASK_AG_CTX_RULE4EN_MASK 0x1 4005 #define USTORM_RDMA_TASK_AG_CTX_RULE4EN_SHIFT 1 4006 #define USTORM_RDMA_TASK_AG_CTX_RULE5EN_MASK 0x1 4007 #define USTORM_RDMA_TASK_AG_CTX_RULE5EN_SHIFT 2 4008 #define USTORM_RDMA_TASK_AG_CTX_RULE6EN_MASK 0x1 4009 #define USTORM_RDMA_TASK_AG_CTX_RULE6EN_SHIFT 3 4010 #define USTORM_RDMA_TASK_AG_CTX_DIF_ERROR_TYPE_MASK 0xF 4011 #define USTORM_RDMA_TASK_AG_CTX_DIF_ERROR_TYPE_SHIFT 4 4012 __le32 dif_err_intervals; 4013 __le32 dif_error_1st_interval; 4014 __le32 reg2; 4015 __le32 dif_runt_value; 4016 __le32 reg4; 4017 __le32 reg5; 4018 }; 4019 4020 struct rdma_task_context { 4021 struct ystorm_rdma_task_st_ctx ystorm_st_context; 4022 struct ystorm_rdma_task_ag_ctx ystorm_ag_context; 4023 struct tdif_task_context tdif_context; 4024 struct mstorm_rdma_task_ag_ctx mstorm_ag_context; 4025 struct mstorm_rdma_task_st_ctx mstorm_st_context; 4026 struct rdif_task_context rdif_context; 4027 struct ustorm_rdma_task_st_ctx ustorm_st_context; 4028 struct regpair ustorm_st_padding[2]; 4029 struct ustorm_rdma_task_ag_ctx ustorm_ag_context; 4030 }; 4031 4032 enum rdma_tid_type { 4033 RDMA_TID_REGISTERED_MR, 4034 RDMA_TID_FMR, 4035 RDMA_TID_MW_TYPE1, 4036 RDMA_TID_MW_TYPE2A, 4037 MAX_RDMA_TID_TYPE 4038 }; 4039 4040 struct mstorm_rdma_conn_ag_ctx { 4041 u8 byte0; 4042 u8 byte1; 4043 u8 flags0; 4044 #define MSTORM_RDMA_CONN_AG_CTX_BIT0_MASK 0x1 4045 #define MSTORM_RDMA_CONN_AG_CTX_BIT0_SHIFT 0 4046 #define MSTORM_RDMA_CONN_AG_CTX_BIT1_MASK 0x1 4047 #define MSTORM_RDMA_CONN_AG_CTX_BIT1_SHIFT 1 4048 #define MSTORM_RDMA_CONN_AG_CTX_CF0_MASK 0x3 4049 #define MSTORM_RDMA_CONN_AG_CTX_CF0_SHIFT 2 4050 #define MSTORM_RDMA_CONN_AG_CTX_CF1_MASK 0x3 4051 #define MSTORM_RDMA_CONN_AG_CTX_CF1_SHIFT 4 4052 #define MSTORM_RDMA_CONN_AG_CTX_CF2_MASK 0x3 4053 #define MSTORM_RDMA_CONN_AG_CTX_CF2_SHIFT 6 4054 u8 flags1; 4055 #define MSTORM_RDMA_CONN_AG_CTX_CF0EN_MASK 0x1 4056 #define MSTORM_RDMA_CONN_AG_CTX_CF0EN_SHIFT 0 4057 #define MSTORM_RDMA_CONN_AG_CTX_CF1EN_MASK 0x1 4058 #define MSTORM_RDMA_CONN_AG_CTX_CF1EN_SHIFT 1 4059 #define MSTORM_RDMA_CONN_AG_CTX_CF2EN_MASK 0x1 4060 #define MSTORM_RDMA_CONN_AG_CTX_CF2EN_SHIFT 2 4061 #define MSTORM_RDMA_CONN_AG_CTX_RULE0EN_MASK 0x1 4062 #define MSTORM_RDMA_CONN_AG_CTX_RULE0EN_SHIFT 3 4063 #define MSTORM_RDMA_CONN_AG_CTX_RULE1EN_MASK 0x1 4064 #define MSTORM_RDMA_CONN_AG_CTX_RULE1EN_SHIFT 4 4065 #define MSTORM_RDMA_CONN_AG_CTX_RULE2EN_MASK 0x1 4066 #define MSTORM_RDMA_CONN_AG_CTX_RULE2EN_SHIFT 5 4067 #define MSTORM_RDMA_CONN_AG_CTX_RULE3EN_MASK 0x1 4068 #define MSTORM_RDMA_CONN_AG_CTX_RULE3EN_SHIFT 6 4069 #define MSTORM_RDMA_CONN_AG_CTX_RULE4EN_MASK 0x1 4070 #define MSTORM_RDMA_CONN_AG_CTX_RULE4EN_SHIFT 7 4071 __le16 word0; 4072 __le16 word1; 4073 __le32 reg0; 4074 __le32 reg1; 4075 }; 4076 4077 struct tstorm_rdma_conn_ag_ctx { 4078 u8 reserved0; 4079 u8 byte1; 4080 u8 flags0; 4081 #define TSTORM_RDMA_CONN_AG_CTX_EXIST_IN_QM0_MASK 0x1 4082 #define TSTORM_RDMA_CONN_AG_CTX_EXIST_IN_QM0_SHIFT 0 4083 #define TSTORM_RDMA_CONN_AG_CTX_BIT1_MASK 0x1 4084 #define TSTORM_RDMA_CONN_AG_CTX_BIT1_SHIFT 1 4085 #define TSTORM_RDMA_CONN_AG_CTX_BIT2_MASK 0x1 4086 #define TSTORM_RDMA_CONN_AG_CTX_BIT2_SHIFT 2 4087 #define TSTORM_RDMA_CONN_AG_CTX_BIT3_MASK 0x1 4088 #define TSTORM_RDMA_CONN_AG_CTX_BIT3_SHIFT 3 4089 #define TSTORM_RDMA_CONN_AG_CTX_BIT4_MASK 0x1 4090 #define TSTORM_RDMA_CONN_AG_CTX_BIT4_SHIFT 4 4091 #define TSTORM_RDMA_CONN_AG_CTX_BIT5_MASK 0x1 4092 #define TSTORM_RDMA_CONN_AG_CTX_BIT5_SHIFT 5 4093 #define TSTORM_RDMA_CONN_AG_CTX_CF0_MASK 0x3 4094 #define TSTORM_RDMA_CONN_AG_CTX_CF0_SHIFT 6 4095 u8 flags1; 4096 #define TSTORM_RDMA_CONN_AG_CTX_CF1_MASK 0x3 4097 #define TSTORM_RDMA_CONN_AG_CTX_CF1_SHIFT 0 4098 #define TSTORM_RDMA_CONN_AG_CTX_CF2_MASK 0x3 4099 #define TSTORM_RDMA_CONN_AG_CTX_CF2_SHIFT 2 4100 #define TSTORM_RDMA_CONN_AG_CTX_TIMER_STOP_ALL_CF_MASK 0x3 4101 #define TSTORM_RDMA_CONN_AG_CTX_TIMER_STOP_ALL_CF_SHIFT 4 4102 #define TSTORM_RDMA_CONN_AG_CTX_FLUSH_Q0_CF_MASK 0x3 4103 #define TSTORM_RDMA_CONN_AG_CTX_FLUSH_Q0_CF_SHIFT 6 4104 u8 flags2; 4105 #define TSTORM_RDMA_CONN_AG_CTX_MSTORM_FLUSH_CF_MASK 0x3 4106 #define TSTORM_RDMA_CONN_AG_CTX_MSTORM_FLUSH_CF_SHIFT 0 4107 #define TSTORM_RDMA_CONN_AG_CTX_CF6_MASK 0x3 4108 #define TSTORM_RDMA_CONN_AG_CTX_CF6_SHIFT 2 4109 #define TSTORM_RDMA_CONN_AG_CTX_CF7_MASK 0x3 4110 #define TSTORM_RDMA_CONN_AG_CTX_CF7_SHIFT 4 4111 #define TSTORM_RDMA_CONN_AG_CTX_CF8_MASK 0x3 4112 #define TSTORM_RDMA_CONN_AG_CTX_CF8_SHIFT 6 4113 u8 flags3; 4114 #define TSTORM_RDMA_CONN_AG_CTX_CF9_MASK 0x3 4115 #define TSTORM_RDMA_CONN_AG_CTX_CF9_SHIFT 0 4116 #define TSTORM_RDMA_CONN_AG_CTX_CF10_MASK 0x3 4117 #define TSTORM_RDMA_CONN_AG_CTX_CF10_SHIFT 2 4118 #define TSTORM_RDMA_CONN_AG_CTX_CF0EN_MASK 0x1 4119 #define TSTORM_RDMA_CONN_AG_CTX_CF0EN_SHIFT 4 4120 #define TSTORM_RDMA_CONN_AG_CTX_CF1EN_MASK 0x1 4121 #define TSTORM_RDMA_CONN_AG_CTX_CF1EN_SHIFT 5 4122 #define TSTORM_RDMA_CONN_AG_CTX_CF2EN_MASK 0x1 4123 #define TSTORM_RDMA_CONN_AG_CTX_CF2EN_SHIFT 6 4124 #define TSTORM_RDMA_CONN_AG_CTX_TIMER_STOP_ALL_CF_EN_MASK 0x1 4125 #define TSTORM_RDMA_CONN_AG_CTX_TIMER_STOP_ALL_CF_EN_SHIFT 7 4126 u8 flags4; 4127 #define TSTORM_RDMA_CONN_AG_CTX_FLUSH_Q0_CF_EN_MASK 0x1 4128 #define TSTORM_RDMA_CONN_AG_CTX_FLUSH_Q0_CF_EN_SHIFT 0 4129 #define TSTORM_RDMA_CONN_AG_CTX_MSTORM_FLUSH_CF_EN_MASK 0x1 4130 #define TSTORM_RDMA_CONN_AG_CTX_MSTORM_FLUSH_CF_EN_SHIFT 1 4131 #define TSTORM_RDMA_CONN_AG_CTX_CF6EN_MASK 0x1 4132 #define TSTORM_RDMA_CONN_AG_CTX_CF6EN_SHIFT 2 4133 #define TSTORM_RDMA_CONN_AG_CTX_CF7EN_MASK 0x1 4134 #define TSTORM_RDMA_CONN_AG_CTX_CF7EN_SHIFT 3 4135 #define TSTORM_RDMA_CONN_AG_CTX_CF8EN_MASK 0x1 4136 #define TSTORM_RDMA_CONN_AG_CTX_CF8EN_SHIFT 4 4137 #define TSTORM_RDMA_CONN_AG_CTX_CF9EN_MASK 0x1 4138 #define TSTORM_RDMA_CONN_AG_CTX_CF9EN_SHIFT 5 4139 #define TSTORM_RDMA_CONN_AG_CTX_CF10EN_MASK 0x1 4140 #define TSTORM_RDMA_CONN_AG_CTX_CF10EN_SHIFT 6 4141 #define TSTORM_RDMA_CONN_AG_CTX_RULE0EN_MASK 0x1 4142 #define TSTORM_RDMA_CONN_AG_CTX_RULE0EN_SHIFT 7 4143 u8 flags5; 4144 #define TSTORM_RDMA_CONN_AG_CTX_RULE1EN_MASK 0x1 4145 #define TSTORM_RDMA_CONN_AG_CTX_RULE1EN_SHIFT 0 4146 #define TSTORM_RDMA_CONN_AG_CTX_RULE2EN_MASK 0x1 4147 #define TSTORM_RDMA_CONN_AG_CTX_RULE2EN_SHIFT 1 4148 #define TSTORM_RDMA_CONN_AG_CTX_RULE3EN_MASK 0x1 4149 #define TSTORM_RDMA_CONN_AG_CTX_RULE3EN_SHIFT 2 4150 #define TSTORM_RDMA_CONN_AG_CTX_RULE4EN_MASK 0x1 4151 #define TSTORM_RDMA_CONN_AG_CTX_RULE4EN_SHIFT 3 4152 #define TSTORM_RDMA_CONN_AG_CTX_RULE5EN_MASK 0x1 4153 #define TSTORM_RDMA_CONN_AG_CTX_RULE5EN_SHIFT 4 4154 #define TSTORM_RDMA_CONN_AG_CTX_RULE6EN_MASK 0x1 4155 #define TSTORM_RDMA_CONN_AG_CTX_RULE6EN_SHIFT 5 4156 #define TSTORM_RDMA_CONN_AG_CTX_RULE7EN_MASK 0x1 4157 #define TSTORM_RDMA_CONN_AG_CTX_RULE7EN_SHIFT 6 4158 #define TSTORM_RDMA_CONN_AG_CTX_RULE8EN_MASK 0x1 4159 #define TSTORM_RDMA_CONN_AG_CTX_RULE8EN_SHIFT 7 4160 __le32 reg0; 4161 __le32 reg1; 4162 __le32 reg2; 4163 __le32 reg3; 4164 __le32 reg4; 4165 __le32 reg5; 4166 __le32 reg6; 4167 __le32 reg7; 4168 __le32 reg8; 4169 u8 byte2; 4170 u8 byte3; 4171 __le16 word0; 4172 u8 byte4; 4173 u8 byte5; 4174 __le16 word1; 4175 __le16 word2; 4176 __le16 word3; 4177 __le32 reg9; 4178 __le32 reg10; 4179 }; 4180 4181 struct tstorm_rdma_task_ag_ctx { 4182 u8 byte0; 4183 u8 byte1; 4184 __le16 word0; 4185 u8 flags0; 4186 #define TSTORM_RDMA_TASK_AG_CTX_NIBBLE0_MASK 0xF 4187 #define TSTORM_RDMA_TASK_AG_CTX_NIBBLE0_SHIFT 0 4188 #define TSTORM_RDMA_TASK_AG_CTX_BIT0_MASK 0x1 4189 #define TSTORM_RDMA_TASK_AG_CTX_BIT0_SHIFT 4 4190 #define TSTORM_RDMA_TASK_AG_CTX_BIT1_MASK 0x1 4191 #define TSTORM_RDMA_TASK_AG_CTX_BIT1_SHIFT 5 4192 #define TSTORM_RDMA_TASK_AG_CTX_BIT2_MASK 0x1 4193 #define TSTORM_RDMA_TASK_AG_CTX_BIT2_SHIFT 6 4194 #define TSTORM_RDMA_TASK_AG_CTX_BIT3_MASK 0x1 4195 #define TSTORM_RDMA_TASK_AG_CTX_BIT3_SHIFT 7 4196 u8 flags1; 4197 #define TSTORM_RDMA_TASK_AG_CTX_BIT4_MASK 0x1 4198 #define TSTORM_RDMA_TASK_AG_CTX_BIT4_SHIFT 0 4199 #define TSTORM_RDMA_TASK_AG_CTX_BIT5_MASK 0x1 4200 #define TSTORM_RDMA_TASK_AG_CTX_BIT5_SHIFT 1 4201 #define TSTORM_RDMA_TASK_AG_CTX_CF0_MASK 0x3 4202 #define TSTORM_RDMA_TASK_AG_CTX_CF0_SHIFT 2 4203 #define TSTORM_RDMA_TASK_AG_CTX_CF1_MASK 0x3 4204 #define TSTORM_RDMA_TASK_AG_CTX_CF1_SHIFT 4 4205 #define TSTORM_RDMA_TASK_AG_CTX_CF2_MASK 0x3 4206 #define TSTORM_RDMA_TASK_AG_CTX_CF2_SHIFT 6 4207 u8 flags2; 4208 #define TSTORM_RDMA_TASK_AG_CTX_CF3_MASK 0x3 4209 #define TSTORM_RDMA_TASK_AG_CTX_CF3_SHIFT 0 4210 #define TSTORM_RDMA_TASK_AG_CTX_CF4_MASK 0x3 4211 #define TSTORM_RDMA_TASK_AG_CTX_CF4_SHIFT 2 4212 #define TSTORM_RDMA_TASK_AG_CTX_CF5_MASK 0x3 4213 #define TSTORM_RDMA_TASK_AG_CTX_CF5_SHIFT 4 4214 #define TSTORM_RDMA_TASK_AG_CTX_CF6_MASK 0x3 4215 #define TSTORM_RDMA_TASK_AG_CTX_CF6_SHIFT 6 4216 u8 flags3; 4217 #define TSTORM_RDMA_TASK_AG_CTX_CF7_MASK 0x3 4218 #define TSTORM_RDMA_TASK_AG_CTX_CF7_SHIFT 0 4219 #define TSTORM_RDMA_TASK_AG_CTX_CF0EN_MASK 0x1 4220 #define TSTORM_RDMA_TASK_AG_CTX_CF0EN_SHIFT 2 4221 #define TSTORM_RDMA_TASK_AG_CTX_CF1EN_MASK 0x1 4222 #define TSTORM_RDMA_TASK_AG_CTX_CF1EN_SHIFT 3 4223 #define TSTORM_RDMA_TASK_AG_CTX_CF2EN_MASK 0x1 4224 #define TSTORM_RDMA_TASK_AG_CTX_CF2EN_SHIFT 4 4225 #define TSTORM_RDMA_TASK_AG_CTX_CF3EN_MASK 0x1 4226 #define TSTORM_RDMA_TASK_AG_CTX_CF3EN_SHIFT 5 4227 #define TSTORM_RDMA_TASK_AG_CTX_CF4EN_MASK 0x1 4228 #define TSTORM_RDMA_TASK_AG_CTX_CF4EN_SHIFT 6 4229 #define TSTORM_RDMA_TASK_AG_CTX_CF5EN_MASK 0x1 4230 #define TSTORM_RDMA_TASK_AG_CTX_CF5EN_SHIFT 7 4231 u8 flags4; 4232 #define TSTORM_RDMA_TASK_AG_CTX_CF6EN_MASK 0x1 4233 #define TSTORM_RDMA_TASK_AG_CTX_CF6EN_SHIFT 0 4234 #define TSTORM_RDMA_TASK_AG_CTX_CF7EN_MASK 0x1 4235 #define TSTORM_RDMA_TASK_AG_CTX_CF7EN_SHIFT 1 4236 #define TSTORM_RDMA_TASK_AG_CTX_RULE0EN_MASK 0x1 4237 #define TSTORM_RDMA_TASK_AG_CTX_RULE0EN_SHIFT 2 4238 #define TSTORM_RDMA_TASK_AG_CTX_RULE1EN_MASK 0x1 4239 #define TSTORM_RDMA_TASK_AG_CTX_RULE1EN_SHIFT 3 4240 #define TSTORM_RDMA_TASK_AG_CTX_RULE2EN_MASK 0x1 4241 #define TSTORM_RDMA_TASK_AG_CTX_RULE2EN_SHIFT 4 4242 #define TSTORM_RDMA_TASK_AG_CTX_RULE3EN_MASK 0x1 4243 #define TSTORM_RDMA_TASK_AG_CTX_RULE3EN_SHIFT 5 4244 #define TSTORM_RDMA_TASK_AG_CTX_RULE4EN_MASK 0x1 4245 #define TSTORM_RDMA_TASK_AG_CTX_RULE4EN_SHIFT 6 4246 #define TSTORM_RDMA_TASK_AG_CTX_RULE5EN_MASK 0x1 4247 #define TSTORM_RDMA_TASK_AG_CTX_RULE5EN_SHIFT 7 4248 u8 byte2; 4249 __le16 word1; 4250 __le32 reg0; 4251 u8 byte3; 4252 u8 byte4; 4253 __le16 word2; 4254 __le16 word3; 4255 __le16 word4; 4256 __le32 reg1; 4257 __le32 reg2; 4258 }; 4259 4260 struct ustorm_rdma_conn_ag_ctx { 4261 u8 reserved; 4262 u8 byte1; 4263 u8 flags0; 4264 #define USTORM_RDMA_CONN_AG_CTX_EXIST_IN_QM0_MASK 0x1 4265 #define USTORM_RDMA_CONN_AG_CTX_EXIST_IN_QM0_SHIFT 0 4266 #define USTORM_RDMA_CONN_AG_CTX_BIT1_MASK 0x1 4267 #define USTORM_RDMA_CONN_AG_CTX_BIT1_SHIFT 1 4268 #define USTORM_RDMA_CONN_AG_CTX_FLUSH_Q0_CF_MASK 0x3 4269 #define USTORM_RDMA_CONN_AG_CTX_FLUSH_Q0_CF_SHIFT 2 4270 #define USTORM_RDMA_CONN_AG_CTX_CF1_MASK 0x3 4271 #define USTORM_RDMA_CONN_AG_CTX_CF1_SHIFT 4 4272 #define USTORM_RDMA_CONN_AG_CTX_CF2_MASK 0x3 4273 #define USTORM_RDMA_CONN_AG_CTX_CF2_SHIFT 6 4274 u8 flags1; 4275 #define USTORM_RDMA_CONN_AG_CTX_CF3_MASK 0x3 4276 #define USTORM_RDMA_CONN_AG_CTX_CF3_SHIFT 0 4277 #define USTORM_RDMA_CONN_AG_CTX_CQ_ARM_SE_CF_MASK 0x3 4278 #define USTORM_RDMA_CONN_AG_CTX_CQ_ARM_SE_CF_SHIFT 2 4279 #define USTORM_RDMA_CONN_AG_CTX_CQ_ARM_CF_MASK 0x3 4280 #define USTORM_RDMA_CONN_AG_CTX_CQ_ARM_CF_SHIFT 4 4281 #define USTORM_RDMA_CONN_AG_CTX_CF6_MASK 0x3 4282 #define USTORM_RDMA_CONN_AG_CTX_CF6_SHIFT 6 4283 u8 flags2; 4284 #define USTORM_RDMA_CONN_AG_CTX_FLUSH_Q0_CF_EN_MASK 0x1 4285 #define USTORM_RDMA_CONN_AG_CTX_FLUSH_Q0_CF_EN_SHIFT 0 4286 #define USTORM_RDMA_CONN_AG_CTX_CF1EN_MASK 0x1 4287 #define USTORM_RDMA_CONN_AG_CTX_CF1EN_SHIFT 1 4288 #define USTORM_RDMA_CONN_AG_CTX_CF2EN_MASK 0x1 4289 #define USTORM_RDMA_CONN_AG_CTX_CF2EN_SHIFT 2 4290 #define USTORM_RDMA_CONN_AG_CTX_CF3EN_MASK 0x1 4291 #define USTORM_RDMA_CONN_AG_CTX_CF3EN_SHIFT 3 4292 #define USTORM_RDMA_CONN_AG_CTX_CQ_ARM_SE_CF_EN_MASK 0x1 4293 #define USTORM_RDMA_CONN_AG_CTX_CQ_ARM_SE_CF_EN_SHIFT 4 4294 #define USTORM_RDMA_CONN_AG_CTX_CQ_ARM_CF_EN_MASK 0x1 4295 #define USTORM_RDMA_CONN_AG_CTX_CQ_ARM_CF_EN_SHIFT 5 4296 #define USTORM_RDMA_CONN_AG_CTX_CF6EN_MASK 0x1 4297 #define USTORM_RDMA_CONN_AG_CTX_CF6EN_SHIFT 6 4298 #define USTORM_RDMA_CONN_AG_CTX_CQ_SE_EN_MASK 0x1 4299 #define USTORM_RDMA_CONN_AG_CTX_CQ_SE_EN_SHIFT 7 4300 u8 flags3; 4301 #define USTORM_RDMA_CONN_AG_CTX_CQ_EN_MASK 0x1 4302 #define USTORM_RDMA_CONN_AG_CTX_CQ_EN_SHIFT 0 4303 #define USTORM_RDMA_CONN_AG_CTX_RULE2EN_MASK 0x1 4304 #define USTORM_RDMA_CONN_AG_CTX_RULE2EN_SHIFT 1 4305 #define USTORM_RDMA_CONN_AG_CTX_RULE3EN_MASK 0x1 4306 #define USTORM_RDMA_CONN_AG_CTX_RULE3EN_SHIFT 2 4307 #define USTORM_RDMA_CONN_AG_CTX_RULE4EN_MASK 0x1 4308 #define USTORM_RDMA_CONN_AG_CTX_RULE4EN_SHIFT 3 4309 #define USTORM_RDMA_CONN_AG_CTX_RULE5EN_MASK 0x1 4310 #define USTORM_RDMA_CONN_AG_CTX_RULE5EN_SHIFT 4 4311 #define USTORM_RDMA_CONN_AG_CTX_RULE6EN_MASK 0x1 4312 #define USTORM_RDMA_CONN_AG_CTX_RULE6EN_SHIFT 5 4313 #define USTORM_RDMA_CONN_AG_CTX_RULE7EN_MASK 0x1 4314 #define USTORM_RDMA_CONN_AG_CTX_RULE7EN_SHIFT 6 4315 #define USTORM_RDMA_CONN_AG_CTX_RULE8EN_MASK 0x1 4316 #define USTORM_RDMA_CONN_AG_CTX_RULE8EN_SHIFT 7 4317 u8 byte2; 4318 u8 byte3; 4319 __le16 conn_dpi; 4320 __le16 word1; 4321 __le32 cq_cons; 4322 __le32 cq_se_prod; 4323 __le32 cq_prod; 4324 __le32 reg3; 4325 __le16 int_timeout; 4326 __le16 word3; 4327 }; 4328 4329 struct xstorm_roce_conn_ag_ctx_dq_ext_ld_part { 4330 u8 reserved0; 4331 u8 state; 4332 u8 flags0; 4333 #define XSTORMROCECONNAGCTXDQEXTLDPART_EXIST_IN_QM0_MASK 0x1 4334 #define XSTORMROCECONNAGCTXDQEXTLDPART_EXIST_IN_QM0_SHIFT 0 4335 #define XSTORMROCECONNAGCTXDQEXTLDPART_BIT1_MASK 0x1 4336 #define XSTORMROCECONNAGCTXDQEXTLDPART_BIT1_SHIFT 1 4337 #define XSTORMROCECONNAGCTXDQEXTLDPART_BIT2_MASK 0x1 4338 #define XSTORMROCECONNAGCTXDQEXTLDPART_BIT2_SHIFT 2 4339 #define XSTORMROCECONNAGCTXDQEXTLDPART_EXIST_IN_QM3_MASK 0x1 4340 #define XSTORMROCECONNAGCTXDQEXTLDPART_EXIST_IN_QM3_SHIFT 3 4341 #define XSTORMROCECONNAGCTXDQEXTLDPART_BIT4_MASK 0x1 4342 #define XSTORMROCECONNAGCTXDQEXTLDPART_BIT4_SHIFT 4 4343 #define XSTORMROCECONNAGCTXDQEXTLDPART_BIT5_MASK 0x1 4344 #define XSTORMROCECONNAGCTXDQEXTLDPART_BIT5_SHIFT 5 4345 #define XSTORMROCECONNAGCTXDQEXTLDPART_BIT6_MASK 0x1 4346 #define XSTORMROCECONNAGCTXDQEXTLDPART_BIT6_SHIFT 6 4347 #define XSTORMROCECONNAGCTXDQEXTLDPART_BIT7_MASK 0x1 4348 #define XSTORMROCECONNAGCTXDQEXTLDPART_BIT7_SHIFT 7 4349 u8 flags1; 4350 #define XSTORMROCECONNAGCTXDQEXTLDPART_BIT8_MASK 0x1 4351 #define XSTORMROCECONNAGCTXDQEXTLDPART_BIT8_SHIFT 0 4352 #define XSTORMROCECONNAGCTXDQEXTLDPART_BIT9_MASK 0x1 4353 #define XSTORMROCECONNAGCTXDQEXTLDPART_BIT9_SHIFT 1 4354 #define XSTORMROCECONNAGCTXDQEXTLDPART_BIT10_MASK 0x1 4355 #define XSTORMROCECONNAGCTXDQEXTLDPART_BIT10_SHIFT 2 4356 #define XSTORMROCECONNAGCTXDQEXTLDPART_BIT11_MASK 0x1 4357 #define XSTORMROCECONNAGCTXDQEXTLDPART_BIT11_SHIFT 3 4358 #define XSTORMROCECONNAGCTXDQEXTLDPART_BIT12_MASK 0x1 4359 #define XSTORMROCECONNAGCTXDQEXTLDPART_BIT12_SHIFT 4 4360 #define XSTORMROCECONNAGCTXDQEXTLDPART_BIT13_MASK 0x1 4361 #define XSTORMROCECONNAGCTXDQEXTLDPART_BIT13_SHIFT 5 4362 #define XSTORMROCECONNAGCTXDQEXTLDPART_BIT14_MASK 0x1 4363 #define XSTORMROCECONNAGCTXDQEXTLDPART_BIT14_SHIFT 6 4364 #define XSTORMROCECONNAGCTXDQEXTLDPART_YSTORM_FLUSH_MASK 0x1 4365 #define XSTORMROCECONNAGCTXDQEXTLDPART_YSTORM_FLUSH_SHIFT 7 4366 u8 flags2; 4367 #define XSTORMROCECONNAGCTXDQEXTLDPART_CF0_MASK 0x3 4368 #define XSTORMROCECONNAGCTXDQEXTLDPART_CF0_SHIFT 0 4369 #define XSTORMROCECONNAGCTXDQEXTLDPART_CF1_MASK 0x3 4370 #define XSTORMROCECONNAGCTXDQEXTLDPART_CF1_SHIFT 2 4371 #define XSTORMROCECONNAGCTXDQEXTLDPART_CF2_MASK 0x3 4372 #define XSTORMROCECONNAGCTXDQEXTLDPART_CF2_SHIFT 4 4373 #define XSTORMROCECONNAGCTXDQEXTLDPART_CF3_MASK 0x3 4374 #define XSTORMROCECONNAGCTXDQEXTLDPART_CF3_SHIFT 6 4375 u8 flags3; 4376 #define XSTORMROCECONNAGCTXDQEXTLDPART_CF4_MASK 0x3 4377 #define XSTORMROCECONNAGCTXDQEXTLDPART_CF4_SHIFT 0 4378 #define XSTORMROCECONNAGCTXDQEXTLDPART_CF5_MASK 0x3 4379 #define XSTORMROCECONNAGCTXDQEXTLDPART_CF5_SHIFT 2 4380 #define XSTORMROCECONNAGCTXDQEXTLDPART_CF6_MASK 0x3 4381 #define XSTORMROCECONNAGCTXDQEXTLDPART_CF6_SHIFT 4 4382 #define XSTORMROCECONNAGCTXDQEXTLDPART_FLUSH_Q0_CF_MASK 0x3 4383 #define XSTORMROCECONNAGCTXDQEXTLDPART_FLUSH_Q0_CF_SHIFT 6 4384 u8 flags4; 4385 #define XSTORMROCECONNAGCTXDQEXTLDPART_CF8_MASK 0x3 4386 #define XSTORMROCECONNAGCTXDQEXTLDPART_CF8_SHIFT 0 4387 #define XSTORMROCECONNAGCTXDQEXTLDPART_CF9_MASK 0x3 4388 #define XSTORMROCECONNAGCTXDQEXTLDPART_CF9_SHIFT 2 4389 #define XSTORMROCECONNAGCTXDQEXTLDPART_CF10_MASK 0x3 4390 #define XSTORMROCECONNAGCTXDQEXTLDPART_CF10_SHIFT 4 4391 #define XSTORMROCECONNAGCTXDQEXTLDPART_CF11_MASK 0x3 4392 #define XSTORMROCECONNAGCTXDQEXTLDPART_CF11_SHIFT 6 4393 u8 flags5; 4394 #define XSTORMROCECONNAGCTXDQEXTLDPART_CF12_MASK 0x3 4395 #define XSTORMROCECONNAGCTXDQEXTLDPART_CF12_SHIFT 0 4396 #define XSTORMROCECONNAGCTXDQEXTLDPART_CF13_MASK 0x3 4397 #define XSTORMROCECONNAGCTXDQEXTLDPART_CF13_SHIFT 2 4398 #define XSTORMROCECONNAGCTXDQEXTLDPART_CF14_MASK 0x3 4399 #define XSTORMROCECONNAGCTXDQEXTLDPART_CF14_SHIFT 4 4400 #define XSTORMROCECONNAGCTXDQEXTLDPART_CF15_MASK 0x3 4401 #define XSTORMROCECONNAGCTXDQEXTLDPART_CF15_SHIFT 6 4402 u8 flags6; 4403 #define XSTORMROCECONNAGCTXDQEXTLDPART_CF16_MASK 0x3 4404 #define XSTORMROCECONNAGCTXDQEXTLDPART_CF16_SHIFT 0 4405 #define XSTORMROCECONNAGCTXDQEXTLDPART_CF17_MASK 0x3 4406 #define XSTORMROCECONNAGCTXDQEXTLDPART_CF17_SHIFT 2 4407 #define XSTORMROCECONNAGCTXDQEXTLDPART_CF18_MASK 0x3 4408 #define XSTORMROCECONNAGCTXDQEXTLDPART_CF18_SHIFT 4 4409 #define XSTORMROCECONNAGCTXDQEXTLDPART_CF19_MASK 0x3 4410 #define XSTORMROCECONNAGCTXDQEXTLDPART_CF19_SHIFT 6 4411 u8 flags7; 4412 #define XSTORMROCECONNAGCTXDQEXTLDPART_CF20_MASK 0x3 4413 #define XSTORMROCECONNAGCTXDQEXTLDPART_CF20_SHIFT 0 4414 #define XSTORMROCECONNAGCTXDQEXTLDPART_CF21_MASK 0x3 4415 #define XSTORMROCECONNAGCTXDQEXTLDPART_CF21_SHIFT 2 4416 #define XSTORMROCECONNAGCTXDQEXTLDPART_SLOW_PATH_MASK 0x3 4417 #define XSTORMROCECONNAGCTXDQEXTLDPART_SLOW_PATH_SHIFT 4 4418 #define XSTORMROCECONNAGCTXDQEXTLDPART_CF0EN_MASK 0x1 4419 #define XSTORMROCECONNAGCTXDQEXTLDPART_CF0EN_SHIFT 6 4420 #define XSTORMROCECONNAGCTXDQEXTLDPART_CF1EN_MASK 0x1 4421 #define XSTORMROCECONNAGCTXDQEXTLDPART_CF1EN_SHIFT 7 4422 u8 flags8; 4423 #define XSTORMROCECONNAGCTXDQEXTLDPART_CF2EN_MASK 0x1 4424 #define XSTORMROCECONNAGCTXDQEXTLDPART_CF2EN_SHIFT 0 4425 #define XSTORMROCECONNAGCTXDQEXTLDPART_CF3EN_MASK 0x1 4426 #define XSTORMROCECONNAGCTXDQEXTLDPART_CF3EN_SHIFT 1 4427 #define XSTORMROCECONNAGCTXDQEXTLDPART_CF4EN_MASK 0x1 4428 #define XSTORMROCECONNAGCTXDQEXTLDPART_CF4EN_SHIFT 2 4429 #define XSTORMROCECONNAGCTXDQEXTLDPART_CF5EN_MASK 0x1 4430 #define XSTORMROCECONNAGCTXDQEXTLDPART_CF5EN_SHIFT 3 4431 #define XSTORMROCECONNAGCTXDQEXTLDPART_CF6EN_MASK 0x1 4432 #define XSTORMROCECONNAGCTXDQEXTLDPART_CF6EN_SHIFT 4 4433 #define XSTORMROCECONNAGCTXDQEXTLDPART_FLUSH_Q0_CF_EN_MASK 0x1 4434 #define XSTORMROCECONNAGCTXDQEXTLDPART_FLUSH_Q0_CF_EN_SHIFT 5 4435 #define XSTORMROCECONNAGCTXDQEXTLDPART_CF8EN_MASK 0x1 4436 #define XSTORMROCECONNAGCTXDQEXTLDPART_CF8EN_SHIFT 6 4437 #define XSTORMROCECONNAGCTXDQEXTLDPART_CF9EN_MASK 0x1 4438 #define XSTORMROCECONNAGCTXDQEXTLDPART_CF9EN_SHIFT 7 4439 u8 flags9; 4440 #define XSTORMROCECONNAGCTXDQEXTLDPART_CF10EN_MASK 0x1 4441 #define XSTORMROCECONNAGCTXDQEXTLDPART_CF10EN_SHIFT 0 4442 #define XSTORMROCECONNAGCTXDQEXTLDPART_CF11EN_MASK 0x1 4443 #define XSTORMROCECONNAGCTXDQEXTLDPART_CF11EN_SHIFT 1 4444 #define XSTORMROCECONNAGCTXDQEXTLDPART_CF12EN_MASK 0x1 4445 #define XSTORMROCECONNAGCTXDQEXTLDPART_CF12EN_SHIFT 2 4446 #define XSTORMROCECONNAGCTXDQEXTLDPART_CF13EN_MASK 0x1 4447 #define XSTORMROCECONNAGCTXDQEXTLDPART_CF13EN_SHIFT 3 4448 #define XSTORMROCECONNAGCTXDQEXTLDPART_CF14EN_MASK 0x1 4449 #define XSTORMROCECONNAGCTXDQEXTLDPART_CF14EN_SHIFT 4 4450 #define XSTORMROCECONNAGCTXDQEXTLDPART_CF15EN_MASK 0x1 4451 #define XSTORMROCECONNAGCTXDQEXTLDPART_CF15EN_SHIFT 5 4452 #define XSTORMROCECONNAGCTXDQEXTLDPART_CF16EN_MASK 0x1 4453 #define XSTORMROCECONNAGCTXDQEXTLDPART_CF16EN_SHIFT 6 4454 #define XSTORMROCECONNAGCTXDQEXTLDPART_CF17EN_MASK 0x1 4455 #define XSTORMROCECONNAGCTXDQEXTLDPART_CF17EN_SHIFT 7 4456 u8 flags10; 4457 #define XSTORMROCECONNAGCTXDQEXTLDPART_CF18EN_MASK 0x1 4458 #define XSTORMROCECONNAGCTXDQEXTLDPART_CF18EN_SHIFT 0 4459 #define XSTORMROCECONNAGCTXDQEXTLDPART_CF19EN_MASK 0x1 4460 #define XSTORMROCECONNAGCTXDQEXTLDPART_CF19EN_SHIFT 1 4461 #define XSTORMROCECONNAGCTXDQEXTLDPART_CF20EN_MASK 0x1 4462 #define XSTORMROCECONNAGCTXDQEXTLDPART_CF20EN_SHIFT 2 4463 #define XSTORMROCECONNAGCTXDQEXTLDPART_CF21EN_MASK 0x1 4464 #define XSTORMROCECONNAGCTXDQEXTLDPART_CF21EN_SHIFT 3 4465 #define XSTORMROCECONNAGCTXDQEXTLDPART_SLOW_PATH_EN_MASK 0x1 4466 #define XSTORMROCECONNAGCTXDQEXTLDPART_SLOW_PATH_EN_SHIFT 4 4467 #define XSTORMROCECONNAGCTXDQEXTLDPART_CF23EN_MASK 0x1 4468 #define XSTORMROCECONNAGCTXDQEXTLDPART_CF23EN_SHIFT 5 4469 #define XSTORMROCECONNAGCTXDQEXTLDPART_RULE0EN_MASK 0x1 4470 #define XSTORMROCECONNAGCTXDQEXTLDPART_RULE0EN_SHIFT 6 4471 #define XSTORMROCECONNAGCTXDQEXTLDPART_RULE1EN_MASK 0x1 4472 #define XSTORMROCECONNAGCTXDQEXTLDPART_RULE1EN_SHIFT 7 4473 u8 flags11; 4474 #define XSTORMROCECONNAGCTXDQEXTLDPART_RULE2EN_MASK 0x1 4475 #define XSTORMROCECONNAGCTXDQEXTLDPART_RULE2EN_SHIFT 0 4476 #define XSTORMROCECONNAGCTXDQEXTLDPART_RULE3EN_MASK 0x1 4477 #define XSTORMROCECONNAGCTXDQEXTLDPART_RULE3EN_SHIFT 1 4478 #define XSTORMROCECONNAGCTXDQEXTLDPART_RULE4EN_MASK 0x1 4479 #define XSTORMROCECONNAGCTXDQEXTLDPART_RULE4EN_SHIFT 2 4480 #define XSTORMROCECONNAGCTXDQEXTLDPART_RULE5EN_MASK 0x1 4481 #define XSTORMROCECONNAGCTXDQEXTLDPART_RULE5EN_SHIFT 3 4482 #define XSTORMROCECONNAGCTXDQEXTLDPART_RULE6EN_MASK 0x1 4483 #define XSTORMROCECONNAGCTXDQEXTLDPART_RULE6EN_SHIFT 4 4484 #define XSTORMROCECONNAGCTXDQEXTLDPART_RULE7EN_MASK 0x1 4485 #define XSTORMROCECONNAGCTXDQEXTLDPART_RULE7EN_SHIFT 5 4486 #define XSTORMROCECONNAGCTXDQEXTLDPART_A0_RESERVED1_MASK 0x1 4487 #define XSTORMROCECONNAGCTXDQEXTLDPART_A0_RESERVED1_SHIFT 6 4488 #define XSTORMROCECONNAGCTXDQEXTLDPART_RULE9EN_MASK 0x1 4489 #define XSTORMROCECONNAGCTXDQEXTLDPART_RULE9EN_SHIFT 7 4490 u8 flags12; 4491 #define XSTORMROCECONNAGCTXDQEXTLDPART_RULE10EN_MASK 0x1 4492 #define XSTORMROCECONNAGCTXDQEXTLDPART_RULE10EN_SHIFT 0 4493 #define XSTORMROCECONNAGCTXDQEXTLDPART_RULE11EN_MASK 0x1 4494 #define XSTORMROCECONNAGCTXDQEXTLDPART_RULE11EN_SHIFT 1 4495 #define XSTORMROCECONNAGCTXDQEXTLDPART_A0_RESERVED2_MASK 0x1 4496 #define XSTORMROCECONNAGCTXDQEXTLDPART_A0_RESERVED2_SHIFT 2 4497 #define XSTORMROCECONNAGCTXDQEXTLDPART_A0_RESERVED3_MASK 0x1 4498 #define XSTORMROCECONNAGCTXDQEXTLDPART_A0_RESERVED3_SHIFT 3 4499 #define XSTORMROCECONNAGCTXDQEXTLDPART_RULE14EN_MASK 0x1 4500 #define XSTORMROCECONNAGCTXDQEXTLDPART_RULE14EN_SHIFT 4 4501 #define XSTORMROCECONNAGCTXDQEXTLDPART_RULE15EN_MASK 0x1 4502 #define XSTORMROCECONNAGCTXDQEXTLDPART_RULE15EN_SHIFT 5 4503 #define XSTORMROCECONNAGCTXDQEXTLDPART_RULE16EN_MASK 0x1 4504 #define XSTORMROCECONNAGCTXDQEXTLDPART_RULE16EN_SHIFT 6 4505 #define XSTORMROCECONNAGCTXDQEXTLDPART_RULE17EN_MASK 0x1 4506 #define XSTORMROCECONNAGCTXDQEXTLDPART_RULE17EN_SHIFT 7 4507 u8 flags13; 4508 #define XSTORMROCECONNAGCTXDQEXTLDPART_RULE18EN_MASK 0x1 4509 #define XSTORMROCECONNAGCTXDQEXTLDPART_RULE18EN_SHIFT 0 4510 #define XSTORMROCECONNAGCTXDQEXTLDPART_RULE19EN_MASK 0x1 4511 #define XSTORMROCECONNAGCTXDQEXTLDPART_RULE19EN_SHIFT 1 4512 #define XSTORMROCECONNAGCTXDQEXTLDPART_A0_RESERVED4_MASK 0x1 4513 #define XSTORMROCECONNAGCTXDQEXTLDPART_A0_RESERVED4_SHIFT 2 4514 #define XSTORMROCECONNAGCTXDQEXTLDPART_A0_RESERVED5_MASK 0x1 4515 #define XSTORMROCECONNAGCTXDQEXTLDPART_A0_RESERVED5_SHIFT 3 4516 #define XSTORMROCECONNAGCTXDQEXTLDPART_A0_RESERVED6_MASK 0x1 4517 #define XSTORMROCECONNAGCTXDQEXTLDPART_A0_RESERVED6_SHIFT 4 4518 #define XSTORMROCECONNAGCTXDQEXTLDPART_A0_RESERVED7_MASK 0x1 4519 #define XSTORMROCECONNAGCTXDQEXTLDPART_A0_RESERVED7_SHIFT 5 4520 #define XSTORMROCECONNAGCTXDQEXTLDPART_A0_RESERVED8_MASK 0x1 4521 #define XSTORMROCECONNAGCTXDQEXTLDPART_A0_RESERVED8_SHIFT 6 4522 #define XSTORMROCECONNAGCTXDQEXTLDPART_A0_RESERVED9_MASK 0x1 4523 #define XSTORMROCECONNAGCTXDQEXTLDPART_A0_RESERVED9_SHIFT 7 4524 u8 flags14; 4525 #define XSTORMROCECONNAGCTXDQEXTLDPART_MIGRATION_MASK 0x1 4526 #define XSTORMROCECONNAGCTXDQEXTLDPART_MIGRATION_SHIFT 0 4527 #define XSTORMROCECONNAGCTXDQEXTLDPART_BIT17_MASK 0x1 4528 #define XSTORMROCECONNAGCTXDQEXTLDPART_BIT17_SHIFT 1 4529 #define XSTORMROCECONNAGCTXDQEXTLDPART_DPM_PORT_NUM_MASK 0x3 4530 #define XSTORMROCECONNAGCTXDQEXTLDPART_DPM_PORT_NUM_SHIFT 2 4531 #define XSTORMROCECONNAGCTXDQEXTLDPART_RESERVED_MASK 0x1 4532 #define XSTORMROCECONNAGCTXDQEXTLDPART_RESERVED_SHIFT 4 4533 #define XSTORMROCECONNAGCTXDQEXTLDPART_ROCE_EDPM_ENABLE_MASK 0x1 4534 #define XSTORMROCECONNAGCTXDQEXTLDPART_ROCE_EDPM_ENABLE_SHIFT 5 4535 #define XSTORMROCECONNAGCTXDQEXTLDPART_CF23_MASK 0x3 4536 #define XSTORMROCECONNAGCTXDQEXTLDPART_CF23_SHIFT 6 4537 u8 byte2; 4538 __le16 physical_q0; 4539 __le16 word1; 4540 __le16 word2; 4541 __le16 word3; 4542 __le16 word4; 4543 __le16 word5; 4544 __le16 conn_dpi; 4545 u8 byte3; 4546 u8 byte4; 4547 u8 byte5; 4548 u8 byte6; 4549 __le32 reg0; 4550 __le32 reg1; 4551 __le32 reg2; 4552 __le32 snd_nxt_psn; 4553 __le32 reg4; 4554 }; 4555 4556 struct xstorm_rdma_conn_ag_ctx { 4557 u8 reserved0; 4558 u8 state; 4559 u8 flags0; 4560 #define XSTORM_RDMA_CONN_AG_CTX_EXIST_IN_QM0_MASK 0x1 4561 #define XSTORM_RDMA_CONN_AG_CTX_EXIST_IN_QM0_SHIFT 0 4562 #define XSTORM_RDMA_CONN_AG_CTX_BIT1_MASK 0x1 4563 #define XSTORM_RDMA_CONN_AG_CTX_BIT1_SHIFT 1 4564 #define XSTORM_RDMA_CONN_AG_CTX_BIT2_MASK 0x1 4565 #define XSTORM_RDMA_CONN_AG_CTX_BIT2_SHIFT 2 4566 #define XSTORM_RDMA_CONN_AG_CTX_EXIST_IN_QM3_MASK 0x1 4567 #define XSTORM_RDMA_CONN_AG_CTX_EXIST_IN_QM3_SHIFT 3 4568 #define XSTORM_RDMA_CONN_AG_CTX_BIT4_MASK 0x1 4569 #define XSTORM_RDMA_CONN_AG_CTX_BIT4_SHIFT 4 4570 #define XSTORM_RDMA_CONN_AG_CTX_BIT5_MASK 0x1 4571 #define XSTORM_RDMA_CONN_AG_CTX_BIT5_SHIFT 5 4572 #define XSTORM_RDMA_CONN_AG_CTX_BIT6_MASK 0x1 4573 #define XSTORM_RDMA_CONN_AG_CTX_BIT6_SHIFT 6 4574 #define XSTORM_RDMA_CONN_AG_CTX_BIT7_MASK 0x1 4575 #define XSTORM_RDMA_CONN_AG_CTX_BIT7_SHIFT 7 4576 u8 flags1; 4577 #define XSTORM_RDMA_CONN_AG_CTX_BIT8_MASK 0x1 4578 #define XSTORM_RDMA_CONN_AG_CTX_BIT8_SHIFT 0 4579 #define XSTORM_RDMA_CONN_AG_CTX_BIT9_MASK 0x1 4580 #define XSTORM_RDMA_CONN_AG_CTX_BIT9_SHIFT 1 4581 #define XSTORM_RDMA_CONN_AG_CTX_BIT10_MASK 0x1 4582 #define XSTORM_RDMA_CONN_AG_CTX_BIT10_SHIFT 2 4583 #define XSTORM_RDMA_CONN_AG_CTX_BIT11_MASK 0x1 4584 #define XSTORM_RDMA_CONN_AG_CTX_BIT11_SHIFT 3 4585 #define XSTORM_RDMA_CONN_AG_CTX_BIT12_MASK 0x1 4586 #define XSTORM_RDMA_CONN_AG_CTX_BIT12_SHIFT 4 4587 #define XSTORM_RDMA_CONN_AG_CTX_BIT13_MASK 0x1 4588 #define XSTORM_RDMA_CONN_AG_CTX_BIT13_SHIFT 5 4589 #define XSTORM_RDMA_CONN_AG_CTX_BIT14_MASK 0x1 4590 #define XSTORM_RDMA_CONN_AG_CTX_BIT14_SHIFT 6 4591 #define XSTORM_RDMA_CONN_AG_CTX_YSTORM_FLUSH_MASK 0x1 4592 #define XSTORM_RDMA_CONN_AG_CTX_YSTORM_FLUSH_SHIFT 7 4593 u8 flags2; 4594 #define XSTORM_RDMA_CONN_AG_CTX_CF0_MASK 0x3 4595 #define XSTORM_RDMA_CONN_AG_CTX_CF0_SHIFT 0 4596 #define XSTORM_RDMA_CONN_AG_CTX_CF1_MASK 0x3 4597 #define XSTORM_RDMA_CONN_AG_CTX_CF1_SHIFT 2 4598 #define XSTORM_RDMA_CONN_AG_CTX_CF2_MASK 0x3 4599 #define XSTORM_RDMA_CONN_AG_CTX_CF2_SHIFT 4 4600 #define XSTORM_RDMA_CONN_AG_CTX_CF3_MASK 0x3 4601 #define XSTORM_RDMA_CONN_AG_CTX_CF3_SHIFT 6 4602 u8 flags3; 4603 #define XSTORM_RDMA_CONN_AG_CTX_CF4_MASK 0x3 4604 #define XSTORM_RDMA_CONN_AG_CTX_CF4_SHIFT 0 4605 #define XSTORM_RDMA_CONN_AG_CTX_CF5_MASK 0x3 4606 #define XSTORM_RDMA_CONN_AG_CTX_CF5_SHIFT 2 4607 #define XSTORM_RDMA_CONN_AG_CTX_CF6_MASK 0x3 4608 #define XSTORM_RDMA_CONN_AG_CTX_CF6_SHIFT 4 4609 #define XSTORM_RDMA_CONN_AG_CTX_FLUSH_Q0_CF_MASK 0x3 4610 #define XSTORM_RDMA_CONN_AG_CTX_FLUSH_Q0_CF_SHIFT 6 4611 u8 flags4; 4612 #define XSTORM_RDMA_CONN_AG_CTX_CF8_MASK 0x3 4613 #define XSTORM_RDMA_CONN_AG_CTX_CF8_SHIFT 0 4614 #define XSTORM_RDMA_CONN_AG_CTX_CF9_MASK 0x3 4615 #define XSTORM_RDMA_CONN_AG_CTX_CF9_SHIFT 2 4616 #define XSTORM_RDMA_CONN_AG_CTX_CF10_MASK 0x3 4617 #define XSTORM_RDMA_CONN_AG_CTX_CF10_SHIFT 4 4618 #define XSTORM_RDMA_CONN_AG_CTX_CF11_MASK 0x3 4619 #define XSTORM_RDMA_CONN_AG_CTX_CF11_SHIFT 6 4620 u8 flags5; 4621 #define XSTORM_RDMA_CONN_AG_CTX_CF12_MASK 0x3 4622 #define XSTORM_RDMA_CONN_AG_CTX_CF12_SHIFT 0 4623 #define XSTORM_RDMA_CONN_AG_CTX_CF13_MASK 0x3 4624 #define XSTORM_RDMA_CONN_AG_CTX_CF13_SHIFT 2 4625 #define XSTORM_RDMA_CONN_AG_CTX_CF14_MASK 0x3 4626 #define XSTORM_RDMA_CONN_AG_CTX_CF14_SHIFT 4 4627 #define XSTORM_RDMA_CONN_AG_CTX_CF15_MASK 0x3 4628 #define XSTORM_RDMA_CONN_AG_CTX_CF15_SHIFT 6 4629 u8 flags6; 4630 #define XSTORM_RDMA_CONN_AG_CTX_CF16_MASK 0x3 4631 #define XSTORM_RDMA_CONN_AG_CTX_CF16_SHIFT 0 4632 #define XSTORM_RDMA_CONN_AG_CTX_CF17_MASK 0x3 4633 #define XSTORM_RDMA_CONN_AG_CTX_CF17_SHIFT 2 4634 #define XSTORM_RDMA_CONN_AG_CTX_CF18_MASK 0x3 4635 #define XSTORM_RDMA_CONN_AG_CTX_CF18_SHIFT 4 4636 #define XSTORM_RDMA_CONN_AG_CTX_CF19_MASK 0x3 4637 #define XSTORM_RDMA_CONN_AG_CTX_CF19_SHIFT 6 4638 u8 flags7; 4639 #define XSTORM_RDMA_CONN_AG_CTX_CF20_MASK 0x3 4640 #define XSTORM_RDMA_CONN_AG_CTX_CF20_SHIFT 0 4641 #define XSTORM_RDMA_CONN_AG_CTX_CF21_MASK 0x3 4642 #define XSTORM_RDMA_CONN_AG_CTX_CF21_SHIFT 2 4643 #define XSTORM_RDMA_CONN_AG_CTX_SLOW_PATH_MASK 0x3 4644 #define XSTORM_RDMA_CONN_AG_CTX_SLOW_PATH_SHIFT 4 4645 #define XSTORM_RDMA_CONN_AG_CTX_CF0EN_MASK 0x1 4646 #define XSTORM_RDMA_CONN_AG_CTX_CF0EN_SHIFT 6 4647 #define XSTORM_RDMA_CONN_AG_CTX_CF1EN_MASK 0x1 4648 #define XSTORM_RDMA_CONN_AG_CTX_CF1EN_SHIFT 7 4649 u8 flags8; 4650 #define XSTORM_RDMA_CONN_AG_CTX_CF2EN_MASK 0x1 4651 #define XSTORM_RDMA_CONN_AG_CTX_CF2EN_SHIFT 0 4652 #define XSTORM_RDMA_CONN_AG_CTX_CF3EN_MASK 0x1 4653 #define XSTORM_RDMA_CONN_AG_CTX_CF3EN_SHIFT 1 4654 #define XSTORM_RDMA_CONN_AG_CTX_CF4EN_MASK 0x1 4655 #define XSTORM_RDMA_CONN_AG_CTX_CF4EN_SHIFT 2 4656 #define XSTORM_RDMA_CONN_AG_CTX_CF5EN_MASK 0x1 4657 #define XSTORM_RDMA_CONN_AG_CTX_CF5EN_SHIFT 3 4658 #define XSTORM_RDMA_CONN_AG_CTX_CF6EN_MASK 0x1 4659 #define XSTORM_RDMA_CONN_AG_CTX_CF6EN_SHIFT 4 4660 #define XSTORM_RDMA_CONN_AG_CTX_FLUSH_Q0_CF_EN_MASK 0x1 4661 #define XSTORM_RDMA_CONN_AG_CTX_FLUSH_Q0_CF_EN_SHIFT 5 4662 #define XSTORM_RDMA_CONN_AG_CTX_CF8EN_MASK 0x1 4663 #define XSTORM_RDMA_CONN_AG_CTX_CF8EN_SHIFT 6 4664 #define XSTORM_RDMA_CONN_AG_CTX_CF9EN_MASK 0x1 4665 #define XSTORM_RDMA_CONN_AG_CTX_CF9EN_SHIFT 7 4666 u8 flags9; 4667 #define XSTORM_RDMA_CONN_AG_CTX_CF10EN_MASK 0x1 4668 #define XSTORM_RDMA_CONN_AG_CTX_CF10EN_SHIFT 0 4669 #define XSTORM_RDMA_CONN_AG_CTX_CF11EN_MASK 0x1 4670 #define XSTORM_RDMA_CONN_AG_CTX_CF11EN_SHIFT 1 4671 #define XSTORM_RDMA_CONN_AG_CTX_CF12EN_MASK 0x1 4672 #define XSTORM_RDMA_CONN_AG_CTX_CF12EN_SHIFT 2 4673 #define XSTORM_RDMA_CONN_AG_CTX_CF13EN_MASK 0x1 4674 #define XSTORM_RDMA_CONN_AG_CTX_CF13EN_SHIFT 3 4675 #define XSTORM_RDMA_CONN_AG_CTX_CF14EN_MASK 0x1 4676 #define XSTORM_RDMA_CONN_AG_CTX_CF14EN_SHIFT 4 4677 #define XSTORM_RDMA_CONN_AG_CTX_CF15EN_MASK 0x1 4678 #define XSTORM_RDMA_CONN_AG_CTX_CF15EN_SHIFT 5 4679 #define XSTORM_RDMA_CONN_AG_CTX_CF16EN_MASK 0x1 4680 #define XSTORM_RDMA_CONN_AG_CTX_CF16EN_SHIFT 6 4681 #define XSTORM_RDMA_CONN_AG_CTX_CF17EN_MASK 0x1 4682 #define XSTORM_RDMA_CONN_AG_CTX_CF17EN_SHIFT 7 4683 u8 flags10; 4684 #define XSTORM_RDMA_CONN_AG_CTX_CF18EN_MASK 0x1 4685 #define XSTORM_RDMA_CONN_AG_CTX_CF18EN_SHIFT 0 4686 #define XSTORM_RDMA_CONN_AG_CTX_CF19EN_MASK 0x1 4687 #define XSTORM_RDMA_CONN_AG_CTX_CF19EN_SHIFT 1 4688 #define XSTORM_RDMA_CONN_AG_CTX_CF20EN_MASK 0x1 4689 #define XSTORM_RDMA_CONN_AG_CTX_CF20EN_SHIFT 2 4690 #define XSTORM_RDMA_CONN_AG_CTX_CF21EN_MASK 0x1 4691 #define XSTORM_RDMA_CONN_AG_CTX_CF21EN_SHIFT 3 4692 #define XSTORM_RDMA_CONN_AG_CTX_SLOW_PATH_EN_MASK 0x1 4693 #define XSTORM_RDMA_CONN_AG_CTX_SLOW_PATH_EN_SHIFT 4 4694 #define XSTORM_RDMA_CONN_AG_CTX_CF23EN_MASK 0x1 4695 #define XSTORM_RDMA_CONN_AG_CTX_CF23EN_SHIFT 5 4696 #define XSTORM_RDMA_CONN_AG_CTX_RULE0EN_MASK 0x1 4697 #define XSTORM_RDMA_CONN_AG_CTX_RULE0EN_SHIFT 6 4698 #define XSTORM_RDMA_CONN_AG_CTX_RULE1EN_MASK 0x1 4699 #define XSTORM_RDMA_CONN_AG_CTX_RULE1EN_SHIFT 7 4700 u8 flags11; 4701 #define XSTORM_RDMA_CONN_AG_CTX_RULE2EN_MASK 0x1 4702 #define XSTORM_RDMA_CONN_AG_CTX_RULE2EN_SHIFT 0 4703 #define XSTORM_RDMA_CONN_AG_CTX_RULE3EN_MASK 0x1 4704 #define XSTORM_RDMA_CONN_AG_CTX_RULE3EN_SHIFT 1 4705 #define XSTORM_RDMA_CONN_AG_CTX_RULE4EN_MASK 0x1 4706 #define XSTORM_RDMA_CONN_AG_CTX_RULE4EN_SHIFT 2 4707 #define XSTORM_RDMA_CONN_AG_CTX_RULE5EN_MASK 0x1 4708 #define XSTORM_RDMA_CONN_AG_CTX_RULE5EN_SHIFT 3 4709 #define XSTORM_RDMA_CONN_AG_CTX_RULE6EN_MASK 0x1 4710 #define XSTORM_RDMA_CONN_AG_CTX_RULE6EN_SHIFT 4 4711 #define XSTORM_RDMA_CONN_AG_CTX_RULE7EN_MASK 0x1 4712 #define XSTORM_RDMA_CONN_AG_CTX_RULE7EN_SHIFT 5 4713 #define XSTORM_RDMA_CONN_AG_CTX_A0_RESERVED1_MASK 0x1 4714 #define XSTORM_RDMA_CONN_AG_CTX_A0_RESERVED1_SHIFT 6 4715 #define XSTORM_RDMA_CONN_AG_CTX_RULE9EN_MASK 0x1 4716 #define XSTORM_RDMA_CONN_AG_CTX_RULE9EN_SHIFT 7 4717 u8 flags12; 4718 #define XSTORM_RDMA_CONN_AG_CTX_RULE10EN_MASK 0x1 4719 #define XSTORM_RDMA_CONN_AG_CTX_RULE10EN_SHIFT 0 4720 #define XSTORM_RDMA_CONN_AG_CTX_RULE11EN_MASK 0x1 4721 #define XSTORM_RDMA_CONN_AG_CTX_RULE11EN_SHIFT 1 4722 #define XSTORM_RDMA_CONN_AG_CTX_A0_RESERVED2_MASK 0x1 4723 #define XSTORM_RDMA_CONN_AG_CTX_A0_RESERVED2_SHIFT 2 4724 #define XSTORM_RDMA_CONN_AG_CTX_A0_RESERVED3_MASK 0x1 4725 #define XSTORM_RDMA_CONN_AG_CTX_A0_RESERVED3_SHIFT 3 4726 #define XSTORM_RDMA_CONN_AG_CTX_RULE14EN_MASK 0x1 4727 #define XSTORM_RDMA_CONN_AG_CTX_RULE14EN_SHIFT 4 4728 #define XSTORM_RDMA_CONN_AG_CTX_RULE15EN_MASK 0x1 4729 #define XSTORM_RDMA_CONN_AG_CTX_RULE15EN_SHIFT 5 4730 #define XSTORM_RDMA_CONN_AG_CTX_RULE16EN_MASK 0x1 4731 #define XSTORM_RDMA_CONN_AG_CTX_RULE16EN_SHIFT 6 4732 #define XSTORM_RDMA_CONN_AG_CTX_RULE17EN_MASK 0x1 4733 #define XSTORM_RDMA_CONN_AG_CTX_RULE17EN_SHIFT 7 4734 u8 flags13; 4735 #define XSTORM_RDMA_CONN_AG_CTX_RULE18EN_MASK 0x1 4736 #define XSTORM_RDMA_CONN_AG_CTX_RULE18EN_SHIFT 0 4737 #define XSTORM_RDMA_CONN_AG_CTX_RULE19EN_MASK 0x1 4738 #define XSTORM_RDMA_CONN_AG_CTX_RULE19EN_SHIFT 1 4739 #define XSTORM_RDMA_CONN_AG_CTX_A0_RESERVED4_MASK 0x1 4740 #define XSTORM_RDMA_CONN_AG_CTX_A0_RESERVED4_SHIFT 2 4741 #define XSTORM_RDMA_CONN_AG_CTX_A0_RESERVED5_MASK 0x1 4742 #define XSTORM_RDMA_CONN_AG_CTX_A0_RESERVED5_SHIFT 3 4743 #define XSTORM_RDMA_CONN_AG_CTX_A0_RESERVED6_MASK 0x1 4744 #define XSTORM_RDMA_CONN_AG_CTX_A0_RESERVED6_SHIFT 4 4745 #define XSTORM_RDMA_CONN_AG_CTX_A0_RESERVED7_MASK 0x1 4746 #define XSTORM_RDMA_CONN_AG_CTX_A0_RESERVED7_SHIFT 5 4747 #define XSTORM_RDMA_CONN_AG_CTX_A0_RESERVED8_MASK 0x1 4748 #define XSTORM_RDMA_CONN_AG_CTX_A0_RESERVED8_SHIFT 6 4749 #define XSTORM_RDMA_CONN_AG_CTX_A0_RESERVED9_MASK 0x1 4750 #define XSTORM_RDMA_CONN_AG_CTX_A0_RESERVED9_SHIFT 7 4751 u8 flags14; 4752 #define XSTORM_RDMA_CONN_AG_CTX_MIGRATION_MASK 0x1 4753 #define XSTORM_RDMA_CONN_AG_CTX_MIGRATION_SHIFT 0 4754 #define XSTORM_RDMA_CONN_AG_CTX_BIT17_MASK 0x1 4755 #define XSTORM_RDMA_CONN_AG_CTX_BIT17_SHIFT 1 4756 #define XSTORM_RDMA_CONN_AG_CTX_DPM_PORT_NUM_MASK 0x3 4757 #define XSTORM_RDMA_CONN_AG_CTX_DPM_PORT_NUM_SHIFT 2 4758 #define XSTORM_RDMA_CONN_AG_CTX_RESERVED_MASK 0x1 4759 #define XSTORM_RDMA_CONN_AG_CTX_RESERVED_SHIFT 4 4760 #define XSTORM_RDMA_CONN_AG_CTX_ROCE_EDPM_ENABLE_MASK 0x1 4761 #define XSTORM_RDMA_CONN_AG_CTX_ROCE_EDPM_ENABLE_SHIFT 5 4762 #define XSTORM_RDMA_CONN_AG_CTX_CF23_MASK 0x3 4763 #define XSTORM_RDMA_CONN_AG_CTX_CF23_SHIFT 6 4764 u8 byte2; 4765 __le16 physical_q0; 4766 __le16 word1; 4767 __le16 word2; 4768 __le16 word3; 4769 __le16 word4; 4770 __le16 word5; 4771 __le16 conn_dpi; 4772 u8 byte3; 4773 u8 byte4; 4774 u8 byte5; 4775 u8 byte6; 4776 __le32 reg0; 4777 __le32 reg1; 4778 __le32 reg2; 4779 __le32 snd_nxt_psn; 4780 __le32 reg4; 4781 __le32 reg5; 4782 __le32 reg6; 4783 }; 4784 4785 struct ystorm_rdma_conn_ag_ctx { 4786 u8 byte0; 4787 u8 byte1; 4788 u8 flags0; 4789 #define YSTORM_RDMA_CONN_AG_CTX_BIT0_MASK 0x1 4790 #define YSTORM_RDMA_CONN_AG_CTX_BIT0_SHIFT 0 4791 #define YSTORM_RDMA_CONN_AG_CTX_BIT1_MASK 0x1 4792 #define YSTORM_RDMA_CONN_AG_CTX_BIT1_SHIFT 1 4793 #define YSTORM_RDMA_CONN_AG_CTX_CF0_MASK 0x3 4794 #define YSTORM_RDMA_CONN_AG_CTX_CF0_SHIFT 2 4795 #define YSTORM_RDMA_CONN_AG_CTX_CF1_MASK 0x3 4796 #define YSTORM_RDMA_CONN_AG_CTX_CF1_SHIFT 4 4797 #define YSTORM_RDMA_CONN_AG_CTX_CF2_MASK 0x3 4798 #define YSTORM_RDMA_CONN_AG_CTX_CF2_SHIFT 6 4799 u8 flags1; 4800 #define YSTORM_RDMA_CONN_AG_CTX_CF0EN_MASK 0x1 4801 #define YSTORM_RDMA_CONN_AG_CTX_CF0EN_SHIFT 0 4802 #define YSTORM_RDMA_CONN_AG_CTX_CF1EN_MASK 0x1 4803 #define YSTORM_RDMA_CONN_AG_CTX_CF1EN_SHIFT 1 4804 #define YSTORM_RDMA_CONN_AG_CTX_CF2EN_MASK 0x1 4805 #define YSTORM_RDMA_CONN_AG_CTX_CF2EN_SHIFT 2 4806 #define YSTORM_RDMA_CONN_AG_CTX_RULE0EN_MASK 0x1 4807 #define YSTORM_RDMA_CONN_AG_CTX_RULE0EN_SHIFT 3 4808 #define YSTORM_RDMA_CONN_AG_CTX_RULE1EN_MASK 0x1 4809 #define YSTORM_RDMA_CONN_AG_CTX_RULE1EN_SHIFT 4 4810 #define YSTORM_RDMA_CONN_AG_CTX_RULE2EN_MASK 0x1 4811 #define YSTORM_RDMA_CONN_AG_CTX_RULE2EN_SHIFT 5 4812 #define YSTORM_RDMA_CONN_AG_CTX_RULE3EN_MASK 0x1 4813 #define YSTORM_RDMA_CONN_AG_CTX_RULE3EN_SHIFT 6 4814 #define YSTORM_RDMA_CONN_AG_CTX_RULE4EN_MASK 0x1 4815 #define YSTORM_RDMA_CONN_AG_CTX_RULE4EN_SHIFT 7 4816 u8 byte2; 4817 u8 byte3; 4818 __le16 word0; 4819 __le32 reg0; 4820 __le32 reg1; 4821 __le16 word1; 4822 __le16 word2; 4823 __le16 word3; 4824 __le16 word4; 4825 __le32 reg2; 4826 __le32 reg3; 4827 }; 4828 4829 struct mstorm_roce_conn_st_ctx { 4830 struct regpair temp[6]; 4831 }; 4832 4833 struct pstorm_roce_conn_st_ctx { 4834 struct regpair temp[16]; 4835 }; 4836 4837 struct ystorm_roce_conn_st_ctx { 4838 struct regpair temp[2]; 4839 }; 4840 4841 struct xstorm_roce_conn_st_ctx { 4842 struct regpair temp[22]; 4843 }; 4844 4845 struct tstorm_roce_conn_st_ctx { 4846 struct regpair temp[30]; 4847 }; 4848 4849 struct ustorm_roce_conn_st_ctx { 4850 struct regpair temp[12]; 4851 }; 4852 4853 struct roce_conn_context { 4854 struct ystorm_roce_conn_st_ctx ystorm_st_context; 4855 struct regpair ystorm_st_padding[2]; 4856 struct pstorm_roce_conn_st_ctx pstorm_st_context; 4857 struct xstorm_roce_conn_st_ctx xstorm_st_context; 4858 struct regpair xstorm_st_padding[2]; 4859 struct xstorm_rdma_conn_ag_ctx xstorm_ag_context; 4860 struct tstorm_rdma_conn_ag_ctx tstorm_ag_context; 4861 struct timers_context timer_context; 4862 struct ustorm_rdma_conn_ag_ctx ustorm_ag_context; 4863 struct tstorm_roce_conn_st_ctx tstorm_st_context; 4864 struct mstorm_roce_conn_st_ctx mstorm_st_context; 4865 struct ustorm_roce_conn_st_ctx ustorm_st_context; 4866 struct regpair ustorm_st_padding[2]; 4867 }; 4868 4869 struct roce_create_qp_req_ramrod_data { 4870 __le16 flags; 4871 #define ROCE_CREATE_QP_REQ_RAMROD_DATA_ROCE_FLAVOR_MASK 0x3 4872 #define ROCE_CREATE_QP_REQ_RAMROD_DATA_ROCE_FLAVOR_SHIFT 0 4873 #define ROCE_CREATE_QP_REQ_RAMROD_DATA_FMR_AND_RESERVED_EN_MASK 0x1 4874 #define ROCE_CREATE_QP_REQ_RAMROD_DATA_FMR_AND_RESERVED_EN_SHIFT 2 4875 #define ROCE_CREATE_QP_REQ_RAMROD_DATA_SIGNALED_COMP_MASK 0x1 4876 #define ROCE_CREATE_QP_REQ_RAMROD_DATA_SIGNALED_COMP_SHIFT 3 4877 #define ROCE_CREATE_QP_REQ_RAMROD_DATA_PRI_MASK 0x7 4878 #define ROCE_CREATE_QP_REQ_RAMROD_DATA_PRI_SHIFT 4 4879 #define ROCE_CREATE_QP_REQ_RAMROD_DATA_RESERVED_MASK 0x1 4880 #define ROCE_CREATE_QP_REQ_RAMROD_DATA_RESERVED_SHIFT 7 4881 #define ROCE_CREATE_QP_REQ_RAMROD_DATA_ERR_RETRY_CNT_MASK 0xF 4882 #define ROCE_CREATE_QP_REQ_RAMROD_DATA_ERR_RETRY_CNT_SHIFT 8 4883 #define ROCE_CREATE_QP_REQ_RAMROD_DATA_RNR_NAK_CNT_MASK 0xF 4884 #define ROCE_CREATE_QP_REQ_RAMROD_DATA_RNR_NAK_CNT_SHIFT 12 4885 u8 max_ord; 4886 u8 traffic_class; 4887 u8 hop_limit; 4888 u8 orq_num_pages; 4889 __le16 p_key; 4890 __le32 flow_label; 4891 __le32 dst_qp_id; 4892 __le32 ack_timeout_val; 4893 __le32 initial_psn; 4894 __le16 mtu; 4895 __le16 pd; 4896 __le16 sq_num_pages; 4897 __le16 reseved2; 4898 struct regpair sq_pbl_addr; 4899 struct regpair orq_pbl_addr; 4900 __le16 local_mac_addr[3]; 4901 __le16 remote_mac_addr[3]; 4902 __le16 vlan_id; 4903 __le16 udp_src_port; 4904 __le32 src_gid[4]; 4905 __le32 dst_gid[4]; 4906 struct regpair qp_handle_for_cqe; 4907 struct regpair qp_handle_for_async; 4908 u8 stats_counter_id; 4909 u8 reserved3[7]; 4910 __le32 cq_cid; 4911 __le16 physical_queue0; 4912 __le16 dpi; 4913 }; 4914 4915 struct roce_create_qp_resp_ramrod_data { 4916 __le16 flags; 4917 #define ROCE_CREATE_QP_RESP_RAMROD_DATA_ROCE_FLAVOR_MASK 0x3 4918 #define ROCE_CREATE_QP_RESP_RAMROD_DATA_ROCE_FLAVOR_SHIFT 0 4919 #define ROCE_CREATE_QP_RESP_RAMROD_DATA_RDMA_RD_EN_MASK 0x1 4920 #define ROCE_CREATE_QP_RESP_RAMROD_DATA_RDMA_RD_EN_SHIFT 2 4921 #define ROCE_CREATE_QP_RESP_RAMROD_DATA_RDMA_WR_EN_MASK 0x1 4922 #define ROCE_CREATE_QP_RESP_RAMROD_DATA_RDMA_WR_EN_SHIFT 3 4923 #define ROCE_CREATE_QP_RESP_RAMROD_DATA_ATOMIC_EN_MASK 0x1 4924 #define ROCE_CREATE_QP_RESP_RAMROD_DATA_ATOMIC_EN_SHIFT 4 4925 #define ROCE_CREATE_QP_RESP_RAMROD_DATA_SRQ_FLG_MASK 0x1 4926 #define ROCE_CREATE_QP_RESP_RAMROD_DATA_SRQ_FLG_SHIFT 5 4927 #define ROCE_CREATE_QP_RESP_RAMROD_DATA_E2E_FLOW_CONTROL_EN_MASK 0x1 4928 #define ROCE_CREATE_QP_RESP_RAMROD_DATA_E2E_FLOW_CONTROL_EN_SHIFT 6 4929 #define ROCE_CREATE_QP_RESP_RAMROD_DATA_RESERVED0_MASK 0x1 4930 #define ROCE_CREATE_QP_RESP_RAMROD_DATA_RESERVED0_SHIFT 7 4931 #define ROCE_CREATE_QP_RESP_RAMROD_DATA_PRI_MASK 0x7 4932 #define ROCE_CREATE_QP_RESP_RAMROD_DATA_PRI_SHIFT 8 4933 #define ROCE_CREATE_QP_RESP_RAMROD_DATA_MIN_RNR_NAK_TIMER_MASK 0x1F 4934 #define ROCE_CREATE_QP_RESP_RAMROD_DATA_MIN_RNR_NAK_TIMER_SHIFT 11 4935 u8 max_ird; 4936 u8 traffic_class; 4937 u8 hop_limit; 4938 u8 irq_num_pages; 4939 __le16 p_key; 4940 __le32 flow_label; 4941 __le32 dst_qp_id; 4942 u8 stats_counter_id; 4943 u8 reserved1; 4944 __le16 mtu; 4945 __le32 initial_psn; 4946 __le16 pd; 4947 __le16 rq_num_pages; 4948 struct rdma_srq_id srq_id; 4949 struct regpair rq_pbl_addr; 4950 struct regpair irq_pbl_addr; 4951 __le16 local_mac_addr[3]; 4952 __le16 remote_mac_addr[3]; 4953 __le16 vlan_id; 4954 __le16 udp_src_port; 4955 __le32 src_gid[4]; 4956 __le32 dst_gid[4]; 4957 struct regpair qp_handle_for_cqe; 4958 struct regpair qp_handle_for_async; 4959 __le32 reserved2[2]; 4960 __le32 cq_cid; 4961 __le16 physical_queue0; 4962 __le16 dpi; 4963 }; 4964 4965 struct roce_destroy_qp_req_output_params { 4966 __le32 num_bound_mw; 4967 __le32 reserved; 4968 }; 4969 4970 struct roce_destroy_qp_req_ramrod_data { 4971 struct regpair output_params_addr; 4972 }; 4973 4974 struct roce_destroy_qp_resp_output_params { 4975 __le32 num_invalidated_mw; 4976 __le32 reserved; 4977 }; 4978 4979 struct roce_destroy_qp_resp_ramrod_data { 4980 struct regpair output_params_addr; 4981 }; 4982 4983 enum roce_event_opcode { 4984 ROCE_EVENT_CREATE_QP = 11, 4985 ROCE_EVENT_MODIFY_QP, 4986 ROCE_EVENT_QUERY_QP, 4987 ROCE_EVENT_DESTROY_QP, 4988 MAX_ROCE_EVENT_OPCODE 4989 }; 4990 4991 struct roce_modify_qp_req_ramrod_data { 4992 __le16 flags; 4993 #define ROCE_MODIFY_QP_REQ_RAMROD_DATA_MOVE_TO_ERR_FLG_MASK 0x1 4994 #define ROCE_MODIFY_QP_REQ_RAMROD_DATA_MOVE_TO_ERR_FLG_SHIFT 0 4995 #define ROCE_MODIFY_QP_REQ_RAMROD_DATA_MOVE_TO_SQD_FLG_MASK 0x1 4996 #define ROCE_MODIFY_QP_REQ_RAMROD_DATA_MOVE_TO_SQD_FLG_SHIFT 1 4997 #define ROCE_MODIFY_QP_REQ_RAMROD_DATA_EN_SQD_ASYNC_NOTIFY_MASK 0x1 4998 #define ROCE_MODIFY_QP_REQ_RAMROD_DATA_EN_SQD_ASYNC_NOTIFY_SHIFT 2 4999 #define ROCE_MODIFY_QP_REQ_RAMROD_DATA_P_KEY_FLG_MASK 0x1 5000 #define ROCE_MODIFY_QP_REQ_RAMROD_DATA_P_KEY_FLG_SHIFT 3 5001 #define ROCE_MODIFY_QP_REQ_RAMROD_DATA_ADDRESS_VECTOR_FLG_MASK 0x1 5002 #define ROCE_MODIFY_QP_REQ_RAMROD_DATA_ADDRESS_VECTOR_FLG_SHIFT 4 5003 #define ROCE_MODIFY_QP_REQ_RAMROD_DATA_MAX_ORD_FLG_MASK 0x1 5004 #define ROCE_MODIFY_QP_REQ_RAMROD_DATA_MAX_ORD_FLG_SHIFT 5 5005 #define ROCE_MODIFY_QP_REQ_RAMROD_DATA_RNR_NAK_CNT_FLG_MASK 0x1 5006 #define ROCE_MODIFY_QP_REQ_RAMROD_DATA_RNR_NAK_CNT_FLG_SHIFT 6 5007 #define ROCE_MODIFY_QP_REQ_RAMROD_DATA_ERR_RETRY_CNT_FLG_MASK 0x1 5008 #define ROCE_MODIFY_QP_REQ_RAMROD_DATA_ERR_RETRY_CNT_FLG_SHIFT 7 5009 #define ROCE_MODIFY_QP_REQ_RAMROD_DATA_ACK_TIMEOUT_FLG_MASK 0x1 5010 #define ROCE_MODIFY_QP_REQ_RAMROD_DATA_ACK_TIMEOUT_FLG_SHIFT 8 5011 #define ROCE_MODIFY_QP_REQ_RAMROD_DATA_PRI_FLG_MASK 0x1 5012 #define ROCE_MODIFY_QP_REQ_RAMROD_DATA_PRI_FLG_SHIFT 9 5013 #define ROCE_MODIFY_QP_REQ_RAMROD_DATA_PRI_MASK 0x7 5014 #define ROCE_MODIFY_QP_REQ_RAMROD_DATA_PRI_SHIFT 10 5015 #define ROCE_MODIFY_QP_REQ_RAMROD_DATA_RESERVED1_MASK 0x7 5016 #define ROCE_MODIFY_QP_REQ_RAMROD_DATA_RESERVED1_SHIFT 13 5017 u8 fields; 5018 #define ROCE_MODIFY_QP_REQ_RAMROD_DATA_ERR_RETRY_CNT_MASK 0xF 5019 #define ROCE_MODIFY_QP_REQ_RAMROD_DATA_ERR_RETRY_CNT_SHIFT 0 5020 #define ROCE_MODIFY_QP_REQ_RAMROD_DATA_RNR_NAK_CNT_MASK 0xF 5021 #define ROCE_MODIFY_QP_REQ_RAMROD_DATA_RNR_NAK_CNT_SHIFT 4 5022 u8 max_ord; 5023 u8 traffic_class; 5024 u8 hop_limit; 5025 __le16 p_key; 5026 __le32 flow_label; 5027 __le32 ack_timeout_val; 5028 __le16 mtu; 5029 __le16 reserved2; 5030 __le32 reserved3[3]; 5031 __le32 src_gid[4]; 5032 __le32 dst_gid[4]; 5033 }; 5034 5035 struct roce_modify_qp_resp_ramrod_data { 5036 __le16 flags; 5037 #define ROCE_MODIFY_QP_RESP_RAMROD_DATA_MOVE_TO_ERR_FLG_MASK 0x1 5038 #define ROCE_MODIFY_QP_RESP_RAMROD_DATA_MOVE_TO_ERR_FLG_SHIFT 0 5039 #define ROCE_MODIFY_QP_RESP_RAMROD_DATA_RDMA_RD_EN_MASK 0x1 5040 #define ROCE_MODIFY_QP_RESP_RAMROD_DATA_RDMA_RD_EN_SHIFT 1 5041 #define ROCE_MODIFY_QP_RESP_RAMROD_DATA_RDMA_WR_EN_MASK 0x1 5042 #define ROCE_MODIFY_QP_RESP_RAMROD_DATA_RDMA_WR_EN_SHIFT 2 5043 #define ROCE_MODIFY_QP_RESP_RAMROD_DATA_ATOMIC_EN_MASK 0x1 5044 #define ROCE_MODIFY_QP_RESP_RAMROD_DATA_ATOMIC_EN_SHIFT 3 5045 #define ROCE_MODIFY_QP_RESP_RAMROD_DATA_P_KEY_FLG_MASK 0x1 5046 #define ROCE_MODIFY_QP_RESP_RAMROD_DATA_P_KEY_FLG_SHIFT 4 5047 #define ROCE_MODIFY_QP_RESP_RAMROD_DATA_ADDRESS_VECTOR_FLG_MASK 0x1 5048 #define ROCE_MODIFY_QP_RESP_RAMROD_DATA_ADDRESS_VECTOR_FLG_SHIFT 5 5049 #define ROCE_MODIFY_QP_RESP_RAMROD_DATA_MAX_IRD_FLG_MASK 0x1 5050 #define ROCE_MODIFY_QP_RESP_RAMROD_DATA_MAX_IRD_FLG_SHIFT 6 5051 #define ROCE_MODIFY_QP_RESP_RAMROD_DATA_PRI_FLG_MASK 0x1 5052 #define ROCE_MODIFY_QP_RESP_RAMROD_DATA_PRI_FLG_SHIFT 7 5053 #define ROCE_MODIFY_QP_RESP_RAMROD_DATA_MIN_RNR_NAK_TIMER_FLG_MASK 0x1 5054 #define ROCE_MODIFY_QP_RESP_RAMROD_DATA_MIN_RNR_NAK_TIMER_FLG_SHIFT 8 5055 #define ROCE_MODIFY_QP_RESP_RAMROD_DATA_RDMA_OPS_EN_FLG_MASK 0x1 5056 #define ROCE_MODIFY_QP_RESP_RAMROD_DATA_RDMA_OPS_EN_FLG_SHIFT 9 5057 #define ROCE_MODIFY_QP_RESP_RAMROD_DATA_RESERVED1_MASK 0x3F 5058 #define ROCE_MODIFY_QP_RESP_RAMROD_DATA_RESERVED1_SHIFT 10 5059 u8 fields; 5060 #define ROCE_MODIFY_QP_RESP_RAMROD_DATA_PRI_MASK 0x7 5061 #define ROCE_MODIFY_QP_RESP_RAMROD_DATA_PRI_SHIFT 0 5062 #define ROCE_MODIFY_QP_RESP_RAMROD_DATA_MIN_RNR_NAK_TIMER_MASK 0x1F 5063 #define ROCE_MODIFY_QP_RESP_RAMROD_DATA_MIN_RNR_NAK_TIMER_SHIFT 3 5064 u8 max_ird; 5065 u8 traffic_class; 5066 u8 hop_limit; 5067 __le16 p_key; 5068 __le32 flow_label; 5069 __le16 mtu; 5070 __le16 reserved2; 5071 __le32 src_gid[4]; 5072 __le32 dst_gid[4]; 5073 }; 5074 5075 struct roce_query_qp_req_output_params { 5076 __le32 psn; 5077 __le32 flags; 5078 #define ROCE_QUERY_QP_REQ_OUTPUT_PARAMS_ERR_FLG_MASK 0x1 5079 #define ROCE_QUERY_QP_REQ_OUTPUT_PARAMS_ERR_FLG_SHIFT 0 5080 #define ROCE_QUERY_QP_REQ_OUTPUT_PARAMS_SQ_DRAINING_FLG_MASK 0x1 5081 #define ROCE_QUERY_QP_REQ_OUTPUT_PARAMS_SQ_DRAINING_FLG_SHIFT 1 5082 #define ROCE_QUERY_QP_REQ_OUTPUT_PARAMS_RESERVED0_MASK 0x3FFFFFFF 5083 #define ROCE_QUERY_QP_REQ_OUTPUT_PARAMS_RESERVED0_SHIFT 2 5084 }; 5085 5086 struct roce_query_qp_req_ramrod_data { 5087 struct regpair output_params_addr; 5088 }; 5089 5090 struct roce_query_qp_resp_output_params { 5091 __le32 psn; 5092 __le32 err_flag; 5093 #define ROCE_QUERY_QP_RESP_OUTPUT_PARAMS_ERROR_FLG_MASK 0x1 5094 #define ROCE_QUERY_QP_RESP_OUTPUT_PARAMS_ERROR_FLG_SHIFT 0 5095 #define ROCE_QUERY_QP_RESP_OUTPUT_PARAMS_RESERVED0_MASK 0x7FFFFFFF 5096 #define ROCE_QUERY_QP_RESP_OUTPUT_PARAMS_RESERVED0_SHIFT 1 5097 }; 5098 5099 struct roce_query_qp_resp_ramrod_data { 5100 struct regpair output_params_addr; 5101 }; 5102 5103 enum roce_ramrod_cmd_id { 5104 ROCE_RAMROD_CREATE_QP = 11, 5105 ROCE_RAMROD_MODIFY_QP, 5106 ROCE_RAMROD_QUERY_QP, 5107 ROCE_RAMROD_DESTROY_QP, 5108 MAX_ROCE_RAMROD_CMD_ID 5109 }; 5110 5111 struct mstorm_roce_req_conn_ag_ctx { 5112 u8 byte0; 5113 u8 byte1; 5114 u8 flags0; 5115 #define MSTORM_ROCE_REQ_CONN_AG_CTX_BIT0_MASK 0x1 5116 #define MSTORM_ROCE_REQ_CONN_AG_CTX_BIT0_SHIFT 0 5117 #define MSTORM_ROCE_REQ_CONN_AG_CTX_BIT1_MASK 0x1 5118 #define MSTORM_ROCE_REQ_CONN_AG_CTX_BIT1_SHIFT 1 5119 #define MSTORM_ROCE_REQ_CONN_AG_CTX_CF0_MASK 0x3 5120 #define MSTORM_ROCE_REQ_CONN_AG_CTX_CF0_SHIFT 2 5121 #define MSTORM_ROCE_REQ_CONN_AG_CTX_CF1_MASK 0x3 5122 #define MSTORM_ROCE_REQ_CONN_AG_CTX_CF1_SHIFT 4 5123 #define MSTORM_ROCE_REQ_CONN_AG_CTX_CF2_MASK 0x3 5124 #define MSTORM_ROCE_REQ_CONN_AG_CTX_CF2_SHIFT 6 5125 u8 flags1; 5126 #define MSTORM_ROCE_REQ_CONN_AG_CTX_CF0EN_MASK 0x1 5127 #define MSTORM_ROCE_REQ_CONN_AG_CTX_CF0EN_SHIFT 0 5128 #define MSTORM_ROCE_REQ_CONN_AG_CTX_CF1EN_MASK 0x1 5129 #define MSTORM_ROCE_REQ_CONN_AG_CTX_CF1EN_SHIFT 1 5130 #define MSTORM_ROCE_REQ_CONN_AG_CTX_CF2EN_MASK 0x1 5131 #define MSTORM_ROCE_REQ_CONN_AG_CTX_CF2EN_SHIFT 2 5132 #define MSTORM_ROCE_REQ_CONN_AG_CTX_RULE0EN_MASK 0x1 5133 #define MSTORM_ROCE_REQ_CONN_AG_CTX_RULE0EN_SHIFT 3 5134 #define MSTORM_ROCE_REQ_CONN_AG_CTX_RULE1EN_MASK 0x1 5135 #define MSTORM_ROCE_REQ_CONN_AG_CTX_RULE1EN_SHIFT 4 5136 #define MSTORM_ROCE_REQ_CONN_AG_CTX_RULE2EN_MASK 0x1 5137 #define MSTORM_ROCE_REQ_CONN_AG_CTX_RULE2EN_SHIFT 5 5138 #define MSTORM_ROCE_REQ_CONN_AG_CTX_RULE3EN_MASK 0x1 5139 #define MSTORM_ROCE_REQ_CONN_AG_CTX_RULE3EN_SHIFT 6 5140 #define MSTORM_ROCE_REQ_CONN_AG_CTX_RULE4EN_MASK 0x1 5141 #define MSTORM_ROCE_REQ_CONN_AG_CTX_RULE4EN_SHIFT 7 5142 __le16 word0; 5143 __le16 word1; 5144 __le32 reg0; 5145 __le32 reg1; 5146 }; 5147 5148 struct mstorm_roce_resp_conn_ag_ctx { 5149 u8 byte0; 5150 u8 byte1; 5151 u8 flags0; 5152 #define MSTORM_ROCE_RESP_CONN_AG_CTX_BIT0_MASK 0x1 5153 #define MSTORM_ROCE_RESP_CONN_AG_CTX_BIT0_SHIFT 0 5154 #define MSTORM_ROCE_RESP_CONN_AG_CTX_BIT1_MASK 0x1 5155 #define MSTORM_ROCE_RESP_CONN_AG_CTX_BIT1_SHIFT 1 5156 #define MSTORM_ROCE_RESP_CONN_AG_CTX_CF0_MASK 0x3 5157 #define MSTORM_ROCE_RESP_CONN_AG_CTX_CF0_SHIFT 2 5158 #define MSTORM_ROCE_RESP_CONN_AG_CTX_CF1_MASK 0x3 5159 #define MSTORM_ROCE_RESP_CONN_AG_CTX_CF1_SHIFT 4 5160 #define MSTORM_ROCE_RESP_CONN_AG_CTX_CF2_MASK 0x3 5161 #define MSTORM_ROCE_RESP_CONN_AG_CTX_CF2_SHIFT 6 5162 u8 flags1; 5163 #define MSTORM_ROCE_RESP_CONN_AG_CTX_CF0EN_MASK 0x1 5164 #define MSTORM_ROCE_RESP_CONN_AG_CTX_CF0EN_SHIFT 0 5165 #define MSTORM_ROCE_RESP_CONN_AG_CTX_CF1EN_MASK 0x1 5166 #define MSTORM_ROCE_RESP_CONN_AG_CTX_CF1EN_SHIFT 1 5167 #define MSTORM_ROCE_RESP_CONN_AG_CTX_CF2EN_MASK 0x1 5168 #define MSTORM_ROCE_RESP_CONN_AG_CTX_CF2EN_SHIFT 2 5169 #define MSTORM_ROCE_RESP_CONN_AG_CTX_RULE0EN_MASK 0x1 5170 #define MSTORM_ROCE_RESP_CONN_AG_CTX_RULE0EN_SHIFT 3 5171 #define MSTORM_ROCE_RESP_CONN_AG_CTX_RULE1EN_MASK 0x1 5172 #define MSTORM_ROCE_RESP_CONN_AG_CTX_RULE1EN_SHIFT 4 5173 #define MSTORM_ROCE_RESP_CONN_AG_CTX_RULE2EN_MASK 0x1 5174 #define MSTORM_ROCE_RESP_CONN_AG_CTX_RULE2EN_SHIFT 5 5175 #define MSTORM_ROCE_RESP_CONN_AG_CTX_RULE3EN_MASK 0x1 5176 #define MSTORM_ROCE_RESP_CONN_AG_CTX_RULE3EN_SHIFT 6 5177 #define MSTORM_ROCE_RESP_CONN_AG_CTX_RULE4EN_MASK 0x1 5178 #define MSTORM_ROCE_RESP_CONN_AG_CTX_RULE4EN_SHIFT 7 5179 __le16 word0; 5180 __le16 word1; 5181 __le32 reg0; 5182 __le32 reg1; 5183 }; 5184 5185 enum roce_flavor { 5186 PLAIN_ROCE /* RoCE v1 */ , 5187 RROCE_IPV4 /* RoCE v2 (Routable RoCE) over ipv4 */ , 5188 RROCE_IPV6 /* RoCE v2 (Routable RoCE) over ipv6 */ , 5189 MAX_ROCE_FLAVOR 5190 }; 5191 5192 struct tstorm_roce_req_conn_ag_ctx { 5193 u8 reserved0; 5194 u8 state; 5195 u8 flags0; 5196 #define TSTORM_ROCE_REQ_CONN_AG_CTX_EXIST_IN_QM0_MASK 0x1 5197 #define TSTORM_ROCE_REQ_CONN_AG_CTX_EXIST_IN_QM0_SHIFT 0 5198 #define TSTORM_ROCE_REQ_CONN_AG_CTX_RX_ERROR_OCCURED_MASK 0x1 5199 #define TSTORM_ROCE_REQ_CONN_AG_CTX_RX_ERROR_OCCURED_SHIFT 1 5200 #define TSTORM_ROCE_REQ_CONN_AG_CTX_TX_CQE_ERROR_OCCURED_MASK 0x1 5201 #define TSTORM_ROCE_REQ_CONN_AG_CTX_TX_CQE_ERROR_OCCURED_SHIFT 2 5202 #define TSTORM_ROCE_REQ_CONN_AG_CTX_BIT3_MASK 0x1 5203 #define TSTORM_ROCE_REQ_CONN_AG_CTX_BIT3_SHIFT 3 5204 #define TSTORM_ROCE_REQ_CONN_AG_CTX_MSTORM_FLUSH_MASK 0x1 5205 #define TSTORM_ROCE_REQ_CONN_AG_CTX_MSTORM_FLUSH_SHIFT 4 5206 #define TSTORM_ROCE_REQ_CONN_AG_CTX_CACHED_ORQ_MASK 0x1 5207 #define TSTORM_ROCE_REQ_CONN_AG_CTX_CACHED_ORQ_SHIFT 5 5208 #define TSTORM_ROCE_REQ_CONN_AG_CTX_TIMER_CF_MASK 0x3 5209 #define TSTORM_ROCE_REQ_CONN_AG_CTX_TIMER_CF_SHIFT 6 5210 u8 flags1; 5211 #define TSTORM_ROCE_REQ_CONN_AG_CTX_CF1_MASK 0x3 5212 #define TSTORM_ROCE_REQ_CONN_AG_CTX_CF1_SHIFT 0 5213 #define TSTORM_ROCE_REQ_CONN_AG_CTX_FLUSH_SQ_CF_MASK 0x3 5214 #define TSTORM_ROCE_REQ_CONN_AG_CTX_FLUSH_SQ_CF_SHIFT 2 5215 #define TSTORM_ROCE_REQ_CONN_AG_CTX_TIMER_STOP_ALL_CF_MASK 0x3 5216 #define TSTORM_ROCE_REQ_CONN_AG_CTX_TIMER_STOP_ALL_CF_SHIFT 4 5217 #define TSTORM_ROCE_REQ_CONN_AG_CTX_FLUSH_Q0_CF_MASK 0x3 5218 #define TSTORM_ROCE_REQ_CONN_AG_CTX_FLUSH_Q0_CF_SHIFT 6 5219 u8 flags2; 5220 #define TSTORM_ROCE_REQ_CONN_AG_CTX_MSTORM_FLUSH_CF_MASK 0x3 5221 #define TSTORM_ROCE_REQ_CONN_AG_CTX_MSTORM_FLUSH_CF_SHIFT 0 5222 #define TSTORM_ROCE_REQ_CONN_AG_CTX_SET_TIMER_CF_MASK 0x3 5223 #define TSTORM_ROCE_REQ_CONN_AG_CTX_SET_TIMER_CF_SHIFT 2 5224 #define TSTORM_ROCE_REQ_CONN_AG_CTX_TX_ASYNC_ERROR_CF_MASK 0x3 5225 #define TSTORM_ROCE_REQ_CONN_AG_CTX_TX_ASYNC_ERROR_CF_SHIFT 4 5226 #define TSTORM_ROCE_REQ_CONN_AG_CTX_RXMIT_DONE_CF_MASK 0x3 5227 #define TSTORM_ROCE_REQ_CONN_AG_CTX_RXMIT_DONE_CF_SHIFT 6 5228 u8 flags3; 5229 #define TSTORM_ROCE_REQ_CONN_AG_CTX_ERROR_SCAN_COMPLETED_CF_MASK 0x3 5230 #define TSTORM_ROCE_REQ_CONN_AG_CTX_ERROR_SCAN_COMPLETED_CF_SHIFT 0 5231 #define TSTORM_ROCE_REQ_CONN_AG_CTX_SQ_DRAIN_COMPLETED_CF_MASK 0x3 5232 #define TSTORM_ROCE_REQ_CONN_AG_CTX_SQ_DRAIN_COMPLETED_CF_SHIFT 2 5233 #define TSTORM_ROCE_REQ_CONN_AG_CTX_TIMER_CF_EN_MASK 0x1 5234 #define TSTORM_ROCE_REQ_CONN_AG_CTX_TIMER_CF_EN_SHIFT 4 5235 #define TSTORM_ROCE_REQ_CONN_AG_CTX_CF1EN_MASK 0x1 5236 #define TSTORM_ROCE_REQ_CONN_AG_CTX_CF1EN_SHIFT 5 5237 #define TSTORM_ROCE_REQ_CONN_AG_CTX_FLUSH_SQ_CF_EN_MASK 0x1 5238 #define TSTORM_ROCE_REQ_CONN_AG_CTX_FLUSH_SQ_CF_EN_SHIFT 6 5239 #define TSTORM_ROCE_REQ_CONN_AG_CTX_TIMER_STOP_ALL_CF_EN_MASK 0x1 5240 #define TSTORM_ROCE_REQ_CONN_AG_CTX_TIMER_STOP_ALL_CF_EN_SHIFT 7 5241 u8 flags4; 5242 #define TSTORM_ROCE_REQ_CONN_AG_CTX_FLUSH_Q0_CF_EN_MASK 0x1 5243 #define TSTORM_ROCE_REQ_CONN_AG_CTX_FLUSH_Q0_CF_EN_SHIFT 0 5244 #define TSTORM_ROCE_REQ_CONN_AG_CTX_MSTORM_FLUSH_CF_EN_MASK 0x1 5245 #define TSTORM_ROCE_REQ_CONN_AG_CTX_MSTORM_FLUSH_CF_EN_SHIFT 1 5246 #define TSTORM_ROCE_REQ_CONN_AG_CTX_SET_TIMER_CF_EN_MASK 0x1 5247 #define TSTORM_ROCE_REQ_CONN_AG_CTX_SET_TIMER_CF_EN_SHIFT 2 5248 #define TSTORM_ROCE_REQ_CONN_AG_CTX_TX_ASYNC_ERROR_CF_EN_MASK 0x1 5249 #define TSTORM_ROCE_REQ_CONN_AG_CTX_TX_ASYNC_ERROR_CF_EN_SHIFT 3 5250 #define TSTORM_ROCE_REQ_CONN_AG_CTX_RXMIT_DONE_CF_EN_MASK 0x1 5251 #define TSTORM_ROCE_REQ_CONN_AG_CTX_RXMIT_DONE_CF_EN_SHIFT 4 5252 #define TSTORM_ROCE_REQ_CONN_AG_CTX_ERROR_SCAN_COMPLETED_CF_EN_MASK 0x1 5253 #define TSTORM_ROCE_REQ_CONN_AG_CTX_ERROR_SCAN_COMPLETED_CF_EN_SHIFT 5 5254 #define TSTORM_ROCE_REQ_CONN_AG_CTX_SQ_DRAIN_COMPLETED_CF_EN_MASK 0x1 5255 #define TSTORM_ROCE_REQ_CONN_AG_CTX_SQ_DRAIN_COMPLETED_CF_EN_SHIFT 6 5256 #define TSTORM_ROCE_REQ_CONN_AG_CTX_RULE0EN_MASK 0x1 5257 #define TSTORM_ROCE_REQ_CONN_AG_CTX_RULE0EN_SHIFT 7 5258 u8 flags5; 5259 #define TSTORM_ROCE_REQ_CONN_AG_CTX_RULE1EN_MASK 0x1 5260 #define TSTORM_ROCE_REQ_CONN_AG_CTX_RULE1EN_SHIFT 0 5261 #define TSTORM_ROCE_REQ_CONN_AG_CTX_RULE2EN_MASK 0x1 5262 #define TSTORM_ROCE_REQ_CONN_AG_CTX_RULE2EN_SHIFT 1 5263 #define TSTORM_ROCE_REQ_CONN_AG_CTX_RULE3EN_MASK 0x1 5264 #define TSTORM_ROCE_REQ_CONN_AG_CTX_RULE3EN_SHIFT 2 5265 #define TSTORM_ROCE_REQ_CONN_AG_CTX_RULE4EN_MASK 0x1 5266 #define TSTORM_ROCE_REQ_CONN_AG_CTX_RULE4EN_SHIFT 3 5267 #define TSTORM_ROCE_REQ_CONN_AG_CTX_RULE5EN_MASK 0x1 5268 #define TSTORM_ROCE_REQ_CONN_AG_CTX_RULE5EN_SHIFT 4 5269 #define TSTORM_ROCE_REQ_CONN_AG_CTX_SND_SQ_CONS_EN_MASK 0x1 5270 #define TSTORM_ROCE_REQ_CONN_AG_CTX_SND_SQ_CONS_EN_SHIFT 5 5271 #define TSTORM_ROCE_REQ_CONN_AG_CTX_RULE7EN_MASK 0x1 5272 #define TSTORM_ROCE_REQ_CONN_AG_CTX_RULE7EN_SHIFT 6 5273 #define TSTORM_ROCE_REQ_CONN_AG_CTX_RULE8EN_MASK 0x1 5274 #define TSTORM_ROCE_REQ_CONN_AG_CTX_RULE8EN_SHIFT 7 5275 __le32 reg0; 5276 __le32 snd_nxt_psn; 5277 __le32 snd_max_psn; 5278 __le32 orq_prod; 5279 __le32 reg4; 5280 __le32 reg5; 5281 __le32 reg6; 5282 __le32 reg7; 5283 __le32 reg8; 5284 u8 tx_cqe_error_type; 5285 u8 orq_cache_idx; 5286 __le16 snd_sq_cons_th; 5287 u8 byte4; 5288 u8 byte5; 5289 __le16 snd_sq_cons; 5290 __le16 word2; 5291 __le16 word3; 5292 __le32 reg9; 5293 __le32 reg10; 5294 }; 5295 5296 struct tstorm_roce_resp_conn_ag_ctx { 5297 u8 byte0; 5298 u8 state; 5299 u8 flags0; 5300 #define TSTORM_ROCE_RESP_CONN_AG_CTX_EXIST_IN_QM0_MASK 0x1 5301 #define TSTORM_ROCE_RESP_CONN_AG_CTX_EXIST_IN_QM0_SHIFT 0 5302 #define TSTORM_ROCE_RESP_CONN_AG_CTX_BIT1_MASK 0x1 5303 #define TSTORM_ROCE_RESP_CONN_AG_CTX_BIT1_SHIFT 1 5304 #define TSTORM_ROCE_RESP_CONN_AG_CTX_BIT2_MASK 0x1 5305 #define TSTORM_ROCE_RESP_CONN_AG_CTX_BIT2_SHIFT 2 5306 #define TSTORM_ROCE_RESP_CONN_AG_CTX_BIT3_MASK 0x1 5307 #define TSTORM_ROCE_RESP_CONN_AG_CTX_BIT3_SHIFT 3 5308 #define TSTORM_ROCE_RESP_CONN_AG_CTX_MSTORM_FLUSH_MASK 0x1 5309 #define TSTORM_ROCE_RESP_CONN_AG_CTX_MSTORM_FLUSH_SHIFT 4 5310 #define TSTORM_ROCE_RESP_CONN_AG_CTX_BIT5_MASK 0x1 5311 #define TSTORM_ROCE_RESP_CONN_AG_CTX_BIT5_SHIFT 5 5312 #define TSTORM_ROCE_RESP_CONN_AG_CTX_CF0_MASK 0x3 5313 #define TSTORM_ROCE_RESP_CONN_AG_CTX_CF0_SHIFT 6 5314 u8 flags1; 5315 #define TSTORM_ROCE_RESP_CONN_AG_CTX_RX_ERROR_CF_MASK 0x3 5316 #define TSTORM_ROCE_RESP_CONN_AG_CTX_RX_ERROR_CF_SHIFT 0 5317 #define TSTORM_ROCE_RESP_CONN_AG_CTX_TX_ERROR_CF_MASK 0x3 5318 #define TSTORM_ROCE_RESP_CONN_AG_CTX_TX_ERROR_CF_SHIFT 2 5319 #define TSTORM_ROCE_RESP_CONN_AG_CTX_CF3_MASK 0x3 5320 #define TSTORM_ROCE_RESP_CONN_AG_CTX_CF3_SHIFT 4 5321 #define TSTORM_ROCE_RESP_CONN_AG_CTX_FLUSH_Q0_CF_MASK 0x3 5322 #define TSTORM_ROCE_RESP_CONN_AG_CTX_FLUSH_Q0_CF_SHIFT 6 5323 u8 flags2; 5324 #define TSTORM_ROCE_RESP_CONN_AG_CTX_MSTORM_FLUSH_CF_MASK 0x3 5325 #define TSTORM_ROCE_RESP_CONN_AG_CTX_MSTORM_FLUSH_CF_SHIFT 0 5326 #define TSTORM_ROCE_RESP_CONN_AG_CTX_CF6_MASK 0x3 5327 #define TSTORM_ROCE_RESP_CONN_AG_CTX_CF6_SHIFT 2 5328 #define TSTORM_ROCE_RESP_CONN_AG_CTX_CF7_MASK 0x3 5329 #define TSTORM_ROCE_RESP_CONN_AG_CTX_CF7_SHIFT 4 5330 #define TSTORM_ROCE_RESP_CONN_AG_CTX_CF8_MASK 0x3 5331 #define TSTORM_ROCE_RESP_CONN_AG_CTX_CF8_SHIFT 6 5332 u8 flags3; 5333 #define TSTORM_ROCE_RESP_CONN_AG_CTX_CF9_MASK 0x3 5334 #define TSTORM_ROCE_RESP_CONN_AG_CTX_CF9_SHIFT 0 5335 #define TSTORM_ROCE_RESP_CONN_AG_CTX_CF10_MASK 0x3 5336 #define TSTORM_ROCE_RESP_CONN_AG_CTX_CF10_SHIFT 2 5337 #define TSTORM_ROCE_RESP_CONN_AG_CTX_CF0EN_MASK 0x1 5338 #define TSTORM_ROCE_RESP_CONN_AG_CTX_CF0EN_SHIFT 4 5339 #define TSTORM_ROCE_RESP_CONN_AG_CTX_RX_ERROR_CF_EN_MASK 0x1 5340 #define TSTORM_ROCE_RESP_CONN_AG_CTX_RX_ERROR_CF_EN_SHIFT 5 5341 #define TSTORM_ROCE_RESP_CONN_AG_CTX_TX_ERROR_CF_EN_MASK 0x1 5342 #define TSTORM_ROCE_RESP_CONN_AG_CTX_TX_ERROR_CF_EN_SHIFT 6 5343 #define TSTORM_ROCE_RESP_CONN_AG_CTX_CF3EN_MASK 0x1 5344 #define TSTORM_ROCE_RESP_CONN_AG_CTX_CF3EN_SHIFT 7 5345 u8 flags4; 5346 #define TSTORM_ROCE_RESP_CONN_AG_CTX_FLUSH_Q0_CF_EN_MASK 0x1 5347 #define TSTORM_ROCE_RESP_CONN_AG_CTX_FLUSH_Q0_CF_EN_SHIFT 0 5348 #define TSTORM_ROCE_RESP_CONN_AG_CTX_MSTORM_FLUSH_CF_EN_MASK 0x1 5349 #define TSTORM_ROCE_RESP_CONN_AG_CTX_MSTORM_FLUSH_CF_EN_SHIFT 1 5350 #define TSTORM_ROCE_RESP_CONN_AG_CTX_CF6EN_MASK 0x1 5351 #define TSTORM_ROCE_RESP_CONN_AG_CTX_CF6EN_SHIFT 2 5352 #define TSTORM_ROCE_RESP_CONN_AG_CTX_CF7EN_MASK 0x1 5353 #define TSTORM_ROCE_RESP_CONN_AG_CTX_CF7EN_SHIFT 3 5354 #define TSTORM_ROCE_RESP_CONN_AG_CTX_CF8EN_MASK 0x1 5355 #define TSTORM_ROCE_RESP_CONN_AG_CTX_CF8EN_SHIFT 4 5356 #define TSTORM_ROCE_RESP_CONN_AG_CTX_CF9EN_MASK 0x1 5357 #define TSTORM_ROCE_RESP_CONN_AG_CTX_CF9EN_SHIFT 5 5358 #define TSTORM_ROCE_RESP_CONN_AG_CTX_CF10EN_MASK 0x1 5359 #define TSTORM_ROCE_RESP_CONN_AG_CTX_CF10EN_SHIFT 6 5360 #define TSTORM_ROCE_RESP_CONN_AG_CTX_RULE0EN_MASK 0x1 5361 #define TSTORM_ROCE_RESP_CONN_AG_CTX_RULE0EN_SHIFT 7 5362 u8 flags5; 5363 #define TSTORM_ROCE_RESP_CONN_AG_CTX_RULE1EN_MASK 0x1 5364 #define TSTORM_ROCE_RESP_CONN_AG_CTX_RULE1EN_SHIFT 0 5365 #define TSTORM_ROCE_RESP_CONN_AG_CTX_RULE2EN_MASK 0x1 5366 #define TSTORM_ROCE_RESP_CONN_AG_CTX_RULE2EN_SHIFT 1 5367 #define TSTORM_ROCE_RESP_CONN_AG_CTX_RULE3EN_MASK 0x1 5368 #define TSTORM_ROCE_RESP_CONN_AG_CTX_RULE3EN_SHIFT 2 5369 #define TSTORM_ROCE_RESP_CONN_AG_CTX_RULE4EN_MASK 0x1 5370 #define TSTORM_ROCE_RESP_CONN_AG_CTX_RULE4EN_SHIFT 3 5371 #define TSTORM_ROCE_RESP_CONN_AG_CTX_RULE5EN_MASK 0x1 5372 #define TSTORM_ROCE_RESP_CONN_AG_CTX_RULE5EN_SHIFT 4 5373 #define TSTORM_ROCE_RESP_CONN_AG_CTX_RQ_RULE_EN_MASK 0x1 5374 #define TSTORM_ROCE_RESP_CONN_AG_CTX_RQ_RULE_EN_SHIFT 5 5375 #define TSTORM_ROCE_RESP_CONN_AG_CTX_RULE7EN_MASK 0x1 5376 #define TSTORM_ROCE_RESP_CONN_AG_CTX_RULE7EN_SHIFT 6 5377 #define TSTORM_ROCE_RESP_CONN_AG_CTX_RULE8EN_MASK 0x1 5378 #define TSTORM_ROCE_RESP_CONN_AG_CTX_RULE8EN_SHIFT 7 5379 __le32 psn_and_rxmit_id_echo; 5380 __le32 reg1; 5381 __le32 reg2; 5382 __le32 reg3; 5383 __le32 reg4; 5384 __le32 reg5; 5385 __le32 reg6; 5386 __le32 reg7; 5387 __le32 reg8; 5388 u8 tx_async_error_type; 5389 u8 byte3; 5390 __le16 rq_cons; 5391 u8 byte4; 5392 u8 byte5; 5393 __le16 rq_prod; 5394 __le16 conn_dpi; 5395 __le16 irq_cons; 5396 __le32 num_invlidated_mw; 5397 __le32 reg10; 5398 }; 5399 5400 struct ustorm_roce_req_conn_ag_ctx { 5401 u8 byte0; 5402 u8 byte1; 5403 u8 flags0; 5404 #define USTORM_ROCE_REQ_CONN_AG_CTX_BIT0_MASK 0x1 5405 #define USTORM_ROCE_REQ_CONN_AG_CTX_BIT0_SHIFT 0 5406 #define USTORM_ROCE_REQ_CONN_AG_CTX_BIT1_MASK 0x1 5407 #define USTORM_ROCE_REQ_CONN_AG_CTX_BIT1_SHIFT 1 5408 #define USTORM_ROCE_REQ_CONN_AG_CTX_CF0_MASK 0x3 5409 #define USTORM_ROCE_REQ_CONN_AG_CTX_CF0_SHIFT 2 5410 #define USTORM_ROCE_REQ_CONN_AG_CTX_CF1_MASK 0x3 5411 #define USTORM_ROCE_REQ_CONN_AG_CTX_CF1_SHIFT 4 5412 #define USTORM_ROCE_REQ_CONN_AG_CTX_CF2_MASK 0x3 5413 #define USTORM_ROCE_REQ_CONN_AG_CTX_CF2_SHIFT 6 5414 u8 flags1; 5415 #define USTORM_ROCE_REQ_CONN_AG_CTX_CF3_MASK 0x3 5416 #define USTORM_ROCE_REQ_CONN_AG_CTX_CF3_SHIFT 0 5417 #define USTORM_ROCE_REQ_CONN_AG_CTX_CF4_MASK 0x3 5418 #define USTORM_ROCE_REQ_CONN_AG_CTX_CF4_SHIFT 2 5419 #define USTORM_ROCE_REQ_CONN_AG_CTX_CF5_MASK 0x3 5420 #define USTORM_ROCE_REQ_CONN_AG_CTX_CF5_SHIFT 4 5421 #define USTORM_ROCE_REQ_CONN_AG_CTX_CF6_MASK 0x3 5422 #define USTORM_ROCE_REQ_CONN_AG_CTX_CF6_SHIFT 6 5423 u8 flags2; 5424 #define USTORM_ROCE_REQ_CONN_AG_CTX_CF0EN_MASK 0x1 5425 #define USTORM_ROCE_REQ_CONN_AG_CTX_CF0EN_SHIFT 0 5426 #define USTORM_ROCE_REQ_CONN_AG_CTX_CF1EN_MASK 0x1 5427 #define USTORM_ROCE_REQ_CONN_AG_CTX_CF1EN_SHIFT 1 5428 #define USTORM_ROCE_REQ_CONN_AG_CTX_CF2EN_MASK 0x1 5429 #define USTORM_ROCE_REQ_CONN_AG_CTX_CF2EN_SHIFT 2 5430 #define USTORM_ROCE_REQ_CONN_AG_CTX_CF3EN_MASK 0x1 5431 #define USTORM_ROCE_REQ_CONN_AG_CTX_CF3EN_SHIFT 3 5432 #define USTORM_ROCE_REQ_CONN_AG_CTX_CF4EN_MASK 0x1 5433 #define USTORM_ROCE_REQ_CONN_AG_CTX_CF4EN_SHIFT 4 5434 #define USTORM_ROCE_REQ_CONN_AG_CTX_CF5EN_MASK 0x1 5435 #define USTORM_ROCE_REQ_CONN_AG_CTX_CF5EN_SHIFT 5 5436 #define USTORM_ROCE_REQ_CONN_AG_CTX_CF6EN_MASK 0x1 5437 #define USTORM_ROCE_REQ_CONN_AG_CTX_CF6EN_SHIFT 6 5438 #define USTORM_ROCE_REQ_CONN_AG_CTX_RULE0EN_MASK 0x1 5439 #define USTORM_ROCE_REQ_CONN_AG_CTX_RULE0EN_SHIFT 7 5440 u8 flags3; 5441 #define USTORM_ROCE_REQ_CONN_AG_CTX_RULE1EN_MASK 0x1 5442 #define USTORM_ROCE_REQ_CONN_AG_CTX_RULE1EN_SHIFT 0 5443 #define USTORM_ROCE_REQ_CONN_AG_CTX_RULE2EN_MASK 0x1 5444 #define USTORM_ROCE_REQ_CONN_AG_CTX_RULE2EN_SHIFT 1 5445 #define USTORM_ROCE_REQ_CONN_AG_CTX_RULE3EN_MASK 0x1 5446 #define USTORM_ROCE_REQ_CONN_AG_CTX_RULE3EN_SHIFT 2 5447 #define USTORM_ROCE_REQ_CONN_AG_CTX_RULE4EN_MASK 0x1 5448 #define USTORM_ROCE_REQ_CONN_AG_CTX_RULE4EN_SHIFT 3 5449 #define USTORM_ROCE_REQ_CONN_AG_CTX_RULE5EN_MASK 0x1 5450 #define USTORM_ROCE_REQ_CONN_AG_CTX_RULE5EN_SHIFT 4 5451 #define USTORM_ROCE_REQ_CONN_AG_CTX_RULE6EN_MASK 0x1 5452 #define USTORM_ROCE_REQ_CONN_AG_CTX_RULE6EN_SHIFT 5 5453 #define USTORM_ROCE_REQ_CONN_AG_CTX_RULE7EN_MASK 0x1 5454 #define USTORM_ROCE_REQ_CONN_AG_CTX_RULE7EN_SHIFT 6 5455 #define USTORM_ROCE_REQ_CONN_AG_CTX_RULE8EN_MASK 0x1 5456 #define USTORM_ROCE_REQ_CONN_AG_CTX_RULE8EN_SHIFT 7 5457 u8 byte2; 5458 u8 byte3; 5459 __le16 word0; 5460 __le16 word1; 5461 __le32 reg0; 5462 __le32 reg1; 5463 __le32 reg2; 5464 __le32 reg3; 5465 __le16 word2; 5466 __le16 word3; 5467 }; 5468 5469 struct ustorm_roce_resp_conn_ag_ctx { 5470 u8 byte0; 5471 u8 byte1; 5472 u8 flags0; 5473 #define USTORM_ROCE_RESP_CONN_AG_CTX_BIT0_MASK 0x1 5474 #define USTORM_ROCE_RESP_CONN_AG_CTX_BIT0_SHIFT 0 5475 #define USTORM_ROCE_RESP_CONN_AG_CTX_BIT1_MASK 0x1 5476 #define USTORM_ROCE_RESP_CONN_AG_CTX_BIT1_SHIFT 1 5477 #define USTORM_ROCE_RESP_CONN_AG_CTX_CF0_MASK 0x3 5478 #define USTORM_ROCE_RESP_CONN_AG_CTX_CF0_SHIFT 2 5479 #define USTORM_ROCE_RESP_CONN_AG_CTX_CF1_MASK 0x3 5480 #define USTORM_ROCE_RESP_CONN_AG_CTX_CF1_SHIFT 4 5481 #define USTORM_ROCE_RESP_CONN_AG_CTX_CF2_MASK 0x3 5482 #define USTORM_ROCE_RESP_CONN_AG_CTX_CF2_SHIFT 6 5483 u8 flags1; 5484 #define USTORM_ROCE_RESP_CONN_AG_CTX_CF3_MASK 0x3 5485 #define USTORM_ROCE_RESP_CONN_AG_CTX_CF3_SHIFT 0 5486 #define USTORM_ROCE_RESP_CONN_AG_CTX_CF4_MASK 0x3 5487 #define USTORM_ROCE_RESP_CONN_AG_CTX_CF4_SHIFT 2 5488 #define USTORM_ROCE_RESP_CONN_AG_CTX_CF5_MASK 0x3 5489 #define USTORM_ROCE_RESP_CONN_AG_CTX_CF5_SHIFT 4 5490 #define USTORM_ROCE_RESP_CONN_AG_CTX_CF6_MASK 0x3 5491 #define USTORM_ROCE_RESP_CONN_AG_CTX_CF6_SHIFT 6 5492 u8 flags2; 5493 #define USTORM_ROCE_RESP_CONN_AG_CTX_CF0EN_MASK 0x1 5494 #define USTORM_ROCE_RESP_CONN_AG_CTX_CF0EN_SHIFT 0 5495 #define USTORM_ROCE_RESP_CONN_AG_CTX_CF1EN_MASK 0x1 5496 #define USTORM_ROCE_RESP_CONN_AG_CTX_CF1EN_SHIFT 1 5497 #define USTORM_ROCE_RESP_CONN_AG_CTX_CF2EN_MASK 0x1 5498 #define USTORM_ROCE_RESP_CONN_AG_CTX_CF2EN_SHIFT 2 5499 #define USTORM_ROCE_RESP_CONN_AG_CTX_CF3EN_MASK 0x1 5500 #define USTORM_ROCE_RESP_CONN_AG_CTX_CF3EN_SHIFT 3 5501 #define USTORM_ROCE_RESP_CONN_AG_CTX_CF4EN_MASK 0x1 5502 #define USTORM_ROCE_RESP_CONN_AG_CTX_CF4EN_SHIFT 4 5503 #define USTORM_ROCE_RESP_CONN_AG_CTX_CF5EN_MASK 0x1 5504 #define USTORM_ROCE_RESP_CONN_AG_CTX_CF5EN_SHIFT 5 5505 #define USTORM_ROCE_RESP_CONN_AG_CTX_CF6EN_MASK 0x1 5506 #define USTORM_ROCE_RESP_CONN_AG_CTX_CF6EN_SHIFT 6 5507 #define USTORM_ROCE_RESP_CONN_AG_CTX_RULE0EN_MASK 0x1 5508 #define USTORM_ROCE_RESP_CONN_AG_CTX_RULE0EN_SHIFT 7 5509 u8 flags3; 5510 #define USTORM_ROCE_RESP_CONN_AG_CTX_RULE1EN_MASK 0x1 5511 #define USTORM_ROCE_RESP_CONN_AG_CTX_RULE1EN_SHIFT 0 5512 #define USTORM_ROCE_RESP_CONN_AG_CTX_RULE2EN_MASK 0x1 5513 #define USTORM_ROCE_RESP_CONN_AG_CTX_RULE2EN_SHIFT 1 5514 #define USTORM_ROCE_RESP_CONN_AG_CTX_RULE3EN_MASK 0x1 5515 #define USTORM_ROCE_RESP_CONN_AG_CTX_RULE3EN_SHIFT 2 5516 #define USTORM_ROCE_RESP_CONN_AG_CTX_RULE4EN_MASK 0x1 5517 #define USTORM_ROCE_RESP_CONN_AG_CTX_RULE4EN_SHIFT 3 5518 #define USTORM_ROCE_RESP_CONN_AG_CTX_RULE5EN_MASK 0x1 5519 #define USTORM_ROCE_RESP_CONN_AG_CTX_RULE5EN_SHIFT 4 5520 #define USTORM_ROCE_RESP_CONN_AG_CTX_RULE6EN_MASK 0x1 5521 #define USTORM_ROCE_RESP_CONN_AG_CTX_RULE6EN_SHIFT 5 5522 #define USTORM_ROCE_RESP_CONN_AG_CTX_RULE7EN_MASK 0x1 5523 #define USTORM_ROCE_RESP_CONN_AG_CTX_RULE7EN_SHIFT 6 5524 #define USTORM_ROCE_RESP_CONN_AG_CTX_RULE8EN_MASK 0x1 5525 #define USTORM_ROCE_RESP_CONN_AG_CTX_RULE8EN_SHIFT 7 5526 u8 byte2; 5527 u8 byte3; 5528 __le16 word0; 5529 __le16 word1; 5530 __le32 reg0; 5531 __le32 reg1; 5532 __le32 reg2; 5533 __le32 reg3; 5534 __le16 word2; 5535 __le16 word3; 5536 }; 5537 5538 struct xstorm_roce_req_conn_ag_ctx { 5539 u8 reserved0; 5540 u8 state; 5541 u8 flags0; 5542 #define XSTORM_ROCE_REQ_CONN_AG_CTX_EXIST_IN_QM0_MASK 0x1 5543 #define XSTORM_ROCE_REQ_CONN_AG_CTX_EXIST_IN_QM0_SHIFT 0 5544 #define XSTORM_ROCE_REQ_CONN_AG_CTX_RESERVED1_MASK 0x1 5545 #define XSTORM_ROCE_REQ_CONN_AG_CTX_RESERVED1_SHIFT 1 5546 #define XSTORM_ROCE_REQ_CONN_AG_CTX_RESERVED2_MASK 0x1 5547 #define XSTORM_ROCE_REQ_CONN_AG_CTX_RESERVED2_SHIFT 2 5548 #define XSTORM_ROCE_REQ_CONN_AG_CTX_EXIST_IN_QM3_MASK 0x1 5549 #define XSTORM_ROCE_REQ_CONN_AG_CTX_EXIST_IN_QM3_SHIFT 3 5550 #define XSTORM_ROCE_REQ_CONN_AG_CTX_RESERVED3_MASK 0x1 5551 #define XSTORM_ROCE_REQ_CONN_AG_CTX_RESERVED3_SHIFT 4 5552 #define XSTORM_ROCE_REQ_CONN_AG_CTX_RESERVED4_MASK 0x1 5553 #define XSTORM_ROCE_REQ_CONN_AG_CTX_RESERVED4_SHIFT 5 5554 #define XSTORM_ROCE_REQ_CONN_AG_CTX_RESERVED5_MASK 0x1 5555 #define XSTORM_ROCE_REQ_CONN_AG_CTX_RESERVED5_SHIFT 6 5556 #define XSTORM_ROCE_REQ_CONN_AG_CTX_RESERVED6_MASK 0x1 5557 #define XSTORM_ROCE_REQ_CONN_AG_CTX_RESERVED6_SHIFT 7 5558 u8 flags1; 5559 #define XSTORM_ROCE_REQ_CONN_AG_CTX_RESERVED7_MASK 0x1 5560 #define XSTORM_ROCE_REQ_CONN_AG_CTX_RESERVED7_SHIFT 0 5561 #define XSTORM_ROCE_REQ_CONN_AG_CTX_RESERVED8_MASK 0x1 5562 #define XSTORM_ROCE_REQ_CONN_AG_CTX_RESERVED8_SHIFT 1 5563 #define XSTORM_ROCE_REQ_CONN_AG_CTX_BIT10_MASK 0x1 5564 #define XSTORM_ROCE_REQ_CONN_AG_CTX_BIT10_SHIFT 2 5565 #define XSTORM_ROCE_REQ_CONN_AG_CTX_BIT11_MASK 0x1 5566 #define XSTORM_ROCE_REQ_CONN_AG_CTX_BIT11_SHIFT 3 5567 #define XSTORM_ROCE_REQ_CONN_AG_CTX_BIT12_MASK 0x1 5568 #define XSTORM_ROCE_REQ_CONN_AG_CTX_BIT12_SHIFT 4 5569 #define XSTORM_ROCE_REQ_CONN_AG_CTX_BIT13_MASK 0x1 5570 #define XSTORM_ROCE_REQ_CONN_AG_CTX_BIT13_SHIFT 5 5571 #define XSTORM_ROCE_REQ_CONN_AG_CTX_ERROR_STATE_MASK 0x1 5572 #define XSTORM_ROCE_REQ_CONN_AG_CTX_ERROR_STATE_SHIFT 6 5573 #define XSTORM_ROCE_REQ_CONN_AG_CTX_YSTORM_FLUSH_MASK 0x1 5574 #define XSTORM_ROCE_REQ_CONN_AG_CTX_YSTORM_FLUSH_SHIFT 7 5575 u8 flags2; 5576 #define XSTORM_ROCE_REQ_CONN_AG_CTX_CF0_MASK 0x3 5577 #define XSTORM_ROCE_REQ_CONN_AG_CTX_CF0_SHIFT 0 5578 #define XSTORM_ROCE_REQ_CONN_AG_CTX_CF1_MASK 0x3 5579 #define XSTORM_ROCE_REQ_CONN_AG_CTX_CF1_SHIFT 2 5580 #define XSTORM_ROCE_REQ_CONN_AG_CTX_CF2_MASK 0x3 5581 #define XSTORM_ROCE_REQ_CONN_AG_CTX_CF2_SHIFT 4 5582 #define XSTORM_ROCE_REQ_CONN_AG_CTX_CF3_MASK 0x3 5583 #define XSTORM_ROCE_REQ_CONN_AG_CTX_CF3_SHIFT 6 5584 u8 flags3; 5585 #define XSTORM_ROCE_REQ_CONN_AG_CTX_SQ_FLUSH_CF_MASK 0x3 5586 #define XSTORM_ROCE_REQ_CONN_AG_CTX_SQ_FLUSH_CF_SHIFT 0 5587 #define XSTORM_ROCE_REQ_CONN_AG_CTX_RX_ERROR_CF_MASK 0x3 5588 #define XSTORM_ROCE_REQ_CONN_AG_CTX_RX_ERROR_CF_SHIFT 2 5589 #define XSTORM_ROCE_REQ_CONN_AG_CTX_SND_RXMIT_CF_MASK 0x3 5590 #define XSTORM_ROCE_REQ_CONN_AG_CTX_SND_RXMIT_CF_SHIFT 4 5591 #define XSTORM_ROCE_REQ_CONN_AG_CTX_FLUSH_Q0_CF_MASK 0x3 5592 #define XSTORM_ROCE_REQ_CONN_AG_CTX_FLUSH_Q0_CF_SHIFT 6 5593 u8 flags4; 5594 #define XSTORM_ROCE_REQ_CONN_AG_CTX_CF8_MASK 0x3 5595 #define XSTORM_ROCE_REQ_CONN_AG_CTX_CF8_SHIFT 0 5596 #define XSTORM_ROCE_REQ_CONN_AG_CTX_CF9_MASK 0x3 5597 #define XSTORM_ROCE_REQ_CONN_AG_CTX_CF9_SHIFT 2 5598 #define XSTORM_ROCE_REQ_CONN_AG_CTX_CF10_MASK 0x3 5599 #define XSTORM_ROCE_REQ_CONN_AG_CTX_CF10_SHIFT 4 5600 #define XSTORM_ROCE_REQ_CONN_AG_CTX_CF11_MASK 0x3 5601 #define XSTORM_ROCE_REQ_CONN_AG_CTX_CF11_SHIFT 6 5602 u8 flags5; 5603 #define XSTORM_ROCE_REQ_CONN_AG_CTX_CF12_MASK 0x3 5604 #define XSTORM_ROCE_REQ_CONN_AG_CTX_CF12_SHIFT 0 5605 #define XSTORM_ROCE_REQ_CONN_AG_CTX_CF13_MASK 0x3 5606 #define XSTORM_ROCE_REQ_CONN_AG_CTX_CF13_SHIFT 2 5607 #define XSTORM_ROCE_REQ_CONN_AG_CTX_FMR_ENDED_CF_MASK 0x3 5608 #define XSTORM_ROCE_REQ_CONN_AG_CTX_FMR_ENDED_CF_SHIFT 4 5609 #define XSTORM_ROCE_REQ_CONN_AG_CTX_CF15_MASK 0x3 5610 #define XSTORM_ROCE_REQ_CONN_AG_CTX_CF15_SHIFT 6 5611 u8 flags6; 5612 #define XSTORM_ROCE_REQ_CONN_AG_CTX_CF16_MASK 0x3 5613 #define XSTORM_ROCE_REQ_CONN_AG_CTX_CF16_SHIFT 0 5614 #define XSTORM_ROCE_REQ_CONN_AG_CTX_CF17_MASK 0x3 5615 #define XSTORM_ROCE_REQ_CONN_AG_CTX_CF17_SHIFT 2 5616 #define XSTORM_ROCE_REQ_CONN_AG_CTX_CF18_MASK 0x3 5617 #define XSTORM_ROCE_REQ_CONN_AG_CTX_CF18_SHIFT 4 5618 #define XSTORM_ROCE_REQ_CONN_AG_CTX_CF19_MASK 0x3 5619 #define XSTORM_ROCE_REQ_CONN_AG_CTX_CF19_SHIFT 6 5620 u8 flags7; 5621 #define XSTORM_ROCE_REQ_CONN_AG_CTX_CF20_MASK 0x3 5622 #define XSTORM_ROCE_REQ_CONN_AG_CTX_CF20_SHIFT 0 5623 #define XSTORM_ROCE_REQ_CONN_AG_CTX_CF21_MASK 0x3 5624 #define XSTORM_ROCE_REQ_CONN_AG_CTX_CF21_SHIFT 2 5625 #define XSTORM_ROCE_REQ_CONN_AG_CTX_SLOW_PATH_MASK 0x3 5626 #define XSTORM_ROCE_REQ_CONN_AG_CTX_SLOW_PATH_SHIFT 4 5627 #define XSTORM_ROCE_REQ_CONN_AG_CTX_CF0EN_MASK 0x1 5628 #define XSTORM_ROCE_REQ_CONN_AG_CTX_CF0EN_SHIFT 6 5629 #define XSTORM_ROCE_REQ_CONN_AG_CTX_CF1EN_MASK 0x1 5630 #define XSTORM_ROCE_REQ_CONN_AG_CTX_CF1EN_SHIFT 7 5631 u8 flags8; 5632 #define XSTORM_ROCE_REQ_CONN_AG_CTX_CF2EN_MASK 0x1 5633 #define XSTORM_ROCE_REQ_CONN_AG_CTX_CF2EN_SHIFT 0 5634 #define XSTORM_ROCE_REQ_CONN_AG_CTX_CF3EN_MASK 0x1 5635 #define XSTORM_ROCE_REQ_CONN_AG_CTX_CF3EN_SHIFT 1 5636 #define XSTORM_ROCE_REQ_CONN_AG_CTX_SQ_FLUSH_CF_EN_MASK 0x1 5637 #define XSTORM_ROCE_REQ_CONN_AG_CTX_SQ_FLUSH_CF_EN_SHIFT 2 5638 #define XSTORM_ROCE_REQ_CONN_AG_CTX_RX_ERROR_CF_EN_MASK 0x1 5639 #define XSTORM_ROCE_REQ_CONN_AG_CTX_RX_ERROR_CF_EN_SHIFT 3 5640 #define XSTORM_ROCE_REQ_CONN_AG_CTX_SND_RXMIT_CF_EN_MASK 0x1 5641 #define XSTORM_ROCE_REQ_CONN_AG_CTX_SND_RXMIT_CF_EN_SHIFT 4 5642 #define XSTORM_ROCE_REQ_CONN_AG_CTX_FLUSH_Q0_CF_EN_MASK 0x1 5643 #define XSTORM_ROCE_REQ_CONN_AG_CTX_FLUSH_Q0_CF_EN_SHIFT 5 5644 #define XSTORM_ROCE_REQ_CONN_AG_CTX_CF8EN_MASK 0x1 5645 #define XSTORM_ROCE_REQ_CONN_AG_CTX_CF8EN_SHIFT 6 5646 #define XSTORM_ROCE_REQ_CONN_AG_CTX_CF9EN_MASK 0x1 5647 #define XSTORM_ROCE_REQ_CONN_AG_CTX_CF9EN_SHIFT 7 5648 u8 flags9; 5649 #define XSTORM_ROCE_REQ_CONN_AG_CTX_CF10EN_MASK 0x1 5650 #define XSTORM_ROCE_REQ_CONN_AG_CTX_CF10EN_SHIFT 0 5651 #define XSTORM_ROCE_REQ_CONN_AG_CTX_CF11EN_MASK 0x1 5652 #define XSTORM_ROCE_REQ_CONN_AG_CTX_CF11EN_SHIFT 1 5653 #define XSTORM_ROCE_REQ_CONN_AG_CTX_CF12EN_MASK 0x1 5654 #define XSTORM_ROCE_REQ_CONN_AG_CTX_CF12EN_SHIFT 2 5655 #define XSTORM_ROCE_REQ_CONN_AG_CTX_CF13EN_MASK 0x1 5656 #define XSTORM_ROCE_REQ_CONN_AG_CTX_CF13EN_SHIFT 3 5657 #define XSTORM_ROCE_REQ_CONN_AG_CTX_FME_ENDED_CF_EN_MASK 0x1 5658 #define XSTORM_ROCE_REQ_CONN_AG_CTX_FME_ENDED_CF_EN_SHIFT 4 5659 #define XSTORM_ROCE_REQ_CONN_AG_CTX_CF15EN_MASK 0x1 5660 #define XSTORM_ROCE_REQ_CONN_AG_CTX_CF15EN_SHIFT 5 5661 #define XSTORM_ROCE_REQ_CONN_AG_CTX_CF16EN_MASK 0x1 5662 #define XSTORM_ROCE_REQ_CONN_AG_CTX_CF16EN_SHIFT 6 5663 #define XSTORM_ROCE_REQ_CONN_AG_CTX_CF17EN_MASK 0x1 5664 #define XSTORM_ROCE_REQ_CONN_AG_CTX_CF17EN_SHIFT 7 5665 u8 flags10; 5666 #define XSTORM_ROCE_REQ_CONN_AG_CTX_CF18EN_MASK 0x1 5667 #define XSTORM_ROCE_REQ_CONN_AG_CTX_CF18EN_SHIFT 0 5668 #define XSTORM_ROCE_REQ_CONN_AG_CTX_CF19EN_MASK 0x1 5669 #define XSTORM_ROCE_REQ_CONN_AG_CTX_CF19EN_SHIFT 1 5670 #define XSTORM_ROCE_REQ_CONN_AG_CTX_CF20EN_MASK 0x1 5671 #define XSTORM_ROCE_REQ_CONN_AG_CTX_CF20EN_SHIFT 2 5672 #define XSTORM_ROCE_REQ_CONN_AG_CTX_CF21EN_MASK 0x1 5673 #define XSTORM_ROCE_REQ_CONN_AG_CTX_CF21EN_SHIFT 3 5674 #define XSTORM_ROCE_REQ_CONN_AG_CTX_SLOW_PATH_EN_MASK 0x1 5675 #define XSTORM_ROCE_REQ_CONN_AG_CTX_SLOW_PATH_EN_SHIFT 4 5676 #define XSTORM_ROCE_REQ_CONN_AG_CTX_CF23EN_MASK 0x1 5677 #define XSTORM_ROCE_REQ_CONN_AG_CTX_CF23EN_SHIFT 5 5678 #define XSTORM_ROCE_REQ_CONN_AG_CTX_RULE0EN_MASK 0x1 5679 #define XSTORM_ROCE_REQ_CONN_AG_CTX_RULE0EN_SHIFT 6 5680 #define XSTORM_ROCE_REQ_CONN_AG_CTX_RULE1EN_MASK 0x1 5681 #define XSTORM_ROCE_REQ_CONN_AG_CTX_RULE1EN_SHIFT 7 5682 u8 flags11; 5683 #define XSTORM_ROCE_REQ_CONN_AG_CTX_RULE2EN_MASK 0x1 5684 #define XSTORM_ROCE_REQ_CONN_AG_CTX_RULE2EN_SHIFT 0 5685 #define XSTORM_ROCE_REQ_CONN_AG_CTX_RULE3EN_MASK 0x1 5686 #define XSTORM_ROCE_REQ_CONN_AG_CTX_RULE3EN_SHIFT 1 5687 #define XSTORM_ROCE_REQ_CONN_AG_CTX_RULE4EN_MASK 0x1 5688 #define XSTORM_ROCE_REQ_CONN_AG_CTX_RULE4EN_SHIFT 2 5689 #define XSTORM_ROCE_REQ_CONN_AG_CTX_RULE5EN_MASK 0x1 5690 #define XSTORM_ROCE_REQ_CONN_AG_CTX_RULE5EN_SHIFT 3 5691 #define XSTORM_ROCE_REQ_CONN_AG_CTX_RULE6EN_MASK 0x1 5692 #define XSTORM_ROCE_REQ_CONN_AG_CTX_RULE6EN_SHIFT 4 5693 #define XSTORM_ROCE_REQ_CONN_AG_CTX_E2E_CREDIT_RULE_EN_MASK 0x1 5694 #define XSTORM_ROCE_REQ_CONN_AG_CTX_E2E_CREDIT_RULE_EN_SHIFT 5 5695 #define XSTORM_ROCE_REQ_CONN_AG_CTX_A0_RESERVED1_MASK 0x1 5696 #define XSTORM_ROCE_REQ_CONN_AG_CTX_A0_RESERVED1_SHIFT 6 5697 #define XSTORM_ROCE_REQ_CONN_AG_CTX_RULE9EN_MASK 0x1 5698 #define XSTORM_ROCE_REQ_CONN_AG_CTX_RULE9EN_SHIFT 7 5699 u8 flags12; 5700 #define XSTORM_ROCE_REQ_CONN_AG_CTX_SQ_PROD_EN_MASK 0x1 5701 #define XSTORM_ROCE_REQ_CONN_AG_CTX_SQ_PROD_EN_SHIFT 0 5702 #define XSTORM_ROCE_REQ_CONN_AG_CTX_RULE11EN_MASK 0x1 5703 #define XSTORM_ROCE_REQ_CONN_AG_CTX_RULE11EN_SHIFT 1 5704 #define XSTORM_ROCE_REQ_CONN_AG_CTX_A0_RESERVED2_MASK 0x1 5705 #define XSTORM_ROCE_REQ_CONN_AG_CTX_A0_RESERVED2_SHIFT 2 5706 #define XSTORM_ROCE_REQ_CONN_AG_CTX_A0_RESERVED3_MASK 0x1 5707 #define XSTORM_ROCE_REQ_CONN_AG_CTX_A0_RESERVED3_SHIFT 3 5708 #define XSTORM_ROCE_REQ_CONN_AG_CTX_INV_FENCE_RULE_EN_MASK 0x1 5709 #define XSTORM_ROCE_REQ_CONN_AG_CTX_INV_FENCE_RULE_EN_SHIFT 4 5710 #define XSTORM_ROCE_REQ_CONN_AG_CTX_RULE15EN_MASK 0x1 5711 #define XSTORM_ROCE_REQ_CONN_AG_CTX_RULE15EN_SHIFT 5 5712 #define XSTORM_ROCE_REQ_CONN_AG_CTX_ORQ_FENCE_RULE_EN_MASK 0x1 5713 #define XSTORM_ROCE_REQ_CONN_AG_CTX_ORQ_FENCE_RULE_EN_SHIFT 6 5714 #define XSTORM_ROCE_REQ_CONN_AG_CTX_MAX_ORD_RULE_EN_MASK 0x1 5715 #define XSTORM_ROCE_REQ_CONN_AG_CTX_MAX_ORD_RULE_EN_SHIFT 7 5716 u8 flags13; 5717 #define XSTORM_ROCE_REQ_CONN_AG_CTX_RULE18EN_MASK 0x1 5718 #define XSTORM_ROCE_REQ_CONN_AG_CTX_RULE18EN_SHIFT 0 5719 #define XSTORM_ROCE_REQ_CONN_AG_CTX_RULE19EN_MASK 0x1 5720 #define XSTORM_ROCE_REQ_CONN_AG_CTX_RULE19EN_SHIFT 1 5721 #define XSTORM_ROCE_REQ_CONN_AG_CTX_A0_RESERVED4_MASK 0x1 5722 #define XSTORM_ROCE_REQ_CONN_AG_CTX_A0_RESERVED4_SHIFT 2 5723 #define XSTORM_ROCE_REQ_CONN_AG_CTX_A0_RESERVED5_MASK 0x1 5724 #define XSTORM_ROCE_REQ_CONN_AG_CTX_A0_RESERVED5_SHIFT 3 5725 #define XSTORM_ROCE_REQ_CONN_AG_CTX_A0_RESERVED6_MASK 0x1 5726 #define XSTORM_ROCE_REQ_CONN_AG_CTX_A0_RESERVED6_SHIFT 4 5727 #define XSTORM_ROCE_REQ_CONN_AG_CTX_A0_RESERVED7_MASK 0x1 5728 #define XSTORM_ROCE_REQ_CONN_AG_CTX_A0_RESERVED7_SHIFT 5 5729 #define XSTORM_ROCE_REQ_CONN_AG_CTX_A0_RESERVED8_MASK 0x1 5730 #define XSTORM_ROCE_REQ_CONN_AG_CTX_A0_RESERVED8_SHIFT 6 5731 #define XSTORM_ROCE_REQ_CONN_AG_CTX_A0_RESERVED9_MASK 0x1 5732 #define XSTORM_ROCE_REQ_CONN_AG_CTX_A0_RESERVED9_SHIFT 7 5733 u8 flags14; 5734 #define XSTORM_ROCE_REQ_CONN_AG_CTX_MIGRATION_FLAG_MASK 0x1 5735 #define XSTORM_ROCE_REQ_CONN_AG_CTX_MIGRATION_FLAG_SHIFT 0 5736 #define XSTORM_ROCE_REQ_CONN_AG_CTX_BIT17_MASK 0x1 5737 #define XSTORM_ROCE_REQ_CONN_AG_CTX_BIT17_SHIFT 1 5738 #define XSTORM_ROCE_REQ_CONN_AG_CTX_DPM_PORT_NUM_MASK 0x3 5739 #define XSTORM_ROCE_REQ_CONN_AG_CTX_DPM_PORT_NUM_SHIFT 2 5740 #define XSTORM_ROCE_REQ_CONN_AG_CTX_RESERVED_MASK 0x1 5741 #define XSTORM_ROCE_REQ_CONN_AG_CTX_RESERVED_SHIFT 4 5742 #define XSTORM_ROCE_REQ_CONN_AG_CTX_ROCE_EDPM_ENABLE_MASK 0x1 5743 #define XSTORM_ROCE_REQ_CONN_AG_CTX_ROCE_EDPM_ENABLE_SHIFT 5 5744 #define XSTORM_ROCE_REQ_CONN_AG_CTX_CF23_MASK 0x3 5745 #define XSTORM_ROCE_REQ_CONN_AG_CTX_CF23_SHIFT 6 5746 u8 byte2; 5747 __le16 physical_q0; 5748 __le16 word1; 5749 __le16 sq_cmp_cons; 5750 __le16 sq_cons; 5751 __le16 sq_prod; 5752 __le16 word5; 5753 __le16 conn_dpi; 5754 u8 byte3; 5755 u8 byte4; 5756 u8 byte5; 5757 u8 byte6; 5758 __le32 lsn; 5759 __le32 ssn; 5760 __le32 snd_una_psn; 5761 __le32 snd_nxt_psn; 5762 __le32 reg4; 5763 __le32 orq_cons_th; 5764 __le32 orq_cons; 5765 }; 5766 5767 struct xstorm_roce_resp_conn_ag_ctx { 5768 u8 reserved0; 5769 u8 state; 5770 u8 flags0; 5771 #define XSTORM_ROCE_RESP_CONN_AG_CTX_EXIST_IN_QM0_MASK 0x1 5772 #define XSTORM_ROCE_RESP_CONN_AG_CTX_EXIST_IN_QM0_SHIFT 0 5773 #define XSTORM_ROCE_RESP_CONN_AG_CTX_RESERVED1_MASK 0x1 5774 #define XSTORM_ROCE_RESP_CONN_AG_CTX_RESERVED1_SHIFT 1 5775 #define XSTORM_ROCE_RESP_CONN_AG_CTX_RESERVED2_MASK 0x1 5776 #define XSTORM_ROCE_RESP_CONN_AG_CTX_RESERVED2_SHIFT 2 5777 #define XSTORM_ROCE_RESP_CONN_AG_CTX_EXIST_IN_QM3_MASK 0x1 5778 #define XSTORM_ROCE_RESP_CONN_AG_CTX_EXIST_IN_QM3_SHIFT 3 5779 #define XSTORM_ROCE_RESP_CONN_AG_CTX_RESERVED3_MASK 0x1 5780 #define XSTORM_ROCE_RESP_CONN_AG_CTX_RESERVED3_SHIFT 4 5781 #define XSTORM_ROCE_RESP_CONN_AG_CTX_RESERVED4_MASK 0x1 5782 #define XSTORM_ROCE_RESP_CONN_AG_CTX_RESERVED4_SHIFT 5 5783 #define XSTORM_ROCE_RESP_CONN_AG_CTX_RESERVED5_MASK 0x1 5784 #define XSTORM_ROCE_RESP_CONN_AG_CTX_RESERVED5_SHIFT 6 5785 #define XSTORM_ROCE_RESP_CONN_AG_CTX_RESERVED6_MASK 0x1 5786 #define XSTORM_ROCE_RESP_CONN_AG_CTX_RESERVED6_SHIFT 7 5787 u8 flags1; 5788 #define XSTORM_ROCE_RESP_CONN_AG_CTX_RESERVED7_MASK 0x1 5789 #define XSTORM_ROCE_RESP_CONN_AG_CTX_RESERVED7_SHIFT 0 5790 #define XSTORM_ROCE_RESP_CONN_AG_CTX_RESERVED8_MASK 0x1 5791 #define XSTORM_ROCE_RESP_CONN_AG_CTX_RESERVED8_SHIFT 1 5792 #define XSTORM_ROCE_RESP_CONN_AG_CTX_BIT10_MASK 0x1 5793 #define XSTORM_ROCE_RESP_CONN_AG_CTX_BIT10_SHIFT 2 5794 #define XSTORM_ROCE_RESP_CONN_AG_CTX_BIT11_MASK 0x1 5795 #define XSTORM_ROCE_RESP_CONN_AG_CTX_BIT11_SHIFT 3 5796 #define XSTORM_ROCE_RESP_CONN_AG_CTX_BIT12_MASK 0x1 5797 #define XSTORM_ROCE_RESP_CONN_AG_CTX_BIT12_SHIFT 4 5798 #define XSTORM_ROCE_RESP_CONN_AG_CTX_BIT13_MASK 0x1 5799 #define XSTORM_ROCE_RESP_CONN_AG_CTX_BIT13_SHIFT 5 5800 #define XSTORM_ROCE_RESP_CONN_AG_CTX_ERROR_STATE_MASK 0x1 5801 #define XSTORM_ROCE_RESP_CONN_AG_CTX_ERROR_STATE_SHIFT 6 5802 #define XSTORM_ROCE_RESP_CONN_AG_CTX_YSTORM_FLUSH_MASK 0x1 5803 #define XSTORM_ROCE_RESP_CONN_AG_CTX_YSTORM_FLUSH_SHIFT 7 5804 u8 flags2; 5805 #define XSTORM_ROCE_RESP_CONN_AG_CTX_CF0_MASK 0x3 5806 #define XSTORM_ROCE_RESP_CONN_AG_CTX_CF0_SHIFT 0 5807 #define XSTORM_ROCE_RESP_CONN_AG_CTX_CF1_MASK 0x3 5808 #define XSTORM_ROCE_RESP_CONN_AG_CTX_CF1_SHIFT 2 5809 #define XSTORM_ROCE_RESP_CONN_AG_CTX_CF2_MASK 0x3 5810 #define XSTORM_ROCE_RESP_CONN_AG_CTX_CF2_SHIFT 4 5811 #define XSTORM_ROCE_RESP_CONN_AG_CTX_CF3_MASK 0x3 5812 #define XSTORM_ROCE_RESP_CONN_AG_CTX_CF3_SHIFT 6 5813 u8 flags3; 5814 #define XSTORM_ROCE_RESP_CONN_AG_CTX_RXMIT_CF_MASK 0x3 5815 #define XSTORM_ROCE_RESP_CONN_AG_CTX_RXMIT_CF_SHIFT 0 5816 #define XSTORM_ROCE_RESP_CONN_AG_CTX_RX_ERROR_CF_MASK 0x3 5817 #define XSTORM_ROCE_RESP_CONN_AG_CTX_RX_ERROR_CF_SHIFT 2 5818 #define XSTORM_ROCE_RESP_CONN_AG_CTX_FORCE_ACK_CF_MASK 0x3 5819 #define XSTORM_ROCE_RESP_CONN_AG_CTX_FORCE_ACK_CF_SHIFT 4 5820 #define XSTORM_ROCE_RESP_CONN_AG_CTX_FLUSH_Q0_CF_MASK 0x3 5821 #define XSTORM_ROCE_RESP_CONN_AG_CTX_FLUSH_Q0_CF_SHIFT 6 5822 u8 flags4; 5823 #define XSTORM_ROCE_RESP_CONN_AG_CTX_CF8_MASK 0x3 5824 #define XSTORM_ROCE_RESP_CONN_AG_CTX_CF8_SHIFT 0 5825 #define XSTORM_ROCE_RESP_CONN_AG_CTX_CF9_MASK 0x3 5826 #define XSTORM_ROCE_RESP_CONN_AG_CTX_CF9_SHIFT 2 5827 #define XSTORM_ROCE_RESP_CONN_AG_CTX_CF10_MASK 0x3 5828 #define XSTORM_ROCE_RESP_CONN_AG_CTX_CF10_SHIFT 4 5829 #define XSTORM_ROCE_RESP_CONN_AG_CTX_CF11_MASK 0x3 5830 #define XSTORM_ROCE_RESP_CONN_AG_CTX_CF11_SHIFT 6 5831 u8 flags5; 5832 #define XSTORM_ROCE_RESP_CONN_AG_CTX_CF12_MASK 0x3 5833 #define XSTORM_ROCE_RESP_CONN_AG_CTX_CF12_SHIFT 0 5834 #define XSTORM_ROCE_RESP_CONN_AG_CTX_CF13_MASK 0x3 5835 #define XSTORM_ROCE_RESP_CONN_AG_CTX_CF13_SHIFT 2 5836 #define XSTORM_ROCE_RESP_CONN_AG_CTX_CF14_MASK 0x3 5837 #define XSTORM_ROCE_RESP_CONN_AG_CTX_CF14_SHIFT 4 5838 #define XSTORM_ROCE_RESP_CONN_AG_CTX_CF15_MASK 0x3 5839 #define XSTORM_ROCE_RESP_CONN_AG_CTX_CF15_SHIFT 6 5840 u8 flags6; 5841 #define XSTORM_ROCE_RESP_CONN_AG_CTX_CF16_MASK 0x3 5842 #define XSTORM_ROCE_RESP_CONN_AG_CTX_CF16_SHIFT 0 5843 #define XSTORM_ROCE_RESP_CONN_AG_CTX_CF17_MASK 0x3 5844 #define XSTORM_ROCE_RESP_CONN_AG_CTX_CF17_SHIFT 2 5845 #define XSTORM_ROCE_RESP_CONN_AG_CTX_CF18_MASK 0x3 5846 #define XSTORM_ROCE_RESP_CONN_AG_CTX_CF18_SHIFT 4 5847 #define XSTORM_ROCE_RESP_CONN_AG_CTX_CF19_MASK 0x3 5848 #define XSTORM_ROCE_RESP_CONN_AG_CTX_CF19_SHIFT 6 5849 u8 flags7; 5850 #define XSTORM_ROCE_RESP_CONN_AG_CTX_CF20_MASK 0x3 5851 #define XSTORM_ROCE_RESP_CONN_AG_CTX_CF20_SHIFT 0 5852 #define XSTORM_ROCE_RESP_CONN_AG_CTX_CF21_MASK 0x3 5853 #define XSTORM_ROCE_RESP_CONN_AG_CTX_CF21_SHIFT 2 5854 #define XSTORM_ROCE_RESP_CONN_AG_CTX_SLOW_PATH_MASK 0x3 5855 #define XSTORM_ROCE_RESP_CONN_AG_CTX_SLOW_PATH_SHIFT 4 5856 #define XSTORM_ROCE_RESP_CONN_AG_CTX_CF0EN_MASK 0x1 5857 #define XSTORM_ROCE_RESP_CONN_AG_CTX_CF0EN_SHIFT 6 5858 #define XSTORM_ROCE_RESP_CONN_AG_CTX_CF1EN_MASK 0x1 5859 #define XSTORM_ROCE_RESP_CONN_AG_CTX_CF1EN_SHIFT 7 5860 u8 flags8; 5861 #define XSTORM_ROCE_RESP_CONN_AG_CTX_CF2EN_MASK 0x1 5862 #define XSTORM_ROCE_RESP_CONN_AG_CTX_CF2EN_SHIFT 0 5863 #define XSTORM_ROCE_RESP_CONN_AG_CTX_CF3EN_MASK 0x1 5864 #define XSTORM_ROCE_RESP_CONN_AG_CTX_CF3EN_SHIFT 1 5865 #define XSTORM_ROCE_RESP_CONN_AG_CTX_RXMIT_CF_EN_MASK 0x1 5866 #define XSTORM_ROCE_RESP_CONN_AG_CTX_RXMIT_CF_EN_SHIFT 2 5867 #define XSTORM_ROCE_RESP_CONN_AG_CTX_RX_ERROR_CF_EN_MASK 0x1 5868 #define XSTORM_ROCE_RESP_CONN_AG_CTX_RX_ERROR_CF_EN_SHIFT 3 5869 #define XSTORM_ROCE_RESP_CONN_AG_CTX_FORCE_ACK_CF_EN_MASK 0x1 5870 #define XSTORM_ROCE_RESP_CONN_AG_CTX_FORCE_ACK_CF_EN_SHIFT 4 5871 #define XSTORM_ROCE_RESP_CONN_AG_CTX_FLUSH_Q0_CF_EN_MASK 0x1 5872 #define XSTORM_ROCE_RESP_CONN_AG_CTX_FLUSH_Q0_CF_EN_SHIFT 5 5873 #define XSTORM_ROCE_RESP_CONN_AG_CTX_CF8EN_MASK 0x1 5874 #define XSTORM_ROCE_RESP_CONN_AG_CTX_CF8EN_SHIFT 6 5875 #define XSTORM_ROCE_RESP_CONN_AG_CTX_CF9EN_MASK 0x1 5876 #define XSTORM_ROCE_RESP_CONN_AG_CTX_CF9EN_SHIFT 7 5877 u8 flags9; 5878 #define XSTORM_ROCE_RESP_CONN_AG_CTX_CF10EN_MASK 0x1 5879 #define XSTORM_ROCE_RESP_CONN_AG_CTX_CF10EN_SHIFT 0 5880 #define XSTORM_ROCE_RESP_CONN_AG_CTX_CF11EN_MASK 0x1 5881 #define XSTORM_ROCE_RESP_CONN_AG_CTX_CF11EN_SHIFT 1 5882 #define XSTORM_ROCE_RESP_CONN_AG_CTX_CF12EN_MASK 0x1 5883 #define XSTORM_ROCE_RESP_CONN_AG_CTX_CF12EN_SHIFT 2 5884 #define XSTORM_ROCE_RESP_CONN_AG_CTX_CF13EN_MASK 0x1 5885 #define XSTORM_ROCE_RESP_CONN_AG_CTX_CF13EN_SHIFT 3 5886 #define XSTORM_ROCE_RESP_CONN_AG_CTX_CF14EN_MASK 0x1 5887 #define XSTORM_ROCE_RESP_CONN_AG_CTX_CF14EN_SHIFT 4 5888 #define XSTORM_ROCE_RESP_CONN_AG_CTX_CF15EN_MASK 0x1 5889 #define XSTORM_ROCE_RESP_CONN_AG_CTX_CF15EN_SHIFT 5 5890 #define XSTORM_ROCE_RESP_CONN_AG_CTX_CF16EN_MASK 0x1 5891 #define XSTORM_ROCE_RESP_CONN_AG_CTX_CF16EN_SHIFT 6 5892 #define XSTORM_ROCE_RESP_CONN_AG_CTX_CF17EN_MASK 0x1 5893 #define XSTORM_ROCE_RESP_CONN_AG_CTX_CF17EN_SHIFT 7 5894 u8 flags10; 5895 #define XSTORM_ROCE_RESP_CONN_AG_CTX_CF18EN_MASK 0x1 5896 #define XSTORM_ROCE_RESP_CONN_AG_CTX_CF18EN_SHIFT 0 5897 #define XSTORM_ROCE_RESP_CONN_AG_CTX_CF19EN_MASK 0x1 5898 #define XSTORM_ROCE_RESP_CONN_AG_CTX_CF19EN_SHIFT 1 5899 #define XSTORM_ROCE_RESP_CONN_AG_CTX_CF20EN_MASK 0x1 5900 #define XSTORM_ROCE_RESP_CONN_AG_CTX_CF20EN_SHIFT 2 5901 #define XSTORM_ROCE_RESP_CONN_AG_CTX_CF21EN_MASK 0x1 5902 #define XSTORM_ROCE_RESP_CONN_AG_CTX_CF21EN_SHIFT 3 5903 #define XSTORM_ROCE_RESP_CONN_AG_CTX_SLOW_PATH_EN_MASK 0x1 5904 #define XSTORM_ROCE_RESP_CONN_AG_CTX_SLOW_PATH_EN_SHIFT 4 5905 #define XSTORM_ROCE_RESP_CONN_AG_CTX_CF23EN_MASK 0x1 5906 #define XSTORM_ROCE_RESP_CONN_AG_CTX_CF23EN_SHIFT 5 5907 #define XSTORM_ROCE_RESP_CONN_AG_CTX_RULE0EN_MASK 0x1 5908 #define XSTORM_ROCE_RESP_CONN_AG_CTX_RULE0EN_SHIFT 6 5909 #define XSTORM_ROCE_RESP_CONN_AG_CTX_RULE1EN_MASK 0x1 5910 #define XSTORM_ROCE_RESP_CONN_AG_CTX_RULE1EN_SHIFT 7 5911 u8 flags11; 5912 #define XSTORM_ROCE_RESP_CONN_AG_CTX_RULE2EN_MASK 0x1 5913 #define XSTORM_ROCE_RESP_CONN_AG_CTX_RULE2EN_SHIFT 0 5914 #define XSTORM_ROCE_RESP_CONN_AG_CTX_RULE3EN_MASK 0x1 5915 #define XSTORM_ROCE_RESP_CONN_AG_CTX_RULE3EN_SHIFT 1 5916 #define XSTORM_ROCE_RESP_CONN_AG_CTX_RULE4EN_MASK 0x1 5917 #define XSTORM_ROCE_RESP_CONN_AG_CTX_RULE4EN_SHIFT 2 5918 #define XSTORM_ROCE_RESP_CONN_AG_CTX_RULE5EN_MASK 0x1 5919 #define XSTORM_ROCE_RESP_CONN_AG_CTX_RULE5EN_SHIFT 3 5920 #define XSTORM_ROCE_RESP_CONN_AG_CTX_RULE6EN_MASK 0x1 5921 #define XSTORM_ROCE_RESP_CONN_AG_CTX_RULE6EN_SHIFT 4 5922 #define XSTORM_ROCE_RESP_CONN_AG_CTX_RULE7EN_MASK 0x1 5923 #define XSTORM_ROCE_RESP_CONN_AG_CTX_RULE7EN_SHIFT 5 5924 #define XSTORM_ROCE_RESP_CONN_AG_CTX_A0_RESERVED1_MASK 0x1 5925 #define XSTORM_ROCE_RESP_CONN_AG_CTX_A0_RESERVED1_SHIFT 6 5926 #define XSTORM_ROCE_RESP_CONN_AG_CTX_RULE9EN_MASK 0x1 5927 #define XSTORM_ROCE_RESP_CONN_AG_CTX_RULE9EN_SHIFT 7 5928 u8 flags12; 5929 #define XSTORM_ROCE_RESP_CONN_AG_CTX_RULE10EN_MASK 0x1 5930 #define XSTORM_ROCE_RESP_CONN_AG_CTX_RULE10EN_SHIFT 0 5931 #define XSTORM_ROCE_RESP_CONN_AG_CTX_IRQ_PROD_RULE_EN_MASK 0x1 5932 #define XSTORM_ROCE_RESP_CONN_AG_CTX_IRQ_PROD_RULE_EN_SHIFT 1 5933 #define XSTORM_ROCE_RESP_CONN_AG_CTX_A0_RESERVED2_MASK 0x1 5934 #define XSTORM_ROCE_RESP_CONN_AG_CTX_A0_RESERVED2_SHIFT 2 5935 #define XSTORM_ROCE_RESP_CONN_AG_CTX_A0_RESERVED3_MASK 0x1 5936 #define XSTORM_ROCE_RESP_CONN_AG_CTX_A0_RESERVED3_SHIFT 3 5937 #define XSTORM_ROCE_RESP_CONN_AG_CTX_RULE14EN_MASK 0x1 5938 #define XSTORM_ROCE_RESP_CONN_AG_CTX_RULE14EN_SHIFT 4 5939 #define XSTORM_ROCE_RESP_CONN_AG_CTX_RULE15EN_MASK 0x1 5940 #define XSTORM_ROCE_RESP_CONN_AG_CTX_RULE15EN_SHIFT 5 5941 #define XSTORM_ROCE_RESP_CONN_AG_CTX_RULE16EN_MASK 0x1 5942 #define XSTORM_ROCE_RESP_CONN_AG_CTX_RULE16EN_SHIFT 6 5943 #define XSTORM_ROCE_RESP_CONN_AG_CTX_RULE17EN_MASK 0x1 5944 #define XSTORM_ROCE_RESP_CONN_AG_CTX_RULE17EN_SHIFT 7 5945 u8 flags13; 5946 #define XSTORM_ROCE_RESP_CONN_AG_CTX_RULE18EN_MASK 0x1 5947 #define XSTORM_ROCE_RESP_CONN_AG_CTX_RULE18EN_SHIFT 0 5948 #define XSTORM_ROCE_RESP_CONN_AG_CTX_RULE19EN_MASK 0x1 5949 #define XSTORM_ROCE_RESP_CONN_AG_CTX_RULE19EN_SHIFT 1 5950 #define XSTORM_ROCE_RESP_CONN_AG_CTX_A0_RESERVED4_MASK 0x1 5951 #define XSTORM_ROCE_RESP_CONN_AG_CTX_A0_RESERVED4_SHIFT 2 5952 #define XSTORM_ROCE_RESP_CONN_AG_CTX_A0_RESERVED5_MASK 0x1 5953 #define XSTORM_ROCE_RESP_CONN_AG_CTX_A0_RESERVED5_SHIFT 3 5954 #define XSTORM_ROCE_RESP_CONN_AG_CTX_A0_RESERVED6_MASK 0x1 5955 #define XSTORM_ROCE_RESP_CONN_AG_CTX_A0_RESERVED6_SHIFT 4 5956 #define XSTORM_ROCE_RESP_CONN_AG_CTX_A0_RESERVED7_MASK 0x1 5957 #define XSTORM_ROCE_RESP_CONN_AG_CTX_A0_RESERVED7_SHIFT 5 5958 #define XSTORM_ROCE_RESP_CONN_AG_CTX_A0_RESERVED8_MASK 0x1 5959 #define XSTORM_ROCE_RESP_CONN_AG_CTX_A0_RESERVED8_SHIFT 6 5960 #define XSTORM_ROCE_RESP_CONN_AG_CTX_A0_RESERVED9_MASK 0x1 5961 #define XSTORM_ROCE_RESP_CONN_AG_CTX_A0_RESERVED9_SHIFT 7 5962 u8 flags14; 5963 #define XSTORM_ROCE_RESP_CONN_AG_CTX_BIT16_MASK 0x1 5964 #define XSTORM_ROCE_RESP_CONN_AG_CTX_BIT16_SHIFT 0 5965 #define XSTORM_ROCE_RESP_CONN_AG_CTX_BIT17_MASK 0x1 5966 #define XSTORM_ROCE_RESP_CONN_AG_CTX_BIT17_SHIFT 1 5967 #define XSTORM_ROCE_RESP_CONN_AG_CTX_BIT18_MASK 0x1 5968 #define XSTORM_ROCE_RESP_CONN_AG_CTX_BIT18_SHIFT 2 5969 #define XSTORM_ROCE_RESP_CONN_AG_CTX_BIT19_MASK 0x1 5970 #define XSTORM_ROCE_RESP_CONN_AG_CTX_BIT19_SHIFT 3 5971 #define XSTORM_ROCE_RESP_CONN_AG_CTX_BIT20_MASK 0x1 5972 #define XSTORM_ROCE_RESP_CONN_AG_CTX_BIT20_SHIFT 4 5973 #define XSTORM_ROCE_RESP_CONN_AG_CTX_BIT21_MASK 0x1 5974 #define XSTORM_ROCE_RESP_CONN_AG_CTX_BIT21_SHIFT 5 5975 #define XSTORM_ROCE_RESP_CONN_AG_CTX_CF23_MASK 0x3 5976 #define XSTORM_ROCE_RESP_CONN_AG_CTX_CF23_SHIFT 6 5977 u8 byte2; 5978 __le16 physical_q0; 5979 __le16 word1; 5980 __le16 irq_prod; 5981 __le16 word3; 5982 __le16 word4; 5983 __le16 word5; 5984 __le16 irq_cons; 5985 u8 rxmit_opcode; 5986 u8 byte4; 5987 u8 byte5; 5988 u8 byte6; 5989 __le32 rxmit_psn_and_id; 5990 __le32 rxmit_bytes_length; 5991 __le32 psn; 5992 __le32 reg3; 5993 __le32 reg4; 5994 __le32 reg5; 5995 __le32 msn_and_syndrome; 5996 }; 5997 5998 struct ystorm_roce_req_conn_ag_ctx { 5999 u8 byte0; 6000 u8 byte1; 6001 u8 flags0; 6002 #define YSTORM_ROCE_REQ_CONN_AG_CTX_BIT0_MASK 0x1 6003 #define YSTORM_ROCE_REQ_CONN_AG_CTX_BIT0_SHIFT 0 6004 #define YSTORM_ROCE_REQ_CONN_AG_CTX_BIT1_MASK 0x1 6005 #define YSTORM_ROCE_REQ_CONN_AG_CTX_BIT1_SHIFT 1 6006 #define YSTORM_ROCE_REQ_CONN_AG_CTX_CF0_MASK 0x3 6007 #define YSTORM_ROCE_REQ_CONN_AG_CTX_CF0_SHIFT 2 6008 #define YSTORM_ROCE_REQ_CONN_AG_CTX_CF1_MASK 0x3 6009 #define YSTORM_ROCE_REQ_CONN_AG_CTX_CF1_SHIFT 4 6010 #define YSTORM_ROCE_REQ_CONN_AG_CTX_CF2_MASK 0x3 6011 #define YSTORM_ROCE_REQ_CONN_AG_CTX_CF2_SHIFT 6 6012 u8 flags1; 6013 #define YSTORM_ROCE_REQ_CONN_AG_CTX_CF0EN_MASK 0x1 6014 #define YSTORM_ROCE_REQ_CONN_AG_CTX_CF0EN_SHIFT 0 6015 #define YSTORM_ROCE_REQ_CONN_AG_CTX_CF1EN_MASK 0x1 6016 #define YSTORM_ROCE_REQ_CONN_AG_CTX_CF1EN_SHIFT 1 6017 #define YSTORM_ROCE_REQ_CONN_AG_CTX_CF2EN_MASK 0x1 6018 #define YSTORM_ROCE_REQ_CONN_AG_CTX_CF2EN_SHIFT 2 6019 #define YSTORM_ROCE_REQ_CONN_AG_CTX_RULE0EN_MASK 0x1 6020 #define YSTORM_ROCE_REQ_CONN_AG_CTX_RULE0EN_SHIFT 3 6021 #define YSTORM_ROCE_REQ_CONN_AG_CTX_RULE1EN_MASK 0x1 6022 #define YSTORM_ROCE_REQ_CONN_AG_CTX_RULE1EN_SHIFT 4 6023 #define YSTORM_ROCE_REQ_CONN_AG_CTX_RULE2EN_MASK 0x1 6024 #define YSTORM_ROCE_REQ_CONN_AG_CTX_RULE2EN_SHIFT 5 6025 #define YSTORM_ROCE_REQ_CONN_AG_CTX_RULE3EN_MASK 0x1 6026 #define YSTORM_ROCE_REQ_CONN_AG_CTX_RULE3EN_SHIFT 6 6027 #define YSTORM_ROCE_REQ_CONN_AG_CTX_RULE4EN_MASK 0x1 6028 #define YSTORM_ROCE_REQ_CONN_AG_CTX_RULE4EN_SHIFT 7 6029 u8 byte2; 6030 u8 byte3; 6031 __le16 word0; 6032 __le32 reg0; 6033 __le32 reg1; 6034 __le16 word1; 6035 __le16 word2; 6036 __le16 word3; 6037 __le16 word4; 6038 __le32 reg2; 6039 __le32 reg3; 6040 }; 6041 6042 struct ystorm_roce_resp_conn_ag_ctx { 6043 u8 byte0; 6044 u8 byte1; 6045 u8 flags0; 6046 #define YSTORM_ROCE_RESP_CONN_AG_CTX_BIT0_MASK 0x1 6047 #define YSTORM_ROCE_RESP_CONN_AG_CTX_BIT0_SHIFT 0 6048 #define YSTORM_ROCE_RESP_CONN_AG_CTX_BIT1_MASK 0x1 6049 #define YSTORM_ROCE_RESP_CONN_AG_CTX_BIT1_SHIFT 1 6050 #define YSTORM_ROCE_RESP_CONN_AG_CTX_CF0_MASK 0x3 6051 #define YSTORM_ROCE_RESP_CONN_AG_CTX_CF0_SHIFT 2 6052 #define YSTORM_ROCE_RESP_CONN_AG_CTX_CF1_MASK 0x3 6053 #define YSTORM_ROCE_RESP_CONN_AG_CTX_CF1_SHIFT 4 6054 #define YSTORM_ROCE_RESP_CONN_AG_CTX_CF2_MASK 0x3 6055 #define YSTORM_ROCE_RESP_CONN_AG_CTX_CF2_SHIFT 6 6056 u8 flags1; 6057 #define YSTORM_ROCE_RESP_CONN_AG_CTX_CF0EN_MASK 0x1 6058 #define YSTORM_ROCE_RESP_CONN_AG_CTX_CF0EN_SHIFT 0 6059 #define YSTORM_ROCE_RESP_CONN_AG_CTX_CF1EN_MASK 0x1 6060 #define YSTORM_ROCE_RESP_CONN_AG_CTX_CF1EN_SHIFT 1 6061 #define YSTORM_ROCE_RESP_CONN_AG_CTX_CF2EN_MASK 0x1 6062 #define YSTORM_ROCE_RESP_CONN_AG_CTX_CF2EN_SHIFT 2 6063 #define YSTORM_ROCE_RESP_CONN_AG_CTX_RULE0EN_MASK 0x1 6064 #define YSTORM_ROCE_RESP_CONN_AG_CTX_RULE0EN_SHIFT 3 6065 #define YSTORM_ROCE_RESP_CONN_AG_CTX_RULE1EN_MASK 0x1 6066 #define YSTORM_ROCE_RESP_CONN_AG_CTX_RULE1EN_SHIFT 4 6067 #define YSTORM_ROCE_RESP_CONN_AG_CTX_RULE2EN_MASK 0x1 6068 #define YSTORM_ROCE_RESP_CONN_AG_CTX_RULE2EN_SHIFT 5 6069 #define YSTORM_ROCE_RESP_CONN_AG_CTX_RULE3EN_MASK 0x1 6070 #define YSTORM_ROCE_RESP_CONN_AG_CTX_RULE3EN_SHIFT 6 6071 #define YSTORM_ROCE_RESP_CONN_AG_CTX_RULE4EN_MASK 0x1 6072 #define YSTORM_ROCE_RESP_CONN_AG_CTX_RULE4EN_SHIFT 7 6073 u8 byte2; 6074 u8 byte3; 6075 __le16 word0; 6076 __le32 reg0; 6077 __le32 reg1; 6078 __le16 word1; 6079 __le16 word2; 6080 __le16 word3; 6081 __le16 word4; 6082 __le32 reg2; 6083 __le32 reg3; 6084 }; 6085 6086 struct ystorm_iscsi_conn_st_ctx { 6087 __le32 reserved[4]; 6088 }; 6089 6090 struct pstorm_iscsi_tcp_conn_st_ctx { 6091 __le32 tcp[32]; 6092 __le32 iscsi[4]; 6093 }; 6094 6095 struct xstorm_iscsi_tcp_conn_st_ctx { 6096 __le32 reserved_iscsi[40]; 6097 __le32 reserved_tcp[4]; 6098 }; 6099 6100 struct xstorm_iscsi_conn_ag_ctx { 6101 u8 cdu_validation; 6102 u8 state; 6103 u8 flags0; 6104 #define XSTORM_ISCSI_CONN_AG_CTX_EXIST_IN_QM0_MASK 0x1 6105 #define XSTORM_ISCSI_CONN_AG_CTX_EXIST_IN_QM0_SHIFT 0 6106 #define XSTORM_ISCSI_CONN_AG_CTX_EXIST_IN_QM1_MASK 0x1 6107 #define XSTORM_ISCSI_CONN_AG_CTX_EXIST_IN_QM1_SHIFT 1 6108 #define XSTORM_ISCSI_CONN_AG_CTX_RESERVED1_MASK 0x1 6109 #define XSTORM_ISCSI_CONN_AG_CTX_RESERVED1_SHIFT 2 6110 #define XSTORM_ISCSI_CONN_AG_CTX_EXIST_IN_QM3_MASK 0x1 6111 #define XSTORM_ISCSI_CONN_AG_CTX_EXIST_IN_QM3_SHIFT 3 6112 #define XSTORM_ISCSI_CONN_AG_CTX_BIT4_MASK 0x1 6113 #define XSTORM_ISCSI_CONN_AG_CTX_BIT4_SHIFT 4 6114 #define XSTORM_ISCSI_CONN_AG_CTX_RESERVED2_MASK 0x1 6115 #define XSTORM_ISCSI_CONN_AG_CTX_RESERVED2_SHIFT 5 6116 #define XSTORM_ISCSI_CONN_AG_CTX_BIT6_MASK 0x1 6117 #define XSTORM_ISCSI_CONN_AG_CTX_BIT6_SHIFT 6 6118 #define XSTORM_ISCSI_CONN_AG_CTX_BIT7_MASK 0x1 6119 #define XSTORM_ISCSI_CONN_AG_CTX_BIT7_SHIFT 7 6120 u8 flags1; 6121 #define XSTORM_ISCSI_CONN_AG_CTX_BIT8_MASK 0x1 6122 #define XSTORM_ISCSI_CONN_AG_CTX_BIT8_SHIFT 0 6123 #define XSTORM_ISCSI_CONN_AG_CTX_BIT9_MASK 0x1 6124 #define XSTORM_ISCSI_CONN_AG_CTX_BIT9_SHIFT 1 6125 #define XSTORM_ISCSI_CONN_AG_CTX_BIT10_MASK 0x1 6126 #define XSTORM_ISCSI_CONN_AG_CTX_BIT10_SHIFT 2 6127 #define XSTORM_ISCSI_CONN_AG_CTX_BIT11_MASK 0x1 6128 #define XSTORM_ISCSI_CONN_AG_CTX_BIT11_SHIFT 3 6129 #define XSTORM_ISCSI_CONN_AG_CTX_BIT12_MASK 0x1 6130 #define XSTORM_ISCSI_CONN_AG_CTX_BIT12_SHIFT 4 6131 #define XSTORM_ISCSI_CONN_AG_CTX_BIT13_MASK 0x1 6132 #define XSTORM_ISCSI_CONN_AG_CTX_BIT13_SHIFT 5 6133 #define XSTORM_ISCSI_CONN_AG_CTX_BIT14_MASK 0x1 6134 #define XSTORM_ISCSI_CONN_AG_CTX_BIT14_SHIFT 6 6135 #define XSTORM_ISCSI_CONN_AG_CTX_TX_TRUNCATE_MASK 0x1 6136 #define XSTORM_ISCSI_CONN_AG_CTX_TX_TRUNCATE_SHIFT 7 6137 u8 flags2; 6138 #define XSTORM_ISCSI_CONN_AG_CTX_CF0_MASK 0x3 6139 #define XSTORM_ISCSI_CONN_AG_CTX_CF0_SHIFT 0 6140 #define XSTORM_ISCSI_CONN_AG_CTX_CF1_MASK 0x3 6141 #define XSTORM_ISCSI_CONN_AG_CTX_CF1_SHIFT 2 6142 #define XSTORM_ISCSI_CONN_AG_CTX_CF2_MASK 0x3 6143 #define XSTORM_ISCSI_CONN_AG_CTX_CF2_SHIFT 4 6144 #define XSTORM_ISCSI_CONN_AG_CTX_TIMER_STOP_ALL_MASK 0x3 6145 #define XSTORM_ISCSI_CONN_AG_CTX_TIMER_STOP_ALL_SHIFT 6 6146 u8 flags3; 6147 #define XSTORM_ISCSI_CONN_AG_CTX_CF4_MASK 0x3 6148 #define XSTORM_ISCSI_CONN_AG_CTX_CF4_SHIFT 0 6149 #define XSTORM_ISCSI_CONN_AG_CTX_CF5_MASK 0x3 6150 #define XSTORM_ISCSI_CONN_AG_CTX_CF5_SHIFT 2 6151 #define XSTORM_ISCSI_CONN_AG_CTX_CF6_MASK 0x3 6152 #define XSTORM_ISCSI_CONN_AG_CTX_CF6_SHIFT 4 6153 #define XSTORM_ISCSI_CONN_AG_CTX_CF7_MASK 0x3 6154 #define XSTORM_ISCSI_CONN_AG_CTX_CF7_SHIFT 6 6155 u8 flags4; 6156 #define XSTORM_ISCSI_CONN_AG_CTX_CF8_MASK 0x3 6157 #define XSTORM_ISCSI_CONN_AG_CTX_CF8_SHIFT 0 6158 #define XSTORM_ISCSI_CONN_AG_CTX_CF9_MASK 0x3 6159 #define XSTORM_ISCSI_CONN_AG_CTX_CF9_SHIFT 2 6160 #define XSTORM_ISCSI_CONN_AG_CTX_CF10_MASK 0x3 6161 #define XSTORM_ISCSI_CONN_AG_CTX_CF10_SHIFT 4 6162 #define XSTORM_ISCSI_CONN_AG_CTX_CF11_MASK 0x3 6163 #define XSTORM_ISCSI_CONN_AG_CTX_CF11_SHIFT 6 6164 u8 flags5; 6165 #define XSTORM_ISCSI_CONN_AG_CTX_CF12_MASK 0x3 6166 #define XSTORM_ISCSI_CONN_AG_CTX_CF12_SHIFT 0 6167 #define XSTORM_ISCSI_CONN_AG_CTX_CF13_MASK 0x3 6168 #define XSTORM_ISCSI_CONN_AG_CTX_CF13_SHIFT 2 6169 #define XSTORM_ISCSI_CONN_AG_CTX_CF14_MASK 0x3 6170 #define XSTORM_ISCSI_CONN_AG_CTX_CF14_SHIFT 4 6171 #define XSTORM_ISCSI_CONN_AG_CTX_UPDATE_STATE_TO_BASE_CF_MASK 0x3 6172 #define XSTORM_ISCSI_CONN_AG_CTX_UPDATE_STATE_TO_BASE_CF_SHIFT 6 6173 u8 flags6; 6174 #define XSTORM_ISCSI_CONN_AG_CTX_CF16_MASK 0x3 6175 #define XSTORM_ISCSI_CONN_AG_CTX_CF16_SHIFT 0 6176 #define XSTORM_ISCSI_CONN_AG_CTX_CF17_MASK 0x3 6177 #define XSTORM_ISCSI_CONN_AG_CTX_CF17_SHIFT 2 6178 #define XSTORM_ISCSI_CONN_AG_CTX_CF18_MASK 0x3 6179 #define XSTORM_ISCSI_CONN_AG_CTX_CF18_SHIFT 4 6180 #define XSTORM_ISCSI_CONN_AG_CTX_DQ_FLUSH_MASK 0x3 6181 #define XSTORM_ISCSI_CONN_AG_CTX_DQ_FLUSH_SHIFT 6 6182 u8 flags7; 6183 #define XSTORM_ISCSI_CONN_AG_CTX_FLUSH_Q0_MASK 0x3 6184 #define XSTORM_ISCSI_CONN_AG_CTX_FLUSH_Q0_SHIFT 0 6185 #define XSTORM_ISCSI_CONN_AG_CTX_FLUSH_Q1_MASK 0x3 6186 #define XSTORM_ISCSI_CONN_AG_CTX_FLUSH_Q1_SHIFT 2 6187 #define XSTORM_ISCSI_CONN_AG_CTX_SLOW_PATH_MASK 0x3 6188 #define XSTORM_ISCSI_CONN_AG_CTX_SLOW_PATH_SHIFT 4 6189 #define XSTORM_ISCSI_CONN_AG_CTX_CF0EN_MASK 0x1 6190 #define XSTORM_ISCSI_CONN_AG_CTX_CF0EN_SHIFT 6 6191 #define XSTORM_ISCSI_CONN_AG_CTX_CF1EN_MASK 0x1 6192 #define XSTORM_ISCSI_CONN_AG_CTX_CF1EN_SHIFT 7 6193 u8 flags8; 6194 #define XSTORM_ISCSI_CONN_AG_CTX_CF2EN_MASK 0x1 6195 #define XSTORM_ISCSI_CONN_AG_CTX_CF2EN_SHIFT 0 6196 #define XSTORM_ISCSI_CONN_AG_CTX_TIMER_STOP_ALL_EN_MASK 0x1 6197 #define XSTORM_ISCSI_CONN_AG_CTX_TIMER_STOP_ALL_EN_SHIFT 1 6198 #define XSTORM_ISCSI_CONN_AG_CTX_CF4EN_MASK 0x1 6199 #define XSTORM_ISCSI_CONN_AG_CTX_CF4EN_SHIFT 2 6200 #define XSTORM_ISCSI_CONN_AG_CTX_CF5EN_MASK 0x1 6201 #define XSTORM_ISCSI_CONN_AG_CTX_CF5EN_SHIFT 3 6202 #define XSTORM_ISCSI_CONN_AG_CTX_CF6EN_MASK 0x1 6203 #define XSTORM_ISCSI_CONN_AG_CTX_CF6EN_SHIFT 4 6204 #define XSTORM_ISCSI_CONN_AG_CTX_CF7EN_MASK 0x1 6205 #define XSTORM_ISCSI_CONN_AG_CTX_CF7EN_SHIFT 5 6206 #define XSTORM_ISCSI_CONN_AG_CTX_CF8EN_MASK 0x1 6207 #define XSTORM_ISCSI_CONN_AG_CTX_CF8EN_SHIFT 6 6208 #define XSTORM_ISCSI_CONN_AG_CTX_CF9EN_MASK 0x1 6209 #define XSTORM_ISCSI_CONN_AG_CTX_CF9EN_SHIFT 7 6210 u8 flags9; 6211 #define XSTORM_ISCSI_CONN_AG_CTX_CF10EN_MASK 0x1 6212 #define XSTORM_ISCSI_CONN_AG_CTX_CF10EN_SHIFT 0 6213 #define XSTORM_ISCSI_CONN_AG_CTX_CF11EN_MASK 0x1 6214 #define XSTORM_ISCSI_CONN_AG_CTX_CF11EN_SHIFT 1 6215 #define XSTORM_ISCSI_CONN_AG_CTX_CF12EN_MASK 0x1 6216 #define XSTORM_ISCSI_CONN_AG_CTX_CF12EN_SHIFT 2 6217 #define XSTORM_ISCSI_CONN_AG_CTX_CF13EN_MASK 0x1 6218 #define XSTORM_ISCSI_CONN_AG_CTX_CF13EN_SHIFT 3 6219 #define XSTORM_ISCSI_CONN_AG_CTX_CF14EN_MASK 0x1 6220 #define XSTORM_ISCSI_CONN_AG_CTX_CF14EN_SHIFT 4 6221 #define XSTORM_ISCSI_CONN_AG_CTX_UPDATE_STATE_TO_BASE_CF_EN_MASK 0x1 6222 #define XSTORM_ISCSI_CONN_AG_CTX_UPDATE_STATE_TO_BASE_CF_EN_SHIFT 5 6223 #define XSTORM_ISCSI_CONN_AG_CTX_CF16EN_MASK 0x1 6224 #define XSTORM_ISCSI_CONN_AG_CTX_CF16EN_SHIFT 6 6225 #define XSTORM_ISCSI_CONN_AG_CTX_CF17EN_MASK 0x1 6226 #define XSTORM_ISCSI_CONN_AG_CTX_CF17EN_SHIFT 7 6227 u8 flags10; 6228 #define XSTORM_ISCSI_CONN_AG_CTX_CF18EN_MASK 0x1 6229 #define XSTORM_ISCSI_CONN_AG_CTX_CF18EN_SHIFT 0 6230 #define XSTORM_ISCSI_CONN_AG_CTX_DQ_FLUSH_EN_MASK 0x1 6231 #define XSTORM_ISCSI_CONN_AG_CTX_DQ_FLUSH_EN_SHIFT 1 6232 #define XSTORM_ISCSI_CONN_AG_CTX_FLUSH_Q0_EN_MASK 0x1 6233 #define XSTORM_ISCSI_CONN_AG_CTX_FLUSH_Q0_EN_SHIFT 2 6234 #define XSTORM_ISCSI_CONN_AG_CTX_FLUSH_Q1_EN_MASK 0x1 6235 #define XSTORM_ISCSI_CONN_AG_CTX_FLUSH_Q1_EN_SHIFT 3 6236 #define XSTORM_ISCSI_CONN_AG_CTX_SLOW_PATH_EN_MASK 0x1 6237 #define XSTORM_ISCSI_CONN_AG_CTX_SLOW_PATH_EN_SHIFT 4 6238 #define XSTORM_ISCSI_CONN_AG_CTX_PROC_ONLY_CLEANUP_EN_MASK 0x1 6239 #define XSTORM_ISCSI_CONN_AG_CTX_PROC_ONLY_CLEANUP_EN_SHIFT 5 6240 #define XSTORM_ISCSI_CONN_AG_CTX_RULE0EN_MASK 0x1 6241 #define XSTORM_ISCSI_CONN_AG_CTX_RULE0EN_SHIFT 6 6242 #define XSTORM_ISCSI_CONN_AG_CTX_MORE_TO_SEND_DEC_RULE_EN_MASK 0x1 6243 #define XSTORM_ISCSI_CONN_AG_CTX_MORE_TO_SEND_DEC_RULE_EN_SHIFT 7 6244 u8 flags11; 6245 #define XSTORM_ISCSI_CONN_AG_CTX_RULE2EN_MASK 0x1 6246 #define XSTORM_ISCSI_CONN_AG_CTX_RULE2EN_SHIFT 0 6247 #define XSTORM_ISCSI_CONN_AG_CTX_RULE3EN_MASK 0x1 6248 #define XSTORM_ISCSI_CONN_AG_CTX_RULE3EN_SHIFT 1 6249 #define XSTORM_ISCSI_CONN_AG_CTX_RESERVED3_MASK 0x1 6250 #define XSTORM_ISCSI_CONN_AG_CTX_RESERVED3_SHIFT 2 6251 #define XSTORM_ISCSI_CONN_AG_CTX_RULE5EN_MASK 0x1 6252 #define XSTORM_ISCSI_CONN_AG_CTX_RULE5EN_SHIFT 3 6253 #define XSTORM_ISCSI_CONN_AG_CTX_RULE6EN_MASK 0x1 6254 #define XSTORM_ISCSI_CONN_AG_CTX_RULE6EN_SHIFT 4 6255 #define XSTORM_ISCSI_CONN_AG_CTX_RULE7EN_MASK 0x1 6256 #define XSTORM_ISCSI_CONN_AG_CTX_RULE7EN_SHIFT 5 6257 #define XSTORM_ISCSI_CONN_AG_CTX_A0_RESERVED1_MASK 0x1 6258 #define XSTORM_ISCSI_CONN_AG_CTX_A0_RESERVED1_SHIFT 6 6259 #define XSTORM_ISCSI_CONN_AG_CTX_RULE9EN_MASK 0x1 6260 #define XSTORM_ISCSI_CONN_AG_CTX_RULE9EN_SHIFT 7 6261 u8 flags12; 6262 #define XSTORM_ISCSI_CONN_AG_CTX_SQ_DEC_RULE_EN_MASK 0x1 6263 #define XSTORM_ISCSI_CONN_AG_CTX_SQ_DEC_RULE_EN_SHIFT 0 6264 #define XSTORM_ISCSI_CONN_AG_CTX_RULE11EN_MASK 0x1 6265 #define XSTORM_ISCSI_CONN_AG_CTX_RULE11EN_SHIFT 1 6266 #define XSTORM_ISCSI_CONN_AG_CTX_A0_RESERVED2_MASK 0x1 6267 #define XSTORM_ISCSI_CONN_AG_CTX_A0_RESERVED2_SHIFT 2 6268 #define XSTORM_ISCSI_CONN_AG_CTX_A0_RESERVED3_MASK 0x1 6269 #define XSTORM_ISCSI_CONN_AG_CTX_A0_RESERVED3_SHIFT 3 6270 #define XSTORM_ISCSI_CONN_AG_CTX_RULE14EN_MASK 0x1 6271 #define XSTORM_ISCSI_CONN_AG_CTX_RULE14EN_SHIFT 4 6272 #define XSTORM_ISCSI_CONN_AG_CTX_RULE15EN_MASK 0x1 6273 #define XSTORM_ISCSI_CONN_AG_CTX_RULE15EN_SHIFT 5 6274 #define XSTORM_ISCSI_CONN_AG_CTX_RULE16EN_MASK 0x1 6275 #define XSTORM_ISCSI_CONN_AG_CTX_RULE16EN_SHIFT 6 6276 #define XSTORM_ISCSI_CONN_AG_CTX_RULE17EN_MASK 0x1 6277 #define XSTORM_ISCSI_CONN_AG_CTX_RULE17EN_SHIFT 7 6278 u8 flags13; 6279 #define XSTORM_ISCSI_CONN_AG_CTX_R2TQ_DEC_RULE_EN_MASK 0x1 6280 #define XSTORM_ISCSI_CONN_AG_CTX_R2TQ_DEC_RULE_EN_SHIFT 0 6281 #define XSTORM_ISCSI_CONN_AG_CTX_HQ_DEC_RULE_EN_MASK 0x1 6282 #define XSTORM_ISCSI_CONN_AG_CTX_HQ_DEC_RULE_EN_SHIFT 1 6283 #define XSTORM_ISCSI_CONN_AG_CTX_A0_RESERVED4_MASK 0x1 6284 #define XSTORM_ISCSI_CONN_AG_CTX_A0_RESERVED4_SHIFT 2 6285 #define XSTORM_ISCSI_CONN_AG_CTX_A0_RESERVED5_MASK 0x1 6286 #define XSTORM_ISCSI_CONN_AG_CTX_A0_RESERVED5_SHIFT 3 6287 #define XSTORM_ISCSI_CONN_AG_CTX_A0_RESERVED6_MASK 0x1 6288 #define XSTORM_ISCSI_CONN_AG_CTX_A0_RESERVED6_SHIFT 4 6289 #define XSTORM_ISCSI_CONN_AG_CTX_A0_RESERVED7_MASK 0x1 6290 #define XSTORM_ISCSI_CONN_AG_CTX_A0_RESERVED7_SHIFT 5 6291 #define XSTORM_ISCSI_CONN_AG_CTX_A0_RESERVED8_MASK 0x1 6292 #define XSTORM_ISCSI_CONN_AG_CTX_A0_RESERVED8_SHIFT 6 6293 #define XSTORM_ISCSI_CONN_AG_CTX_A0_RESERVED9_MASK 0x1 6294 #define XSTORM_ISCSI_CONN_AG_CTX_A0_RESERVED9_SHIFT 7 6295 u8 flags14; 6296 #define XSTORM_ISCSI_CONN_AG_CTX_BIT16_MASK 0x1 6297 #define XSTORM_ISCSI_CONN_AG_CTX_BIT16_SHIFT 0 6298 #define XSTORM_ISCSI_CONN_AG_CTX_BIT17_MASK 0x1 6299 #define XSTORM_ISCSI_CONN_AG_CTX_BIT17_SHIFT 1 6300 #define XSTORM_ISCSI_CONN_AG_CTX_BIT18_MASK 0x1 6301 #define XSTORM_ISCSI_CONN_AG_CTX_BIT18_SHIFT 2 6302 #define XSTORM_ISCSI_CONN_AG_CTX_BIT19_MASK 0x1 6303 #define XSTORM_ISCSI_CONN_AG_CTX_BIT19_SHIFT 3 6304 #define XSTORM_ISCSI_CONN_AG_CTX_BIT20_MASK 0x1 6305 #define XSTORM_ISCSI_CONN_AG_CTX_BIT20_SHIFT 4 6306 #define XSTORM_ISCSI_CONN_AG_CTX_DUMMY_READ_DONE_MASK 0x1 6307 #define XSTORM_ISCSI_CONN_AG_CTX_DUMMY_READ_DONE_SHIFT 5 6308 #define XSTORM_ISCSI_CONN_AG_CTX_PROC_ONLY_CLEANUP_MASK 0x3 6309 #define XSTORM_ISCSI_CONN_AG_CTX_PROC_ONLY_CLEANUP_SHIFT 6 6310 u8 byte2; 6311 __le16 physical_q0; 6312 __le16 physical_q1; 6313 __le16 dummy_dorq_var; 6314 __le16 sq_cons; 6315 __le16 sq_prod; 6316 __le16 word5; 6317 __le16 slow_io_total_data_tx_update; 6318 u8 byte3; 6319 u8 byte4; 6320 u8 byte5; 6321 u8 byte6; 6322 __le32 reg0; 6323 __le32 reg1; 6324 __le32 reg2; 6325 __le32 more_to_send_seq; 6326 __le32 reg4; 6327 __le32 reg5; 6328 __le32 hq_scan_next_relevant_ack; 6329 __le16 r2tq_prod; 6330 __le16 r2tq_cons; 6331 __le16 hq_prod; 6332 __le16 hq_cons; 6333 __le32 remain_seq; 6334 __le32 bytes_to_next_pdu; 6335 __le32 hq_tcp_seq; 6336 u8 byte7; 6337 u8 byte8; 6338 u8 byte9; 6339 u8 byte10; 6340 u8 byte11; 6341 u8 byte12; 6342 u8 byte13; 6343 u8 byte14; 6344 u8 byte15; 6345 u8 byte16; 6346 __le16 word11; 6347 __le32 reg10; 6348 __le32 reg11; 6349 __le32 exp_stat_sn; 6350 __le32 reg13; 6351 __le32 reg14; 6352 __le32 reg15; 6353 __le32 reg16; 6354 __le32 reg17; 6355 }; 6356 6357 struct tstorm_iscsi_conn_ag_ctx { 6358 u8 reserved0; 6359 u8 state; 6360 u8 flags0; 6361 #define TSTORM_ISCSI_CONN_AG_CTX_EXIST_IN_QM0_MASK 0x1 6362 #define TSTORM_ISCSI_CONN_AG_CTX_EXIST_IN_QM0_SHIFT 0 6363 #define TSTORM_ISCSI_CONN_AG_CTX_BIT1_MASK 0x1 6364 #define TSTORM_ISCSI_CONN_AG_CTX_BIT1_SHIFT 1 6365 #define TSTORM_ISCSI_CONN_AG_CTX_BIT2_MASK 0x1 6366 #define TSTORM_ISCSI_CONN_AG_CTX_BIT2_SHIFT 2 6367 #define TSTORM_ISCSI_CONN_AG_CTX_BIT3_MASK 0x1 6368 #define TSTORM_ISCSI_CONN_AG_CTX_BIT3_SHIFT 3 6369 #define TSTORM_ISCSI_CONN_AG_CTX_BIT4_MASK 0x1 6370 #define TSTORM_ISCSI_CONN_AG_CTX_BIT4_SHIFT 4 6371 #define TSTORM_ISCSI_CONN_AG_CTX_BIT5_MASK 0x1 6372 #define TSTORM_ISCSI_CONN_AG_CTX_BIT5_SHIFT 5 6373 #define TSTORM_ISCSI_CONN_AG_CTX_CF0_MASK 0x3 6374 #define TSTORM_ISCSI_CONN_AG_CTX_CF0_SHIFT 6 6375 u8 flags1; 6376 #define TSTORM_ISCSI_CONN_AG_CTX_CF1_MASK 0x3 6377 #define TSTORM_ISCSI_CONN_AG_CTX_CF1_SHIFT 0 6378 #define TSTORM_ISCSI_CONN_AG_CTX_CF2_MASK 0x3 6379 #define TSTORM_ISCSI_CONN_AG_CTX_CF2_SHIFT 2 6380 #define TSTORM_ISCSI_CONN_AG_CTX_TIMER_STOP_ALL_MASK 0x3 6381 #define TSTORM_ISCSI_CONN_AG_CTX_TIMER_STOP_ALL_SHIFT 4 6382 #define TSTORM_ISCSI_CONN_AG_CTX_CF4_MASK 0x3 6383 #define TSTORM_ISCSI_CONN_AG_CTX_CF4_SHIFT 6 6384 u8 flags2; 6385 #define TSTORM_ISCSI_CONN_AG_CTX_CF5_MASK 0x3 6386 #define TSTORM_ISCSI_CONN_AG_CTX_CF5_SHIFT 0 6387 #define TSTORM_ISCSI_CONN_AG_CTX_CF6_MASK 0x3 6388 #define TSTORM_ISCSI_CONN_AG_CTX_CF6_SHIFT 2 6389 #define TSTORM_ISCSI_CONN_AG_CTX_CF7_MASK 0x3 6390 #define TSTORM_ISCSI_CONN_AG_CTX_CF7_SHIFT 4 6391 #define TSTORM_ISCSI_CONN_AG_CTX_CF8_MASK 0x3 6392 #define TSTORM_ISCSI_CONN_AG_CTX_CF8_SHIFT 6 6393 u8 flags3; 6394 #define TSTORM_ISCSI_CONN_AG_CTX_FLUSH_Q0_MASK 0x3 6395 #define TSTORM_ISCSI_CONN_AG_CTX_FLUSH_Q0_SHIFT 0 6396 #define TSTORM_ISCSI_CONN_AG_CTX_CF10_MASK 0x3 6397 #define TSTORM_ISCSI_CONN_AG_CTX_CF10_SHIFT 2 6398 #define TSTORM_ISCSI_CONN_AG_CTX_CF0EN_MASK 0x1 6399 #define TSTORM_ISCSI_CONN_AG_CTX_CF0EN_SHIFT 4 6400 #define TSTORM_ISCSI_CONN_AG_CTX_CF1EN_MASK 0x1 6401 #define TSTORM_ISCSI_CONN_AG_CTX_CF1EN_SHIFT 5 6402 #define TSTORM_ISCSI_CONN_AG_CTX_CF2EN_MASK 0x1 6403 #define TSTORM_ISCSI_CONN_AG_CTX_CF2EN_SHIFT 6 6404 #define TSTORM_ISCSI_CONN_AG_CTX_TIMER_STOP_ALL_EN_MASK 0x1 6405 #define TSTORM_ISCSI_CONN_AG_CTX_TIMER_STOP_ALL_EN_SHIFT 7 6406 u8 flags4; 6407 #define TSTORM_ISCSI_CONN_AG_CTX_CF4EN_MASK 0x1 6408 #define TSTORM_ISCSI_CONN_AG_CTX_CF4EN_SHIFT 0 6409 #define TSTORM_ISCSI_CONN_AG_CTX_CF5EN_MASK 0x1 6410 #define TSTORM_ISCSI_CONN_AG_CTX_CF5EN_SHIFT 1 6411 #define TSTORM_ISCSI_CONN_AG_CTX_CF6EN_MASK 0x1 6412 #define TSTORM_ISCSI_CONN_AG_CTX_CF6EN_SHIFT 2 6413 #define TSTORM_ISCSI_CONN_AG_CTX_CF7EN_MASK 0x1 6414 #define TSTORM_ISCSI_CONN_AG_CTX_CF7EN_SHIFT 3 6415 #define TSTORM_ISCSI_CONN_AG_CTX_CF8EN_MASK 0x1 6416 #define TSTORM_ISCSI_CONN_AG_CTX_CF8EN_SHIFT 4 6417 #define TSTORM_ISCSI_CONN_AG_CTX_FLUSH_Q0_EN_MASK 0x1 6418 #define TSTORM_ISCSI_CONN_AG_CTX_FLUSH_Q0_EN_SHIFT 5 6419 #define TSTORM_ISCSI_CONN_AG_CTX_CF10EN_MASK 0x1 6420 #define TSTORM_ISCSI_CONN_AG_CTX_CF10EN_SHIFT 6 6421 #define TSTORM_ISCSI_CONN_AG_CTX_RULE0EN_MASK 0x1 6422 #define TSTORM_ISCSI_CONN_AG_CTX_RULE0EN_SHIFT 7 6423 u8 flags5; 6424 #define TSTORM_ISCSI_CONN_AG_CTX_RULE1EN_MASK 0x1 6425 #define TSTORM_ISCSI_CONN_AG_CTX_RULE1EN_SHIFT 0 6426 #define TSTORM_ISCSI_CONN_AG_CTX_RULE2EN_MASK 0x1 6427 #define TSTORM_ISCSI_CONN_AG_CTX_RULE2EN_SHIFT 1 6428 #define TSTORM_ISCSI_CONN_AG_CTX_RULE3EN_MASK 0x1 6429 #define TSTORM_ISCSI_CONN_AG_CTX_RULE3EN_SHIFT 2 6430 #define TSTORM_ISCSI_CONN_AG_CTX_RULE4EN_MASK 0x1 6431 #define TSTORM_ISCSI_CONN_AG_CTX_RULE4EN_SHIFT 3 6432 #define TSTORM_ISCSI_CONN_AG_CTX_RULE5EN_MASK 0x1 6433 #define TSTORM_ISCSI_CONN_AG_CTX_RULE5EN_SHIFT 4 6434 #define TSTORM_ISCSI_CONN_AG_CTX_RULE6EN_MASK 0x1 6435 #define TSTORM_ISCSI_CONN_AG_CTX_RULE6EN_SHIFT 5 6436 #define TSTORM_ISCSI_CONN_AG_CTX_RULE7EN_MASK 0x1 6437 #define TSTORM_ISCSI_CONN_AG_CTX_RULE7EN_SHIFT 6 6438 #define TSTORM_ISCSI_CONN_AG_CTX_RULE8EN_MASK 0x1 6439 #define TSTORM_ISCSI_CONN_AG_CTX_RULE8EN_SHIFT 7 6440 __le32 reg0; 6441 __le32 reg1; 6442 __le32 reg2; 6443 __le32 reg3; 6444 __le32 reg4; 6445 __le32 reg5; 6446 __le32 reg6; 6447 __le32 reg7; 6448 __le32 reg8; 6449 u8 byte2; 6450 u8 byte3; 6451 __le16 word0; 6452 }; 6453 6454 struct ustorm_iscsi_conn_ag_ctx { 6455 u8 byte0; 6456 u8 byte1; 6457 u8 flags0; 6458 #define USTORM_ISCSI_CONN_AG_CTX_BIT0_MASK 0x1 6459 #define USTORM_ISCSI_CONN_AG_CTX_BIT0_SHIFT 0 6460 #define USTORM_ISCSI_CONN_AG_CTX_BIT1_MASK 0x1 6461 #define USTORM_ISCSI_CONN_AG_CTX_BIT1_SHIFT 1 6462 #define USTORM_ISCSI_CONN_AG_CTX_CF0_MASK 0x3 6463 #define USTORM_ISCSI_CONN_AG_CTX_CF0_SHIFT 2 6464 #define USTORM_ISCSI_CONN_AG_CTX_CF1_MASK 0x3 6465 #define USTORM_ISCSI_CONN_AG_CTX_CF1_SHIFT 4 6466 #define USTORM_ISCSI_CONN_AG_CTX_CF2_MASK 0x3 6467 #define USTORM_ISCSI_CONN_AG_CTX_CF2_SHIFT 6 6468 u8 flags1; 6469 #define USTORM_ISCSI_CONN_AG_CTX_CF3_MASK 0x3 6470 #define USTORM_ISCSI_CONN_AG_CTX_CF3_SHIFT 0 6471 #define USTORM_ISCSI_CONN_AG_CTX_CF4_MASK 0x3 6472 #define USTORM_ISCSI_CONN_AG_CTX_CF4_SHIFT 2 6473 #define USTORM_ISCSI_CONN_AG_CTX_CF5_MASK 0x3 6474 #define USTORM_ISCSI_CONN_AG_CTX_CF5_SHIFT 4 6475 #define USTORM_ISCSI_CONN_AG_CTX_CF6_MASK 0x3 6476 #define USTORM_ISCSI_CONN_AG_CTX_CF6_SHIFT 6 6477 u8 flags2; 6478 #define USTORM_ISCSI_CONN_AG_CTX_CF0EN_MASK 0x1 6479 #define USTORM_ISCSI_CONN_AG_CTX_CF0EN_SHIFT 0 6480 #define USTORM_ISCSI_CONN_AG_CTX_CF1EN_MASK 0x1 6481 #define USTORM_ISCSI_CONN_AG_CTX_CF1EN_SHIFT 1 6482 #define USTORM_ISCSI_CONN_AG_CTX_CF2EN_MASK 0x1 6483 #define USTORM_ISCSI_CONN_AG_CTX_CF2EN_SHIFT 2 6484 #define USTORM_ISCSI_CONN_AG_CTX_CF3EN_MASK 0x1 6485 #define USTORM_ISCSI_CONN_AG_CTX_CF3EN_SHIFT 3 6486 #define USTORM_ISCSI_CONN_AG_CTX_CF4EN_MASK 0x1 6487 #define USTORM_ISCSI_CONN_AG_CTX_CF4EN_SHIFT 4 6488 #define USTORM_ISCSI_CONN_AG_CTX_CF5EN_MASK 0x1 6489 #define USTORM_ISCSI_CONN_AG_CTX_CF5EN_SHIFT 5 6490 #define USTORM_ISCSI_CONN_AG_CTX_CF6EN_MASK 0x1 6491 #define USTORM_ISCSI_CONN_AG_CTX_CF6EN_SHIFT 6 6492 #define USTORM_ISCSI_CONN_AG_CTX_RULE0EN_MASK 0x1 6493 #define USTORM_ISCSI_CONN_AG_CTX_RULE0EN_SHIFT 7 6494 u8 flags3; 6495 #define USTORM_ISCSI_CONN_AG_CTX_RULE1EN_MASK 0x1 6496 #define USTORM_ISCSI_CONN_AG_CTX_RULE1EN_SHIFT 0 6497 #define USTORM_ISCSI_CONN_AG_CTX_RULE2EN_MASK 0x1 6498 #define USTORM_ISCSI_CONN_AG_CTX_RULE2EN_SHIFT 1 6499 #define USTORM_ISCSI_CONN_AG_CTX_RULE3EN_MASK 0x1 6500 #define USTORM_ISCSI_CONN_AG_CTX_RULE3EN_SHIFT 2 6501 #define USTORM_ISCSI_CONN_AG_CTX_RULE4EN_MASK 0x1 6502 #define USTORM_ISCSI_CONN_AG_CTX_RULE4EN_SHIFT 3 6503 #define USTORM_ISCSI_CONN_AG_CTX_RULE5EN_MASK 0x1 6504 #define USTORM_ISCSI_CONN_AG_CTX_RULE5EN_SHIFT 4 6505 #define USTORM_ISCSI_CONN_AG_CTX_RULE6EN_MASK 0x1 6506 #define USTORM_ISCSI_CONN_AG_CTX_RULE6EN_SHIFT 5 6507 #define USTORM_ISCSI_CONN_AG_CTX_RULE7EN_MASK 0x1 6508 #define USTORM_ISCSI_CONN_AG_CTX_RULE7EN_SHIFT 6 6509 #define USTORM_ISCSI_CONN_AG_CTX_RULE8EN_MASK 0x1 6510 #define USTORM_ISCSI_CONN_AG_CTX_RULE8EN_SHIFT 7 6511 u8 byte2; 6512 u8 byte3; 6513 __le16 word0; 6514 __le16 word1; 6515 __le32 reg0; 6516 __le32 reg1; 6517 __le32 reg2; 6518 __le32 reg3; 6519 __le16 word2; 6520 __le16 word3; 6521 }; 6522 6523 struct tstorm_iscsi_conn_st_ctx { 6524 __le32 reserved[40]; 6525 }; 6526 6527 struct mstorm_iscsi_conn_ag_ctx { 6528 u8 reserved; 6529 u8 state; 6530 u8 flags0; 6531 #define MSTORM_ISCSI_CONN_AG_CTX_BIT0_MASK 0x1 6532 #define MSTORM_ISCSI_CONN_AG_CTX_BIT0_SHIFT 0 6533 #define MSTORM_ISCSI_CONN_AG_CTX_BIT1_MASK 0x1 6534 #define MSTORM_ISCSI_CONN_AG_CTX_BIT1_SHIFT 1 6535 #define MSTORM_ISCSI_CONN_AG_CTX_CF0_MASK 0x3 6536 #define MSTORM_ISCSI_CONN_AG_CTX_CF0_SHIFT 2 6537 #define MSTORM_ISCSI_CONN_AG_CTX_CF1_MASK 0x3 6538 #define MSTORM_ISCSI_CONN_AG_CTX_CF1_SHIFT 4 6539 #define MSTORM_ISCSI_CONN_AG_CTX_CF2_MASK 0x3 6540 #define MSTORM_ISCSI_CONN_AG_CTX_CF2_SHIFT 6 6541 u8 flags1; 6542 #define MSTORM_ISCSI_CONN_AG_CTX_CF0EN_MASK 0x1 6543 #define MSTORM_ISCSI_CONN_AG_CTX_CF0EN_SHIFT 0 6544 #define MSTORM_ISCSI_CONN_AG_CTX_CF1EN_MASK 0x1 6545 #define MSTORM_ISCSI_CONN_AG_CTX_CF1EN_SHIFT 1 6546 #define MSTORM_ISCSI_CONN_AG_CTX_CF2EN_MASK 0x1 6547 #define MSTORM_ISCSI_CONN_AG_CTX_CF2EN_SHIFT 2 6548 #define MSTORM_ISCSI_CONN_AG_CTX_RULE0EN_MASK 0x1 6549 #define MSTORM_ISCSI_CONN_AG_CTX_RULE0EN_SHIFT 3 6550 #define MSTORM_ISCSI_CONN_AG_CTX_RULE1EN_MASK 0x1 6551 #define MSTORM_ISCSI_CONN_AG_CTX_RULE1EN_SHIFT 4 6552 #define MSTORM_ISCSI_CONN_AG_CTX_RULE2EN_MASK 0x1 6553 #define MSTORM_ISCSI_CONN_AG_CTX_RULE2EN_SHIFT 5 6554 #define MSTORM_ISCSI_CONN_AG_CTX_RULE3EN_MASK 0x1 6555 #define MSTORM_ISCSI_CONN_AG_CTX_RULE3EN_SHIFT 6 6556 #define MSTORM_ISCSI_CONN_AG_CTX_RULE4EN_MASK 0x1 6557 #define MSTORM_ISCSI_CONN_AG_CTX_RULE4EN_SHIFT 7 6558 __le16 word0; 6559 __le16 word1; 6560 __le32 reg0; 6561 __le32 reg1; 6562 }; 6563 6564 struct mstorm_iscsi_tcp_conn_st_ctx { 6565 __le32 reserved_tcp[20]; 6566 __le32 reserved_iscsi[8]; 6567 }; 6568 6569 struct ustorm_iscsi_conn_st_ctx { 6570 __le32 reserved[52]; 6571 }; 6572 6573 struct iscsi_conn_context { 6574 struct ystorm_iscsi_conn_st_ctx ystorm_st_context; 6575 struct regpair ystorm_st_padding[2]; 6576 struct pstorm_iscsi_tcp_conn_st_ctx pstorm_st_context; 6577 struct regpair pstorm_st_padding[2]; 6578 struct pb_context xpb2_context; 6579 struct xstorm_iscsi_tcp_conn_st_ctx xstorm_st_context; 6580 struct regpair xstorm_st_padding[2]; 6581 struct xstorm_iscsi_conn_ag_ctx xstorm_ag_context; 6582 struct tstorm_iscsi_conn_ag_ctx tstorm_ag_context; 6583 struct regpair tstorm_ag_padding[2]; 6584 struct timers_context timer_context; 6585 struct ustorm_iscsi_conn_ag_ctx ustorm_ag_context; 6586 struct pb_context upb_context; 6587 struct tstorm_iscsi_conn_st_ctx tstorm_st_context; 6588 struct regpair tstorm_st_padding[2]; 6589 struct mstorm_iscsi_conn_ag_ctx mstorm_ag_context; 6590 struct mstorm_iscsi_tcp_conn_st_ctx mstorm_st_context; 6591 struct ustorm_iscsi_conn_st_ctx ustorm_st_context; 6592 }; 6593 6594 struct iscsi_init_ramrod_params { 6595 struct iscsi_spe_func_init iscsi_init_spe; 6596 struct tcp_init_params tcp_init; 6597 }; 6598 6599 struct ystorm_iscsi_conn_ag_ctx { 6600 u8 byte0; 6601 u8 byte1; 6602 u8 flags0; 6603 #define YSTORM_ISCSI_CONN_AG_CTX_BIT0_MASK 0x1 6604 #define YSTORM_ISCSI_CONN_AG_CTX_BIT0_SHIFT 0 6605 #define YSTORM_ISCSI_CONN_AG_CTX_BIT1_MASK 0x1 6606 #define YSTORM_ISCSI_CONN_AG_CTX_BIT1_SHIFT 1 6607 #define YSTORM_ISCSI_CONN_AG_CTX_CF0_MASK 0x3 6608 #define YSTORM_ISCSI_CONN_AG_CTX_CF0_SHIFT 2 6609 #define YSTORM_ISCSI_CONN_AG_CTX_CF1_MASK 0x3 6610 #define YSTORM_ISCSI_CONN_AG_CTX_CF1_SHIFT 4 6611 #define YSTORM_ISCSI_CONN_AG_CTX_CF2_MASK 0x3 6612 #define YSTORM_ISCSI_CONN_AG_CTX_CF2_SHIFT 6 6613 u8 flags1; 6614 #define YSTORM_ISCSI_CONN_AG_CTX_CF0EN_MASK 0x1 6615 #define YSTORM_ISCSI_CONN_AG_CTX_CF0EN_SHIFT 0 6616 #define YSTORM_ISCSI_CONN_AG_CTX_CF1EN_MASK 0x1 6617 #define YSTORM_ISCSI_CONN_AG_CTX_CF1EN_SHIFT 1 6618 #define YSTORM_ISCSI_CONN_AG_CTX_CF2EN_MASK 0x1 6619 #define YSTORM_ISCSI_CONN_AG_CTX_CF2EN_SHIFT 2 6620 #define YSTORM_ISCSI_CONN_AG_CTX_RULE0EN_MASK 0x1 6621 #define YSTORM_ISCSI_CONN_AG_CTX_RULE0EN_SHIFT 3 6622 #define YSTORM_ISCSI_CONN_AG_CTX_RULE1EN_MASK 0x1 6623 #define YSTORM_ISCSI_CONN_AG_CTX_RULE1EN_SHIFT 4 6624 #define YSTORM_ISCSI_CONN_AG_CTX_RULE2EN_MASK 0x1 6625 #define YSTORM_ISCSI_CONN_AG_CTX_RULE2EN_SHIFT 5 6626 #define YSTORM_ISCSI_CONN_AG_CTX_RULE3EN_MASK 0x1 6627 #define YSTORM_ISCSI_CONN_AG_CTX_RULE3EN_SHIFT 6 6628 #define YSTORM_ISCSI_CONN_AG_CTX_RULE4EN_MASK 0x1 6629 #define YSTORM_ISCSI_CONN_AG_CTX_RULE4EN_SHIFT 7 6630 u8 byte2; 6631 u8 byte3; 6632 __le16 word0; 6633 __le32 reg0; 6634 __le32 reg1; 6635 __le16 word1; 6636 __le16 word2; 6637 __le16 word3; 6638 __le16 word4; 6639 __le32 reg2; 6640 __le32 reg3; 6641 }; 6642 #define VF_MAX_STATIC 192 6643 6644 #define MCP_GLOB_PATH_MAX 2 6645 #define MCP_PORT_MAX 2 6646 #define MCP_GLOB_PORT_MAX 4 6647 #define MCP_GLOB_FUNC_MAX 16 6648 6649 /* Offset from the beginning of the MCP scratchpad */ 6650 #define OFFSIZE_OFFSET_SHIFT 0 6651 #define OFFSIZE_OFFSET_MASK 0x0000ffff 6652 /* Size of specific element (not the whole array if any) */ 6653 #define OFFSIZE_SIZE_SHIFT 16 6654 #define OFFSIZE_SIZE_MASK 0xffff0000 6655 6656 #define SECTION_OFFSET(_offsize) ((((_offsize & \ 6657 OFFSIZE_OFFSET_MASK) >> \ 6658 OFFSIZE_OFFSET_SHIFT) << 2)) 6659 6660 #define QED_SECTION_SIZE(_offsize) (((_offsize & \ 6661 OFFSIZE_SIZE_MASK) >> \ 6662 OFFSIZE_SIZE_SHIFT) << 2) 6663 6664 #define SECTION_ADDR(_offsize, idx) (MCP_REG_SCRATCH + \ 6665 SECTION_OFFSET(_offsize) + \ 6666 (QED_SECTION_SIZE(_offsize) * idx)) 6667 6668 #define SECTION_OFFSIZE_ADDR(_pub_base, _section) \ 6669 (_pub_base + offsetof(struct mcp_public_data, sections[_section])) 6670 6671 /* PHY configuration */ 6672 struct eth_phy_cfg { 6673 u32 speed; 6674 #define ETH_SPEED_AUTONEG 0 6675 #define ETH_SPEED_SMARTLINQ 0x8 6676 6677 u32 pause; 6678 #define ETH_PAUSE_NONE 0x0 6679 #define ETH_PAUSE_AUTONEG 0x1 6680 #define ETH_PAUSE_RX 0x2 6681 #define ETH_PAUSE_TX 0x4 6682 6683 u32 adv_speed; 6684 u32 loopback_mode; 6685 #define ETH_LOOPBACK_NONE (0) 6686 #define ETH_LOOPBACK_INT_PHY (1) 6687 #define ETH_LOOPBACK_EXT_PHY (2) 6688 #define ETH_LOOPBACK_EXT (3) 6689 #define ETH_LOOPBACK_MAC (4) 6690 6691 u32 feature_config_flags; 6692 #define ETH_EEE_MODE_ADV_LPI (1 << 0) 6693 }; 6694 6695 struct port_mf_cfg { 6696 u32 dynamic_cfg; 6697 #define PORT_MF_CFG_OV_TAG_MASK 0x0000ffff 6698 #define PORT_MF_CFG_OV_TAG_SHIFT 0 6699 #define PORT_MF_CFG_OV_TAG_DEFAULT PORT_MF_CFG_OV_TAG_MASK 6700 6701 u32 reserved[1]; 6702 }; 6703 6704 struct eth_stats { 6705 u64 r64; 6706 u64 r127; 6707 u64 r255; 6708 u64 r511; 6709 u64 r1023; 6710 u64 r1518; 6711 u64 r1522; 6712 u64 r2047; 6713 u64 r4095; 6714 u64 r9216; 6715 u64 r16383; 6716 u64 rfcs; 6717 u64 rxcf; 6718 u64 rxpf; 6719 u64 rxpp; 6720 u64 raln; 6721 u64 rfcr; 6722 u64 rovr; 6723 u64 rjbr; 6724 u64 rund; 6725 u64 rfrg; 6726 u64 t64; 6727 u64 t127; 6728 u64 t255; 6729 u64 t511; 6730 u64 t1023; 6731 u64 t1518; 6732 u64 t2047; 6733 u64 t4095; 6734 u64 t9216; 6735 u64 t16383; 6736 u64 txpf; 6737 u64 txpp; 6738 u64 tlpiec; 6739 u64 tncl; 6740 u64 rbyte; 6741 u64 rxuca; 6742 u64 rxmca; 6743 u64 rxbca; 6744 u64 rxpok; 6745 u64 tbyte; 6746 u64 txuca; 6747 u64 txmca; 6748 u64 txbca; 6749 u64 txcf; 6750 }; 6751 6752 struct brb_stats { 6753 u64 brb_truncate[8]; 6754 u64 brb_discard[8]; 6755 }; 6756 6757 struct port_stats { 6758 struct brb_stats brb; 6759 struct eth_stats eth; 6760 }; 6761 6762 struct couple_mode_teaming { 6763 u8 port_cmt[MCP_GLOB_PORT_MAX]; 6764 #define PORT_CMT_IN_TEAM (1 << 0) 6765 6766 #define PORT_CMT_PORT_ROLE (1 << 1) 6767 #define PORT_CMT_PORT_INACTIVE (0 << 1) 6768 #define PORT_CMT_PORT_ACTIVE (1 << 1) 6769 6770 #define PORT_CMT_TEAM_MASK (1 << 2) 6771 #define PORT_CMT_TEAM0 (0 << 2) 6772 #define PORT_CMT_TEAM1 (1 << 2) 6773 }; 6774 6775 #define LLDP_CHASSIS_ID_STAT_LEN 4 6776 #define LLDP_PORT_ID_STAT_LEN 4 6777 #define DCBX_MAX_APP_PROTOCOL 32 6778 #define MAX_SYSTEM_LLDP_TLV_DATA 32 6779 6780 enum _lldp_agent { 6781 LLDP_NEAREST_BRIDGE = 0, 6782 LLDP_NEAREST_NON_TPMR_BRIDGE, 6783 LLDP_NEAREST_CUSTOMER_BRIDGE, 6784 LLDP_MAX_LLDP_AGENTS 6785 }; 6786 6787 struct lldp_config_params_s { 6788 u32 config; 6789 #define LLDP_CONFIG_TX_INTERVAL_MASK 0x000000ff 6790 #define LLDP_CONFIG_TX_INTERVAL_SHIFT 0 6791 #define LLDP_CONFIG_HOLD_MASK 0x00000f00 6792 #define LLDP_CONFIG_HOLD_SHIFT 8 6793 #define LLDP_CONFIG_MAX_CREDIT_MASK 0x0000f000 6794 #define LLDP_CONFIG_MAX_CREDIT_SHIFT 12 6795 #define LLDP_CONFIG_ENABLE_RX_MASK 0x40000000 6796 #define LLDP_CONFIG_ENABLE_RX_SHIFT 30 6797 #define LLDP_CONFIG_ENABLE_TX_MASK 0x80000000 6798 #define LLDP_CONFIG_ENABLE_TX_SHIFT 31 6799 u32 local_chassis_id[LLDP_CHASSIS_ID_STAT_LEN]; 6800 u32 local_port_id[LLDP_PORT_ID_STAT_LEN]; 6801 }; 6802 6803 struct lldp_status_params_s { 6804 u32 prefix_seq_num; 6805 u32 status; 6806 u32 peer_chassis_id[LLDP_CHASSIS_ID_STAT_LEN]; 6807 u32 peer_port_id[LLDP_PORT_ID_STAT_LEN]; 6808 u32 suffix_seq_num; 6809 }; 6810 6811 struct dcbx_ets_feature { 6812 u32 flags; 6813 #define DCBX_ETS_ENABLED_MASK 0x00000001 6814 #define DCBX_ETS_ENABLED_SHIFT 0 6815 #define DCBX_ETS_WILLING_MASK 0x00000002 6816 #define DCBX_ETS_WILLING_SHIFT 1 6817 #define DCBX_ETS_ERROR_MASK 0x00000004 6818 #define DCBX_ETS_ERROR_SHIFT 2 6819 #define DCBX_ETS_CBS_MASK 0x00000008 6820 #define DCBX_ETS_CBS_SHIFT 3 6821 #define DCBX_ETS_MAX_TCS_MASK 0x000000f0 6822 #define DCBX_ETS_MAX_TCS_SHIFT 4 6823 #define DCBX_ISCSI_OOO_TC_MASK 0x00000f00 6824 #define DCBX_ISCSI_OOO_TC_SHIFT 8 6825 u32 pri_tc_tbl[1]; 6826 #define DCBX_ISCSI_OOO_TC (4) 6827 6828 #define NIG_ETS_ISCSI_OOO_CLIENT_OFFSET (DCBX_ISCSI_OOO_TC + 1) 6829 #define DCBX_CEE_STRICT_PRIORITY 0xf 6830 u32 tc_bw_tbl[2]; 6831 u32 tc_tsa_tbl[2]; 6832 #define DCBX_ETS_TSA_STRICT 0 6833 #define DCBX_ETS_TSA_CBS 1 6834 #define DCBX_ETS_TSA_ETS 2 6835 }; 6836 6837 struct dcbx_app_priority_entry { 6838 u32 entry; 6839 #define DCBX_APP_PRI_MAP_MASK 0x000000ff 6840 #define DCBX_APP_PRI_MAP_SHIFT 0 6841 #define DCBX_APP_PRI_0 0x01 6842 #define DCBX_APP_PRI_1 0x02 6843 #define DCBX_APP_PRI_2 0x04 6844 #define DCBX_APP_PRI_3 0x08 6845 #define DCBX_APP_PRI_4 0x10 6846 #define DCBX_APP_PRI_5 0x20 6847 #define DCBX_APP_PRI_6 0x40 6848 #define DCBX_APP_PRI_7 0x80 6849 #define DCBX_APP_SF_MASK 0x00000300 6850 #define DCBX_APP_SF_SHIFT 8 6851 #define DCBX_APP_SF_ETHTYPE 0 6852 #define DCBX_APP_SF_PORT 1 6853 #define DCBX_APP_PROTOCOL_ID_MASK 0xffff0000 6854 #define DCBX_APP_PROTOCOL_ID_SHIFT 16 6855 }; 6856 6857 struct dcbx_app_priority_feature { 6858 u32 flags; 6859 #define DCBX_APP_ENABLED_MASK 0x00000001 6860 #define DCBX_APP_ENABLED_SHIFT 0 6861 #define DCBX_APP_WILLING_MASK 0x00000002 6862 #define DCBX_APP_WILLING_SHIFT 1 6863 #define DCBX_APP_ERROR_MASK 0x00000004 6864 #define DCBX_APP_ERROR_SHIFT 2 6865 #define DCBX_APP_MAX_TCS_MASK 0x0000f000 6866 #define DCBX_APP_MAX_TCS_SHIFT 12 6867 #define DCBX_APP_NUM_ENTRIES_MASK 0x00ff0000 6868 #define DCBX_APP_NUM_ENTRIES_SHIFT 16 6869 struct dcbx_app_priority_entry app_pri_tbl[DCBX_MAX_APP_PROTOCOL]; 6870 }; 6871 6872 struct dcbx_features { 6873 struct dcbx_ets_feature ets; 6874 u32 pfc; 6875 #define DCBX_PFC_PRI_EN_BITMAP_MASK 0x000000ff 6876 #define DCBX_PFC_PRI_EN_BITMAP_SHIFT 0 6877 #define DCBX_PFC_PRI_EN_BITMAP_PRI_0 0x01 6878 #define DCBX_PFC_PRI_EN_BITMAP_PRI_1 0x02 6879 #define DCBX_PFC_PRI_EN_BITMAP_PRI_2 0x04 6880 #define DCBX_PFC_PRI_EN_BITMAP_PRI_3 0x08 6881 #define DCBX_PFC_PRI_EN_BITMAP_PRI_4 0x10 6882 #define DCBX_PFC_PRI_EN_BITMAP_PRI_5 0x20 6883 #define DCBX_PFC_PRI_EN_BITMAP_PRI_6 0x40 6884 #define DCBX_PFC_PRI_EN_BITMAP_PRI_7 0x80 6885 6886 #define DCBX_PFC_FLAGS_MASK 0x0000ff00 6887 #define DCBX_PFC_FLAGS_SHIFT 8 6888 #define DCBX_PFC_CAPS_MASK 0x00000f00 6889 #define DCBX_PFC_CAPS_SHIFT 8 6890 #define DCBX_PFC_MBC_MASK 0x00004000 6891 #define DCBX_PFC_MBC_SHIFT 14 6892 #define DCBX_PFC_WILLING_MASK 0x00008000 6893 #define DCBX_PFC_WILLING_SHIFT 15 6894 #define DCBX_PFC_ENABLED_MASK 0x00010000 6895 #define DCBX_PFC_ENABLED_SHIFT 16 6896 #define DCBX_PFC_ERROR_MASK 0x00020000 6897 #define DCBX_PFC_ERROR_SHIFT 17 6898 6899 struct dcbx_app_priority_feature app; 6900 }; 6901 6902 struct dcbx_local_params { 6903 u32 config; 6904 #define DCBX_CONFIG_VERSION_MASK 0x00000007 6905 #define DCBX_CONFIG_VERSION_SHIFT 0 6906 #define DCBX_CONFIG_VERSION_DISABLED 0 6907 #define DCBX_CONFIG_VERSION_IEEE 1 6908 #define DCBX_CONFIG_VERSION_CEE 2 6909 #define DCBX_CONFIG_VERSION_STATIC 4 6910 6911 u32 flags; 6912 struct dcbx_features features; 6913 }; 6914 6915 struct dcbx_mib { 6916 u32 prefix_seq_num; 6917 u32 flags; 6918 struct dcbx_features features; 6919 u32 suffix_seq_num; 6920 }; 6921 6922 struct lldp_system_tlvs_buffer_s { 6923 u16 valid; 6924 u16 length; 6925 u32 data[MAX_SYSTEM_LLDP_TLV_DATA]; 6926 }; 6927 6928 struct dcb_dscp_map { 6929 u32 flags; 6930 #define DCB_DSCP_ENABLE_MASK 0x1 6931 #define DCB_DSCP_ENABLE_SHIFT 0 6932 #define DCB_DSCP_ENABLE 1 6933 u32 dscp_pri_map[8]; 6934 }; 6935 6936 struct public_global { 6937 u32 max_path; 6938 u32 max_ports; 6939 u32 debug_mb_offset; 6940 u32 phymod_dbg_mb_offset; 6941 struct couple_mode_teaming cmt; 6942 s32 internal_temperature; 6943 u32 mfw_ver; 6944 u32 running_bundle_id; 6945 s32 external_temperature; 6946 u32 mdump_reason; 6947 }; 6948 6949 struct fw_flr_mb { 6950 u32 aggint; 6951 u32 opgen_addr; 6952 u32 accum_ack; 6953 }; 6954 6955 struct public_path { 6956 struct fw_flr_mb flr_mb; 6957 u32 mcp_vf_disabled[VF_MAX_STATIC / 32]; 6958 6959 u32 process_kill; 6960 #define PROCESS_KILL_COUNTER_MASK 0x0000ffff 6961 #define PROCESS_KILL_COUNTER_SHIFT 0 6962 #define PROCESS_KILL_GLOB_AEU_BIT_MASK 0xffff0000 6963 #define PROCESS_KILL_GLOB_AEU_BIT_SHIFT 16 6964 #define GLOBAL_AEU_BIT(aeu_reg_id, aeu_bit) (aeu_reg_id * 32 + aeu_bit) 6965 }; 6966 6967 struct public_port { 6968 u32 validity_map; 6969 6970 u32 link_status; 6971 #define LINK_STATUS_LINK_UP 0x00000001 6972 #define LINK_STATUS_SPEED_AND_DUPLEX_MASK 0x0000001e 6973 #define LINK_STATUS_SPEED_AND_DUPLEX_1000THD (1 << 1) 6974 #define LINK_STATUS_SPEED_AND_DUPLEX_1000TFD (2 << 1) 6975 #define LINK_STATUS_SPEED_AND_DUPLEX_10G (3 << 1) 6976 #define LINK_STATUS_SPEED_AND_DUPLEX_20G (4 << 1) 6977 #define LINK_STATUS_SPEED_AND_DUPLEX_40G (5 << 1) 6978 #define LINK_STATUS_SPEED_AND_DUPLEX_50G (6 << 1) 6979 #define LINK_STATUS_SPEED_AND_DUPLEX_100G (7 << 1) 6980 #define LINK_STATUS_SPEED_AND_DUPLEX_25G (8 << 1) 6981 6982 #define LINK_STATUS_AUTO_NEGOTIATE_ENABLED 0x00000020 6983 6984 #define LINK_STATUS_AUTO_NEGOTIATE_COMPLETE 0x00000040 6985 #define LINK_STATUS_PARALLEL_DETECTION_USED 0x00000080 6986 6987 #define LINK_STATUS_PFC_ENABLED 0x00000100 6988 #define LINK_STATUS_LINK_PARTNER_1000TFD_CAPABLE 0x00000200 6989 #define LINK_STATUS_LINK_PARTNER_1000THD_CAPABLE 0x00000400 6990 #define LINK_STATUS_LINK_PARTNER_10G_CAPABLE 0x00000800 6991 #define LINK_STATUS_LINK_PARTNER_20G_CAPABLE 0x00001000 6992 #define LINK_STATUS_LINK_PARTNER_40G_CAPABLE 0x00002000 6993 #define LINK_STATUS_LINK_PARTNER_50G_CAPABLE 0x00004000 6994 #define LINK_STATUS_LINK_PARTNER_100G_CAPABLE 0x00008000 6995 #define LINK_STATUS_LINK_PARTNER_25G_CAPABLE 0x00010000 6996 6997 #define LINK_STATUS_LINK_PARTNER_FLOW_CONTROL_MASK 0x000C0000 6998 #define LINK_STATUS_LINK_PARTNER_NOT_PAUSE_CAPABLE (0 << 18) 6999 #define LINK_STATUS_LINK_PARTNER_SYMMETRIC_PAUSE (1 << 18) 7000 #define LINK_STATUS_LINK_PARTNER_ASYMMETRIC_PAUSE (2 << 18) 7001 #define LINK_STATUS_LINK_PARTNER_BOTH_PAUSE (3 << 18) 7002 7003 #define LINK_STATUS_SFP_TX_FAULT 0x00100000 7004 #define LINK_STATUS_TX_FLOW_CONTROL_ENABLED 0x00200000 7005 #define LINK_STATUS_RX_FLOW_CONTROL_ENABLED 0x00400000 7006 #define LINK_STATUS_RX_SIGNAL_PRESENT 0x00800000 7007 #define LINK_STATUS_MAC_LOCAL_FAULT 0x01000000 7008 #define LINK_STATUS_MAC_REMOTE_FAULT 0x02000000 7009 #define LINK_STATUS_UNSUPPORTED_SPD_REQ 0x04000000 7010 7011 u32 link_status1; 7012 u32 ext_phy_fw_version; 7013 u32 drv_phy_cfg_addr; 7014 7015 u32 port_stx; 7016 7017 u32 stat_nig_timer; 7018 7019 struct port_mf_cfg port_mf_config; 7020 struct port_stats stats; 7021 7022 u32 media_type; 7023 #define MEDIA_UNSPECIFIED 0x0 7024 #define MEDIA_SFPP_10G_FIBER 0x1 7025 #define MEDIA_XFP_FIBER 0x2 7026 #define MEDIA_DA_TWINAX 0x3 7027 #define MEDIA_BASE_T 0x4 7028 #define MEDIA_SFP_1G_FIBER 0x5 7029 #define MEDIA_MODULE_FIBER 0x6 7030 #define MEDIA_KR 0xf0 7031 #define MEDIA_NOT_PRESENT 0xff 7032 7033 u32 lfa_status; 7034 u32 link_change_count; 7035 7036 struct lldp_config_params_s lldp_config_params[LLDP_MAX_LLDP_AGENTS]; 7037 struct lldp_status_params_s lldp_status_params[LLDP_MAX_LLDP_AGENTS]; 7038 struct lldp_system_tlvs_buffer_s system_lldp_tlvs_buf; 7039 7040 /* DCBX related MIB */ 7041 struct dcbx_local_params local_admin_dcbx_mib; 7042 struct dcbx_mib remote_dcbx_mib; 7043 struct dcbx_mib operational_dcbx_mib; 7044 7045 u32 reserved[2]; 7046 u32 transceiver_data; 7047 #define ETH_TRANSCEIVER_STATE_MASK 0x000000FF 7048 #define ETH_TRANSCEIVER_STATE_SHIFT 0x00000000 7049 #define ETH_TRANSCEIVER_STATE_UNPLUGGED 0x00000000 7050 #define ETH_TRANSCEIVER_STATE_PRESENT 0x00000001 7051 #define ETH_TRANSCEIVER_STATE_VALID 0x00000003 7052 #define ETH_TRANSCEIVER_STATE_UPDATING 0x00000008 7053 7054 u32 wol_info; 7055 u32 wol_pkt_len; 7056 u32 wol_pkt_details; 7057 struct dcb_dscp_map dcb_dscp_map; 7058 }; 7059 7060 struct public_func { 7061 u32 reserved0[2]; 7062 7063 u32 mtu_size; 7064 7065 u32 reserved[7]; 7066 7067 u32 config; 7068 #define FUNC_MF_CFG_FUNC_HIDE 0x00000001 7069 #define FUNC_MF_CFG_PAUSE_ON_HOST_RING 0x00000002 7070 #define FUNC_MF_CFG_PAUSE_ON_HOST_RING_SHIFT 0x00000001 7071 7072 #define FUNC_MF_CFG_PROTOCOL_MASK 0x000000f0 7073 #define FUNC_MF_CFG_PROTOCOL_SHIFT 4 7074 #define FUNC_MF_CFG_PROTOCOL_ETHERNET 0x00000000 7075 #define FUNC_MF_CFG_PROTOCOL_ISCSI 0x00000010 7076 #define FUNC_MF_CFG_PROTOCOL_ROCE 0x00000030 7077 #define FUNC_MF_CFG_PROTOCOL_MAX 0x00000030 7078 7079 #define FUNC_MF_CFG_MIN_BW_MASK 0x0000ff00 7080 #define FUNC_MF_CFG_MIN_BW_SHIFT 8 7081 #define FUNC_MF_CFG_MIN_BW_DEFAULT 0x00000000 7082 #define FUNC_MF_CFG_MAX_BW_MASK 0x00ff0000 7083 #define FUNC_MF_CFG_MAX_BW_SHIFT 16 7084 #define FUNC_MF_CFG_MAX_BW_DEFAULT 0x00640000 7085 7086 u32 status; 7087 #define FUNC_STATUS_VLINK_DOWN 0x00000001 7088 7089 u32 mac_upper; 7090 #define FUNC_MF_CFG_UPPERMAC_MASK 0x0000ffff 7091 #define FUNC_MF_CFG_UPPERMAC_SHIFT 0 7092 #define FUNC_MF_CFG_UPPERMAC_DEFAULT FUNC_MF_CFG_UPPERMAC_MASK 7093 u32 mac_lower; 7094 #define FUNC_MF_CFG_LOWERMAC_DEFAULT 0xffffffff 7095 7096 u32 fcoe_wwn_port_name_upper; 7097 u32 fcoe_wwn_port_name_lower; 7098 7099 u32 fcoe_wwn_node_name_upper; 7100 u32 fcoe_wwn_node_name_lower; 7101 7102 u32 ovlan_stag; 7103 #define FUNC_MF_CFG_OV_STAG_MASK 0x0000ffff 7104 #define FUNC_MF_CFG_OV_STAG_SHIFT 0 7105 #define FUNC_MF_CFG_OV_STAG_DEFAULT FUNC_MF_CFG_OV_STAG_MASK 7106 7107 u32 pf_allocation; 7108 7109 u32 preserve_data; 7110 7111 u32 driver_last_activity_ts; 7112 7113 u32 drv_ack_vf_disabled[VF_MAX_STATIC / 32]; 7114 7115 u32 drv_id; 7116 #define DRV_ID_PDA_COMP_VER_MASK 0x0000ffff 7117 #define DRV_ID_PDA_COMP_VER_SHIFT 0 7118 7119 #define DRV_ID_MCP_HSI_VER_MASK 0x00ff0000 7120 #define DRV_ID_MCP_HSI_VER_SHIFT 16 7121 #define DRV_ID_MCP_HSI_VER_CURRENT (1 << DRV_ID_MCP_HSI_VER_SHIFT) 7122 7123 #define DRV_ID_DRV_TYPE_MASK 0x7f000000 7124 #define DRV_ID_DRV_TYPE_SHIFT 24 7125 #define DRV_ID_DRV_TYPE_UNKNOWN (0 << DRV_ID_DRV_TYPE_SHIFT) 7126 #define DRV_ID_DRV_TYPE_LINUX (1 << DRV_ID_DRV_TYPE_SHIFT) 7127 7128 #define DRV_ID_DRV_INIT_HW_MASK 0x80000000 7129 #define DRV_ID_DRV_INIT_HW_SHIFT 31 7130 #define DRV_ID_DRV_INIT_HW_FLAG (1 << DRV_ID_DRV_INIT_HW_SHIFT) 7131 }; 7132 7133 struct mcp_mac { 7134 u32 mac_upper; 7135 u32 mac_lower; 7136 }; 7137 7138 struct mcp_val64 { 7139 u32 lo; 7140 u32 hi; 7141 }; 7142 7143 struct mcp_file_att { 7144 u32 nvm_start_addr; 7145 u32 len; 7146 }; 7147 7148 struct bist_nvm_image_att { 7149 u32 return_code; 7150 u32 image_type; 7151 u32 nvm_start_addr; 7152 u32 len; 7153 }; 7154 7155 #define MCP_DRV_VER_STR_SIZE 16 7156 #define MCP_DRV_VER_STR_SIZE_DWORD (MCP_DRV_VER_STR_SIZE / sizeof(u32)) 7157 #define MCP_DRV_NVM_BUF_LEN 32 7158 struct drv_version_stc { 7159 u32 version; 7160 u8 name[MCP_DRV_VER_STR_SIZE - 4]; 7161 }; 7162 7163 struct lan_stats_stc { 7164 u64 ucast_rx_pkts; 7165 u64 ucast_tx_pkts; 7166 u32 fcs_err; 7167 u32 rserved; 7168 }; 7169 7170 struct ocbb_data_stc { 7171 u32 ocbb_host_addr; 7172 u32 ocsd_host_addr; 7173 u32 ocsd_req_update_interval; 7174 }; 7175 7176 #define MAX_NUM_OF_SENSORS 7 7177 struct temperature_status_stc { 7178 u32 num_of_sensors; 7179 u32 sensor[MAX_NUM_OF_SENSORS]; 7180 }; 7181 7182 /* crash dump configuration header */ 7183 struct mdump_config_stc { 7184 u32 version; 7185 u32 config; 7186 u32 epoc; 7187 u32 num_of_logs; 7188 u32 valid_logs; 7189 }; 7190 7191 union drv_union_data { 7192 u32 ver_str[MCP_DRV_VER_STR_SIZE_DWORD]; 7193 struct mcp_mac wol_mac; 7194 7195 struct eth_phy_cfg drv_phy_cfg; 7196 7197 struct mcp_val64 val64; 7198 7199 u8 raw_data[MCP_DRV_NVM_BUF_LEN]; 7200 7201 struct mcp_file_att file_att; 7202 7203 u32 ack_vf_disabled[VF_MAX_STATIC / 32]; 7204 7205 struct drv_version_stc drv_version; 7206 7207 struct lan_stats_stc lan_stats; 7208 u64 reserved_stats[11]; 7209 struct ocbb_data_stc ocbb_info; 7210 struct temperature_status_stc temp_info; 7211 struct bist_nvm_image_att nvm_image_att; 7212 struct mdump_config_stc mdump_config; 7213 }; 7214 7215 struct public_drv_mb { 7216 u32 drv_mb_header; 7217 #define DRV_MSG_CODE_MASK 0xffff0000 7218 #define DRV_MSG_CODE_LOAD_REQ 0x10000000 7219 #define DRV_MSG_CODE_LOAD_DONE 0x11000000 7220 #define DRV_MSG_CODE_INIT_HW 0x12000000 7221 #define DRV_MSG_CODE_UNLOAD_REQ 0x20000000 7222 #define DRV_MSG_CODE_UNLOAD_DONE 0x21000000 7223 #define DRV_MSG_CODE_INIT_PHY 0x22000000 7224 #define DRV_MSG_CODE_LINK_RESET 0x23000000 7225 #define DRV_MSG_CODE_SET_DCBX 0x25000000 7226 7227 #define DRV_MSG_CODE_BW_UPDATE_ACK 0x32000000 7228 #define DRV_MSG_CODE_NIG_DRAIN 0x30000000 7229 #define DRV_MSG_CODE_VF_DISABLED_DONE 0xc0000000 7230 #define DRV_MSG_CODE_CFG_VF_MSIX 0xc0010000 7231 #define DRV_MSG_CODE_MCP_RESET 0x00090000 7232 #define DRV_MSG_CODE_SET_VERSION 0x000f0000 7233 7234 #define DRV_MSG_CODE_BIST_TEST 0x001e0000 7235 #define DRV_MSG_CODE_SET_LED_MODE 0x00200000 7236 7237 #define DRV_MSG_SEQ_NUMBER_MASK 0x0000ffff 7238 7239 u32 drv_mb_param; 7240 #define DRV_MB_PARAM_UNLOAD_WOL_MCP 0x00000001 7241 #define DRV_MB_PARAM_DCBX_NOTIFY_MASK 0x000000FF 7242 #define DRV_MB_PARAM_DCBX_NOTIFY_SHIFT 3 7243 #define DRV_MB_PARAM_CFG_VF_MSIX_VF_ID_SHIFT 0 7244 #define DRV_MB_PARAM_CFG_VF_MSIX_VF_ID_MASK 0x000000FF 7245 #define DRV_MB_PARAM_CFG_VF_MSIX_SB_NUM_SHIFT 8 7246 #define DRV_MB_PARAM_CFG_VF_MSIX_SB_NUM_MASK 0x0000FF00 7247 #define DRV_MB_PARAM_LLDP_SEND_MASK 0x00000001 7248 #define DRV_MB_PARAM_LLDP_SEND_SHIFT 0 7249 7250 7251 #define DRV_MB_PARAM_SET_LED_MODE_OPER 0x0 7252 #define DRV_MB_PARAM_SET_LED_MODE_ON 0x1 7253 #define DRV_MB_PARAM_SET_LED_MODE_OFF 0x2 7254 7255 #define DRV_MB_PARAM_BIST_REGISTER_TEST 1 7256 #define DRV_MB_PARAM_BIST_CLOCK_TEST 2 7257 7258 #define DRV_MB_PARAM_BIST_RC_UNKNOWN 0 7259 #define DRV_MB_PARAM_BIST_RC_PASSED 1 7260 #define DRV_MB_PARAM_BIST_RC_FAILED 2 7261 #define DRV_MB_PARAM_BIST_RC_INVALID_PARAMETER 3 7262 7263 #define DRV_MB_PARAM_BIST_TEST_INDEX_SHIFT 0 7264 #define DRV_MB_PARAM_BIST_TEST_INDEX_MASK 0x000000FF 7265 7266 u32 fw_mb_header; 7267 #define FW_MSG_CODE_MASK 0xffff0000 7268 #define FW_MSG_CODE_DRV_LOAD_ENGINE 0x10100000 7269 #define FW_MSG_CODE_DRV_LOAD_PORT 0x10110000 7270 #define FW_MSG_CODE_DRV_LOAD_FUNCTION 0x10120000 7271 #define FW_MSG_CODE_DRV_LOAD_REFUSED_PDA 0x10200000 7272 #define FW_MSG_CODE_DRV_LOAD_REFUSED_HSI 0x10210000 7273 #define FW_MSG_CODE_DRV_LOAD_REFUSED_DIAG 0x10220000 7274 #define FW_MSG_CODE_DRV_LOAD_DONE 0x11100000 7275 #define FW_MSG_CODE_DRV_UNLOAD_ENGINE 0x20110000 7276 #define FW_MSG_CODE_DRV_UNLOAD_PORT 0x20120000 7277 #define FW_MSG_CODE_DRV_UNLOAD_FUNCTION 0x20130000 7278 #define FW_MSG_CODE_DRV_UNLOAD_DONE 0x21100000 7279 #define FW_MSG_CODE_DRV_CFG_VF_MSIX_DONE 0xb0010000 7280 #define FW_MSG_CODE_OK 0x00160000 7281 7282 #define FW_MSG_SEQ_NUMBER_MASK 0x0000ffff 7283 7284 u32 fw_mb_param; 7285 7286 u32 drv_pulse_mb; 7287 #define DRV_PULSE_SEQ_MASK 0x00007fff 7288 #define DRV_PULSE_SYSTEM_TIME_MASK 0xffff0000 7289 #define DRV_PULSE_ALWAYS_ALIVE 0x00008000 7290 7291 u32 mcp_pulse_mb; 7292 #define MCP_PULSE_SEQ_MASK 0x00007fff 7293 #define MCP_PULSE_ALWAYS_ALIVE 0x00008000 7294 #define MCP_EVENT_MASK 0xffff0000 7295 #define MCP_EVENT_OTHER_DRIVER_RESET_REQ 0x00010000 7296 7297 union drv_union_data union_data; 7298 }; 7299 7300 enum MFW_DRV_MSG_TYPE { 7301 MFW_DRV_MSG_LINK_CHANGE, 7302 MFW_DRV_MSG_FLR_FW_ACK_FAILED, 7303 MFW_DRV_MSG_VF_DISABLED, 7304 MFW_DRV_MSG_LLDP_DATA_UPDATED, 7305 MFW_DRV_MSG_DCBX_REMOTE_MIB_UPDATED, 7306 MFW_DRV_MSG_DCBX_OPERATIONAL_MIB_UPDATED, 7307 MFW_DRV_MSG_RESERVED4, 7308 MFW_DRV_MSG_BW_UPDATE, 7309 MFW_DRV_MSG_BW_UPDATE5, 7310 MFW_DRV_MSG_BW_UPDATE6, 7311 MFW_DRV_MSG_BW_UPDATE7, 7312 MFW_DRV_MSG_BW_UPDATE8, 7313 MFW_DRV_MSG_BW_UPDATE9, 7314 MFW_DRV_MSG_BW_UPDATE10, 7315 MFW_DRV_MSG_TRANSCEIVER_STATE_CHANGE, 7316 MFW_DRV_MSG_BW_UPDATE11, 7317 MFW_DRV_MSG_MAX 7318 }; 7319 7320 #define MFW_DRV_MSG_MAX_DWORDS(msgs) (((msgs - 1) >> 2) + 1) 7321 #define MFW_DRV_MSG_DWORD(msg_id) (msg_id >> 2) 7322 #define MFW_DRV_MSG_OFFSET(msg_id) ((msg_id & 0x3) << 3) 7323 #define MFW_DRV_MSG_MASK(msg_id) (0xff << MFW_DRV_MSG_OFFSET(msg_id)) 7324 7325 struct public_mfw_mb { 7326 u32 sup_msgs; 7327 u32 msg[MFW_DRV_MSG_MAX_DWORDS(MFW_DRV_MSG_MAX)]; 7328 u32 ack[MFW_DRV_MSG_MAX_DWORDS(MFW_DRV_MSG_MAX)]; 7329 }; 7330 7331 enum public_sections { 7332 PUBLIC_DRV_MB, 7333 PUBLIC_MFW_MB, 7334 PUBLIC_GLOBAL, 7335 PUBLIC_PATH, 7336 PUBLIC_PORT, 7337 PUBLIC_FUNC, 7338 PUBLIC_MAX_SECTIONS 7339 }; 7340 7341 struct mcp_public_data { 7342 u32 num_sections; 7343 u32 sections[PUBLIC_MAX_SECTIONS]; 7344 struct public_drv_mb drv_mb[MCP_GLOB_FUNC_MAX]; 7345 struct public_mfw_mb mfw_mb[MCP_GLOB_FUNC_MAX]; 7346 struct public_global global; 7347 struct public_path path[MCP_GLOB_PATH_MAX]; 7348 struct public_port port[MCP_GLOB_PORT_MAX]; 7349 struct public_func func[MCP_GLOB_FUNC_MAX]; 7350 }; 7351 7352 struct nvm_cfg_mac_address { 7353 u32 mac_addr_hi; 7354 #define NVM_CFG_MAC_ADDRESS_HI_MASK 0x0000FFFF 7355 #define NVM_CFG_MAC_ADDRESS_HI_OFFSET 0 7356 u32 mac_addr_lo; 7357 }; 7358 7359 struct nvm_cfg1_glob { 7360 u32 generic_cont0; 7361 #define NVM_CFG1_GLOB_MF_MODE_MASK 0x00000FF0 7362 #define NVM_CFG1_GLOB_MF_MODE_OFFSET 4 7363 #define NVM_CFG1_GLOB_MF_MODE_MF_ALLOWED 0x0 7364 #define NVM_CFG1_GLOB_MF_MODE_DEFAULT 0x1 7365 #define NVM_CFG1_GLOB_MF_MODE_SPIO4 0x2 7366 #define NVM_CFG1_GLOB_MF_MODE_NPAR1_0 0x3 7367 #define NVM_CFG1_GLOB_MF_MODE_NPAR1_5 0x4 7368 #define NVM_CFG1_GLOB_MF_MODE_NPAR2_0 0x5 7369 #define NVM_CFG1_GLOB_MF_MODE_BD 0x6 7370 #define NVM_CFG1_GLOB_MF_MODE_UFP 0x7 7371 u32 engineering_change[3]; 7372 u32 manufacturing_id; 7373 u32 serial_number[4]; 7374 u32 pcie_cfg; 7375 u32 mgmt_traffic; 7376 u32 core_cfg; 7377 #define NVM_CFG1_GLOB_NETWORK_PORT_MODE_MASK 0x000000FF 7378 #define NVM_CFG1_GLOB_NETWORK_PORT_MODE_OFFSET 0 7379 #define NVM_CFG1_GLOB_NETWORK_PORT_MODE_BB_2X40G 0x0 7380 #define NVM_CFG1_GLOB_NETWORK_PORT_MODE_2X50G 0x1 7381 #define NVM_CFG1_GLOB_NETWORK_PORT_MODE_BB_1X100G 0x2 7382 #define NVM_CFG1_GLOB_NETWORK_PORT_MODE_4X10G_F 0x3 7383 #define NVM_CFG1_GLOB_NETWORK_PORT_MODE_BB_4X10G_E 0x4 7384 #define NVM_CFG1_GLOB_NETWORK_PORT_MODE_BB_4X20G 0x5 7385 #define NVM_CFG1_GLOB_NETWORK_PORT_MODE_1X40G 0xB 7386 #define NVM_CFG1_GLOB_NETWORK_PORT_MODE_2X25G 0xC 7387 #define NVM_CFG1_GLOB_NETWORK_PORT_MODE_1X25G 0xD 7388 #define NVM_CFG1_GLOB_NETWORK_PORT_MODE_4X25G 0xE 7389 u32 e_lane_cfg1; 7390 u32 e_lane_cfg2; 7391 u32 f_lane_cfg1; 7392 u32 f_lane_cfg2; 7393 u32 mps10_preemphasis; 7394 u32 mps10_driver_current; 7395 u32 mps25_preemphasis; 7396 u32 mps25_driver_current; 7397 u32 pci_id; 7398 u32 pci_subsys_id; 7399 u32 bar; 7400 u32 mps10_txfir_main; 7401 u32 mps10_txfir_post; 7402 u32 mps25_txfir_main; 7403 u32 mps25_txfir_post; 7404 u32 manufacture_ver; 7405 u32 manufacture_time; 7406 u32 led_global_settings; 7407 u32 generic_cont1; 7408 u32 mbi_version; 7409 u32 mbi_date; 7410 u32 misc_sig; 7411 u32 device_capabilities; 7412 #define NVM_CFG1_GLOB_DEVICE_CAPABILITIES_ETHERNET 0x1 7413 #define NVM_CFG1_GLOB_DEVICE_CAPABILITIES_ISCSI 0x4 7414 #define NVM_CFG1_GLOB_DEVICE_CAPABILITIES_ROCE 0x8 7415 u32 power_dissipated; 7416 u32 power_consumed; 7417 u32 efi_version; 7418 u32 multi_network_modes_capability; 7419 u32 reserved[41]; 7420 }; 7421 7422 struct nvm_cfg1_path { 7423 u32 reserved[30]; 7424 }; 7425 7426 struct nvm_cfg1_port { 7427 u32 reserved__m_relocated_to_option_123; 7428 u32 reserved__m_relocated_to_option_124; 7429 u32 generic_cont0; 7430 #define NVM_CFG1_PORT_DCBX_MODE_MASK 0x000F0000 7431 #define NVM_CFG1_PORT_DCBX_MODE_OFFSET 16 7432 #define NVM_CFG1_PORT_DCBX_MODE_DISABLED 0x0 7433 #define NVM_CFG1_PORT_DCBX_MODE_IEEE 0x1 7434 #define NVM_CFG1_PORT_DCBX_MODE_CEE 0x2 7435 #define NVM_CFG1_PORT_DCBX_MODE_DYNAMIC 0x3 7436 #define NVM_CFG1_PORT_DEFAULT_ENABLED_PROTOCOLS_MASK 0x00F00000 7437 #define NVM_CFG1_PORT_DEFAULT_ENABLED_PROTOCOLS_OFFSET 20 7438 #define NVM_CFG1_PORT_DEFAULT_ENABLED_PROTOCOLS_ETHERNET 0x1 7439 #define NVM_CFG1_PORT_DEFAULT_ENABLED_PROTOCOLS_FCOE 0x2 7440 #define NVM_CFG1_PORT_DEFAULT_ENABLED_PROTOCOLS_ISCSI 0x4 7441 u32 pcie_cfg; 7442 u32 features; 7443 u32 speed_cap_mask; 7444 #define NVM_CFG1_PORT_DRV_SPEED_CAPABILITY_MASK_MASK 0x0000FFFF 7445 #define NVM_CFG1_PORT_DRV_SPEED_CAPABILITY_MASK_OFFSET 0 7446 #define NVM_CFG1_PORT_DRV_SPEED_CAPABILITY_MASK_1G 0x1 7447 #define NVM_CFG1_PORT_DRV_SPEED_CAPABILITY_MASK_10G 0x2 7448 #define NVM_CFG1_PORT_DRV_SPEED_CAPABILITY_MASK_25G 0x8 7449 #define NVM_CFG1_PORT_DRV_SPEED_CAPABILITY_MASK_40G 0x10 7450 #define NVM_CFG1_PORT_DRV_SPEED_CAPABILITY_MASK_50G 0x20 7451 #define NVM_CFG1_PORT_DRV_SPEED_CAPABILITY_MASK_BB_100G 0x40 7452 u32 link_settings; 7453 #define NVM_CFG1_PORT_DRV_LINK_SPEED_MASK 0x0000000F 7454 #define NVM_CFG1_PORT_DRV_LINK_SPEED_OFFSET 0 7455 #define NVM_CFG1_PORT_DRV_LINK_SPEED_AUTONEG 0x0 7456 #define NVM_CFG1_PORT_DRV_LINK_SPEED_1G 0x1 7457 #define NVM_CFG1_PORT_DRV_LINK_SPEED_10G 0x2 7458 #define NVM_CFG1_PORT_DRV_LINK_SPEED_25G 0x4 7459 #define NVM_CFG1_PORT_DRV_LINK_SPEED_40G 0x5 7460 #define NVM_CFG1_PORT_DRV_LINK_SPEED_50G 0x6 7461 #define NVM_CFG1_PORT_DRV_LINK_SPEED_BB_100G 0x7 7462 #define NVM_CFG1_PORT_DRV_LINK_SPEED_SMARTLINQ 0x8 7463 #define NVM_CFG1_PORT_DRV_FLOW_CONTROL_MASK 0x00000070 7464 #define NVM_CFG1_PORT_DRV_FLOW_CONTROL_OFFSET 4 7465 #define NVM_CFG1_PORT_DRV_FLOW_CONTROL_AUTONEG 0x1 7466 #define NVM_CFG1_PORT_DRV_FLOW_CONTROL_RX 0x2 7467 #define NVM_CFG1_PORT_DRV_FLOW_CONTROL_TX 0x4 7468 u32 phy_cfg; 7469 u32 mgmt_traffic; 7470 u32 ext_phy; 7471 u32 mba_cfg1; 7472 u32 mba_cfg2; 7473 u32 vf_cfg; 7474 struct nvm_cfg_mac_address lldp_mac_address; 7475 u32 led_port_settings; 7476 u32 transceiver_00; 7477 u32 device_ids; 7478 u32 board_cfg; 7479 u32 mnm_10g_cap; 7480 u32 mnm_10g_ctrl; 7481 u32 mnm_10g_misc; 7482 u32 mnm_25g_cap; 7483 u32 mnm_25g_ctrl; 7484 u32 mnm_25g_misc; 7485 u32 mnm_40g_cap; 7486 u32 mnm_40g_ctrl; 7487 u32 mnm_40g_misc; 7488 u32 mnm_50g_cap; 7489 u32 mnm_50g_ctrl; 7490 u32 mnm_50g_misc; 7491 u32 mnm_100g_cap; 7492 u32 mnm_100g_ctrl; 7493 u32 mnm_100g_misc; 7494 u32 reserved[116]; 7495 }; 7496 7497 struct nvm_cfg1_func { 7498 struct nvm_cfg_mac_address mac_address; 7499 u32 rsrv1; 7500 u32 rsrv2; 7501 u32 device_id; 7502 u32 cmn_cfg; 7503 u32 pci_cfg; 7504 struct nvm_cfg_mac_address fcoe_node_wwn_mac_addr; 7505 struct nvm_cfg_mac_address fcoe_port_wwn_mac_addr; 7506 u32 preboot_generic_cfg; 7507 u32 reserved[8]; 7508 }; 7509 7510 struct nvm_cfg1 { 7511 struct nvm_cfg1_glob glob; 7512 struct nvm_cfg1_path path[MCP_GLOB_PATH_MAX]; 7513 struct nvm_cfg1_port port[MCP_GLOB_PORT_MAX]; 7514 struct nvm_cfg1_func func[MCP_GLOB_FUNC_MAX]; 7515 }; 7516 #endif 7517