1 /*- 2 * SPDX-License-Identifier: GPL-2.0 or Linux-OpenIB 3 * 4 * Copyright (c) 2015 - 2021 Intel Corporation 5 * 6 * This software is available to you under a choice of one of two 7 * licenses. You may choose to be licensed under the terms of the GNU 8 * General Public License (GPL) Version 2, available from the file 9 * COPYING in the main directory of this source tree, or the 10 * OpenFabrics.org BSD license below: 11 * 12 * Redistribution and use in source and binary forms, with or 13 * without modification, are permitted provided that the following 14 * conditions are met: 15 * 16 * - Redistributions of source code must retain the above 17 * copyright notice, this list of conditions and the following 18 * disclaimer. 19 * 20 * - Redistributions in binary form must reproduce the above 21 * copyright notice, this list of conditions and the following 22 * disclaimer in the documentation and/or other materials 23 * provided with the distribution. 24 * 25 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, 26 * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF 27 * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND 28 * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS 29 * BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN 30 * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN 31 * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 32 * SOFTWARE. 33 */ 34 /*$FreeBSD$*/ 35 36 #ifndef IRDMA_DEFS_H 37 #define IRDMA_DEFS_H 38 39 #define IRDMA_FIRST_USER_QP_ID 3 40 41 #define ECN_CODE_PT_MASK 3 42 #define ECN_CODE_PT_VAL 2 43 44 #define IRDMA_PUSH_OFFSET (8 * 1024 * 1024) 45 #define IRDMA_PF_FIRST_PUSH_PAGE_INDEX 16 46 #define IRDMA_PF_BAR_RSVD (60 * 1024) 47 48 #define IRDMA_PE_DB_SIZE_4M 1 49 #define IRDMA_PE_DB_SIZE_8M 2 50 51 #define IRDMA_DDP_VER 1 52 #define IRDMA_RDMAP_VER 1 53 54 #define IRDMA_RDMA_MODE_RDMAC 0 55 #define IRDMA_RDMA_MODE_IETF 1 56 57 #define IRDMA_STAG_STATE_INVALID 0 58 #define IRDMA_STAG_STATE_VALID 1 59 #define IRDMA_STAG_TYPE_SHARED 0 60 #define IRDMA_STAG_TYPE_NONSHARED 1 61 62 #define QS_HANDLE_UNKNOWN 0xffff 63 #define USER_PRI_UNKNOWN 0xff 64 65 #define IRDMA_INVALID_WQE_INDEX 0xffffffff 66 67 #define IRDMA_CQP_SW_SQSIZE_8 8 68 #define IRDMA_CQP_SW_SQSIZE_16 16 69 #define IRDMA_CQP_SW_SQSIZE_32 32 70 #define IRDMA_CQP_SW_SQSIZE_64 64 71 #define IRDMA_CQP_SW_SQSIZE_128 128 72 #define IRDMA_CQP_SW_SQSIZE_256 256 73 #define IRDMA_CQP_SW_SQSIZE_512 512 74 #define IRDMA_CQP_SW_SQSIZE_1024 1024 75 76 #define IRDMA_CQP_HW_SQSIZE_4 1 77 #define IRDMA_CQP_HW_SQSIZE_8 2 78 #define IRDMA_CQP_HW_SQSIZE_16 3 79 #define IRDMA_CQP_HW_SQSIZE_32 4 80 #define IRDMA_CQP_HW_SQSIZE_64 5 81 #define IRDMA_CQP_HW_SQSIZE_128 6 82 #define IRDMA_CQP_HW_SQSIZE_256 7 83 #define IRDMA_CQP_HW_SQSIZE_512 8 84 #define IRDMA_CQP_HW_SQSIZE_1024 9 85 #define IRDMA_CQP_HW_SQSIZE_2048 10 86 87 /* WQE size considering 32 bytes per WQE*/ 88 #define IRDMAQP_SW_WQSIZE_8 8 /* 256 bytes */ 89 #define IRDMAQP_SW_WQSIZE_16 16 /* 512 bytes */ 90 #define IRDMAQP_SW_WQSIZE_32 32 /* 1024 bytes */ 91 #define IRDMAQP_SW_WQSIZE_64 64 /* 2048 bytes */ 92 #define IRDMAQP_SW_WQSIZE_128 128 /* 4096 bytes */ 93 #define IRDMAQP_SW_WQSIZE_256 256 /* 8192 bytes */ 94 #define IRDMAQP_SW_WQSIZE_512 512 /* 16384 bytes */ 95 #define IRDMAQP_SW_WQSIZE_1024 1024 /* 32768 bytes */ 96 #define IRDMAQP_SW_WQSIZE_2048 2048 /* 65536 bytes */ 97 #define IRDMAQP_SW_WQSIZE_4096 4096 /* 131072 bytes */ 98 #define IRDMAQP_SW_WQSIZE_8192 8192 /* 262144 bytes */ 99 #define IRDMAQP_SW_WQSIZE_16384 16384 /* 524288 bytes */ 100 #define IRDMAQP_SW_WQSIZE_32768 32768 /* 1048576 bytes */ 101 102 #define IRDMAQP_HW_WQSIZE_8 1 103 #define IRDMAQP_HW_WQSIZE_16 2 104 #define IRDMAQP_HW_WQSIZE_32 3 105 #define IRDMAQP_HW_WQSIZE_64 4 106 #define IRDMAQP_HW_WQSIZE_128 5 107 #define IRDMAQP_HW_WQSIZE_256 6 108 #define IRDMAQP_HW_WQSIZE_512 7 109 #define IRDMAQP_HW_WQSIZE_1024 8 110 #define IRDMAQP_HW_WQSIZE_2048 9 111 #define IRDMAQP_HW_WQSIZE_4096 10 112 #define IRDMAQP_HW_WQSIZE_8192 11 113 #define IRDMAQP_HW_WQSIZE_16384 12 114 #define IRDMAQP_HW_WQSIZE_32768 13 115 116 #define IRDMA_IRD_HW_SIZE_4 0 117 #define IRDMA_IRD_HW_SIZE_16 1 118 #define IRDMA_IRD_HW_SIZE_64 2 119 #define IRDMA_IRD_HW_SIZE_128 3 120 #define IRDMA_IRD_HW_SIZE_256 4 121 122 enum irdma_protocol_used { 123 IRDMA_ANY_PROTOCOL = 0, 124 IRDMA_IWARP_PROTOCOL_ONLY = 1, 125 IRDMA_ROCE_PROTOCOL_ONLY = 2, 126 }; 127 128 #define IRDMA_QP_STATE_INVALID 0 129 #define IRDMA_QP_STATE_IDLE 1 130 #define IRDMA_QP_STATE_RTS 2 131 #define IRDMA_QP_STATE_CLOSING 3 132 #define IRDMA_QP_STATE_SQD 3 133 #define IRDMA_QP_STATE_RTR 4 134 #define IRDMA_QP_STATE_TERMINATE 5 135 #define IRDMA_QP_STATE_ERROR 6 136 137 #define IRDMA_MAX_USER_PRIORITY 8 138 #define IRDMA_DSCP_NUM_VAL 64 139 #define IRDMA_MAX_TRAFFIC_CLASS 8 140 #define IRDMA_MAX_STATS_COUNT 128 141 #define IRDMA_FIRST_NON_PF_STAT 4 142 143 #define IRDMA_MIN_MTU_IPV4 576 144 #define IRDMA_MIN_MTU_IPV6 1280 145 #define IRDMA_MTU_TO_MSS_IPV4 40 146 #define IRDMA_MTU_TO_MSS_IPV6 60 147 #define IRDMA_DEFAULT_MTU 1500 148 149 #define Q2_FPSN_OFFSET 64 150 #define TERM_DDP_LEN_TAGGED 14 151 #define TERM_DDP_LEN_UNTAGGED 18 152 #define TERM_RDMA_LEN 28 153 #define RDMA_OPCODE_M 0x0f 154 #define RDMA_READ_REQ_OPCODE 1 155 #define Q2_BAD_FRAME_OFFSET 72 156 #define CQE_MAJOR_DRV 0x8000 157 158 #define IRDMA_TERM_SENT 1 159 #define IRDMA_TERM_RCVD 2 160 #define IRDMA_TERM_DONE 4 161 #define IRDMA_MAC_HLEN 14 162 #define IRDMA_BYTE_0 0 163 #define IRDMA_BYTE_8 8 164 #define IRDMA_BYTE_16 16 165 #define IRDMA_BYTE_24 24 166 #define IRDMA_BYTE_32 32 167 #define IRDMA_BYTE_40 40 168 #define IRDMA_BYTE_48 48 169 #define IRDMA_BYTE_56 56 170 #define IRDMA_BYTE_64 64 171 #define IRDMA_BYTE_72 72 172 #define IRDMA_BYTE_80 80 173 #define IRDMA_BYTE_88 88 174 #define IRDMA_BYTE_96 96 175 #define IRDMA_BYTE_104 104 176 #define IRDMA_BYTE_112 112 177 #define IRDMA_BYTE_120 120 178 #define IRDMA_BYTE_128 128 179 #define IRDMA_BYTE_136 136 180 #define IRDMA_BYTE_144 144 181 #define IRDMA_BYTE_152 152 182 #define IRDMA_BYTE_160 160 183 #define IRDMA_BYTE_168 168 184 #define IRDMA_BYTE_176 176 185 #define IRDMA_BYTE_184 184 186 #define IRDMA_BYTE_192 192 187 #define IRDMA_BYTE_200 200 188 #define IRDMA_BYTE_208 208 189 #define IRDMA_BYTE_216 216 190 191 #define IRDMA_CQP_WAIT_POLL_REGS 1 192 #define IRDMA_CQP_WAIT_POLL_CQ 2 193 #define IRDMA_CQP_WAIT_EVENT 3 194 195 #define IRDMA_AE_SOURCE_RSVD 0x0 196 #define IRDMA_AE_SOURCE_RQ 0x1 197 #define IRDMA_AE_SOURCE_RQ_0011 0x3 198 199 #define IRDMA_AE_SOURCE_CQ 0x2 200 #define IRDMA_AE_SOURCE_CQ_0110 0x6 201 #define IRDMA_AE_SOURCE_CQ_1010 0xa 202 #define IRDMA_AE_SOURCE_CQ_1110 0xe 203 204 #define IRDMA_AE_SOURCE_SQ 0x5 205 #define IRDMA_AE_SOURCE_SQ_0111 0x7 206 207 #define IRDMA_AE_SOURCE_IN_WR 0x9 208 #define IRDMA_AE_SOURCE_IN_RR 0xb 209 #define IRDMA_AE_SOURCE_OUT_RR 0xd 210 #define IRDMA_AE_SOURCE_OUT_RR_1111 0xf 211 212 #define IRDMA_TCP_STATE_NON_EXISTENT 0 213 #define IRDMA_TCP_STATE_CLOSED 1 214 #define IRDMA_TCP_STATE_LISTEN 2 215 #define IRDMA_STATE_SYN_SEND 3 216 #define IRDMA_TCP_STATE_SYN_RECEIVED 4 217 #define IRDMA_TCP_STATE_ESTABLISHED 5 218 #define IRDMA_TCP_STATE_CLOSE_WAIT 6 219 #define IRDMA_TCP_STATE_FIN_WAIT_1 7 220 #define IRDMA_TCP_STATE_CLOSING 8 221 #define IRDMA_TCP_STATE_LAST_ACK 9 222 #define IRDMA_TCP_STATE_FIN_WAIT_2 10 223 #define IRDMA_TCP_STATE_TIME_WAIT 11 224 #define IRDMA_TCP_STATE_RESERVED_1 12 225 #define IRDMA_TCP_STATE_RESERVED_2 13 226 #define IRDMA_TCP_STATE_RESERVED_3 14 227 #define IRDMA_TCP_STATE_RESERVED_4 15 228 229 #define IRDMA_CQP_SW_SQSIZE_4 4 230 #define IRDMA_CQP_SW_SQSIZE_2048 2048 231 232 #define IRDMA_CQ_TYPE_IWARP 1 233 #define IRDMA_CQ_TYPE_ILQ 2 234 #define IRDMA_CQ_TYPE_IEQ 3 235 #define IRDMA_CQ_TYPE_CQP 4 236 237 #define IRDMA_DONE_COUNT 1000 238 #define IRDMA_SLEEP_COUNT 10 239 240 #define IRDMA_UPDATE_SD_BUFF_SIZE 128 241 #define IRDMA_FEATURE_BUF_SIZE (8 * IRDMA_MAX_FEATURES) 242 243 #define IRDMA_MAX_QUANTA_PER_WR 8 244 245 #define IRDMA_QP_SW_MAX_WQ_QUANTA 32768 246 #define IRDMA_QP_SW_MAX_SQ_QUANTA 32768 247 #define IRDMA_QP_SW_MAX_RQ_QUANTA 32768 248 #define IRDMA_MAX_QP_WRS(max_quanta_per_wr) \ 249 ((IRDMA_QP_SW_MAX_WQ_QUANTA - IRDMA_SQ_RSVD) / (max_quanta_per_wr)) 250 251 #define IRDMAQP_TERM_SEND_TERM_AND_FIN 0 252 #define IRDMAQP_TERM_SEND_TERM_ONLY 1 253 #define IRDMAQP_TERM_SEND_FIN_ONLY 2 254 #define IRDMAQP_TERM_DONOT_SEND_TERM_OR_FIN 3 255 256 #define IRDMA_QP_TYPE_IWARP 1 257 #define IRDMA_QP_TYPE_UDA 2 258 #define IRDMA_QP_TYPE_ROCE_RC 3 259 #define IRDMA_QP_TYPE_ROCE_UD 4 260 261 #define IRDMA_HW_PAGE_SIZE 4096 262 #define IRDMA_HW_PAGE_SHIFT 12 263 #define IRDMA_CQE_QTYPE_RQ 0 264 #define IRDMA_CQE_QTYPE_SQ 1 265 266 #define IRDMA_QP_SW_MIN_WQSIZE 8u /* in WRs*/ 267 #define IRDMA_QP_WQE_MIN_SIZE 32 268 #define IRDMA_QP_WQE_MAX_SIZE 256 269 #define IRDMA_QP_WQE_MIN_QUANTA 1 270 #define IRDMA_MAX_RQ_WQE_SHIFT_GEN1 2 271 #define IRDMA_MAX_RQ_WQE_SHIFT_GEN2 3 272 273 #define IRDMA_SQ_RSVD 258 274 #define IRDMA_RQ_RSVD 1 275 276 #define IRDMA_FEATURE_RTS_AE 1ULL 277 #define IRDMA_FEATURE_CQ_RESIZE 2ULL 278 #define IRDMA_FEATURE_RELAX_RQ_ORDER 4ULL 279 #define IRDMAQP_OP_RDMA_WRITE 0x00 280 #define IRDMAQP_OP_RDMA_READ 0x01 281 #define IRDMAQP_OP_RDMA_SEND 0x03 282 #define IRDMAQP_OP_RDMA_SEND_INV 0x04 283 #define IRDMAQP_OP_RDMA_SEND_SOL_EVENT 0x05 284 #define IRDMAQP_OP_RDMA_SEND_SOL_EVENT_INV 0x06 285 #define IRDMAQP_OP_BIND_MW 0x08 286 #define IRDMAQP_OP_FAST_REGISTER 0x09 287 #define IRDMAQP_OP_LOCAL_INVALIDATE 0x0a 288 #define IRDMAQP_OP_RDMA_READ_LOC_INV 0x0b 289 #define IRDMAQP_OP_NOP 0x0c 290 #define IRDMAQP_OP_RDMA_WRITE_SOL 0x0d 291 #define IRDMAQP_OP_GEN_RTS_AE 0x30 292 293 enum irdma_cqp_op_type { 294 IRDMA_OP_CEQ_DESTROY = 1, 295 IRDMA_OP_AEQ_DESTROY = 2, 296 IRDMA_OP_DELETE_ARP_CACHE_ENTRY = 3, 297 IRDMA_OP_MANAGE_APBVT_ENTRY = 4, 298 IRDMA_OP_CEQ_CREATE = 5, 299 IRDMA_OP_AEQ_CREATE = 6, 300 IRDMA_OP_MANAGE_QHASH_TABLE_ENTRY = 7, 301 IRDMA_OP_QP_MODIFY = 8, 302 IRDMA_OP_QP_UPLOAD_CONTEXT = 9, 303 IRDMA_OP_CQ_CREATE = 10, 304 IRDMA_OP_CQ_DESTROY = 11, 305 IRDMA_OP_QP_CREATE = 12, 306 IRDMA_OP_QP_DESTROY = 13, 307 IRDMA_OP_ALLOC_STAG = 14, 308 IRDMA_OP_MR_REG_NON_SHARED = 15, 309 IRDMA_OP_DEALLOC_STAG = 16, 310 IRDMA_OP_MW_ALLOC = 17, 311 IRDMA_OP_QP_FLUSH_WQES = 18, 312 IRDMA_OP_ADD_ARP_CACHE_ENTRY = 19, 313 IRDMA_OP_MANAGE_PUSH_PAGE = 20, 314 IRDMA_OP_UPDATE_PE_SDS = 21, 315 IRDMA_OP_MANAGE_HMC_PM_FUNC_TABLE = 22, 316 IRDMA_OP_SUSPEND = 23, 317 IRDMA_OP_RESUME = 24, 318 IRDMA_OP_MANAGE_VF_PBLE_BP = 25, 319 IRDMA_OP_QUERY_FPM_VAL = 26, 320 IRDMA_OP_COMMIT_FPM_VAL = 27, 321 IRDMA_OP_REQ_CMDS = 28, 322 IRDMA_OP_CMPL_CMDS = 29, 323 IRDMA_OP_AH_CREATE = 30, 324 IRDMA_OP_AH_MODIFY = 31, 325 IRDMA_OP_AH_DESTROY = 32, 326 IRDMA_OP_MC_CREATE = 33, 327 IRDMA_OP_MC_DESTROY = 34, 328 IRDMA_OP_MC_MODIFY = 35, 329 IRDMA_OP_STATS_ALLOCATE = 36, 330 IRDMA_OP_STATS_FREE = 37, 331 IRDMA_OP_STATS_GATHER = 38, 332 IRDMA_OP_WS_ADD_NODE = 39, 333 IRDMA_OP_WS_MODIFY_NODE = 40, 334 IRDMA_OP_WS_DELETE_NODE = 41, 335 IRDMA_OP_WS_FAILOVER_START = 42, 336 IRDMA_OP_WS_FAILOVER_COMPLETE = 43, 337 IRDMA_OP_SET_UP_MAP = 44, 338 IRDMA_OP_GEN_AE = 45, 339 IRDMA_OP_QUERY_RDMA_FEATURES = 46, 340 IRDMA_OP_ALLOC_LOCAL_MAC_ENTRY = 47, 341 IRDMA_OP_ADD_LOCAL_MAC_ENTRY = 48, 342 IRDMA_OP_DELETE_LOCAL_MAC_ENTRY = 49, 343 IRDMA_OP_CQ_MODIFY = 50, 344 345 /* Must be last entry*/ 346 IRDMA_MAX_CQP_OPS = 51, 347 }; 348 349 /* CQP SQ WQES */ 350 #define IRDMA_CQP_OP_CREATE_QP 0 351 #define IRDMA_CQP_OP_MODIFY_QP 0x1 352 #define IRDMA_CQP_OP_DESTROY_QP 0x02 353 #define IRDMA_CQP_OP_CREATE_CQ 0x03 354 #define IRDMA_CQP_OP_MODIFY_CQ 0x04 355 #define IRDMA_CQP_OP_DESTROY_CQ 0x05 356 #define IRDMA_CQP_OP_ALLOC_STAG 0x09 357 #define IRDMA_CQP_OP_REG_MR 0x0a 358 #define IRDMA_CQP_OP_QUERY_STAG 0x0b 359 #define IRDMA_CQP_OP_REG_SMR 0x0c 360 #define IRDMA_CQP_OP_DEALLOC_STAG 0x0d 361 #define IRDMA_CQP_OP_MANAGE_LOC_MAC_TABLE 0x0e 362 #define IRDMA_CQP_OP_MANAGE_ARP 0x0f 363 #define IRDMA_CQP_OP_MANAGE_VF_PBLE_BP 0x10 364 #define IRDMA_CQP_OP_MANAGE_PUSH_PAGES 0x11 365 #define IRDMA_CQP_OP_QUERY_RDMA_FEATURES 0x12 366 #define IRDMA_CQP_OP_UPLOAD_CONTEXT 0x13 367 #define IRDMA_CQP_OP_ALLOCATE_LOC_MAC_TABLE_ENTRY 0x14 368 #define IRDMA_CQP_OP_UPLOAD_CONTEXT 0x13 369 #define IRDMA_CQP_OP_MANAGE_HMC_PM_FUNC_TABLE 0x15 370 #define IRDMA_CQP_OP_CREATE_CEQ 0x16 371 #define IRDMA_CQP_OP_DESTROY_CEQ 0x18 372 #define IRDMA_CQP_OP_CREATE_AEQ 0x19 373 #define IRDMA_CQP_OP_DESTROY_AEQ 0x1b 374 #define IRDMA_CQP_OP_CREATE_ADDR_HANDLE 0x1c 375 #define IRDMA_CQP_OP_MODIFY_ADDR_HANDLE 0x1d 376 #define IRDMA_CQP_OP_DESTROY_ADDR_HANDLE 0x1e 377 #define IRDMA_CQP_OP_UPDATE_PE_SDS 0x1f 378 #define IRDMA_CQP_OP_QUERY_FPM_VAL 0x20 379 #define IRDMA_CQP_OP_COMMIT_FPM_VAL 0x21 380 #define IRDMA_CQP_OP_FLUSH_WQES 0x22 381 /* IRDMA_CQP_OP_GEN_AE is the same value as IRDMA_CQP_OP_FLUSH_WQES */ 382 #define IRDMA_CQP_OP_GEN_AE 0x22 383 #define IRDMA_CQP_OP_MANAGE_APBVT 0x23 384 #define IRDMA_CQP_OP_NOP 0x24 385 #define IRDMA_CQP_OP_MANAGE_QUAD_HASH_TABLE_ENTRY 0x25 386 #define IRDMA_CQP_OP_CREATE_MCAST_GRP 0x26 387 #define IRDMA_CQP_OP_MODIFY_MCAST_GRP 0x27 388 #define IRDMA_CQP_OP_DESTROY_MCAST_GRP 0x28 389 #define IRDMA_CQP_OP_SUSPEND_QP 0x29 390 #define IRDMA_CQP_OP_RESUME_QP 0x2a 391 #define IRDMA_CQP_OP_SHMC_PAGES_ALLOCATED 0x2b 392 #define IRDMA_CQP_OP_WORK_SCHED_NODE 0x2c 393 #define IRDMA_CQP_OP_MANAGE_STATS 0x2d 394 #define IRDMA_CQP_OP_GATHER_STATS 0x2e 395 #define IRDMA_CQP_OP_UP_MAP 0x2f 396 397 /* Async Events codes */ 398 #define IRDMA_AE_AMP_UNALLOCATED_STAG 0x0102 399 #define IRDMA_AE_AMP_INVALID_STAG 0x0103 400 #define IRDMA_AE_AMP_BAD_QP 0x0104 401 #define IRDMA_AE_AMP_BAD_PD 0x0105 402 #define IRDMA_AE_AMP_BAD_STAG_KEY 0x0106 403 #define IRDMA_AE_AMP_BAD_STAG_INDEX 0x0107 404 #define IRDMA_AE_AMP_BOUNDS_VIOLATION 0x0108 405 #define IRDMA_AE_AMP_RIGHTS_VIOLATION 0x0109 406 #define IRDMA_AE_AMP_TO_WRAP 0x010a 407 #define IRDMA_AE_AMP_FASTREG_VALID_STAG 0x010c 408 #define IRDMA_AE_AMP_FASTREG_MW_STAG 0x010d 409 #define IRDMA_AE_AMP_FASTREG_INVALID_RIGHTS 0x010e 410 #define IRDMA_AE_AMP_FASTREG_INVALID_LENGTH 0x0110 411 #define IRDMA_AE_AMP_INVALIDATE_SHARED 0x0111 412 #define IRDMA_AE_AMP_INVALIDATE_NO_REMOTE_ACCESS_RIGHTS 0x0112 413 #define IRDMA_AE_AMP_INVALIDATE_MR_WITH_BOUND_WINDOWS 0x0113 414 #define IRDMA_AE_AMP_MWBIND_VALID_STAG 0x0114 415 #define IRDMA_AE_AMP_MWBIND_OF_MR_STAG 0x0115 416 #define IRDMA_AE_AMP_MWBIND_TO_ZERO_BASED_STAG 0x0116 417 #define IRDMA_AE_AMP_MWBIND_TO_MW_STAG 0x0117 418 #define IRDMA_AE_AMP_MWBIND_INVALID_RIGHTS 0x0118 419 #define IRDMA_AE_AMP_MWBIND_INVALID_BOUNDS 0x0119 420 #define IRDMA_AE_AMP_MWBIND_TO_INVALID_PARENT 0x011a 421 #define IRDMA_AE_AMP_MWBIND_BIND_DISABLED 0x011b 422 #define IRDMA_AE_PRIV_OPERATION_DENIED 0x011c 423 #define IRDMA_AE_AMP_INVALIDATE_TYPE1_MW 0x011d 424 #define IRDMA_AE_AMP_MWBIND_ZERO_BASED_TYPE1_MW 0x011e 425 #define IRDMA_AE_AMP_FASTREG_INVALID_PBL_HPS_CFG 0x011f 426 #define IRDMA_AE_AMP_MWBIND_WRONG_TYPE 0x0120 427 #define IRDMA_AE_AMP_FASTREG_PBLE_MISMATCH 0x0121 428 #define IRDMA_AE_UDA_XMIT_DGRAM_TOO_LONG 0x0132 429 #define IRDMA_AE_UDA_XMIT_BAD_PD 0x0133 430 #define IRDMA_AE_UDA_XMIT_DGRAM_TOO_SHORT 0x0134 431 #define IRDMA_AE_UDA_L4LEN_INVALID 0x0135 432 #define IRDMA_AE_BAD_CLOSE 0x0201 433 #define IRDMA_AE_RDMAP_ROE_BAD_LLP_CLOSE 0x0202 434 #define IRDMA_AE_CQ_OPERATION_ERROR 0x0203 435 #define IRDMA_AE_RDMA_READ_WHILE_ORD_ZERO 0x0205 436 #define IRDMA_AE_STAG_ZERO_INVALID 0x0206 437 #define IRDMA_AE_IB_RREQ_AND_Q1_FULL 0x0207 438 #define IRDMA_AE_IB_INVALID_REQUEST 0x0208 439 #define IRDMA_AE_WQE_UNEXPECTED_OPCODE 0x020a 440 #define IRDMA_AE_WQE_INVALID_PARAMETER 0x020b 441 #define IRDMA_AE_WQE_INVALID_FRAG_DATA 0x020c 442 #define IRDMA_AE_IB_REMOTE_ACCESS_ERROR 0x020d 443 #define IRDMA_AE_IB_REMOTE_OP_ERROR 0x020e 444 #define IRDMA_AE_WQE_LSMM_TOO_LONG 0x0220 445 #define IRDMA_AE_DDP_INVALID_MSN_GAP_IN_MSN 0x0301 446 #define IRDMA_AE_DDP_UBE_DDP_MESSAGE_TOO_LONG_FOR_AVAILABLE_BUFFER 0x0303 447 #define IRDMA_AE_DDP_UBE_INVALID_DDP_VERSION 0x0304 448 #define IRDMA_AE_DDP_UBE_INVALID_MO 0x0305 449 #define IRDMA_AE_DDP_UBE_INVALID_MSN_NO_BUFFER_AVAILABLE 0x0306 450 #define IRDMA_AE_DDP_UBE_INVALID_QN 0x0307 451 #define IRDMA_AE_DDP_NO_L_BIT 0x0308 452 #define IRDMA_AE_RDMAP_ROE_INVALID_RDMAP_VERSION 0x0311 453 #define IRDMA_AE_RDMAP_ROE_UNEXPECTED_OPCODE 0x0312 454 #define IRDMA_AE_ROE_INVALID_RDMA_READ_REQUEST 0x0313 455 #define IRDMA_AE_ROE_INVALID_RDMA_WRITE_OR_READ_RESP 0x0314 456 #define IRDMA_AE_ROCE_RSP_LENGTH_ERROR 0x0316 457 #define IRDMA_AE_ROCE_EMPTY_MCG 0x0380 458 #define IRDMA_AE_ROCE_BAD_MC_IP_ADDR 0x0381 459 #define IRDMA_AE_ROCE_BAD_MC_QPID 0x0382 460 #define IRDMA_AE_MCG_QP_PROTOCOL_MISMATCH 0x0383 461 #define IRDMA_AE_INVALID_ARP_ENTRY 0x0401 462 #define IRDMA_AE_INVALID_TCP_OPTION_RCVD 0x0402 463 #define IRDMA_AE_STALE_ARP_ENTRY 0x0403 464 #define IRDMA_AE_INVALID_AH_ENTRY 0x0406 465 #define IRDMA_AE_LLP_CLOSE_COMPLETE 0x0501 466 #define IRDMA_AE_LLP_CONNECTION_RESET 0x0502 467 #define IRDMA_AE_LLP_FIN_RECEIVED 0x0503 468 #define IRDMA_AE_LLP_RECEIVED_MARKER_AND_LENGTH_FIELDS_DONT_MATCH 0x0504 469 #define IRDMA_AE_LLP_RECEIVED_MPA_CRC_ERROR 0x0505 470 #define IRDMA_AE_LLP_SEGMENT_TOO_SMALL 0x0507 471 #define IRDMA_AE_LLP_SYN_RECEIVED 0x0508 472 #define IRDMA_AE_LLP_TERMINATE_RECEIVED 0x0509 473 #define IRDMA_AE_LLP_TOO_MANY_RETRIES 0x050a 474 #define IRDMA_AE_LLP_TOO_MANY_KEEPALIVE_RETRIES 0x050b 475 #define IRDMA_AE_LLP_DOUBT_REACHABILITY 0x050c 476 #define IRDMA_AE_LLP_CONNECTION_ESTABLISHED 0x050e 477 #define IRDMA_AE_RESOURCE_EXHAUSTION 0x0520 478 #define IRDMA_AE_RESET_SENT 0x0601 479 #define IRDMA_AE_TERMINATE_SENT 0x0602 480 #define IRDMA_AE_RESET_NOT_SENT 0x0603 481 #define IRDMA_AE_LCE_QP_CATASTROPHIC 0x0700 482 #define IRDMA_AE_LCE_FUNCTION_CATASTROPHIC 0x0701 483 #define IRDMA_AE_LCE_CQ_CATASTROPHIC 0x0702 484 #define IRDMA_AE_QP_SUSPEND_COMPLETE 0x0900 485 486 #ifndef LS_64_1 487 #define LS_64_1(val, bits) ((u64)(uintptr_t)(val) << (bits)) 488 #define RS_64_1(val, bits) ((u64)(uintptr_t)(val) >> (bits)) 489 #define LS_32_1(val, bits) ((u32)((val) << (bits))) 490 #define RS_32_1(val, bits) ((u32)((val) >> (bits))) 491 #endif 492 #define LS_64(val, field) (((u64)(val) << field ## _S) & (field ## _M)) 493 #define RS_64(val, field) ((u64)((val) & field ## _M) >> field ## _S) 494 #define LS_32(val, field) (((val) << field ## _S) & (field ## _M)) 495 #define RS_32(val, field) (((val) & field ## _M) >> field ## _S) 496 497 #define FLD_LS_64(dev, val, field) \ 498 (((u64)(val) << (dev)->hw_shifts[field ## _S]) & (dev)->hw_masks[field ## _M]) 499 #define FLD_RS_64(dev, val, field) \ 500 ((u64)((val) & (dev)->hw_masks[field ## _M]) >> (dev)->hw_shifts[field ## _S]) 501 #define FLD_LS_32(dev, val, field) \ 502 (((val) << (dev)->hw_shifts[field ## _S]) & (dev)->hw_masks[field ## _M]) 503 #define FLD_RS_32(dev, val, field) \ 504 ((u64)((val) & (dev)->hw_masks[field ## _M]) >> (dev)->hw_shifts[field ## _S]) 505 506 #define IRDMA_MAX_STATS_16 0xffffULL 507 #define IRDMA_MAX_STATS_24 0xffffffULL 508 #define IRDMA_MAX_STATS_32 0xffffffffULL 509 #define IRDMA_MAX_STATS_48 0xffffffffffffULL 510 #define IRDMA_MAX_STATS_56 0xffffffffffffffULL 511 #define IRDMA_MAX_STATS_64 0xffffffffffffffffULL 512 513 #define IRDMA_MAX_CQ_READ_THRESH 0x3FFFF 514 /* ILQ CQP hash table fields */ 515 #define IRDMA_CQPSQ_QHASH_VLANID_S 32 516 #define IRDMA_CQPSQ_QHASH_VLANID_M \ 517 ((u64)0xfff << IRDMA_CQPSQ_QHASH_VLANID_S) 518 519 #define IRDMA_CQPSQ_QHASH_QPN_S 32 520 #define IRDMA_CQPSQ_QHASH_QPN_M \ 521 ((u64)0x3ffff << IRDMA_CQPSQ_QHASH_QPN_S) 522 523 #define IRDMA_CQPSQ_QHASH_QS_HANDLE_S 0 524 #define IRDMA_CQPSQ_QHASH_QS_HANDLE_M ((u64)0x3ff << IRDMA_CQPSQ_QHASH_QS_HANDLE_S) 525 526 #define IRDMA_CQPSQ_QHASH_SRC_PORT_S 16 527 #define IRDMA_CQPSQ_QHASH_SRC_PORT_M \ 528 ((u64)0xffff << IRDMA_CQPSQ_QHASH_SRC_PORT_S) 529 530 #define IRDMA_CQPSQ_QHASH_DEST_PORT_S 0 531 #define IRDMA_CQPSQ_QHASH_DEST_PORT_M \ 532 ((u64)0xffff << IRDMA_CQPSQ_QHASH_DEST_PORT_S) 533 534 #define IRDMA_CQPSQ_QHASH_ADDR0_S 32 535 #define IRDMA_CQPSQ_QHASH_ADDR0_M \ 536 ((u64)0xffffffff << IRDMA_CQPSQ_QHASH_ADDR0_S) 537 538 #define IRDMA_CQPSQ_QHASH_ADDR1_S 0 539 #define IRDMA_CQPSQ_QHASH_ADDR1_M \ 540 ((u64)0xffffffff << IRDMA_CQPSQ_QHASH_ADDR1_S) 541 542 #define IRDMA_CQPSQ_QHASH_ADDR2_S 32 543 #define IRDMA_CQPSQ_QHASH_ADDR2_M \ 544 ((u64)0xffffffff << IRDMA_CQPSQ_QHASH_ADDR2_S) 545 546 #define IRDMA_CQPSQ_QHASH_ADDR3_S 0 547 #define IRDMA_CQPSQ_QHASH_ADDR3_M \ 548 ((u64)0xffffffff << IRDMA_CQPSQ_QHASH_ADDR3_S) 549 550 #define IRDMA_CQPSQ_QHASH_WQEVALID_S 63 551 #define IRDMA_CQPSQ_QHASH_WQEVALID_M \ 552 BIT_ULL(IRDMA_CQPSQ_QHASH_WQEVALID_S) 553 #define IRDMA_CQPSQ_QHASH_OPCODE_S 32 554 #define IRDMA_CQPSQ_QHASH_OPCODE_M \ 555 ((u64)0x3f << IRDMA_CQPSQ_QHASH_OPCODE_S) 556 557 #define IRDMA_CQPSQ_QHASH_MANAGE_S 61 558 #define IRDMA_CQPSQ_QHASH_MANAGE_M \ 559 ((u64)0x3 << IRDMA_CQPSQ_QHASH_MANAGE_S) 560 561 #define IRDMA_CQPSQ_QHASH_IPV4VALID_S 60 562 #define IRDMA_CQPSQ_QHASH_IPV4VALID_M \ 563 BIT_ULL(IRDMA_CQPSQ_QHASH_IPV4VALID_S) 564 565 #define IRDMA_CQPSQ_QHASH_VLANVALID_S 59 566 #define IRDMA_CQPSQ_QHASH_VLANVALID_M \ 567 BIT_ULL(IRDMA_CQPSQ_QHASH_VLANVALID_S) 568 569 #define IRDMA_CQPSQ_QHASH_ENTRYTYPE_S 42 570 #define IRDMA_CQPSQ_QHASH_ENTRYTYPE_M \ 571 ((u64)0x7 << IRDMA_CQPSQ_QHASH_ENTRYTYPE_S) 572 573 /* Stats */ 574 #define IRDMA_CQPSQ_STATS_WQEVALID_S 63 575 #define IRDMA_CQPSQ_STATS_WQEVALID_M \ 576 BIT_ULL(IRDMA_CQPSQ_STATS_WQEVALID_S) 577 578 #define IRDMA_CQPSQ_STATS_ALLOC_INST_S 62 579 #define IRDMA_CQPSQ_STATS_ALLOC_INST_M \ 580 BIT_ULL(IRDMA_CQPSQ_STATS_ALLOC_INST_S) 581 582 #define IRDMA_CQPSQ_STATS_USE_HMC_FCN_INDEX_S 60 583 #define IRDMA_CQPSQ_STATS_USE_HMC_FCN_INDEX_M \ 584 BIT_ULL(IRDMA_CQPSQ_STATS_USE_HMC_FCN_INDEX_S) 585 586 #define IRDMA_CQPSQ_STATS_USE_INST_S 61 587 #define IRDMA_CQPSQ_STATS_USE_INST_M \ 588 BIT_ULL(IRDMA_CQPSQ_STATS_USE_INST_S) 589 590 #define IRDMA_CQPSQ_STATS_OP_S 32 591 #define IRDMA_CQPSQ_STATS_OP_M \ 592 ((u64)0x3f << IRDMA_CQPSQ_STATS_OP_S) 593 594 #define IRDMA_CQPSQ_STATS_INST_INDEX_S 0 595 #define IRDMA_CQPSQ_STATS_INST_INDEX_M \ 596 ((u64)0x7f << IRDMA_CQPSQ_STATS_INST_INDEX_S) 597 598 #define IRDMA_CQPSQ_STATS_HMC_FCN_INDEX_S 0 599 #define IRDMA_CQPSQ_STATS_HMC_FCN_INDEX_M \ 600 ((u64)0x3f << IRDMA_CQPSQ_STATS_HMC_FCN_INDEX_S) 601 602 /* WS - Work Scheduler */ 603 #define IRDMA_CQPSQ_WS_WQEVALID_S 63 604 #define IRDMA_CQPSQ_WS_WQEVALID_M \ 605 BIT_ULL(IRDMA_CQPSQ_WS_WQEVALID_S) 606 607 #define IRDMA_CQPSQ_WS_NODEOP_S 52 608 #define IRDMA_CQPSQ_WS_NODEOP_M \ 609 ((u64)0x3 << IRDMA_CQPSQ_WS_NODEOP_S) 610 611 #define IRDMA_CQPSQ_WS_ENABLENODE_S 62 612 #define IRDMA_CQPSQ_WS_ENABLENODE_M \ 613 BIT_ULL(IRDMA_CQPSQ_WS_ENABLENODE_S) 614 615 #define IRDMA_CQPSQ_WS_NODETYPE_S 61 616 #define IRDMA_CQPSQ_WS_NODETYPE_M \ 617 BIT_ULL(IRDMA_CQPSQ_WS_NODETYPE_S) 618 619 #define IRDMA_CQPSQ_WS_PRIOTYPE_S 59 620 #define IRDMA_CQPSQ_WS_PRIOTYPE_M \ 621 ((u64)0x3 << IRDMA_CQPSQ_WS_PRIOTYPE_S) 622 623 #define IRDMA_CQPSQ_WS_TC_S 56 624 #define IRDMA_CQPSQ_WS_TC_M \ 625 ((u64)0x7 << IRDMA_CQPSQ_WS_TC_S) 626 627 #define IRDMA_CQPSQ_WS_VMVFTYPE_S 54 628 #define IRDMA_CQPSQ_WS_VMVFTYPE_M \ 629 ((u64)0x3 << IRDMA_CQPSQ_WS_VMVFTYPE_S) 630 631 #define IRDMA_CQPSQ_WS_VMVFNUM_S 42 632 #define IRDMA_CQPSQ_WS_VMVFNUM_M \ 633 ((u64)0x3ff << IRDMA_CQPSQ_WS_VMVFNUM_S) 634 635 #define IRDMA_CQPSQ_WS_OP_S 32 636 #define IRDMA_CQPSQ_WS_OP_M \ 637 ((u64)0x3f << IRDMA_CQPSQ_WS_OP_S) 638 639 #define IRDMA_CQPSQ_WS_PARENTID_S 16 640 #define IRDMA_CQPSQ_WS_PARENTID_M \ 641 ((u64)0x3ff << IRDMA_CQPSQ_WS_PARENTID_S) 642 643 #define IRDMA_CQPSQ_WS_NODEID_S 0 644 #define IRDMA_CQPSQ_WS_NODEID_M \ 645 ((u64)0x3ff << IRDMA_CQPSQ_WS_NODEID_S) 646 647 #define IRDMA_CQPSQ_WS_VSI_S 48 648 #define IRDMA_CQPSQ_WS_VSI_M \ 649 ((u64)0x3ff << IRDMA_CQPSQ_WS_VSI_S) 650 651 #define IRDMA_CQPSQ_WS_WEIGHT_S 32 652 #define IRDMA_CQPSQ_WS_WEIGHT_M \ 653 ((u64)0x7f << IRDMA_CQPSQ_WS_WEIGHT_S) 654 655 /* UP to UP mapping */ 656 #define IRDMA_CQPSQ_UP_WQEVALID_S 63 657 #define IRDMA_CQPSQ_UP_WQEVALID_M \ 658 BIT_ULL(IRDMA_CQPSQ_UP_WQEVALID_S) 659 660 #define IRDMA_CQPSQ_UP_USEVLAN_S 62 661 #define IRDMA_CQPSQ_UP_USEVLAN_M \ 662 BIT_ULL(IRDMA_CQPSQ_UP_USEVLAN_S) 663 664 #define IRDMA_CQPSQ_UP_USEOVERRIDE_S 61 665 #define IRDMA_CQPSQ_UP_USEOVERRIDE_M \ 666 BIT_ULL(IRDMA_CQPSQ_UP_USEOVERRIDE_S) 667 668 #define IRDMA_CQPSQ_UP_OP_S 32 669 #define IRDMA_CQPSQ_UP_OP_M \ 670 ((u64)0x3f << IRDMA_CQPSQ_UP_OP_S) 671 672 #define IRDMA_CQPSQ_UP_HMCFCNIDX_S 0 673 #define IRDMA_CQPSQ_UP_HMCFCNIDX_M \ 674 ((u64)0x3f << IRDMA_CQPSQ_UP_HMCFCNIDX_S) 675 676 #define IRDMA_CQPSQ_UP_CNPOVERRIDE_S 32 677 #define IRDMA_CQPSQ_UP_CNPOVERRIDE_M \ 678 ((u64)0x3f << IRDMA_CQPSQ_UP_CNPOVERRIDE_S) 679 680 /* Query RDMA features*/ 681 #define IRDMA_CQPSQ_QUERY_RDMA_FEATURES_WQEVALID_S 63 682 #define IRDMA_CQPSQ_QUERY_RDMA_FEATURES_WQEVALID_M \ 683 BIT_ULL(IRDMA_CQPSQ_QUERY_RDMA_FEATURES_WQEVALID_S) 684 685 #define IRDMA_CQPSQ_QUERY_RDMA_FEATURES_BUF_LEN_S 0 686 #define IRDMA_CQPSQ_QUERY_RDMA_FEATURES_BUF_LEN_M \ 687 ((u64)0xffffffff << IRDMA_CQPSQ_QUERY_RDMA_FEATURES_BUF_LEN_S) 688 689 #define IRDMA_CQPSQ_QUERY_RDMA_FEATURES_OP_S 32 690 #define IRDMA_CQPSQ_QUERY_RDMA_FEATURES_OP_M \ 691 ((u64)0x3f << IRDMA_CQPSQ_QUERY_RDMA_FEATURES_OP_S) 692 693 #define IRDMA_CQPSQ_QUERY_RDMA_FEATURES_HW_MODEL_USED_S 32 694 #define IRDMA_CQPSQ_QUERY_RDMA_FEATURES_HW_MODEL_USED_M \ 695 (0xffffULL << IRDMA_CQPSQ_QUERY_RDMA_FEATURES_HW_MODEL_USED_S) 696 697 #define IRDMA_CQPSQ_QUERY_RDMA_FEATURES_HW_MAJOR_VERSION_S 16 698 #define IRDMA_CQPSQ_QUERY_RDMA_FEATURES_HW_MAJOR_VERSION_M \ 699 (0xffULL << IRDMA_CQPSQ_QUERY_RDMA_FEATURES_HW_MAJOR_VERSION_S) 700 701 #define IRDMA_CQPSQ_QUERY_RDMA_FEATURES_HW_MINOR_VERSION_S 0 702 #define IRDMA_CQPSQ_QUERY_RDMA_FEATURES_HW_MINOR_VERSION_M \ 703 (0xffULL << IRDMA_CQPSQ_QUERY_RDMA_FEATURES_HW_MINOR_VERSION_S) 704 705 /* CQP Host Context */ 706 #define IRDMA_CQPHC_SQSIZE_S 8 707 #define IRDMA_CQPHC_SQSIZE_M (0xfULL << IRDMA_CQPHC_SQSIZE_S) 708 709 #define IRDMA_CQPHC_DISABLE_PFPDUS_S 1 710 #define IRDMA_CQPHC_DISABLE_PFPDUS_M BIT_ULL(IRDMA_CQPHC_DISABLE_PFPDUS_S) 711 712 #define IRDMA_CQPHC_ROCEV2_RTO_POLICY_S 2 713 #define IRDMA_CQPHC_ROCEV2_RTO_POLICY_M BIT_ULL(IRDMA_CQPHC_ROCEV2_RTO_POLICY_S) 714 715 #define IRDMA_CQPHC_PROTOCOL_USED_S 3 716 #define IRDMA_CQPHC_PROTOCOL_USED_M (0x3ULL << IRDMA_CQPHC_PROTOCOL_USED_S) 717 718 #define IRDMA_CQPHC_MIN_RATE_S 48 719 #define IRDMA_CQPHC_MIN_RATE_M (0xfULL << IRDMA_CQPHC_MIN_RATE_S) 720 721 #define IRDMA_CQPHC_MIN_DEC_FACTOR_S 56 722 #define IRDMA_CQPHC_MIN_DEC_FACTOR_M (0xfULL << IRDMA_CQPHC_MIN_DEC_FACTOR_S) 723 724 #define IRDMA_CQPHC_DCQCN_T_S 0 725 #define IRDMA_CQPHC_DCQCN_T_M (0xffffULL << IRDMA_CQPHC_DCQCN_T_S) 726 727 #define IRDMA_CQPHC_HAI_FACTOR_S 32 728 #define IRDMA_CQPHC_HAI_FACTOR_M \ 729 (0xffffULL << IRDMA_CQPHC_HAI_FACTOR_S) 730 731 #define IRDMA_CQPHC_RAI_FACTOR_S 48 732 #define IRDMA_CQPHC_RAI_FACTOR_M \ 733 (0xffffULL << IRDMA_CQPHC_RAI_FACTOR_S) 734 735 #define IRDMA_CQPHC_DCQCN_B_S 0 736 #define IRDMA_CQPHC_DCQCN_B_M (0x1ffffffULL << IRDMA_CQPHC_DCQCN_B_S) 737 738 #define IRDMA_CQPHC_DCQCN_F_S 25 739 #define IRDMA_CQPHC_DCQCN_F_M (0x7ULL << IRDMA_CQPHC_DCQCN_F_S) 740 741 #define IRDMA_CQPHC_CC_CFG_VALID_S 31 742 #define IRDMA_CQPHC_CC_CFG_VALID_M BIT_ULL(IRDMA_CQPHC_CC_CFG_VALID_S) 743 744 #define IRDMA_CQPHC_RREDUCE_MPERIOD_S 32 745 #define IRDMA_CQPHC_RREDUCE_MPERIOD_M \ 746 (0xffffffffULL << IRDMA_CQPHC_RREDUCE_MPERIOD_S) 747 748 #define IRDMA_CQPHC_HW_MINVER_S 0 749 #define IRDMA_CQPHC_HW_MINVER_M (0xffffULL << IRDMA_CQPHC_HW_MINVER_S) 750 751 #define IRDMA_CQPHC_HW_MAJVER_GEN_1 0 752 #define IRDMA_CQPHC_HW_MAJVER_GEN_2 1 753 #define IRDMA_CQPHC_HW_MAJVER_GEN_3 2 754 755 #define IRDMA_CQPHC_HW_MAJVER_S 16 756 #define IRDMA_CQPHC_HW_MAJVER_M (0xffffULL << IRDMA_CQPHC_HW_MAJVER_S) 757 758 #define IRDMA_CQPHC_CEQPERVF_S 32 759 #define IRDMA_CQPHC_CEQPERVF_M (0xffULL << IRDMA_CQPHC_CEQPERVF_S) 760 761 #define IRDMA_CQPHC_EN_REM_ENDPOINT_TRK_S 3 762 #define IRDMA_CQPHC_EN_REM_ENDPOINT_TRK_M BIT_ULL(IRDMA_CQPHC_EN_REM_ENDPOINT_TRK_S) 763 764 #define IRDMA_CQPHC_ENABLED_VFS_S 32 765 #define IRDMA_CQPHC_ENABLED_VFS_M (0x3fULL << IRDMA_CQPHC_ENABLED_VFS_S) 766 767 #define IRDMA_CQPHC_HMC_PROFILE_S 0 768 #define IRDMA_CQPHC_HMC_PROFILE_M (0x7ULL << IRDMA_CQPHC_HMC_PROFILE_S) 769 770 #define IRDMA_CQPHC_SVER_S 24 771 #define IRDMA_CQPHC_SVER_M (0xffULL << IRDMA_CQPHC_SVER_S) 772 773 #define IRDMA_CQPHC_SQBASE_S 9 774 #define IRDMA_CQPHC_SQBASE_M \ 775 (0xfffffffffffffeULL << IRDMA_CQPHC_SQBASE_S) 776 777 #define IRDMA_CQPHC_QPCTX_S 0 778 #define IRDMA_CQPHC_QPCTX_M \ 779 (0xffffffffffffffffULL << IRDMA_CQPHC_QPCTX_S) 780 781 /* iWARP QP Doorbell shadow area */ 782 #define IRDMA_QP_DBSA_HW_SQ_TAIL_S 0 783 #define IRDMA_QP_DBSA_HW_SQ_TAIL_M \ 784 (0x7fffULL << IRDMA_QP_DBSA_HW_SQ_TAIL_S) 785 786 /* Completion Queue Doorbell shadow area */ 787 #define IRDMA_CQ_DBSA_CQEIDX_S 0 788 #define IRDMA_CQ_DBSA_CQEIDX_M (0xfffffULL << IRDMA_CQ_DBSA_CQEIDX_S) 789 790 #define IRDMA_CQ_DBSA_SW_CQ_SELECT_S 0 791 #define IRDMA_CQ_DBSA_SW_CQ_SELECT_M \ 792 (0x3fffULL << IRDMA_CQ_DBSA_SW_CQ_SELECT_S) 793 794 #define IRDMA_CQ_DBSA_ARM_NEXT_S 14 795 #define IRDMA_CQ_DBSA_ARM_NEXT_M BIT_ULL(IRDMA_CQ_DBSA_ARM_NEXT_S) 796 797 #define IRDMA_CQ_DBSA_ARM_NEXT_SE_S 15 798 #define IRDMA_CQ_DBSA_ARM_NEXT_SE_M BIT_ULL(IRDMA_CQ_DBSA_ARM_NEXT_SE_S) 799 800 #define IRDMA_CQ_DBSA_ARM_SEQ_NUM_S 16 801 #define IRDMA_CQ_DBSA_ARM_SEQ_NUM_M \ 802 (0x3ULL << IRDMA_CQ_DBSA_ARM_SEQ_NUM_S) 803 804 /* CQP and iWARP Completion Queue */ 805 #define IRDMA_CQ_QPCTX_S IRDMA_CQPHC_QPCTX_S 806 #define IRDMA_CQ_QPCTX_M IRDMA_CQPHC_QPCTX_M 807 808 #define IRDMA_CCQ_OPRETVAL_S 0 809 #define IRDMA_CCQ_OPRETVAL_M (0xffffffffULL << IRDMA_CCQ_OPRETVAL_S) 810 811 #define IRDMA_CQ_MINERR_S 0 812 #define IRDMA_CQ_MINERR_M (0xffffULL << IRDMA_CQ_MINERR_S) 813 814 #define IRDMA_CQ_MAJERR_S 16 815 #define IRDMA_CQ_MAJERR_M (0xffffULL << IRDMA_CQ_MAJERR_S) 816 817 #define IRDMA_CQ_WQEIDX_S 32 818 #define IRDMA_CQ_WQEIDX_M (0x7fffULL << IRDMA_CQ_WQEIDX_S) 819 820 #define IRDMA_CQ_EXTCQE_S 50 821 #define IRDMA_CQ_EXTCQE_M BIT_ULL(IRDMA_CQ_EXTCQE_S) 822 823 #define IRDMA_OOO_CMPL_S 54 824 #define IRDMA_OOO_CMPL_M BIT_ULL(IRDMA_OOO_CMPL_S) 825 826 #define IRDMA_CQ_ERROR_S 55 827 #define IRDMA_CQ_ERROR_M BIT_ULL(IRDMA_CQ_ERROR_S) 828 829 #define IRDMA_CQ_SQ_S 62 830 #define IRDMA_CQ_SQ_M BIT_ULL(IRDMA_CQ_SQ_S) 831 832 #define IRDMA_CQ_VALID_S 63 833 #define IRDMA_CQ_VALID_M BIT_ULL(IRDMA_CQ_VALID_S) 834 835 #define IRDMA_CQ_IMMVALID_S 62 836 #define IRDMA_CQ_IMMVALID_M BIT_ULL(IRDMA_CQ_IMMVALID_S) 837 838 #define IRDMA_CQ_UDSMACVALID_S 61 839 #define IRDMA_CQ_UDSMACVALID_M BIT_ULL(IRDMA_CQ_UDSMACVALID_S) 840 841 #define IRDMA_CQ_UDVLANVALID_S 60 842 #define IRDMA_CQ_UDVLANVALID_M BIT_ULL(IRDMA_CQ_UDVLANVALID_S) 843 844 #define IRDMA_CQ_UDSMAC_S 0 845 #define IRDMA_CQ_UDSMAC_M (0xffffffffffffULL << IRDMA_CQ_UDSMAC_S) 846 847 #define IRDMA_CQ_UDVLAN_S 48 848 #define IRDMA_CQ_UDVLAN_M (0xffffULL << IRDMA_CQ_UDVLAN_S) 849 850 #define IRDMA_CQ_IMMDATA_S 0 851 #define IRDMA_CQ_IMMDATA_M (0xffffffffffffffffULL << IRDMA_CQ_IMMVALID_S) 852 853 #define IRDMA_CQ_IMMDATALOW32_S 0 854 #define IRDMA_CQ_IMMDATALOW32_M (0xffffffffULL << IRDMA_CQ_IMMDATALOW32_S) 855 856 #define IRDMA_CQ_IMMDATAUP32_S 32 857 #define IRDMA_CQ_IMMDATAUP32_M (0xffffffffULL << IRDMA_CQ_IMMDATAUP32_S) 858 859 #define IRDMACQ_PAYLDLEN_S 0 860 #define IRDMACQ_PAYLDLEN_M (0xffffffffULL << IRDMACQ_PAYLDLEN_S) 861 862 #define IRDMACQ_TCPSEQNUMRTT_S 32 863 #define IRDMACQ_TCPSEQNUMRTT_M (0xffffffffULL << IRDMACQ_TCPSEQNUMRTT_S) 864 865 #define IRDMACQ_INVSTAG_S 0 866 #define IRDMACQ_INVSTAG_M (0xffffffffULL << IRDMACQ_INVSTAG_S) 867 868 #define IRDMACQ_QPID_S 32 869 #define IRDMACQ_QPID_M (0xffffffULL << IRDMACQ_QPID_S) 870 871 #define IRDMACQ_UDSRCQPN_S 0 872 #define IRDMACQ_UDSRCQPN_M (0xffffffffULL << IRDMACQ_UDSRCQPN_S) 873 874 #define IRDMACQ_PSHDROP_S 51 875 #define IRDMACQ_PSHDROP_M BIT_ULL(IRDMACQ_PSHDROP_S) 876 877 #define IRDMACQ_STAG_S 53 878 #define IRDMACQ_STAG_M BIT_ULL(IRDMACQ_STAG_S) 879 880 #define IRDMACQ_IPV4_S 53 881 #define IRDMACQ_IPV4_M BIT_ULL(IRDMACQ_IPV4_S) 882 883 #define IRDMACQ_SOEVENT_S 54 884 #define IRDMACQ_SOEVENT_M BIT_ULL(IRDMACQ_SOEVENT_S) 885 886 #define IRDMACQ_OP_S 56 887 #define IRDMACQ_OP_M (0x3fULL << IRDMACQ_OP_S) 888 889 /* CEQE format */ 890 #define IRDMA_CEQE_CQCTX_S 0 891 #define IRDMA_CEQE_CQCTX_M \ 892 (0x7fffffffffffffffULL << IRDMA_CEQE_CQCTX_S) 893 894 #define IRDMA_CEQE_VALID_S 63 895 #define IRDMA_CEQE_VALID_M BIT_ULL(IRDMA_CEQE_VALID_S) 896 897 /* AEQE format */ 898 #define IRDMA_AEQE_COMPCTX_S IRDMA_CQPHC_QPCTX_S 899 #define IRDMA_AEQE_COMPCTX_M IRDMA_CQPHC_QPCTX_M 900 901 #define IRDMA_AEQE_QPCQID_LOW_S 0 902 #define IRDMA_AEQE_QPCQID_LOW_M (0x3ffffULL << IRDMA_AEQE_QPCQID_LOW_S) 903 904 #define IRDMA_AEQE_QPCQID_HI_S 46 905 #define IRDMA_AEQE_QPCQID_HI_M BIT_ULL(IRDMA_AEQE_QPCQID_HI_S) 906 907 #define IRDMA_AEQE_WQDESCIDX_S 18 908 #define IRDMA_AEQE_WQDESCIDX_M (0x7fffULL << IRDMA_AEQE_WQDESCIDX_S) 909 910 #define IRDMA_AEQE_OVERFLOW_S 33 911 #define IRDMA_AEQE_OVERFLOW_M BIT_ULL(IRDMA_AEQE_OVERFLOW_S) 912 913 #define IRDMA_AEQE_AECODE_S 34 914 #define IRDMA_AEQE_AECODE_M (0xfffULL << IRDMA_AEQE_AECODE_S) 915 916 #define IRDMA_AEQE_AESRC_S 50 917 #define IRDMA_AEQE_AESRC_M (0xfULL << IRDMA_AEQE_AESRC_S) 918 919 #define IRDMA_AEQE_IWSTATE_S 54 920 #define IRDMA_AEQE_IWSTATE_M (0x7ULL << IRDMA_AEQE_IWSTATE_S) 921 922 #define IRDMA_AEQE_TCPSTATE_S 57 923 #define IRDMA_AEQE_TCPSTATE_M (0xfULL << IRDMA_AEQE_TCPSTATE_S) 924 925 #define IRDMA_AEQE_Q2DATA_S 61 926 #define IRDMA_AEQE_Q2DATA_M (0x3ULL << IRDMA_AEQE_Q2DATA_S) 927 928 #define IRDMA_AEQE_VALID_S 63 929 #define IRDMA_AEQE_VALID_M BIT_ULL(IRDMA_AEQE_VALID_S) 930 931 #define IRDMA_UDA_QPSQ_NEXT_HDR_S 16 932 #define IRDMA_UDA_QPSQ_NEXT_HDR_M ((u64)0xff << IRDMA_UDA_QPSQ_NEXT_HDR_S) 933 934 #define IRDMA_UDA_QPSQ_OPCODE_S 32 935 #define IRDMA_UDA_QPSQ_OPCODE_M ((u64)0x3f << IRDMA_UDA_QPSQ_OPCODE_S) 936 937 #define IRDMA_UDA_QPSQ_L4LEN_S 42 938 #define IRDMA_UDA_QPSQ_L4LEN_M ((u64)0xf << IRDMA_UDA_QPSQ_L4LEN_S) 939 940 #define IRDMA_GEN1_UDA_QPSQ_L4LEN_S 24 941 #define IRDMA_GEN1_UDA_QPSQ_L4LEN_M ((u64)0xf << IRDMA_GEN1_UDA_QPSQ_L4LEN_S) 942 943 #define IRDMA_UDA_QPSQ_AHIDX_S 0 944 #define IRDMA_UDA_QPSQ_AHIDX_M ((u64)0x1ffff << IRDMA_UDA_QPSQ_AHIDX_S) 945 946 #define IRDMA_UDA_QPSQ_VALID_S 63 947 #define IRDMA_UDA_QPSQ_VALID_M \ 948 BIT_ULL(IRDMA_UDA_QPSQ_VALID_S) 949 950 #define IRDMA_UDA_QPSQ_SIGCOMPL_S 62 951 #define IRDMA_UDA_QPSQ_SIGCOMPL_M BIT_ULL(IRDMA_UDA_QPSQ_SIGCOMPL_S) 952 953 #define IRDMA_UDA_QPSQ_MACLEN_S 56 954 #define IRDMA_UDA_QPSQ_MACLEN_M \ 955 ((u64)0x7f << IRDMA_UDA_QPSQ_MACLEN_S) 956 957 #define IRDMA_UDA_QPSQ_IPLEN_S 48 958 #define IRDMA_UDA_QPSQ_IPLEN_M \ 959 ((u64)0x7f << IRDMA_UDA_QPSQ_IPLEN_S) 960 961 #define IRDMA_UDA_QPSQ_L4T_S 30 962 #define IRDMA_UDA_QPSQ_L4T_M \ 963 ((u64)0x3 << IRDMA_UDA_QPSQ_L4T_S) 964 965 #define IRDMA_UDA_QPSQ_IIPT_S 28 966 #define IRDMA_UDA_QPSQ_IIPT_M \ 967 ((u64)0x3 << IRDMA_UDA_QPSQ_IIPT_S) 968 969 #define IRDMA_UDA_PAYLOADLEN_S 0 970 #define IRDMA_UDA_PAYLOADLEN_M ((u64)0x3fff << IRDMA_UDA_PAYLOADLEN_S) 971 972 #define IRDMA_UDA_HDRLEN_S 16 973 #define IRDMA_UDA_HDRLEN_M ((u64)0x1ff << IRDMA_UDA_HDRLEN_S) 974 975 #define IRDMA_VLAN_TAG_VALID_S 50 976 #define IRDMA_VLAN_TAG_VALID_M BIT_ULL(IRDMA_VLAN_TAG_VALID_S) 977 978 #define IRDMA_UDA_L3PROTO_S 0 979 #define IRDMA_UDA_L3PROTO_M ((u64)0x3 << IRDMA_UDA_L3PROTO_S) 980 981 #define IRDMA_UDA_L4PROTO_S 16 982 #define IRDMA_UDA_L4PROTO_M ((u64)0x3 << IRDMA_UDA_L4PROTO_S) 983 984 #define IRDMA_UDA_QPSQ_DOLOOPBACK_S 44 985 #define IRDMA_UDA_QPSQ_DOLOOPBACK_M \ 986 BIT_ULL(IRDMA_UDA_QPSQ_DOLOOPBACK_S) 987 988 /* CQP SQ WQE common fields */ 989 #define IRDMA_CQPSQ_BUFSIZE_S 0 990 #define IRDMA_CQPSQ_BUFSIZE_M (0xffffffffULL << IRDMA_CQPSQ_BUFSIZE_S) 991 992 #define IRDMA_CQPSQ_OPCODE_S 32 993 #define IRDMA_CQPSQ_OPCODE_M (0x3fULL << IRDMA_CQPSQ_OPCODE_S) 994 995 #define IRDMA_CQPSQ_WQEVALID_S 63 996 #define IRDMA_CQPSQ_WQEVALID_M BIT_ULL(IRDMA_CQPSQ_WQEVALID_S) 997 998 #define IRDMA_CQPSQ_TPHVAL_S 0 999 #define IRDMA_CQPSQ_TPHVAL_M (0xffULL << IRDMA_CQPSQ_TPHVAL_S) 1000 1001 #define IRDMA_CQPSQ_VSIIDX_S 8 1002 #define IRDMA_CQPSQ_VSIIDX_M (0x3ffULL << IRDMA_CQPSQ_VSIIDX_S) 1003 1004 #define IRDMA_CQPSQ_TPHEN_S 60 1005 #define IRDMA_CQPSQ_TPHEN_M BIT_ULL(IRDMA_CQPSQ_TPHEN_S) 1006 1007 #define IRDMA_CQPSQ_PBUFADDR_S IRDMA_CQPHC_QPCTX_S 1008 #define IRDMA_CQPSQ_PBUFADDR_M IRDMA_CQPHC_QPCTX_M 1009 1010 /* Create/Modify/Destroy QP */ 1011 1012 #define IRDMA_CQPSQ_QP_NEWMSS_S 32 1013 #define IRDMA_CQPSQ_QP_NEWMSS_M (0x3fffULL << IRDMA_CQPSQ_QP_NEWMSS_S) 1014 1015 #define IRDMA_CQPSQ_QP_TERMLEN_S 48 1016 #define IRDMA_CQPSQ_QP_TERMLEN_M (0xfULL << IRDMA_CQPSQ_QP_TERMLEN_S) 1017 1018 #define IRDMA_CQPSQ_QP_QPCTX_S IRDMA_CQPHC_QPCTX_S 1019 #define IRDMA_CQPSQ_QP_QPCTX_M IRDMA_CQPHC_QPCTX_M 1020 1021 #define IRDMA_CQPSQ_QP_QPID_S 0 1022 #define IRDMA_CQPSQ_QP_QPID_M (0xFFFFFFUL) 1023 1024 #define IRDMA_CQPSQ_QP_OP_S 32 1025 #define IRDMA_CQPSQ_QP_OP_M IRDMACQ_OP_M 1026 1027 #define IRDMA_CQPSQ_QP_ORDVALID_S 42 1028 #define IRDMA_CQPSQ_QP_ORDVALID_M BIT_ULL(IRDMA_CQPSQ_QP_ORDVALID_S) 1029 1030 #define IRDMA_CQPSQ_QP_TOECTXVALID_S 43 1031 #define IRDMA_CQPSQ_QP_TOECTXVALID_M \ 1032 BIT_ULL(IRDMA_CQPSQ_QP_TOECTXVALID_S) 1033 1034 #define IRDMA_CQPSQ_QP_CACHEDVARVALID_S 44 1035 #define IRDMA_CQPSQ_QP_CACHEDVARVALID_M \ 1036 BIT_ULL(IRDMA_CQPSQ_QP_CACHEDVARVALID_S) 1037 1038 #define IRDMA_CQPSQ_QP_VQ_S 45 1039 #define IRDMA_CQPSQ_QP_VQ_M BIT_ULL(IRDMA_CQPSQ_QP_VQ_S) 1040 1041 #define IRDMA_CQPSQ_QP_FORCELOOPBACK_S 46 1042 #define IRDMA_CQPSQ_QP_FORCELOOPBACK_M \ 1043 BIT_ULL(IRDMA_CQPSQ_QP_FORCELOOPBACK_S) 1044 1045 #define IRDMA_CQPSQ_QP_CQNUMVALID_S 47 1046 #define IRDMA_CQPSQ_QP_CQNUMVALID_M \ 1047 BIT_ULL(IRDMA_CQPSQ_QP_CQNUMVALID_S) 1048 1049 #define IRDMA_CQPSQ_QP_QPTYPE_S 48 1050 #define IRDMA_CQPSQ_QP_QPTYPE_M (0x7ULL << IRDMA_CQPSQ_QP_QPTYPE_S) 1051 1052 #define IRDMA_CQPSQ_QP_MACVALID_S 51 1053 #define IRDMA_CQPSQ_QP_MACVALID_M BIT_ULL(IRDMA_CQPSQ_QP_MACVALID_S) 1054 1055 #define IRDMA_CQPSQ_QP_MSSCHANGE_S 52 1056 #define IRDMA_CQPSQ_QP_MSSCHANGE_M BIT_ULL(IRDMA_CQPSQ_QP_MSSCHANGE_S) 1057 1058 #define IRDMA_CQPSQ_QP_IGNOREMWBOUND_S 54 1059 #define IRDMA_CQPSQ_QP_IGNOREMWBOUND_M \ 1060 BIT_ULL(IRDMA_CQPSQ_QP_IGNOREMWBOUND_S) 1061 1062 #define IRDMA_CQPSQ_QP_REMOVEHASHENTRY_S 55 1063 #define IRDMA_CQPSQ_QP_REMOVEHASHENTRY_M \ 1064 BIT_ULL(IRDMA_CQPSQ_QP_REMOVEHASHENTRY_S) 1065 1066 #define IRDMA_CQPSQ_QP_TERMACT_S 56 1067 #define IRDMA_CQPSQ_QP_TERMACT_M (0x3ULL << IRDMA_CQPSQ_QP_TERMACT_S) 1068 1069 #define IRDMA_CQPSQ_QP_RESETCON_S 58 1070 #define IRDMA_CQPSQ_QP_RESETCON_M BIT_ULL(IRDMA_CQPSQ_QP_RESETCON_S) 1071 1072 #define IRDMA_CQPSQ_QP_ARPTABIDXVALID_S 59 1073 #define IRDMA_CQPSQ_QP_ARPTABIDXVALID_M \ 1074 BIT_ULL(IRDMA_CQPSQ_QP_ARPTABIDXVALID_S) 1075 1076 #define IRDMA_CQPSQ_QP_NEXTIWSTATE_S 60 1077 #define IRDMA_CQPSQ_QP_NEXTIWSTATE_M \ 1078 (0x7ULL << IRDMA_CQPSQ_QP_NEXTIWSTATE_S) 1079 1080 #define IRDMA_CQPSQ_QP_DBSHADOWADDR_S IRDMA_CQPHC_QPCTX_S 1081 #define IRDMA_CQPSQ_QP_DBSHADOWADDR_M IRDMA_CQPHC_QPCTX_M 1082 1083 /* Create/Modify/Destroy CQ */ 1084 #define IRDMA_CQPSQ_CQ_CQSIZE_S 0 1085 #define IRDMA_CQPSQ_CQ_CQSIZE_M (0x1fffffULL << IRDMA_CQPSQ_CQ_CQSIZE_S) 1086 1087 #define IRDMA_CQPSQ_CQ_CQCTX_S 0 1088 #define IRDMA_CQPSQ_CQ_CQCTX_M \ 1089 (0x7fffffffffffffffULL << IRDMA_CQPSQ_CQ_CQCTX_S) 1090 1091 #define IRDMA_CQPSQ_CQ_SHADOW_READ_THRESHOLD_S 0 1092 #define IRDMA_CQPSQ_CQ_SHADOW_READ_THRESHOLD_M \ 1093 (0x3ffff << IRDMA_CQPSQ_CQ_SHADOW_READ_THRESHOLD_S) 1094 1095 #define IRDMA_CQPSQ_CQ_OP_S 32 1096 #define IRDMA_CQPSQ_CQ_OP_M (0x3fULL << IRDMA_CQPSQ_CQ_OP_S) 1097 1098 #define IRDMA_CQPSQ_CQ_CQRESIZE_S 43 1099 #define IRDMA_CQPSQ_CQ_CQRESIZE_M BIT_ULL(IRDMA_CQPSQ_CQ_CQRESIZE_S) 1100 1101 #define IRDMA_CQPSQ_CQ_LPBLSIZE_S 44 1102 #define IRDMA_CQPSQ_CQ_LPBLSIZE_M (3ULL << IRDMA_CQPSQ_CQ_LPBLSIZE_S) 1103 1104 #define IRDMA_CQPSQ_CQ_CHKOVERFLOW_S 46 1105 #define IRDMA_CQPSQ_CQ_CHKOVERFLOW_M \ 1106 BIT_ULL(IRDMA_CQPSQ_CQ_CHKOVERFLOW_S) 1107 1108 #define IRDMA_CQPSQ_CQ_VIRTMAP_S 47 1109 #define IRDMA_CQPSQ_CQ_VIRTMAP_M BIT_ULL(IRDMA_CQPSQ_CQ_VIRTMAP_S) 1110 1111 #define IRDMA_CQPSQ_CQ_ENCEQEMASK_S 48 1112 #define IRDMA_CQPSQ_CQ_ENCEQEMASK_M \ 1113 BIT_ULL(IRDMA_CQPSQ_CQ_ENCEQEMASK_S) 1114 1115 #define IRDMA_CQPSQ_CQ_CEQIDVALID_S 49 1116 #define IRDMA_CQPSQ_CQ_CEQIDVALID_M \ 1117 BIT_ULL(IRDMA_CQPSQ_CQ_CEQIDVALID_S) 1118 1119 #define IRDMA_CQPSQ_CQ_AVOIDMEMCNFLCT_S 61 1120 #define IRDMA_CQPSQ_CQ_AVOIDMEMCNFLCT_M \ 1121 BIT_ULL(IRDMA_CQPSQ_CQ_AVOIDMEMCNFLCT_S) 1122 1123 #define IRDMA_CQPSQ_CQ_FIRSTPMPBLIDX_S 0 1124 #define IRDMA_CQPSQ_CQ_FIRSTPMPBLIDX_M \ 1125 (0xfffffffULL << IRDMA_CQPSQ_CQ_FIRSTPMPBLIDX_S) 1126 1127 /* Allocate/Register/Register Shared/Deallocate Stag */ 1128 #define IRDMA_CQPSQ_STAG_VA_FBO_S IRDMA_CQPHC_QPCTX_S 1129 #define IRDMA_CQPSQ_STAG_VA_FBO_M IRDMA_CQPHC_QPCTX_M 1130 1131 #define IRDMA_CQPSQ_STAG_STAGLEN_S 0 1132 #define IRDMA_CQPSQ_STAG_STAGLEN_M \ 1133 (0x3fffffffffffULL << IRDMA_CQPSQ_STAG_STAGLEN_S) 1134 1135 #define IRDMA_CQPSQ_STAG_KEY_S 0 1136 #define IRDMA_CQPSQ_STAG_KEY_M (0xffULL << IRDMA_CQPSQ_STAG_KEY_S) 1137 1138 #define IRDMA_CQPSQ_STAG_IDX_S 8 1139 #define IRDMA_CQPSQ_STAG_IDX_M (0xffffffULL << IRDMA_CQPSQ_STAG_IDX_S) 1140 1141 #define IRDMA_CQPSQ_STAG_PARENTSTAGIDX_S 32 1142 #define IRDMA_CQPSQ_STAG_PARENTSTAGIDX_M \ 1143 (0xffffffULL << IRDMA_CQPSQ_STAG_PARENTSTAGIDX_S) 1144 1145 #define IRDMA_CQPSQ_STAG_MR_S 43 1146 #define IRDMA_CQPSQ_STAG_MR_M BIT_ULL(IRDMA_CQPSQ_STAG_MR_S) 1147 1148 #define IRDMA_CQPSQ_STAG_MWTYPE_S 42 1149 #define IRDMA_CQPSQ_STAG_MWTYPE_M BIT_ULL(IRDMA_CQPSQ_STAG_MWTYPE_S) 1150 1151 #define IRDMA_CQPSQ_STAG_MW1_BIND_DONT_VLDT_KEY_S 58 1152 #define IRDMA_CQPSQ_STAG_MW1_BIND_DONT_VLDT_KEY_M \ 1153 BIT_ULL(IRDMA_CQPSQ_STAG_MW1_BIND_DONT_VLDT_KEY_S) 1154 1155 #define IRDMA_CQPSQ_STAG_LPBLSIZE_S IRDMA_CQPSQ_CQ_LPBLSIZE_S 1156 #define IRDMA_CQPSQ_STAG_LPBLSIZE_M IRDMA_CQPSQ_CQ_LPBLSIZE_M 1157 1158 #define IRDMA_CQPSQ_STAG_HPAGESIZE_S 46 1159 #define IRDMA_CQPSQ_STAG_HPAGESIZE_M \ 1160 ((u64)3 << IRDMA_CQPSQ_STAG_HPAGESIZE_S) 1161 1162 #define IRDMA_CQPSQ_STAG_ARIGHTS_S 48 1163 #define IRDMA_CQPSQ_STAG_ARIGHTS_M \ 1164 (0x1fULL << IRDMA_CQPSQ_STAG_ARIGHTS_S) 1165 1166 #define IRDMA_CQPSQ_STAG_REMACCENABLED_S 53 1167 #define IRDMA_CQPSQ_STAG_REMACCENABLED_M \ 1168 BIT_ULL(IRDMA_CQPSQ_STAG_REMACCENABLED_S) 1169 1170 #define IRDMA_CQPSQ_STAG_VABASEDTO_S 59 1171 #define IRDMA_CQPSQ_STAG_VABASEDTO_M \ 1172 BIT_ULL(IRDMA_CQPSQ_STAG_VABASEDTO_S) 1173 1174 #define IRDMA_CQPSQ_STAG_USEHMCFNIDX_S 60 1175 #define IRDMA_CQPSQ_STAG_USEHMCFNIDX_M \ 1176 BIT_ULL(IRDMA_CQPSQ_STAG_USEHMCFNIDX_S) 1177 1178 #define IRDMA_CQPSQ_STAG_USEPFRID_S 61 1179 #define IRDMA_CQPSQ_STAG_USEPFRID_M \ 1180 BIT_ULL(IRDMA_CQPSQ_STAG_USEPFRID_S) 1181 1182 #define IRDMA_CQPSQ_STAG_PBA_S IRDMA_CQPHC_QPCTX_S 1183 #define IRDMA_CQPSQ_STAG_PBA_M IRDMA_CQPHC_QPCTX_M 1184 1185 #define IRDMA_CQPSQ_STAG_HMCFNIDX_S 0 1186 #define IRDMA_CQPSQ_STAG_HMCFNIDX_M \ 1187 (0x3fULL << IRDMA_CQPSQ_STAG_HMCFNIDX_S) 1188 1189 #define IRDMA_CQPSQ_STAG_FIRSTPMPBLIDX_S 0 1190 #define IRDMA_CQPSQ_STAG_FIRSTPMPBLIDX_M \ 1191 (0xfffffffULL << IRDMA_CQPSQ_STAG_FIRSTPMPBLIDX_S) 1192 1193 #define IRDMA_CQPSQ_QUERYSTAG_IDX_S IRDMA_CQPSQ_STAG_IDX_S 1194 #define IRDMA_CQPSQ_QUERYSTAG_IDX_M IRDMA_CQPSQ_STAG_IDX_M 1195 1196 /* Manage Local MAC Table - MLM */ 1197 #define IRDMA_CQPSQ_MLM_TABLEIDX_S 0 1198 #define IRDMA_CQPSQ_MLM_TABLEIDX_M \ 1199 (0x3fULL << IRDMA_CQPSQ_MLM_TABLEIDX_S) 1200 1201 #define IRDMA_CQPSQ_MLM_FREEENTRY_S 62 1202 #define IRDMA_CQPSQ_MLM_FREEENTRY_M \ 1203 BIT_ULL(IRDMA_CQPSQ_MLM_FREEENTRY_S) 1204 1205 #define IRDMA_CQPSQ_MLM_IGNORE_REF_CNT_S 61 1206 #define IRDMA_CQPSQ_MLM_IGNORE_REF_CNT_M \ 1207 BIT_ULL(IRDMA_CQPSQ_MLM_IGNORE_REF_CNT_S) 1208 1209 #define IRDMA_CQPSQ_MLM_MAC0_S 0 1210 #define IRDMA_CQPSQ_MLM_MAC0_M (0xffULL << IRDMA_CQPSQ_MLM_MAC0_S) 1211 1212 #define IRDMA_CQPSQ_MLM_MAC1_S 8 1213 #define IRDMA_CQPSQ_MLM_MAC1_M (0xffULL << IRDMA_CQPSQ_MLM_MAC1_S) 1214 1215 #define IRDMA_CQPSQ_MLM_MAC2_S 16 1216 #define IRDMA_CQPSQ_MLM_MAC2_M (0xffULL << IRDMA_CQPSQ_MLM_MAC2_S) 1217 1218 #define IRDMA_CQPSQ_MLM_MAC3_S 24 1219 #define IRDMA_CQPSQ_MLM_MAC3_M (0xffULL << IRDMA_CQPSQ_MLM_MAC3_S) 1220 1221 #define IRDMA_CQPSQ_MLM_MAC4_S 32 1222 #define IRDMA_CQPSQ_MLM_MAC4_M (0xffULL << IRDMA_CQPSQ_MLM_MAC4_S) 1223 1224 #define IRDMA_CQPSQ_MLM_MAC5_S 40 1225 #define IRDMA_CQPSQ_MLM_MAC5_M (0xffULL << IRDMA_CQPSQ_MLM_MAC5_S) 1226 1227 /* Manage ARP Table - MAT */ 1228 #define IRDMA_CQPSQ_MAT_REACHMAX_S 0 1229 #define IRDMA_CQPSQ_MAT_REACHMAX_M \ 1230 (0xffffffffULL << IRDMA_CQPSQ_MAT_REACHMAX_S) 1231 1232 #define IRDMA_CQPSQ_MAT_MACADDR_S 0 1233 #define IRDMA_CQPSQ_MAT_MACADDR_M \ 1234 (0xffffffffffffULL << IRDMA_CQPSQ_MAT_MACADDR_S) 1235 1236 #define IRDMA_CQPSQ_MAT_ARPENTRYIDX_S 0 1237 #define IRDMA_CQPSQ_MAT_ARPENTRYIDX_M \ 1238 (0xfffULL << IRDMA_CQPSQ_MAT_ARPENTRYIDX_S) 1239 1240 #define IRDMA_CQPSQ_MAT_ENTRYVALID_S 42 1241 #define IRDMA_CQPSQ_MAT_ENTRYVALID_M \ 1242 BIT_ULL(IRDMA_CQPSQ_MAT_ENTRYVALID_S) 1243 1244 #define IRDMA_CQPSQ_MAT_PERMANENT_S 43 1245 #define IRDMA_CQPSQ_MAT_PERMANENT_M \ 1246 BIT_ULL(IRDMA_CQPSQ_MAT_PERMANENT_S) 1247 1248 #define IRDMA_CQPSQ_MAT_QUERY_S 44 1249 #define IRDMA_CQPSQ_MAT_QUERY_M BIT_ULL(IRDMA_CQPSQ_MAT_QUERY_S) 1250 1251 /* Manage VF PBLE Backing Pages - MVPBP*/ 1252 #define IRDMA_CQPSQ_MVPBP_PD_ENTRY_CNT_S 0 1253 #define IRDMA_CQPSQ_MVPBP_PD_ENTRY_CNT_M \ 1254 (0x3ffULL << IRDMA_CQPSQ_MVPBP_PD_ENTRY_CNT_S) 1255 1256 #define IRDMA_CQPSQ_MVPBP_FIRST_PD_INX_S 16 1257 #define IRDMA_CQPSQ_MVPBP_FIRST_PD_INX_M \ 1258 (0x1ffULL << IRDMA_CQPSQ_MVPBP_FIRST_PD_INX_S) 1259 1260 #define IRDMA_CQPSQ_MVPBP_SD_INX_S 32 1261 #define IRDMA_CQPSQ_MVPBP_SD_INX_M \ 1262 (0xfffULL << IRDMA_CQPSQ_MVPBP_SD_INX_S) 1263 1264 #define IRDMA_CQPSQ_MVPBP_INV_PD_ENT_S 62 1265 #define IRDMA_CQPSQ_MVPBP_INV_PD_ENT_M \ 1266 BIT_ULL(IRDMA_CQPSQ_MVPBP_INV_PD_ENT_S) 1267 1268 #define IRDMA_CQPSQ_MVPBP_PD_PLPBA_S 3 1269 #define IRDMA_CQPSQ_MVPBP_PD_PLPBA_M \ 1270 (0x1fffffffffffffffULL << IRDMA_CQPSQ_MVPBP_PD_PLPBA_S) 1271 1272 /* Manage Push Page - MPP */ 1273 #define IRDMA_INVALID_PUSH_PAGE_INDEX_GEN_1 0xffff 1274 #define IRDMA_INVALID_PUSH_PAGE_INDEX 0xffffffff 1275 1276 #define IRDMA_CQPSQ_MPP_QS_HANDLE_S 0 1277 #define IRDMA_CQPSQ_MPP_QS_HANDLE_M \ 1278 (0x3ffULL << IRDMA_CQPSQ_MPP_QS_HANDLE_S) 1279 1280 #define IRDMA_CQPSQ_MPP_PPIDX_S 0 1281 #define IRDMA_CQPSQ_MPP_PPIDX_M (0x3ffULL << IRDMA_CQPSQ_MPP_PPIDX_S) 1282 1283 #define IRDMA_CQPSQ_MPP_PPTYPE_S 60 1284 #define IRDMA_CQPSQ_MPP_PPTYPE_M (0x3ULL << IRDMA_CQPSQ_MPP_PPTYPE_S) 1285 1286 #define IRDMA_CQPSQ_MPP_FREE_PAGE_S 62 1287 #define IRDMA_CQPSQ_MPP_FREE_PAGE_M BIT_ULL(IRDMA_CQPSQ_MPP_FREE_PAGE_S) 1288 1289 /* Upload Context - UCTX */ 1290 #define IRDMA_CQPSQ_UCTX_QPCTXADDR_S IRDMA_CQPHC_QPCTX_S 1291 #define IRDMA_CQPSQ_UCTX_QPCTXADDR_M IRDMA_CQPHC_QPCTX_M 1292 1293 #define IRDMA_CQPSQ_UCTX_QPID_S 0 1294 #define IRDMA_CQPSQ_UCTX_QPID_M (0xffffffULL << IRDMA_CQPSQ_UCTX_QPID_S) 1295 1296 #define IRDMA_CQPSQ_UCTX_QPTYPE_S 48 1297 #define IRDMA_CQPSQ_UCTX_QPTYPE_M (0xfULL << IRDMA_CQPSQ_UCTX_QPTYPE_S) 1298 1299 #define IRDMA_CQPSQ_UCTX_RAWFORMAT_S 61 1300 #define IRDMA_CQPSQ_UCTX_RAWFORMAT_M \ 1301 BIT_ULL(IRDMA_CQPSQ_UCTX_RAWFORMAT_S) 1302 1303 #define IRDMA_CQPSQ_UCTX_FREEZEQP_S 62 1304 #define IRDMA_CQPSQ_UCTX_FREEZEQP_M \ 1305 BIT_ULL(IRDMA_CQPSQ_UCTX_FREEZEQP_S) 1306 1307 /* Manage HMC PM Function Table - MHMC */ 1308 #define IRDMA_CQPSQ_MHMC_VFIDX_S 0 1309 #define IRDMA_CQPSQ_MHMC_VFIDX_M (0xffffULL << IRDMA_CQPSQ_MHMC_VFIDX_S) 1310 1311 #define IRDMA_CQPSQ_MHMC_FREEPMFN_S 62 1312 #define IRDMA_CQPSQ_MHMC_FREEPMFN_M \ 1313 BIT_ULL(IRDMA_CQPSQ_MHMC_FREEPMFN_S) 1314 1315 /* Set HMC Resource Profile - SHMCRP */ 1316 #define IRDMA_CQPSQ_SHMCRP_HMC_PROFILE_S 0 1317 #define IRDMA_CQPSQ_SHMCRP_HMC_PROFILE_M \ 1318 (0x7ULL << IRDMA_CQPSQ_SHMCRP_HMC_PROFILE_S) 1319 #define IRDMA_CQPSQ_SHMCRP_VFNUM_S 32 1320 #define IRDMA_CQPSQ_SHMCRP_VFNUM_M (0x3fULL << IRDMA_CQPSQ_SHMCRP_VFNUM_S) 1321 1322 /* Create/Destroy CEQ */ 1323 #define IRDMA_CQPSQ_CEQ_CEQSIZE_S 0 1324 #define IRDMA_CQPSQ_CEQ_CEQSIZE_M \ 1325 (0x3fffffULL << IRDMA_CQPSQ_CEQ_CEQSIZE_S) 1326 1327 #define IRDMA_CQPSQ_CEQ_CEQID_S 0 1328 #define IRDMA_CQPSQ_CEQ_CEQID_M (0x3ffULL << IRDMA_CQPSQ_CEQ_CEQID_S) 1329 1330 #define IRDMA_CQPSQ_CEQ_LPBLSIZE_S IRDMA_CQPSQ_CQ_LPBLSIZE_S 1331 #define IRDMA_CQPSQ_CEQ_LPBLSIZE_M IRDMA_CQPSQ_CQ_LPBLSIZE_M 1332 1333 #define IRDMA_CQPSQ_CEQ_VMAP_S 47 1334 #define IRDMA_CQPSQ_CEQ_VMAP_M BIT_ULL(IRDMA_CQPSQ_CEQ_VMAP_S) 1335 1336 #define IRDMA_CQPSQ_CEQ_ITRNOEXPIRE_S 46 1337 #define IRDMA_CQPSQ_CEQ_ITRNOEXPIRE_M BIT_ULL(IRDMA_CQPSQ_CEQ_ITRNOEXPIRE_S) 1338 1339 #define IRDMA_CQPSQ_CEQ_FIRSTPMPBLIDX_S 0 1340 #define IRDMA_CQPSQ_CEQ_FIRSTPMPBLIDX_M \ 1341 (0xfffffffULL << IRDMA_CQPSQ_CEQ_FIRSTPMPBLIDX_S) 1342 1343 /* Create/Destroy AEQ */ 1344 #define IRDMA_CQPSQ_AEQ_AEQECNT_S 0 1345 #define IRDMA_CQPSQ_AEQ_AEQECNT_M \ 1346 (0x7ffffULL << IRDMA_CQPSQ_AEQ_AEQECNT_S) 1347 1348 #define IRDMA_CQPSQ_AEQ_LPBLSIZE_S IRDMA_CQPSQ_CQ_LPBLSIZE_S 1349 #define IRDMA_CQPSQ_AEQ_LPBLSIZE_M IRDMA_CQPSQ_CQ_LPBLSIZE_M 1350 1351 #define IRDMA_CQPSQ_AEQ_VMAP_S 47 1352 #define IRDMA_CQPSQ_AEQ_VMAP_M BIT_ULL(IRDMA_CQPSQ_AEQ_VMAP_S) 1353 1354 #define IRDMA_CQPSQ_AEQ_FIRSTPMPBLIDX_S 0 1355 #define IRDMA_CQPSQ_AEQ_FIRSTPMPBLIDX_M \ 1356 (0xfffffffULL << IRDMA_CQPSQ_AEQ_FIRSTPMPBLIDX_S) 1357 1358 /* Commit FPM Values - CFPM */ 1359 #define IRDMA_COMMIT_FPM_QPCNT_S 0 1360 #define IRDMA_COMMIT_FPM_QPCNT_M (0x7ffffULL << IRDMA_COMMIT_FPM_QPCNT_S) 1361 1362 #define IRDMA_COMMIT_FPM_BASE_S 32 1363 1364 #define IRDMA_CQPSQ_CFPM_HMCFNID_S 0 1365 #define IRDMA_CQPSQ_CFPM_HMCFNID_M (0x3fULL << IRDMA_CQPSQ_CFPM_HMCFNID_S) 1366 1367 /* Flush WQEs - FWQE */ 1368 #define IRDMA_CQPSQ_FWQE_AECODE_S 0 1369 #define IRDMA_CQPSQ_FWQE_AECODE_M (0xffffULL << IRDMA_CQPSQ_FWQE_AECODE_S) 1370 1371 #define IRDMA_CQPSQ_FWQE_AESOURCE_S 16 1372 #define IRDMA_CQPSQ_FWQE_AESOURCE_M \ 1373 (0xfULL << IRDMA_CQPSQ_FWQE_AESOURCE_S) 1374 1375 #define IRDMA_CQPSQ_FWQE_RQMNERR_S 0 1376 #define IRDMA_CQPSQ_FWQE_RQMNERR_M \ 1377 (0xffffULL << IRDMA_CQPSQ_FWQE_RQMNERR_S) 1378 1379 #define IRDMA_CQPSQ_FWQE_RQMJERR_S 16 1380 #define IRDMA_CQPSQ_FWQE_RQMJERR_M \ 1381 (0xffffULL << IRDMA_CQPSQ_FWQE_RQMJERR_S) 1382 1383 #define IRDMA_CQPSQ_FWQE_SQMNERR_S 32 1384 #define IRDMA_CQPSQ_FWQE_SQMNERR_M \ 1385 (0xffffULL << IRDMA_CQPSQ_FWQE_SQMNERR_S) 1386 1387 #define IRDMA_CQPSQ_FWQE_SQMJERR_S 48 1388 #define IRDMA_CQPSQ_FWQE_SQMJERR_M \ 1389 (0xffffULL << IRDMA_CQPSQ_FWQE_SQMJERR_S) 1390 1391 #define IRDMA_CQPSQ_FWQE_QPID_S 0 1392 #define IRDMA_CQPSQ_FWQE_QPID_M (0xffffffULL << IRDMA_CQPSQ_FWQE_QPID_S) 1393 1394 #define IRDMA_CQPSQ_FWQE_GENERATE_AE_S 59 1395 #define IRDMA_CQPSQ_FWQE_GENERATE_AE_M \ 1396 BIT_ULL(IRDMA_CQPSQ_FWQE_GENERATE_AE_S) 1397 1398 #define IRDMA_CQPSQ_FWQE_USERFLCODE_S 60 1399 #define IRDMA_CQPSQ_FWQE_USERFLCODE_M \ 1400 BIT_ULL(IRDMA_CQPSQ_FWQE_USERFLCODE_S) 1401 1402 #define IRDMA_CQPSQ_FWQE_FLUSHSQ_S 61 1403 #define IRDMA_CQPSQ_FWQE_FLUSHSQ_M BIT_ULL(IRDMA_CQPSQ_FWQE_FLUSHSQ_S) 1404 1405 #define IRDMA_CQPSQ_FWQE_FLUSHRQ_S 62 1406 #define IRDMA_CQPSQ_FWQE_FLUSHRQ_M BIT_ULL(IRDMA_CQPSQ_FWQE_FLUSHRQ_S) 1407 1408 /* Manage Accelerated Port Table - MAPT */ 1409 #define IRDMA_CQPSQ_MAPT_PORT_S 0 1410 #define IRDMA_CQPSQ_MAPT_PORT_M (0xffffULL << IRDMA_CQPSQ_MAPT_PORT_S) 1411 1412 #define IRDMA_CQPSQ_MAPT_ADDPORT_S 62 1413 #define IRDMA_CQPSQ_MAPT_ADDPORT_M BIT_ULL(IRDMA_CQPSQ_MAPT_ADDPORT_S) 1414 1415 /* Update Protocol Engine SDs */ 1416 #define IRDMA_CQPSQ_UPESD_SDCMD_S 0 1417 #define IRDMA_CQPSQ_UPESD_SDCMD_M (0xffffffffULL << IRDMA_CQPSQ_UPESD_SDCMD_S) 1418 1419 #define IRDMA_CQPSQ_UPESD_SDDATALOW_S 0 1420 #define IRDMA_CQPSQ_UPESD_SDDATALOW_M \ 1421 (0xffffffffULL << IRDMA_CQPSQ_UPESD_SDDATALOW_S) 1422 1423 #define IRDMA_CQPSQ_UPESD_SDDATAHI_S 32 1424 #define IRDMA_CQPSQ_UPESD_SDDATAHI_M \ 1425 (0xffffffffULL << IRDMA_CQPSQ_UPESD_SDDATAHI_S) 1426 #define IRDMA_CQPSQ_UPESD_HMCFNID_S 0 1427 #define IRDMA_CQPSQ_UPESD_HMCFNID_M \ 1428 (0x3fULL << IRDMA_CQPSQ_UPESD_HMCFNID_S) 1429 1430 #define IRDMA_CQPSQ_UPESD_ENTRY_VALID_S 63 1431 #define IRDMA_CQPSQ_UPESD_ENTRY_VALID_M \ 1432 BIT_ULL(IRDMA_CQPSQ_UPESD_ENTRY_VALID_S) 1433 1434 #define IRDMA_CQPSQ_UPESD_BM_PF 0 1435 #define IRDMA_CQPSQ_UPESD_BM_CP_LM 1 1436 #define IRDMA_CQPSQ_UPESD_BM_AXF 2 1437 #define IRDMA_CQPSQ_UPESD_BM_LM 4 1438 1439 #define IRDMA_CQPSQ_UPESD_BM_S 32 1440 #define IRDMA_CQPSQ_UPESD_BM_M \ 1441 (0x7ULL << IRDMA_CQPSQ_UPESD_BM_S) 1442 1443 #define IRDMA_CQPSQ_UPESD_ENTRY_COUNT_S 0 1444 #define IRDMA_CQPSQ_UPESD_ENTRY_COUNT_M \ 1445 (0xfULL << IRDMA_CQPSQ_UPESD_ENTRY_COUNT_S) 1446 1447 #define IRDMA_CQPSQ_UPESD_SKIP_ENTRY_S 7 1448 #define IRDMA_CQPSQ_UPESD_SKIP_ENTRY_M \ 1449 BIT_ULL(IRDMA_CQPSQ_UPESD_SKIP_ENTRY_S) 1450 1451 /* Suspend QP */ 1452 #define IRDMA_CQPSQ_SUSPENDQP_QPID_S 0 1453 #define IRDMA_CQPSQ_SUSPENDQP_QPID_M (0xFFFFFFULL) 1454 1455 /* Resume QP */ 1456 #define IRDMA_CQPSQ_RESUMEQP_QSHANDLE_S 0 1457 #define IRDMA_CQPSQ_RESUMEQP_QSHANDLE_M \ 1458 (0xffffffffULL << IRDMA_CQPSQ_RESUMEQP_QSHANDLE_S) 1459 1460 #define IRDMA_CQPSQ_RESUMEQP_QPID_S 0 1461 #define IRDMA_CQPSQ_RESUMEQP_QPID_M (0xFFFFFFUL) 1462 1463 #define IRDMA_CQPSQ_MIN_STAG_INVALID 0x0001 1464 #define IRDMA_CQPSQ_MIN_SUSPEND_PND 0x0005 1465 1466 #define IRDMA_CQPSQ_MAJ_NO_ERROR 0x0000 1467 #define IRDMA_CQPSQ_MAJ_OBJCACHE_ERROR 0xF000 1468 #define IRDMA_CQPSQ_MAJ_CNTXTCACHE_ERROR 0xF001 1469 #define IRDMA_CQPSQ_MAJ_ERROR 0xFFFF 1470 1471 /* IW QP Context */ 1472 #define IRDMAQPC_DDP_VER_S 0 1473 #define IRDMAQPC_DDP_VER_M (3ULL << IRDMAQPC_DDP_VER_S) 1474 1475 #define IRDMAQPC_IBRDENABLE_S 2 1476 #define IRDMAQPC_IBRDENABLE_M BIT_ULL(IRDMAQPC_IBRDENABLE_S) 1477 1478 #define IRDMAQPC_IPV4_S 3 1479 #define IRDMAQPC_IPV4_M BIT_ULL(IRDMAQPC_IPV4_S) 1480 1481 #define IRDMAQPC_NONAGLE_S 4 1482 #define IRDMAQPC_NONAGLE_M BIT_ULL(IRDMAQPC_NONAGLE_S) 1483 1484 #define IRDMAQPC_INSERTVLANTAG_S 5 1485 #define IRDMAQPC_INSERTVLANTAG_M BIT_ULL(IRDMAQPC_INSERTVLANTAG_S) 1486 1487 #define IRDMAQPC_ISQP1_S 6 1488 #define IRDMAQPC_ISQP1_M BIT_ULL(IRDMAQPC_ISQP1_S) 1489 1490 #define IRDMAQPC_TIMESTAMP_S 7 1491 #define IRDMAQPC_TIMESTAMP_M BIT_ULL(IRDMAQPC_TIMESTAMP_S) 1492 1493 #define IRDMAQPC_RQWQESIZE_S 8 1494 #define IRDMAQPC_RQWQESIZE_M (3ULL << IRDMAQPC_RQWQESIZE_S) 1495 1496 #define IRDMAQPC_INSERTL2TAG2_S 11 1497 #define IRDMAQPC_INSERTL2TAG2_M BIT_ULL(IRDMAQPC_INSERTL2TAG2_S) 1498 1499 #define IRDMAQPC_LIMIT_S 12 1500 #define IRDMAQPC_LIMIT_M (3ULL << IRDMAQPC_LIMIT_S) 1501 1502 #define IRDMAQPC_ECN_EN_S 14 1503 #define IRDMAQPC_ECN_EN_M BIT_ULL(IRDMAQPC_ECN_EN_S) 1504 1505 #define IRDMAQPC_DROPOOOSEG_S 15 1506 #define IRDMAQPC_DROPOOOSEG_M BIT_ULL(IRDMAQPC_DROPOOOSEG_S) 1507 1508 #define IRDMAQPC_DUPACK_THRESH_S 16 1509 #define IRDMAQPC_DUPACK_THRESH_M (7ULL << IRDMAQPC_DUPACK_THRESH_S) 1510 1511 #define IRDMAQPC_ERR_RQ_IDX_VALID_S 19 1512 #define IRDMAQPC_ERR_RQ_IDX_VALID_M BIT_ULL(IRDMAQPC_ERR_RQ_IDX_VALID_S) 1513 1514 #define IRDMAQPC_DIS_VLAN_CHECKS_S 19 1515 #define IRDMAQPC_DIS_VLAN_CHECKS_M (7ULL << IRDMAQPC_DIS_VLAN_CHECKS_S) 1516 1517 #define IRDMAQPC_DC_TCP_EN_S 25 1518 #define IRDMAQPC_DC_TCP_EN_M BIT_ULL(IRDMAQPC_DC_TCP_EN_S) 1519 1520 #define IRDMAQPC_RCVTPHEN_S 28 1521 #define IRDMAQPC_RCVTPHEN_M BIT_ULL(IRDMAQPC_RCVTPHEN_S) 1522 1523 #define IRDMAQPC_XMITTPHEN_S 29 1524 #define IRDMAQPC_XMITTPHEN_M BIT_ULL(IRDMAQPC_XMITTPHEN_S) 1525 1526 #define IRDMAQPC_RQTPHEN_S 30 1527 #define IRDMAQPC_RQTPHEN_M BIT_ULL(IRDMAQPC_RQTPHEN_S) 1528 1529 #define IRDMAQPC_SQTPHEN_S 31 1530 #define IRDMAQPC_SQTPHEN_M BIT_ULL(IRDMAQPC_SQTPHEN_S) 1531 1532 #define IRDMAQPC_PPIDX_S 32 1533 #define IRDMAQPC_PPIDX_M (0x3ffULL << IRDMAQPC_PPIDX_S) 1534 1535 #define IRDMAQPC_PMENA_S 47 1536 #define IRDMAQPC_PMENA_M BIT_ULL(IRDMAQPC_PMENA_S) 1537 1538 #define IRDMAQPC_RDMAP_VER_S 62 1539 #define IRDMAQPC_RDMAP_VER_M (3ULL << IRDMAQPC_RDMAP_VER_S) 1540 1541 #define IRDMAQPC_ROCE_TVER_S 60 1542 #define IRDMAQPC_ROCE_TVER_M (0x0fULL << IRDMAQPC_ROCE_TVER_S) 1543 1544 #define IRDMAQPC_SQADDR_S IRDMA_CQPHC_QPCTX_S 1545 #define IRDMAQPC_SQADDR_M IRDMA_CQPHC_QPCTX_M 1546 1547 #define IRDMAQPC_RQADDR_S IRDMA_CQPHC_QPCTX_S 1548 #define IRDMAQPC_RQADDR_M IRDMA_CQPHC_QPCTX_M 1549 1550 #define IRDMAQPC_TTL_S 0 1551 #define IRDMAQPC_TTL_M (0xffULL << IRDMAQPC_TTL_S) 1552 1553 #define IRDMAQPC_RQSIZE_S 8 1554 #define IRDMAQPC_RQSIZE_M (0xfULL << IRDMAQPC_RQSIZE_S) 1555 1556 #define IRDMAQPC_SQSIZE_S 12 1557 #define IRDMAQPC_SQSIZE_M (0xfULL << IRDMAQPC_SQSIZE_S) 1558 1559 #define IRDMAQPC_GEN1_SRCMACADDRIDX_S 16 1560 #define IRDMAQPC_GEN1_SRCMACADDRIDX_M (0x3fUL << IRDMAQPC_GEN1_SRCMACADDRIDX_S) 1561 1562 #define IRDMAQPC_AVOIDSTRETCHACK_S 23 1563 #define IRDMAQPC_AVOIDSTRETCHACK_M BIT_ULL(IRDMAQPC_AVOIDSTRETCHACK_S) 1564 1565 #define IRDMAQPC_TOS_S 24 1566 #define IRDMAQPC_TOS_M (0xffULL << IRDMAQPC_TOS_S) 1567 1568 #define IRDMAQPC_SRCPORTNUM_S 32 1569 #define IRDMAQPC_SRCPORTNUM_M (0xffffULL << IRDMAQPC_SRCPORTNUM_S) 1570 1571 #define IRDMAQPC_DESTPORTNUM_S 48 1572 #define IRDMAQPC_DESTPORTNUM_M (0xffffULL << IRDMAQPC_DESTPORTNUM_S) 1573 1574 #define IRDMAQPC_DESTIPADDR0_S 32 1575 #define IRDMAQPC_DESTIPADDR0_M \ 1576 (0xffffffffULL << IRDMAQPC_DESTIPADDR0_S) 1577 1578 #define IRDMAQPC_DESTIPADDR1_S 0 1579 #define IRDMAQPC_DESTIPADDR1_M \ 1580 (0xffffffffULL << IRDMAQPC_DESTIPADDR1_S) 1581 1582 #define IRDMAQPC_DESTIPADDR2_S 32 1583 #define IRDMAQPC_DESTIPADDR2_M \ 1584 (0xffffffffULL << IRDMAQPC_DESTIPADDR2_S) 1585 1586 #define IRDMAQPC_DESTIPADDR3_S 0 1587 #define IRDMAQPC_DESTIPADDR3_M \ 1588 (0xffffffffULL << IRDMAQPC_DESTIPADDR3_S) 1589 1590 #define IRDMAQPC_SNDMSS_S 16 1591 #define IRDMAQPC_SNDMSS_M (0x3fffULL << IRDMAQPC_SNDMSS_S) 1592 1593 #define IRDMAQPC_SYN_RST_HANDLING_S 30 1594 #define IRDMAQPC_SYN_RST_HANDLING_M (0x3ULL << IRDMAQPC_SYN_RST_HANDLING_S) 1595 1596 #define IRDMAQPC_VLANTAG_S 32 1597 #define IRDMAQPC_VLANTAG_M (0xffffULL << IRDMAQPC_VLANTAG_S) 1598 1599 #define IRDMAQPC_ARPIDX_S 48 1600 #define IRDMAQPC_ARPIDX_M (0xffffULL << IRDMAQPC_ARPIDX_S) 1601 1602 #define IRDMAQPC_FLOWLABEL_S 0 1603 #define IRDMAQPC_FLOWLABEL_M (0xfffffULL << IRDMAQPC_FLOWLABEL_S) 1604 1605 #define IRDMAQPC_WSCALE_S 20 1606 #define IRDMAQPC_WSCALE_M BIT_ULL(IRDMAQPC_WSCALE_S) 1607 1608 #define IRDMAQPC_KEEPALIVE_S 21 1609 #define IRDMAQPC_KEEPALIVE_M BIT_ULL(IRDMAQPC_KEEPALIVE_S) 1610 1611 #define IRDMAQPC_IGNORE_TCP_OPT_S 22 1612 #define IRDMAQPC_IGNORE_TCP_OPT_M BIT_ULL(IRDMAQPC_IGNORE_TCP_OPT_S) 1613 1614 #define IRDMAQPC_IGNORE_TCP_UNS_OPT_S 23 1615 #define IRDMAQPC_IGNORE_TCP_UNS_OPT_M \ 1616 BIT_ULL(IRDMAQPC_IGNORE_TCP_UNS_OPT_S) 1617 1618 #define IRDMAQPC_TCPSTATE_S 28 1619 #define IRDMAQPC_TCPSTATE_M (0xfULL << IRDMAQPC_TCPSTATE_S) 1620 1621 #define IRDMAQPC_RCVSCALE_S 32 1622 #define IRDMAQPC_RCVSCALE_M (0xfULL << IRDMAQPC_RCVSCALE_S) 1623 1624 #define IRDMAQPC_SNDSCALE_S 40 1625 #define IRDMAQPC_SNDSCALE_M (0xfULL << IRDMAQPC_SNDSCALE_S) 1626 1627 #define IRDMAQPC_PDIDX_S 48 1628 #define IRDMAQPC_PDIDX_M (0xffffULL << IRDMAQPC_PDIDX_S) 1629 1630 #define IRDMAQPC_PDIDXHI_S 20 1631 #define IRDMAQPC_PDIDXHI_M (0x3ULL << IRDMAQPC_PDIDXHI_S) 1632 1633 #define IRDMAQPC_PKEY_S 32 1634 #define IRDMAQPC_PKEY_M (0xffffULL << IRDMAQPC_PKEY_S) 1635 1636 #define IRDMAQPC_ACKCREDITS_S 20 1637 #define IRDMAQPC_ACKCREDITS_M (0x1fULL << IRDMAQPC_ACKCREDITS_S) 1638 1639 #define IRDMAQPC_QKEY_S 32 1640 #define IRDMAQPC_QKEY_M (0xffffffffULL << IRDMAQPC_QKEY_S) 1641 1642 #define IRDMAQPC_DESTQP_S 0 1643 #define IRDMAQPC_DESTQP_M (0xffffffULL << IRDMAQPC_DESTQP_S) 1644 1645 #define IRDMAQPC_KALIVE_TIMER_MAX_PROBES_S 16 1646 #define IRDMAQPC_KALIVE_TIMER_MAX_PROBES_M \ 1647 (0xffULL << IRDMAQPC_KALIVE_TIMER_MAX_PROBES_S) 1648 1649 #define IRDMAQPC_KEEPALIVE_INTERVAL_S 24 1650 #define IRDMAQPC_KEEPALIVE_INTERVAL_M \ 1651 (0xffULL << IRDMAQPC_KEEPALIVE_INTERVAL_S) 1652 1653 #define IRDMAQPC_TIMESTAMP_RECENT_S 0 1654 #define IRDMAQPC_TIMESTAMP_RECENT_M \ 1655 (0xffffffffULL << IRDMAQPC_TIMESTAMP_RECENT_S) 1656 1657 #define IRDMAQPC_TIMESTAMP_AGE_S 32 1658 #define IRDMAQPC_TIMESTAMP_AGE_M \ 1659 (0xffffffffULL << IRDMAQPC_TIMESTAMP_AGE_S) 1660 1661 #define IRDMAQPC_SNDNXT_S 0 1662 #define IRDMAQPC_SNDNXT_M (0xffffffffULL << IRDMAQPC_SNDNXT_S) 1663 1664 #define IRDMAQPC_ISN_S 32 1665 #define IRDMAQPC_ISN_M (0x00ffffffULL << IRDMAQPC_ISN_S) 1666 1667 #define IRDMAQPC_PSNNXT_S 0 1668 #define IRDMAQPC_PSNNXT_M (0x00ffffffULL << IRDMAQPC_PSNNXT_S) 1669 1670 #define IRDMAQPC_LSN_S 32 1671 #define IRDMAQPC_LSN_M (0x00ffffffULL << IRDMAQPC_LSN_S) 1672 1673 #define IRDMAQPC_SNDWND_S 32 1674 #define IRDMAQPC_SNDWND_M (0xffffffffULL << IRDMAQPC_SNDWND_S) 1675 1676 #define IRDMAQPC_RCVNXT_S 0 1677 #define IRDMAQPC_RCVNXT_M (0xffffffffULL << IRDMAQPC_RCVNXT_S) 1678 1679 #define IRDMAQPC_EPSN_S 0 1680 #define IRDMAQPC_EPSN_M (0x00ffffffULL << IRDMAQPC_EPSN_S) 1681 1682 #define IRDMAQPC_RCVWND_S 32 1683 #define IRDMAQPC_RCVWND_M (0xffffffffULL << IRDMAQPC_RCVWND_S) 1684 1685 #define IRDMAQPC_SNDMAX_S 0 1686 #define IRDMAQPC_SNDMAX_M (0xffffffffULL << IRDMAQPC_SNDMAX_S) 1687 1688 #define IRDMAQPC_SNDUNA_S 32 1689 #define IRDMAQPC_SNDUNA_M (0xffffffffULL << IRDMAQPC_SNDUNA_S) 1690 1691 #define IRDMAQPC_PSNMAX_S 0 1692 #define IRDMAQPC_PSNMAX_M (0x00ffffffULL << IRDMAQPC_PSNMAX_S) 1693 #define IRDMAQPC_PSNUNA_S 32 1694 #define IRDMAQPC_PSNUNA_M (0xffffffULL << IRDMAQPC_PSNUNA_S) 1695 1696 #define IRDMAQPC_SRTT_S 0 1697 #define IRDMAQPC_SRTT_M (0xffffffffULL << IRDMAQPC_SRTT_S) 1698 1699 #define IRDMAQPC_RTTVAR_S 32 1700 #define IRDMAQPC_RTTVAR_M (0xffffffffULL << IRDMAQPC_RTTVAR_S) 1701 1702 #define IRDMAQPC_SSTHRESH_S 0 1703 #define IRDMAQPC_SSTHRESH_M (0xffffffffULL << IRDMAQPC_SSTHRESH_S) 1704 1705 #define IRDMAQPC_CWND_S 32 1706 #define IRDMAQPC_CWND_M (0xffffffffULL << IRDMAQPC_CWND_S) 1707 1708 #define IRDMAQPC_CWNDROCE_S 32 1709 #define IRDMAQPC_CWNDROCE_M (0xffffffULL << IRDMAQPC_CWNDROCE_S) 1710 1711 #define IRDMAQPC_SNDWL1_S 0 1712 #define IRDMAQPC_SNDWL1_M (0xffffffffULL << IRDMAQPC_SNDWL1_S) 1713 1714 #define IRDMAQPC_SNDWL2_S 32 1715 #define IRDMAQPC_SNDWL2_M (0xffffffffULL << IRDMAQPC_SNDWL2_S) 1716 1717 #define IRDMAQPC_ERR_RQ_IDX_S 32 1718 #define IRDMAQPC_ERR_RQ_IDX_M (0x3fffULL << IRDMAQPC_ERR_RQ_IDX_S) 1719 1720 #define IRDMAQPC_RTOMIN_S 57 1721 #define IRDMAQPC_RTOMIN_M (0x7fULL << IRDMAQPC_RTOMIN_S) 1722 1723 #define IRDMAQPC_MAXSNDWND_S 0 1724 #define IRDMAQPC_MAXSNDWND_M (0xffffffffULL << IRDMAQPC_MAXSNDWND_S) 1725 1726 #define IRDMAQPC_REXMIT_THRESH_S 48 1727 #define IRDMAQPC_REXMIT_THRESH_M (0x3fULL << IRDMAQPC_REXMIT_THRESH_S) 1728 1729 #define IRDMAQPC_RNRNAK_THRESH_S 54 1730 #define IRDMAQPC_RNRNAK_THRESH_M (0x7ULL << IRDMAQPC_RNRNAK_THRESH_S) 1731 1732 #define IRDMAQPC_TXCQNUM_S 0 1733 #define IRDMAQPC_TXCQNUM_M (0x7ffffULL << IRDMAQPC_TXCQNUM_S) 1734 1735 #define IRDMAQPC_RXCQNUM_S 32 1736 #define IRDMAQPC_RXCQNUM_M (0x7ffffULL << IRDMAQPC_RXCQNUM_S) 1737 1738 #define IRDMAQPC_STAT_INDEX_S 0 1739 #define IRDMAQPC_STAT_INDEX_M (0x7fULL << IRDMAQPC_STAT_INDEX_S) 1740 1741 #define IRDMAQPC_Q2ADDR_S 8 1742 #define IRDMAQPC_Q2ADDR_M (0xffffffffffffffULL << IRDMAQPC_Q2ADDR_S) 1743 1744 #define IRDMAQPC_LASTBYTESENT_S 0 1745 #define IRDMAQPC_LASTBYTESENT_M (0xffULL << IRDMAQPC_LASTBYTESENT_S) 1746 1747 #define IRDMAQPC_MACADDRESS_S 16 1748 #define IRDMAQPC_MACADDRESS_M (0xffffffffffffULL << IRDMAQPC_MACADDRESS_S) 1749 1750 #define IRDMAQPC_ORDSIZE_S 0 1751 #define IRDMAQPC_ORDSIZE_M (0xffULL << IRDMAQPC_ORDSIZE_S) 1752 1753 #define IRDMAQPC_IRDSIZE_S 16 1754 #define IRDMAQPC_IRDSIZE_M (0x7ULL << IRDMAQPC_IRDSIZE_S) 1755 1756 #define IRDMAQPC_UDPRIVCQENABLE_S 19 1757 #define IRDMAQPC_UDPRIVCQENABLE_M BIT_ULL(IRDMAQPC_UDPRIVCQENABLE_S) 1758 1759 #define IRDMAQPC_WRRDRSPOK_S 20 1760 #define IRDMAQPC_WRRDRSPOK_M BIT_ULL(IRDMAQPC_WRRDRSPOK_S) 1761 1762 #define IRDMAQPC_RDOK_S 21 1763 #define IRDMAQPC_RDOK_M BIT_ULL(IRDMAQPC_RDOK_S) 1764 1765 #define IRDMAQPC_SNDMARKERS_S 22 1766 #define IRDMAQPC_SNDMARKERS_M BIT_ULL(IRDMAQPC_SNDMARKERS_S) 1767 1768 #define IRDMAQPC_DCQCNENABLE_S 22 1769 #define IRDMAQPC_DCQCNENABLE_M BIT_ULL(IRDMAQPC_DCQCNENABLE_S) 1770 1771 #define IRDMAQPC_FW_CC_ENABLE_S 28 1772 #define IRDMAQPC_FW_CC_ENABLE_M BIT_ULL(IRDMAQPC_FW_CC_ENABLE_S) 1773 1774 #define IRDMAQPC_RCVNOICRC_S 31 1775 #define IRDMAQPC_RCVNOICRC_M BIT_ULL(IRDMAQPC_RCVNOICRC_S) 1776 1777 #define IRDMAQPC_BINDEN_S 23 1778 #define IRDMAQPC_BINDEN_M BIT_ULL(IRDMAQPC_BINDEN_S) 1779 1780 #define IRDMAQPC_FASTREGEN_S 24 1781 #define IRDMAQPC_FASTREGEN_M BIT_ULL(IRDMAQPC_FASTREGEN_S) 1782 1783 #define IRDMAQPC_PRIVEN_S 25 1784 #define IRDMAQPC_PRIVEN_M BIT_ULL(IRDMAQPC_PRIVEN_S) 1785 1786 #define IRDMAQPC_TIMELYENABLE_S 27 1787 #define IRDMAQPC_TIMELYENABLE_M BIT_ULL(IRDMAQPC_TIMELYENABLE_S) 1788 1789 #define IRDMAQPC_THIGH_S 52 1790 #define IRDMAQPC_THIGH_M ((u64)0xfff << IRDMAQPC_THIGH_S) 1791 1792 #define IRDMAQPC_TLOW_S 32 1793 #define IRDMAQPC_TLOW_M ((u64)0xFF << IRDMAQPC_TLOW_S) 1794 1795 #define IRDMAQPC_REMENDPOINTIDX_S 0 1796 #define IRDMAQPC_REMENDPOINTIDX_M ((u64)0x1FFFF << IRDMAQPC_REMENDPOINTIDX_S) 1797 1798 #define IRDMAQPC_USESTATSINSTANCE_S 26 1799 #define IRDMAQPC_USESTATSINSTANCE_M BIT_ULL(IRDMAQPC_USESTATSINSTANCE_S) 1800 1801 #define IRDMAQPC_IWARPMODE_S 28 1802 #define IRDMAQPC_IWARPMODE_M BIT_ULL(IRDMAQPC_IWARPMODE_S) 1803 1804 #define IRDMAQPC_RCVMARKERS_S 29 1805 #define IRDMAQPC_RCVMARKERS_M BIT_ULL(IRDMAQPC_RCVMARKERS_S) 1806 1807 #define IRDMAQPC_ALIGNHDRS_S 30 1808 #define IRDMAQPC_ALIGNHDRS_M BIT_ULL(IRDMAQPC_ALIGNHDRS_S) 1809 1810 #define IRDMAQPC_RCVNOMPACRC_S 31 1811 #define IRDMAQPC_RCVNOMPACRC_M BIT_ULL(IRDMAQPC_RCVNOMPACRC_S) 1812 1813 #define IRDMAQPC_RCVMARKOFFSET_S 32 1814 #define IRDMAQPC_RCVMARKOFFSET_M (0x1ffULL << IRDMAQPC_RCVMARKOFFSET_S) 1815 1816 #define IRDMAQPC_SNDMARKOFFSET_S 48 1817 #define IRDMAQPC_SNDMARKOFFSET_M (0x1ffULL << IRDMAQPC_SNDMARKOFFSET_S) 1818 1819 #define IRDMAQPC_QPCOMPCTX_S IRDMA_CQPHC_QPCTX_S 1820 #define IRDMAQPC_QPCOMPCTX_M IRDMA_CQPHC_QPCTX_M 1821 1822 #define IRDMAQPC_SQTPHVAL_S 0 1823 #define IRDMAQPC_SQTPHVAL_M (0xffULL << IRDMAQPC_SQTPHVAL_S) 1824 1825 #define IRDMAQPC_RQTPHVAL_S 8 1826 #define IRDMAQPC_RQTPHVAL_M (0xffULL << IRDMAQPC_RQTPHVAL_S) 1827 1828 #define IRDMAQPC_QSHANDLE_S 16 1829 #define IRDMAQPC_QSHANDLE_M (0x3ffULL << IRDMAQPC_QSHANDLE_S) 1830 1831 #define IRDMAQPC_EXCEPTION_LAN_QUEUE_S 32 1832 #define IRDMAQPC_EXCEPTION_LAN_QUEUE_M \ 1833 (0xfffULL << IRDMAQPC_EXCEPTION_LAN_QUEUE_S) 1834 1835 #define IRDMAQPC_LOCAL_IPADDR3_S 0 1836 #define IRDMAQPC_LOCAL_IPADDR3_M \ 1837 (0xffffffffULL << IRDMAQPC_LOCAL_IPADDR3_S) 1838 1839 #define IRDMAQPC_LOCAL_IPADDR2_S 32 1840 #define IRDMAQPC_LOCAL_IPADDR2_M \ 1841 (0xffffffffULL << IRDMAQPC_LOCAL_IPADDR2_S) 1842 1843 #define IRDMAQPC_LOCAL_IPADDR1_S 0 1844 #define IRDMAQPC_LOCAL_IPADDR1_M \ 1845 (0xffffffffULL << IRDMAQPC_LOCAL_IPADDR1_S) 1846 1847 #define IRDMAQPC_LOCAL_IPADDR0_S 32 1848 #define IRDMAQPC_LOCAL_IPADDR0_M \ 1849 (0xffffffffULL << IRDMAQPC_LOCAL_IPADDR0_S) 1850 1851 #define IRDMA_FW_VER_MINOR_S 0 1852 #define IRDMA_FW_VER_MINOR_M \ 1853 (0xffffULL << IRDMA_FW_VER_MINOR_S) 1854 1855 #define IRDMA_FW_VER_MAJOR_S 16 1856 #define IRDMA_FW_VER_MAJOR_M \ 1857 (0xffffULL << IRDMA_FW_VER_MAJOR_S) 1858 1859 #define IRDMA_FEATURE_INFO_S 0 1860 #define IRDMA_FEATURE_INFO_M \ 1861 (0xffffffffffffULL << IRDMA_FEATURE_INFO_S) 1862 1863 #define IRDMA_FEATURE_CNT_S 32 1864 #define IRDMA_FEATURE_CNT_M \ 1865 (0xffffULL << IRDMA_FEATURE_CNT_S) 1866 1867 #define IRDMA_FEATURE_TYPE_S 48 1868 #define IRDMA_FEATURE_TYPE_M \ 1869 (0xffffULL << IRDMA_FEATURE_TYPE_S) 1870 1871 #define IRDMA_RSVD_S 41 1872 #define IRDMA_RSVD_M (0x7fffULL << IRDMA_RSVD_S) 1873 1874 /* iwarp QP SQ WQE common fields */ 1875 #define IRDMAQPSQ_OPCODE_S 32 1876 #define IRDMAQPSQ_OPCODE_M (0x3fULL << IRDMAQPSQ_OPCODE_S) 1877 1878 #define IRDMAQPSQ_COPY_HOST_PBL_S 43 1879 #define IRDMAQPSQ_COPY_HOST_PBL_M BIT_ULL(IRDMAQPSQ_COPY_HOST_PBL_S) 1880 1881 #define IRDMAQPSQ_ADDFRAGCNT_S 38 1882 #define IRDMAQPSQ_ADDFRAGCNT_M (0xfULL << IRDMAQPSQ_ADDFRAGCNT_S) 1883 1884 #define IRDMAQPSQ_PUSHWQE_S 56 1885 #define IRDMAQPSQ_PUSHWQE_M BIT_ULL(IRDMAQPSQ_PUSHWQE_S) 1886 1887 #define IRDMAQPSQ_STREAMMODE_S 58 1888 #define IRDMAQPSQ_STREAMMODE_M BIT_ULL(IRDMAQPSQ_STREAMMODE_S) 1889 1890 #define IRDMAQPSQ_WAITFORRCVPDU_S 59 1891 #define IRDMAQPSQ_WAITFORRCVPDU_M BIT_ULL(IRDMAQPSQ_WAITFORRCVPDU_S) 1892 1893 #define IRDMAQPSQ_READFENCE_S 60 1894 #define IRDMAQPSQ_READFENCE_M BIT_ULL(IRDMAQPSQ_READFENCE_S) 1895 1896 #define IRDMAQPSQ_LOCALFENCE_S 61 1897 #define IRDMAQPSQ_LOCALFENCE_M BIT_ULL(IRDMAQPSQ_LOCALFENCE_S) 1898 1899 #define IRDMAQPSQ_UDPHEADER_S 61 1900 #define IRDMAQPSQ_UDPHEADER_M BIT_ULL(IRDMAQPSQ_UDPHEADER_S) 1901 1902 #define IRDMAQPSQ_L4LEN_S 42 1903 #define IRDMAQPSQ_L4LEN_M ((u64)0xF << IRDMAQPSQ_L4LEN_S) 1904 1905 #define IRDMAQPSQ_SIGCOMPL_S 62 1906 #define IRDMAQPSQ_SIGCOMPL_M BIT_ULL(IRDMAQPSQ_SIGCOMPL_S) 1907 1908 #define IRDMAQPSQ_VALID_S 63 1909 #define IRDMAQPSQ_VALID_M BIT_ULL(IRDMAQPSQ_VALID_S) 1910 1911 #define IRDMAQPSQ_FRAG_TO_S IRDMA_CQPHC_QPCTX_S 1912 #define IRDMAQPSQ_FRAG_TO_M IRDMA_CQPHC_QPCTX_M 1913 1914 #define IRDMAQPSQ_FRAG_VALID_S 63 1915 #define IRDMAQPSQ_FRAG_VALID_M BIT_ULL(IRDMAQPSQ_FRAG_VALID_S) 1916 1917 #define IRDMAQPSQ_FRAG_LEN_S 32 1918 #define IRDMAQPSQ_FRAG_LEN_M (0x7fffffffULL << IRDMAQPSQ_FRAG_LEN_S) 1919 1920 #define IRDMAQPSQ_FRAG_STAG_S 0 1921 #define IRDMAQPSQ_FRAG_STAG_M (0xffffffffULL << IRDMAQPSQ_FRAG_STAG_S) 1922 1923 #define IRDMAQPSQ_GEN1_FRAG_LEN_S 0 1924 #define IRDMAQPSQ_GEN1_FRAG_LEN_M (0xffffffffULL << IRDMAQPSQ_GEN1_FRAG_LEN_S) 1925 1926 #define IRDMAQPSQ_GEN1_FRAG_STAG_S 32 1927 #define IRDMAQPSQ_GEN1_FRAG_STAG_M (0xffffffffULL << IRDMAQPSQ_GEN1_FRAG_STAG_S) 1928 1929 #define IRDMAQPSQ_REMSTAGINV_S 0 1930 #define IRDMAQPSQ_REMSTAGINV_M (0xffffffffULL << IRDMAQPSQ_REMSTAGINV_S) 1931 1932 #define IRDMAQPSQ_DESTQKEY_S 0 1933 #define IRDMAQPSQ_DESTQKEY_M (0xffffffffULL << IRDMAQPSQ_DESTQKEY_S) 1934 1935 #define IRDMAQPSQ_DESTQPN_S 32 1936 #define IRDMAQPSQ_DESTQPN_M (0x00ffffffULL << IRDMAQPSQ_DESTQPN_S) 1937 1938 #define IRDMAQPSQ_AHID_S 0 1939 #define IRDMAQPSQ_AHID_M (0x0001ffffULL << IRDMAQPSQ_AHID_S) 1940 1941 #define IRDMAQPSQ_INLINEDATAFLAG_S 57 1942 #define IRDMAQPSQ_INLINEDATAFLAG_M BIT_ULL(IRDMAQPSQ_INLINEDATAFLAG_S) 1943 1944 #define IRDMA_INLINE_VALID_S 7 1945 1946 #define IRDMAQPSQ_INLINEDATALEN_S 48 1947 #define IRDMAQPSQ_INLINEDATALEN_M \ 1948 (0xffULL << IRDMAQPSQ_INLINEDATALEN_S) 1949 #define IRDMAQPSQ_IMMDATAFLAG_S 47 1950 #define IRDMAQPSQ_IMMDATAFLAG_M \ 1951 BIT_ULL(IRDMAQPSQ_IMMDATAFLAG_S) 1952 #define IRDMAQPSQ_REPORTRTT_S 46 1953 #define IRDMAQPSQ_REPORTRTT_M \ 1954 BIT_ULL(IRDMAQPSQ_REPORTRTT_S) 1955 1956 #define IRDMAQPSQ_IMMDATA_S 0 1957 #define IRDMAQPSQ_IMMDATA_M \ 1958 (0xffffffffffffffffULL << IRDMAQPSQ_IMMDATA_S) 1959 1960 /* rdma write */ 1961 #define IRDMAQPSQ_REMSTAG_S 0 1962 #define IRDMAQPSQ_REMSTAG_M (0xffffffffULL << IRDMAQPSQ_REMSTAG_S) 1963 1964 #define IRDMAQPSQ_REMTO_S IRDMA_CQPHC_QPCTX_S 1965 #define IRDMAQPSQ_REMTO_M IRDMA_CQPHC_QPCTX_M 1966 1967 /* memory window */ 1968 #define IRDMAQPSQ_STAGRIGHTS_S 48 1969 #define IRDMAQPSQ_STAGRIGHTS_M (0x1fULL << IRDMAQPSQ_STAGRIGHTS_S) 1970 1971 #define IRDMAQPSQ_VABASEDTO_S 53 1972 #define IRDMAQPSQ_VABASEDTO_M BIT_ULL(IRDMAQPSQ_VABASEDTO_S) 1973 1974 #define IRDMAQPSQ_MEMWINDOWTYPE_S 54 1975 #define IRDMAQPSQ_MEMWINDOWTYPE_M BIT_ULL(IRDMAQPSQ_MEMWINDOWTYPE_S) 1976 1977 #define IRDMAQPSQ_MWLEN_S IRDMA_CQPHC_QPCTX_S 1978 #define IRDMAQPSQ_MWLEN_M IRDMA_CQPHC_QPCTX_M 1979 1980 #define IRDMAQPSQ_PARENTMRSTAG_S 32 1981 #define IRDMAQPSQ_PARENTMRSTAG_M \ 1982 (0xffffffffULL << IRDMAQPSQ_PARENTMRSTAG_S) 1983 1984 #define IRDMAQPSQ_MWSTAG_S 0 1985 #define IRDMAQPSQ_MWSTAG_M (0xffffffffULL << IRDMAQPSQ_MWSTAG_S) 1986 1987 #define IRDMAQPSQ_BASEVA_TO_FBO_S IRDMA_CQPHC_QPCTX_S 1988 #define IRDMAQPSQ_BASEVA_TO_FBO_M IRDMA_CQPHC_QPCTX_M 1989 1990 /* Local Invalidate */ 1991 #define IRDMAQPSQ_LOCSTAG_S 0 1992 #define IRDMAQPSQ_LOCSTAG_M (0xffffffffULL << IRDMAQPSQ_LOCSTAG_S) 1993 1994 /* Fast Register */ 1995 #define IRDMAQPSQ_STAGKEY_S 0 1996 #define IRDMAQPSQ_STAGKEY_M (0xffULL << IRDMAQPSQ_STAGKEY_S) 1997 1998 #define IRDMAQPSQ_STAGINDEX_S 8 1999 #define IRDMAQPSQ_STAGINDEX_M (0xffffffULL << IRDMAQPSQ_STAGINDEX_S) 2000 2001 #define IRDMAQPSQ_COPYHOSTPBLS_S 43 2002 #define IRDMAQPSQ_COPYHOSTPBLS_M BIT_ULL(IRDMAQPSQ_COPYHOSTPBLS_S) 2003 2004 #define IRDMAQPSQ_LPBLSIZE_S 44 2005 #define IRDMAQPSQ_LPBLSIZE_M (3ULL << IRDMAQPSQ_LPBLSIZE_S) 2006 2007 #define IRDMAQPSQ_HPAGESIZE_S 46 2008 #define IRDMAQPSQ_HPAGESIZE_M (3ULL << IRDMAQPSQ_HPAGESIZE_S) 2009 2010 #define IRDMAQPSQ_STAGLEN_S 0 2011 #define IRDMAQPSQ_STAGLEN_M (0x1ffffffffffULL << IRDMAQPSQ_STAGLEN_S) 2012 2013 #define IRDMAQPSQ_FIRSTPMPBLIDXLO_S 48 2014 #define IRDMAQPSQ_FIRSTPMPBLIDXLO_M \ 2015 (0xffffULL << IRDMAQPSQ_FIRSTPMPBLIDXLO_S) 2016 2017 #define IRDMAQPSQ_FIRSTPMPBLIDXHI_S 0 2018 #define IRDMAQPSQ_FIRSTPMPBLIDXHI_M \ 2019 (0xfffULL << IRDMAQPSQ_FIRSTPMPBLIDXHI_S) 2020 2021 #define IRDMAQPSQ_PBLADDR_S 12 2022 #define IRDMAQPSQ_PBLADDR_M (0xfffffffffffffULL << IRDMAQPSQ_PBLADDR_S) 2023 2024 /* iwarp QP RQ WQE common fields */ 2025 #define IRDMAQPRQ_ADDFRAGCNT_S IRDMAQPSQ_ADDFRAGCNT_S 2026 #define IRDMAQPRQ_ADDFRAGCNT_M IRDMAQPSQ_ADDFRAGCNT_M 2027 2028 #define IRDMAQPRQ_VALID_S IRDMAQPSQ_VALID_S 2029 #define IRDMAQPRQ_VALID_M IRDMAQPSQ_VALID_M 2030 2031 #define IRDMAQPRQ_COMPLCTX_S IRDMA_CQPHC_QPCTX_S 2032 #define IRDMAQPRQ_COMPLCTX_M IRDMA_CQPHC_QPCTX_M 2033 2034 #define IRDMAQPRQ_FRAG_LEN_S IRDMAQPSQ_FRAG_LEN_S 2035 #define IRDMAQPRQ_FRAG_LEN_M IRDMAQPSQ_FRAG_LEN_M 2036 2037 #define IRDMAQPRQ_STAG_S IRDMAQPSQ_FRAG_STAG_S 2038 #define IRDMAQPRQ_STAG_M IRDMAQPSQ_FRAG_STAG_M 2039 2040 #define IRDMAQPRQ_TO_S IRDMAQPSQ_FRAG_TO_S 2041 #define IRDMAQPRQ_TO_M IRDMAQPSQ_FRAG_TO_M 2042 2043 #define IRDMAPFINT_OICR_HMC_ERR_M BIT(26) 2044 #define IRDMAPFINT_OICR_PE_PUSH_M BIT(27) 2045 #define IRDMAPFINT_OICR_PE_CRITERR_M BIT(28) 2046 2047 /* Query FPM CQP buf */ 2048 #define IRDMA_QUERY_FPM_MAX_QPS_S 0 2049 #define IRDMA_QUERY_FPM_MAX_QPS_M \ 2050 (0x7ffffULL << IRDMA_QUERY_FPM_MAX_QPS_S) 2051 2052 #define IRDMA_QUERY_FPM_MAX_CQS_S 0 2053 #define IRDMA_QUERY_FPM_MAX_CQS_M \ 2054 (0xfffffULL << IRDMA_QUERY_FPM_MAX_CQS_S) 2055 2056 #define IRDMA_QUERY_FPM_FIRST_PE_SD_INDEX_S 0 2057 #define IRDMA_QUERY_FPM_FIRST_PE_SD_INDEX_M \ 2058 (0x3fffULL << IRDMA_QUERY_FPM_FIRST_PE_SD_INDEX_S) 2059 2060 #define IRDMA_QUERY_FPM_MAX_PE_SDS_S 32 2061 #define IRDMA_QUERY_FPM_MAX_PE_SDS_M \ 2062 (0x3fffULL << IRDMA_QUERY_FPM_MAX_PE_SDS_S) 2063 2064 #define IRDMA_QUERY_FPM_MAX_CEQS_S 0 2065 #define IRDMA_QUERY_FPM_MAX_CEQS_M \ 2066 (0x3ffULL << IRDMA_QUERY_FPM_MAX_CEQS_S) 2067 2068 #define IRDMA_QUERY_FPM_XFBLOCKSIZE_S 32 2069 #define IRDMA_QUERY_FPM_XFBLOCKSIZE_M \ 2070 (0xffffffffULL << IRDMA_QUERY_FPM_XFBLOCKSIZE_S) 2071 2072 #define IRDMA_QUERY_FPM_Q1BLOCKSIZE_S 32 2073 #define IRDMA_QUERY_FPM_Q1BLOCKSIZE_M \ 2074 (0xffffffffULL << IRDMA_QUERY_FPM_Q1BLOCKSIZE_S) 2075 2076 #define IRDMA_QUERY_FPM_HTMULTIPLIER_S 16 2077 #define IRDMA_QUERY_FPM_HTMULTIPLIER_M \ 2078 (0xfULL << IRDMA_QUERY_FPM_HTMULTIPLIER_S) 2079 2080 #define IRDMA_QUERY_FPM_TIMERBUCKET_S 32 2081 #define IRDMA_QUERY_FPM_TIMERBUCKET_M \ 2082 (0xffFFULL << IRDMA_QUERY_FPM_TIMERBUCKET_S) 2083 2084 #define IRDMA_QUERY_FPM_RRFBLOCKSIZE_S 32 2085 #define IRDMA_QUERY_FPM_RRFBLOCKSIZE_M \ 2086 (0xffffffffULL << IRDMA_QUERY_FPM_RRFBLOCKSIZE_S) 2087 2088 #define IRDMA_QUERY_FPM_RRFFLBLOCKSIZE_S 32 2089 #define IRDMA_QUERY_FPM_RRFFLBLOCKSIZE_M \ 2090 (0xffffffffULL << IRDMA_QUERY_FPM_RRFFLBLOCKSIZE_S) 2091 2092 #define IRDMA_QUERY_FPM_OOISCFBLOCKSIZE_S 32 2093 #define IRDMA_QUERY_FPM_OOISCFBLOCKSIZE_M \ 2094 (0xffffffffULL << IRDMA_QUERY_FPM_OOISCFBLOCKSIZE_S) 2095 2096 /* Static HMC pages allocated buf */ 2097 #define IRDMA_SHMC_PAGE_ALLOCATED_HMC_FN_ID_S 0 2098 #define IRDMA_SHMC_PAGE_ALLOCATED_HMC_FN_ID_M \ 2099 (0x3fULL << IRDMA_SHMC_PAGE_ALLOCATED_HMC_FN_ID_S) 2100 2101 #define IRDMA_GET_CURRENT_AEQ_ELEM(_aeq) \ 2102 ( \ 2103 (_aeq)->aeqe_base[IRDMA_RING_CURRENT_TAIL((_aeq)->aeq_ring)].buf \ 2104 ) 2105 2106 #define IRDMA_GET_CURRENT_CEQ_ELEM(_ceq) \ 2107 ( \ 2108 (_ceq)->ceqe_base[IRDMA_RING_CURRENT_TAIL((_ceq)->ceq_ring)].buf \ 2109 ) 2110 2111 #define IRDMA_GET_CEQ_ELEM_AT_POS(_ceq, _pos) \ 2112 ( \ 2113 (_ceq)->ceqe_base[_pos].buf \ 2114 ) 2115 2116 #define IRDMA_RING_GET_NEXT_TAIL(_ring, _idx) \ 2117 ( \ 2118 ((_ring).tail + (_idx)) % (_ring).size \ 2119 ) 2120 2121 #define IRDMA_GET_CURRENT_CQ_ELEM(_cq) \ 2122 ( \ 2123 (_cq)->cq_base[IRDMA_RING_CURRENT_HEAD((_cq)->cq_ring)].buf \ 2124 ) 2125 #define IRDMA_GET_CURRENT_EXTENDED_CQ_ELEM(_cq) \ 2126 ( \ 2127 ((struct irdma_extended_cqe *) \ 2128 ((_cq)->cq_base))[IRDMA_RING_CURRENT_HEAD((_cq)->cq_ring)].buf \ 2129 ) 2130 2131 #define IRDMA_RING_INIT(_ring, _size) \ 2132 { \ 2133 (_ring).head = 0; \ 2134 (_ring).tail = 0; \ 2135 (_ring).size = (_size); \ 2136 } 2137 #define IRDMA_RING_SIZE(_ring) ((_ring).size) 2138 #define IRDMA_RING_CURRENT_HEAD(_ring) ((_ring).head) 2139 #define IRDMA_RING_CURRENT_TAIL(_ring) ((_ring).tail) 2140 2141 #define IRDMA_RING_MOVE_HEAD(_ring, _retcode) \ 2142 { \ 2143 register u32 size; \ 2144 size = (_ring).size; \ 2145 if (!IRDMA_RING_FULL_ERR(_ring)) { \ 2146 (_ring).head = ((_ring).head + 1) % size; \ 2147 (_retcode) = 0; \ 2148 } else { \ 2149 (_retcode) = -ENOSPC; \ 2150 } \ 2151 } 2152 #define IRDMA_RING_MOVE_HEAD_BY_COUNT(_ring, _count, _retcode) \ 2153 { \ 2154 register u32 size; \ 2155 size = (_ring).size; \ 2156 if ((IRDMA_RING_USED_QUANTA(_ring) + (_count)) < size) { \ 2157 (_ring).head = ((_ring).head + (_count)) % size; \ 2158 (_retcode) = 0; \ 2159 } else { \ 2160 (_retcode) = -ENOSPC; \ 2161 } \ 2162 } 2163 #define IRDMA_SQ_RING_MOVE_HEAD(_ring, _retcode) \ 2164 { \ 2165 register u32 size; \ 2166 size = (_ring).size; \ 2167 if (!IRDMA_SQ_RING_FULL_ERR(_ring)) { \ 2168 (_ring).head = ((_ring).head + 1) % size; \ 2169 (_retcode) = 0; \ 2170 } else { \ 2171 (_retcode) = -ENOSPC; \ 2172 } \ 2173 } 2174 #define IRDMA_SQ_RING_MOVE_HEAD_BY_COUNT(_ring, _count, _retcode) \ 2175 { \ 2176 register u32 size; \ 2177 size = (_ring).size; \ 2178 if ((IRDMA_RING_USED_QUANTA(_ring) + (_count)) < (size - 256)) { \ 2179 (_ring).head = ((_ring).head + (_count)) % size; \ 2180 (_retcode) = 0; \ 2181 } else { \ 2182 (_retcode) = -ENOSPC; \ 2183 } \ 2184 } 2185 #define IRDMA_RING_MOVE_HEAD_BY_COUNT_NOCHECK(_ring, _count) \ 2186 (_ring).head = ((_ring).head + (_count)) % (_ring).size 2187 2188 #define IRDMA_RING_MOVE_TAIL(_ring) \ 2189 (_ring).tail = ((_ring).tail + 1) % (_ring).size 2190 2191 #define IRDMA_RING_MOVE_HEAD_NOCHECK(_ring) \ 2192 (_ring).head = ((_ring).head + 1) % (_ring).size 2193 2194 #define IRDMA_RING_MOVE_TAIL_BY_COUNT(_ring, _count) \ 2195 (_ring).tail = ((_ring).tail + (_count)) % (_ring).size 2196 2197 #define IRDMA_RING_SET_TAIL(_ring, _pos) \ 2198 (_ring).tail = (_pos) % (_ring).size 2199 2200 #define IRDMA_RING_FULL_ERR(_ring) \ 2201 ( \ 2202 (IRDMA_RING_USED_QUANTA(_ring) == ((_ring).size - 1)) \ 2203 ) 2204 2205 #define IRDMA_ERR_RING_FULL2(_ring) \ 2206 ( \ 2207 (IRDMA_RING_USED_QUANTA(_ring) == ((_ring).size - 2)) \ 2208 ) 2209 2210 #define IRDMA_ERR_RING_FULL3(_ring) \ 2211 ( \ 2212 (IRDMA_RING_USED_QUANTA(_ring) == ((_ring).size - 3)) \ 2213 ) 2214 2215 #define IRDMA_SQ_RING_FULL_ERR(_ring) \ 2216 ( \ 2217 (IRDMA_RING_USED_QUANTA(_ring) == ((_ring).size - 257)) \ 2218 ) 2219 2220 #define IRDMA_ERR_SQ_RING_FULL2(_ring) \ 2221 ( \ 2222 (IRDMA_RING_USED_QUANTA(_ring) == ((_ring).size - 258)) \ 2223 ) 2224 #define IRDMA_ERR_SQ_RING_FULL3(_ring) \ 2225 ( \ 2226 (IRDMA_RING_USED_QUANTA(_ring) == ((_ring).size - 259)) \ 2227 ) 2228 #define IRDMA_RING_MORE_WORK(_ring) \ 2229 ( \ 2230 (IRDMA_RING_USED_QUANTA(_ring) != 0) \ 2231 ) 2232 2233 #define IRDMA_RING_USED_QUANTA(_ring) \ 2234 ( \ 2235 (((_ring).head + (_ring).size - (_ring).tail) % (_ring).size) \ 2236 ) 2237 2238 #define IRDMA_RING_FREE_QUANTA(_ring) \ 2239 ( \ 2240 ((_ring).size - IRDMA_RING_USED_QUANTA(_ring) - 1) \ 2241 ) 2242 2243 #define IRDMA_SQ_RING_FREE_QUANTA(_ring) \ 2244 ( \ 2245 ((_ring).size - IRDMA_RING_USED_QUANTA(_ring) - 257) \ 2246 ) 2247 2248 #define IRDMA_ATOMIC_RING_MOVE_HEAD(_ring, index, _retcode) \ 2249 { \ 2250 index = IRDMA_RING_CURRENT_HEAD(_ring); \ 2251 IRDMA_RING_MOVE_HEAD(_ring, _retcode); \ 2252 } 2253 2254 enum irdma_qp_wqe_size { 2255 IRDMA_WQE_SIZE_32 = 32, 2256 IRDMA_WQE_SIZE_64 = 64, 2257 IRDMA_WQE_SIZE_96 = 96, 2258 IRDMA_WQE_SIZE_128 = 128, 2259 IRDMA_WQE_SIZE_256 = 256, 2260 }; 2261 2262 enum irdma_ws_node_op { 2263 IRDMA_ADD_NODE = 0, 2264 IRDMA_MODIFY_NODE, 2265 IRDMA_DEL_NODE, 2266 }; 2267 2268 enum { IRDMA_Q_ALIGNMENT_M = (128 - 1), 2269 IRDMA_AEQ_ALIGNMENT_M = (256 - 1), 2270 IRDMA_Q2_ALIGNMENT_M = (256 - 1), 2271 IRDMA_CEQ_ALIGNMENT_M = (256 - 1), 2272 IRDMA_CQ0_ALIGNMENT_M = (256 - 1), 2273 IRDMA_HOST_CTX_ALIGNMENT_M = (4 - 1), 2274 IRDMA_SHADOWAREA_M = (128 - 1), 2275 IRDMA_FPM_QUERY_BUF_ALIGNMENT_M = (4 - 1), 2276 IRDMA_FPM_COMMIT_BUF_ALIGNMENT_M = (4 - 1), 2277 }; 2278 2279 enum irdma_alignment { 2280 IRDMA_CQP_ALIGNMENT = 0x200, 2281 IRDMA_AEQ_ALIGNMENT = 0x100, 2282 IRDMA_CEQ_ALIGNMENT = 0x100, 2283 IRDMA_CQ0_ALIGNMENT = 0x100, 2284 IRDMA_SD_BUF_ALIGNMENT = 0x80, 2285 IRDMA_FEATURE_BUF_ALIGNMENT = 0x10, 2286 }; 2287 2288 enum icrdma_protocol_used { 2289 ICRDMA_ANY_PROTOCOL = 0, 2290 ICRDMA_IWARP_PROTOCOL_ONLY = 1, 2291 ICRDMA_ROCE_PROTOCOL_ONLY = 2, 2292 }; 2293 2294 /** 2295 * set_64bit_val - set 64 bit value to hw wqe 2296 * @wqe_words: wqe addr to write 2297 * @byte_index: index in wqe 2298 * @val: value to write 2299 **/ 2300 static inline void set_64bit_val(__le64 *wqe_words, u32 byte_index, u64 val) 2301 { 2302 wqe_words[byte_index >> 3] = cpu_to_le64(val); 2303 } 2304 2305 /** 2306 * set_32bit_val - set 32 bit value to hw wqe 2307 * @wqe_words: wqe addr to write 2308 * @byte_index: index in wqe 2309 * @val: value to write 2310 **/ 2311 static inline void set_32bit_val(__le32 *wqe_words, u32 byte_index, u32 val) 2312 { 2313 wqe_words[byte_index >> 2] = cpu_to_le32(val); 2314 } 2315 2316 /** 2317 * get_64bit_val - read 64 bit value from wqe 2318 * @wqe_words: wqe addr 2319 * @byte_index: index to read from 2320 * @val: read value 2321 **/ 2322 static inline void get_64bit_val(__le64 *wqe_words, u32 byte_index, u64 *val) 2323 { 2324 *val = le64_to_cpu(wqe_words[byte_index >> 3]); 2325 } 2326 2327 /** 2328 * get_32bit_val - read 32 bit value from wqe 2329 * @wqe_words: wqe addr 2330 * @byte_index: index to reaad from 2331 * @val: return 32 bit value 2332 **/ 2333 static inline void get_32bit_val(__le32 *wqe_words, u32 byte_index, u32 *val) 2334 { 2335 *val = le32_to_cpu(wqe_words[byte_index >> 2]); 2336 } 2337 #endif /* IRDMA_DEFS_H */ 2338