1cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise/* 2cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise * Copyright (c) 2009-2010 Chelsio, Inc. All rights reserved. 3cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise * 4cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise * This software is available to you under a choice of one of two 5cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise * licenses. You may choose to be licensed under the terms of the GNU 6cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise * General Public License (GPL) Version 2, available from the file 7cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise * COPYING in the main directory of this source tree, or the 8cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise * OpenIB.org BSD license below: 9cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise * 10cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise * Redistribution and use in source and binary forms, with or 11cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise * without modification, are permitted provided that the following 12cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise * conditions are met: 13cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise * 14cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise * - Redistributions of source code must retain the above 15cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise * copyright notice, this list of conditions and the following 16cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise * disclaimer. 17cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise * - Redistributions in binary form must reproduce the above 18cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise * copyright notice, this list of conditions and the following 19cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise * disclaimer in the documentation and/or other materials 20cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise * provided with the distribution. 21cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise * 22cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, 23cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF 24cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND 25cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS 26cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise * BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN 27cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN 28cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 29cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise * SOFTWARE. 30cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise */ 31cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise#ifndef _T4FW_RI_API_H_ 32cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise#define _T4FW_RI_API_H_ 33cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise 34cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise#include "t4fw_api.h" 35cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise 36cfdda9d764362ab77b11a410bb928400e6520d57Steve Wiseenum fw_ri_wr_opcode { 37cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise FW_RI_RDMA_WRITE = 0x0, /* IETF RDMAP v1.0 ... */ 38cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise FW_RI_READ_REQ = 0x1, 39cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise FW_RI_READ_RESP = 0x2, 40cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise FW_RI_SEND = 0x3, 41cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise FW_RI_SEND_WITH_INV = 0x4, 42cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise FW_RI_SEND_WITH_SE = 0x5, 43cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise FW_RI_SEND_WITH_SE_INV = 0x6, 44cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise FW_RI_TERMINATE = 0x7, 45cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise FW_RI_RDMA_INIT = 0x8, /* CHELSIO RI specific ... */ 46cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise FW_RI_BIND_MW = 0x9, 47cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise FW_RI_FAST_REGISTER = 0xa, 48cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise FW_RI_LOCAL_INV = 0xb, 49cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise FW_RI_QP_MODIFY = 0xc, 50cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise FW_RI_BYPASS = 0xd, 51cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise FW_RI_RECEIVE = 0xe, 52cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise 53cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise FW_RI_SGE_EC_CR_RETURN = 0xf 54cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise}; 55cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise 56cfdda9d764362ab77b11a410bb928400e6520d57Steve Wiseenum fw_ri_wr_flags { 57cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise FW_RI_COMPLETION_FLAG = 0x01, 58cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise FW_RI_NOTIFICATION_FLAG = 0x02, 59cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise FW_RI_SOLICITED_EVENT_FLAG = 0x04, 60cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise FW_RI_READ_FENCE_FLAG = 0x08, 61cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise FW_RI_LOCAL_FENCE_FLAG = 0x10, 62cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise FW_RI_RDMA_READ_INVALIDATE = 0x20 63cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise}; 64cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise 65cfdda9d764362ab77b11a410bb928400e6520d57Steve Wiseenum fw_ri_mpa_attrs { 66cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise FW_RI_MPA_RX_MARKER_ENABLE = 0x01, 67cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise FW_RI_MPA_TX_MARKER_ENABLE = 0x02, 68cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise FW_RI_MPA_CRC_ENABLE = 0x04, 69cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise FW_RI_MPA_IETF_ENABLE = 0x08 70cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise}; 71cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise 72cfdda9d764362ab77b11a410bb928400e6520d57Steve Wiseenum fw_ri_qp_caps { 73cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise FW_RI_QP_RDMA_READ_ENABLE = 0x01, 74cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise FW_RI_QP_RDMA_WRITE_ENABLE = 0x02, 75cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise FW_RI_QP_BIND_ENABLE = 0x04, 76cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise FW_RI_QP_FAST_REGISTER_ENABLE = 0x08, 77cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise FW_RI_QP_STAG0_ENABLE = 0x10 78cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise}; 79cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise 80cfdda9d764362ab77b11a410bb928400e6520d57Steve Wiseenum fw_ri_addr_type { 81cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise FW_RI_ZERO_BASED_TO = 0x00, 82cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise FW_RI_VA_BASED_TO = 0x01 83cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise}; 84cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise 85cfdda9d764362ab77b11a410bb928400e6520d57Steve Wiseenum fw_ri_mem_perms { 86cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise FW_RI_MEM_ACCESS_REM_WRITE = 0x01, 87cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise FW_RI_MEM_ACCESS_REM_READ = 0x02, 88cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise FW_RI_MEM_ACCESS_REM = 0x03, 89cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise FW_RI_MEM_ACCESS_LOCAL_WRITE = 0x04, 90cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise FW_RI_MEM_ACCESS_LOCAL_READ = 0x08, 91cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise FW_RI_MEM_ACCESS_LOCAL = 0x0C 92cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise}; 93cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise 94cfdda9d764362ab77b11a410bb928400e6520d57Steve Wiseenum fw_ri_stag_type { 95cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise FW_RI_STAG_NSMR = 0x00, 96cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise FW_RI_STAG_SMR = 0x01, 97cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise FW_RI_STAG_MW = 0x02, 98cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise FW_RI_STAG_MW_RELAXED = 0x03 99cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise}; 100cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise 101cfdda9d764362ab77b11a410bb928400e6520d57Steve Wiseenum fw_ri_data_op { 102cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise FW_RI_DATA_IMMD = 0x81, 103cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise FW_RI_DATA_DSGL = 0x82, 104cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise FW_RI_DATA_ISGL = 0x83 105cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise}; 106cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise 107cfdda9d764362ab77b11a410bb928400e6520d57Steve Wiseenum fw_ri_sgl_depth { 108cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise FW_RI_SGL_DEPTH_MAX_SQ = 16, 109cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise FW_RI_SGL_DEPTH_MAX_RQ = 4 110cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise}; 111cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise 112cfdda9d764362ab77b11a410bb928400e6520d57Steve Wisestruct fw_ri_dsge_pair { 113cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise __be32 len[2]; 114cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise __be64 addr[2]; 115cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise}; 116cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise 117cfdda9d764362ab77b11a410bb928400e6520d57Steve Wisestruct fw_ri_dsgl { 118cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise __u8 op; 119cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise __u8 r1; 120cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise __be16 nsge; 121cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise __be32 len0; 122cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise __be64 addr0; 123cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise#ifndef C99_NOT_SUPPORTED 124cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise struct fw_ri_dsge_pair sge[0]; 125cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise#endif 126cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise}; 127cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise 128cfdda9d764362ab77b11a410bb928400e6520d57Steve Wisestruct fw_ri_sge { 129cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise __be32 stag; 130cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise __be32 len; 131cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise __be64 to; 132cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise}; 133cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise 134cfdda9d764362ab77b11a410bb928400e6520d57Steve Wisestruct fw_ri_isgl { 135cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise __u8 op; 136cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise __u8 r1; 137cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise __be16 nsge; 138cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise __be32 r2; 139cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise#ifndef C99_NOT_SUPPORTED 140cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise struct fw_ri_sge sge[0]; 141cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise#endif 142cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise}; 143cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise 144cfdda9d764362ab77b11a410bb928400e6520d57Steve Wisestruct fw_ri_immd { 145cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise __u8 op; 146cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise __u8 r1; 147cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise __be16 r2; 148cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise __be32 immdlen; 149cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise#ifndef C99_NOT_SUPPORTED 150cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise __u8 data[0]; 151cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise#endif 152cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise}; 153cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise 154cfdda9d764362ab77b11a410bb928400e6520d57Steve Wisestruct fw_ri_tpte { 155cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise __be32 valid_to_pdid; 156cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise __be32 locread_to_qpid; 157cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise __be32 nosnoop_pbladdr; 158cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise __be32 len_lo; 159cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise __be32 va_hi; 160cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise __be32 va_lo_fbo; 161cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise __be32 dca_mwbcnt_pstag; 162cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise __be32 len_hi; 163cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise}; 164cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise 165cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise#define S_FW_RI_TPTE_VALID 31 166cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise#define M_FW_RI_TPTE_VALID 0x1 167cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise#define V_FW_RI_TPTE_VALID(x) ((x) << S_FW_RI_TPTE_VALID) 168cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise#define G_FW_RI_TPTE_VALID(x) \ 169cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise (((x) >> S_FW_RI_TPTE_VALID) & M_FW_RI_TPTE_VALID) 170cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise#define F_FW_RI_TPTE_VALID V_FW_RI_TPTE_VALID(1U) 171cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise 172cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise#define S_FW_RI_TPTE_STAGKEY 23 173cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise#define M_FW_RI_TPTE_STAGKEY 0xff 174cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise#define V_FW_RI_TPTE_STAGKEY(x) ((x) << S_FW_RI_TPTE_STAGKEY) 175cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise#define G_FW_RI_TPTE_STAGKEY(x) \ 176cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise (((x) >> S_FW_RI_TPTE_STAGKEY) & M_FW_RI_TPTE_STAGKEY) 177cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise 178cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise#define S_FW_RI_TPTE_STAGSTATE 22 179cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise#define M_FW_RI_TPTE_STAGSTATE 0x1 180cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise#define V_FW_RI_TPTE_STAGSTATE(x) ((x) << S_FW_RI_TPTE_STAGSTATE) 181cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise#define G_FW_RI_TPTE_STAGSTATE(x) \ 182cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise (((x) >> S_FW_RI_TPTE_STAGSTATE) & M_FW_RI_TPTE_STAGSTATE) 183cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise#define F_FW_RI_TPTE_STAGSTATE V_FW_RI_TPTE_STAGSTATE(1U) 184cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise 185cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise#define S_FW_RI_TPTE_STAGTYPE 20 186cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise#define M_FW_RI_TPTE_STAGTYPE 0x3 187cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise#define V_FW_RI_TPTE_STAGTYPE(x) ((x) << S_FW_RI_TPTE_STAGTYPE) 188cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise#define G_FW_RI_TPTE_STAGTYPE(x) \ 189cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise (((x) >> S_FW_RI_TPTE_STAGTYPE) & M_FW_RI_TPTE_STAGTYPE) 190cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise 191cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise#define S_FW_RI_TPTE_PDID 0 192cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise#define M_FW_RI_TPTE_PDID 0xfffff 193cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise#define V_FW_RI_TPTE_PDID(x) ((x) << S_FW_RI_TPTE_PDID) 194cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise#define G_FW_RI_TPTE_PDID(x) \ 195cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise (((x) >> S_FW_RI_TPTE_PDID) & M_FW_RI_TPTE_PDID) 196cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise 197cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise#define S_FW_RI_TPTE_PERM 28 198cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise#define M_FW_RI_TPTE_PERM 0xf 199cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise#define V_FW_RI_TPTE_PERM(x) ((x) << S_FW_RI_TPTE_PERM) 200cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise#define G_FW_RI_TPTE_PERM(x) \ 201cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise (((x) >> S_FW_RI_TPTE_PERM) & M_FW_RI_TPTE_PERM) 202cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise 203cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise#define S_FW_RI_TPTE_REMINVDIS 27 204cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise#define M_FW_RI_TPTE_REMINVDIS 0x1 205cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise#define V_FW_RI_TPTE_REMINVDIS(x) ((x) << S_FW_RI_TPTE_REMINVDIS) 206cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise#define G_FW_RI_TPTE_REMINVDIS(x) \ 207cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise (((x) >> S_FW_RI_TPTE_REMINVDIS) & M_FW_RI_TPTE_REMINVDIS) 208cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise#define F_FW_RI_TPTE_REMINVDIS V_FW_RI_TPTE_REMINVDIS(1U) 209cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise 210cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise#define S_FW_RI_TPTE_ADDRTYPE 26 211cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise#define M_FW_RI_TPTE_ADDRTYPE 1 212cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise#define V_FW_RI_TPTE_ADDRTYPE(x) ((x) << S_FW_RI_TPTE_ADDRTYPE) 213cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise#define G_FW_RI_TPTE_ADDRTYPE(x) \ 214cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise (((x) >> S_FW_RI_TPTE_ADDRTYPE) & M_FW_RI_TPTE_ADDRTYPE) 215cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise#define F_FW_RI_TPTE_ADDRTYPE V_FW_RI_TPTE_ADDRTYPE(1U) 216cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise 217cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise#define S_FW_RI_TPTE_MWBINDEN 25 218cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise#define M_FW_RI_TPTE_MWBINDEN 0x1 219cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise#define V_FW_RI_TPTE_MWBINDEN(x) ((x) << S_FW_RI_TPTE_MWBINDEN) 220cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise#define G_FW_RI_TPTE_MWBINDEN(x) \ 221cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise (((x) >> S_FW_RI_TPTE_MWBINDEN) & M_FW_RI_TPTE_MWBINDEN) 222cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise#define F_FW_RI_TPTE_MWBINDEN V_FW_RI_TPTE_MWBINDEN(1U) 223cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise 224cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise#define S_FW_RI_TPTE_PS 20 225cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise#define M_FW_RI_TPTE_PS 0x1f 226cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise#define V_FW_RI_TPTE_PS(x) ((x) << S_FW_RI_TPTE_PS) 227cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise#define G_FW_RI_TPTE_PS(x) \ 228cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise (((x) >> S_FW_RI_TPTE_PS) & M_FW_RI_TPTE_PS) 229cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise 230cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise#define S_FW_RI_TPTE_QPID 0 231cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise#define M_FW_RI_TPTE_QPID 0xfffff 232cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise#define V_FW_RI_TPTE_QPID(x) ((x) << S_FW_RI_TPTE_QPID) 233cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise#define G_FW_RI_TPTE_QPID(x) \ 234cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise (((x) >> S_FW_RI_TPTE_QPID) & M_FW_RI_TPTE_QPID) 235cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise 236cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise#define S_FW_RI_TPTE_NOSNOOP 30 237cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise#define M_FW_RI_TPTE_NOSNOOP 0x1 238cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise#define V_FW_RI_TPTE_NOSNOOP(x) ((x) << S_FW_RI_TPTE_NOSNOOP) 239cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise#define G_FW_RI_TPTE_NOSNOOP(x) \ 240cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise (((x) >> S_FW_RI_TPTE_NOSNOOP) & M_FW_RI_TPTE_NOSNOOP) 241cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise#define F_FW_RI_TPTE_NOSNOOP V_FW_RI_TPTE_NOSNOOP(1U) 242cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise 243cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise#define S_FW_RI_TPTE_PBLADDR 0 244cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise#define M_FW_RI_TPTE_PBLADDR 0x1fffffff 245cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise#define V_FW_RI_TPTE_PBLADDR(x) ((x) << S_FW_RI_TPTE_PBLADDR) 246cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise#define G_FW_RI_TPTE_PBLADDR(x) \ 247cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise (((x) >> S_FW_RI_TPTE_PBLADDR) & M_FW_RI_TPTE_PBLADDR) 248cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise 249cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise#define S_FW_RI_TPTE_DCA 24 250cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise#define M_FW_RI_TPTE_DCA 0x1f 251cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise#define V_FW_RI_TPTE_DCA(x) ((x) << S_FW_RI_TPTE_DCA) 252cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise#define G_FW_RI_TPTE_DCA(x) \ 253cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise (((x) >> S_FW_RI_TPTE_DCA) & M_FW_RI_TPTE_DCA) 254cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise 255cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise#define S_FW_RI_TPTE_MWBCNT_PSTAG 0 256cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise#define M_FW_RI_TPTE_MWBCNT_PSTAG 0xffffff 257cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise#define V_FW_RI_TPTE_MWBCNT_PSTAT(x) \ 258cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise ((x) << S_FW_RI_TPTE_MWBCNT_PSTAG) 259cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise#define G_FW_RI_TPTE_MWBCNT_PSTAG(x) \ 260cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise (((x) >> S_FW_RI_TPTE_MWBCNT_PSTAG) & M_FW_RI_TPTE_MWBCNT_PSTAG) 261cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise 262cfdda9d764362ab77b11a410bb928400e6520d57Steve Wiseenum fw_ri_res_type { 263cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise FW_RI_RES_TYPE_SQ, 264cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise FW_RI_RES_TYPE_RQ, 265cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise FW_RI_RES_TYPE_CQ, 266cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise}; 267cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise 268cfdda9d764362ab77b11a410bb928400e6520d57Steve Wiseenum fw_ri_res_op { 269cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise FW_RI_RES_OP_WRITE, 270cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise FW_RI_RES_OP_RESET, 271cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise}; 272cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise 273cfdda9d764362ab77b11a410bb928400e6520d57Steve Wisestruct fw_ri_res { 274cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise union fw_ri_restype { 275cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise struct fw_ri_res_sqrq { 276cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise __u8 restype; 277cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise __u8 op; 278cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise __be16 r3; 279cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise __be32 eqid; 280cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise __be32 r4[2]; 281cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise __be32 fetchszm_to_iqid; 282cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise __be32 dcaen_to_eqsize; 283cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise __be64 eqaddr; 284cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise } sqrq; 285cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise struct fw_ri_res_cq { 286cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise __u8 restype; 287cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise __u8 op; 288cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise __be16 r3; 289cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise __be32 iqid; 290cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise __be32 r4[2]; 291cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise __be32 iqandst_to_iqandstindex; 292cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise __be16 iqdroprss_to_iqesize; 293cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise __be16 iqsize; 294cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise __be64 iqaddr; 295cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise __be32 iqns_iqro; 296cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise __be32 r6_lo; 297cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise __be64 r7; 298cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise } cq; 299cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise } u; 300cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise}; 301cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise 302cfdda9d764362ab77b11a410bb928400e6520d57Steve Wisestruct fw_ri_res_wr { 303cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise __be32 op_nres; 304cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise __be32 len16_pkd; 305cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise __u64 cookie; 306cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise#ifndef C99_NOT_SUPPORTED 307cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise struct fw_ri_res res[0]; 308cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise#endif 309cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise}; 310cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise 311cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise#define S_FW_RI_RES_WR_NRES 0 312cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise#define M_FW_RI_RES_WR_NRES 0xff 313cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise#define V_FW_RI_RES_WR_NRES(x) ((x) << S_FW_RI_RES_WR_NRES) 314cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise#define G_FW_RI_RES_WR_NRES(x) \ 315cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise (((x) >> S_FW_RI_RES_WR_NRES) & M_FW_RI_RES_WR_NRES) 316cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise 317cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise#define S_FW_RI_RES_WR_FETCHSZM 26 318cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise#define M_FW_RI_RES_WR_FETCHSZM 0x1 319cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise#define V_FW_RI_RES_WR_FETCHSZM(x) ((x) << S_FW_RI_RES_WR_FETCHSZM) 320cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise#define G_FW_RI_RES_WR_FETCHSZM(x) \ 321cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise (((x) >> S_FW_RI_RES_WR_FETCHSZM) & M_FW_RI_RES_WR_FETCHSZM) 322cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise#define F_FW_RI_RES_WR_FETCHSZM V_FW_RI_RES_WR_FETCHSZM(1U) 323cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise 324cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise#define S_FW_RI_RES_WR_STATUSPGNS 25 325cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise#define M_FW_RI_RES_WR_STATUSPGNS 0x1 326cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise#define V_FW_RI_RES_WR_STATUSPGNS(x) ((x) << S_FW_RI_RES_WR_STATUSPGNS) 327cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise#define G_FW_RI_RES_WR_STATUSPGNS(x) \ 328cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise (((x) >> S_FW_RI_RES_WR_STATUSPGNS) & M_FW_RI_RES_WR_STATUSPGNS) 329cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise#define F_FW_RI_RES_WR_STATUSPGNS V_FW_RI_RES_WR_STATUSPGNS(1U) 330cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise 331cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise#define S_FW_RI_RES_WR_STATUSPGRO 24 332cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise#define M_FW_RI_RES_WR_STATUSPGRO 0x1 333cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise#define V_FW_RI_RES_WR_STATUSPGRO(x) ((x) << S_FW_RI_RES_WR_STATUSPGRO) 334cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise#define G_FW_RI_RES_WR_STATUSPGRO(x) \ 335cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise (((x) >> S_FW_RI_RES_WR_STATUSPGRO) & M_FW_RI_RES_WR_STATUSPGRO) 336cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise#define F_FW_RI_RES_WR_STATUSPGRO V_FW_RI_RES_WR_STATUSPGRO(1U) 337cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise 338cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise#define S_FW_RI_RES_WR_FETCHNS 23 339cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise#define M_FW_RI_RES_WR_FETCHNS 0x1 340cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise#define V_FW_RI_RES_WR_FETCHNS(x) ((x) << S_FW_RI_RES_WR_FETCHNS) 341cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise#define G_FW_RI_RES_WR_FETCHNS(x) \ 342cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise (((x) >> S_FW_RI_RES_WR_FETCHNS) & M_FW_RI_RES_WR_FETCHNS) 343cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise#define F_FW_RI_RES_WR_FETCHNS V_FW_RI_RES_WR_FETCHNS(1U) 344cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise 345cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise#define S_FW_RI_RES_WR_FETCHRO 22 346cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise#define M_FW_RI_RES_WR_FETCHRO 0x1 347cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise#define V_FW_RI_RES_WR_FETCHRO(x) ((x) << S_FW_RI_RES_WR_FETCHRO) 348cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise#define G_FW_RI_RES_WR_FETCHRO(x) \ 349cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise (((x) >> S_FW_RI_RES_WR_FETCHRO) & M_FW_RI_RES_WR_FETCHRO) 350cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise#define F_FW_RI_RES_WR_FETCHRO V_FW_RI_RES_WR_FETCHRO(1U) 351cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise 352cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise#define S_FW_RI_RES_WR_HOSTFCMODE 20 353cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise#define M_FW_RI_RES_WR_HOSTFCMODE 0x3 354cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise#define V_FW_RI_RES_WR_HOSTFCMODE(x) ((x) << S_FW_RI_RES_WR_HOSTFCMODE) 355cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise#define G_FW_RI_RES_WR_HOSTFCMODE(x) \ 356cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise (((x) >> S_FW_RI_RES_WR_HOSTFCMODE) & M_FW_RI_RES_WR_HOSTFCMODE) 357cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise 358cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise#define S_FW_RI_RES_WR_CPRIO 19 359cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise#define M_FW_RI_RES_WR_CPRIO 0x1 360cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise#define V_FW_RI_RES_WR_CPRIO(x) ((x) << S_FW_RI_RES_WR_CPRIO) 361cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise#define G_FW_RI_RES_WR_CPRIO(x) \ 362cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise (((x) >> S_FW_RI_RES_WR_CPRIO) & M_FW_RI_RES_WR_CPRIO) 363cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise#define F_FW_RI_RES_WR_CPRIO V_FW_RI_RES_WR_CPRIO(1U) 364cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise 365cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise#define S_FW_RI_RES_WR_ONCHIP 18 366cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise#define M_FW_RI_RES_WR_ONCHIP 0x1 367cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise#define V_FW_RI_RES_WR_ONCHIP(x) ((x) << S_FW_RI_RES_WR_ONCHIP) 368cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise#define G_FW_RI_RES_WR_ONCHIP(x) \ 369cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise (((x) >> S_FW_RI_RES_WR_ONCHIP) & M_FW_RI_RES_WR_ONCHIP) 370cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise#define F_FW_RI_RES_WR_ONCHIP V_FW_RI_RES_WR_ONCHIP(1U) 371cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise 372cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise#define S_FW_RI_RES_WR_PCIECHN 16 373cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise#define M_FW_RI_RES_WR_PCIECHN 0x3 374cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise#define V_FW_RI_RES_WR_PCIECHN(x) ((x) << S_FW_RI_RES_WR_PCIECHN) 375cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise#define G_FW_RI_RES_WR_PCIECHN(x) \ 376cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise (((x) >> S_FW_RI_RES_WR_PCIECHN) & M_FW_RI_RES_WR_PCIECHN) 377cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise 378cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise#define S_FW_RI_RES_WR_IQID 0 379cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise#define M_FW_RI_RES_WR_IQID 0xffff 380cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise#define V_FW_RI_RES_WR_IQID(x) ((x) << S_FW_RI_RES_WR_IQID) 381cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise#define G_FW_RI_RES_WR_IQID(x) \ 382cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise (((x) >> S_FW_RI_RES_WR_IQID) & M_FW_RI_RES_WR_IQID) 383cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise 384cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise#define S_FW_RI_RES_WR_DCAEN 31 385cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise#define M_FW_RI_RES_WR_DCAEN 0x1 386cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise#define V_FW_RI_RES_WR_DCAEN(x) ((x) << S_FW_RI_RES_WR_DCAEN) 387cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise#define G_FW_RI_RES_WR_DCAEN(x) \ 388cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise (((x) >> S_FW_RI_RES_WR_DCAEN) & M_FW_RI_RES_WR_DCAEN) 389cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise#define F_FW_RI_RES_WR_DCAEN V_FW_RI_RES_WR_DCAEN(1U) 390cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise 391cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise#define S_FW_RI_RES_WR_DCACPU 26 392cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise#define M_FW_RI_RES_WR_DCACPU 0x1f 393cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise#define V_FW_RI_RES_WR_DCACPU(x) ((x) << S_FW_RI_RES_WR_DCACPU) 394cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise#define G_FW_RI_RES_WR_DCACPU(x) \ 395cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise (((x) >> S_FW_RI_RES_WR_DCACPU) & M_FW_RI_RES_WR_DCACPU) 396cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise 397cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise#define S_FW_RI_RES_WR_FBMIN 23 398cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise#define M_FW_RI_RES_WR_FBMIN 0x7 399cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise#define V_FW_RI_RES_WR_FBMIN(x) ((x) << S_FW_RI_RES_WR_FBMIN) 400cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise#define G_FW_RI_RES_WR_FBMIN(x) \ 401cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise (((x) >> S_FW_RI_RES_WR_FBMIN) & M_FW_RI_RES_WR_FBMIN) 402cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise 403cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise#define S_FW_RI_RES_WR_FBMAX 20 404cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise#define M_FW_RI_RES_WR_FBMAX 0x7 405cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise#define V_FW_RI_RES_WR_FBMAX(x) ((x) << S_FW_RI_RES_WR_FBMAX) 406cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise#define G_FW_RI_RES_WR_FBMAX(x) \ 407cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise (((x) >> S_FW_RI_RES_WR_FBMAX) & M_FW_RI_RES_WR_FBMAX) 408cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise 409cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise#define S_FW_RI_RES_WR_CIDXFTHRESHO 19 410cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise#define M_FW_RI_RES_WR_CIDXFTHRESHO 0x1 411cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise#define V_FW_RI_RES_WR_CIDXFTHRESHO(x) ((x) << S_FW_RI_RES_WR_CIDXFTHRESHO) 412cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise#define G_FW_RI_RES_WR_CIDXFTHRESHO(x) \ 413cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise (((x) >> S_FW_RI_RES_WR_CIDXFTHRESHO) & M_FW_RI_RES_WR_CIDXFTHRESHO) 414cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise#define F_FW_RI_RES_WR_CIDXFTHRESHO V_FW_RI_RES_WR_CIDXFTHRESHO(1U) 415cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise 416cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise#define S_FW_RI_RES_WR_CIDXFTHRESH 16 417cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise#define M_FW_RI_RES_WR_CIDXFTHRESH 0x7 418cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise#define V_FW_RI_RES_WR_CIDXFTHRESH(x) ((x) << S_FW_RI_RES_WR_CIDXFTHRESH) 419cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise#define G_FW_RI_RES_WR_CIDXFTHRESH(x) \ 420cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise (((x) >> S_FW_RI_RES_WR_CIDXFTHRESH) & M_FW_RI_RES_WR_CIDXFTHRESH) 421cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise 422cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise#define S_FW_RI_RES_WR_EQSIZE 0 423cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise#define M_FW_RI_RES_WR_EQSIZE 0xffff 424cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise#define V_FW_RI_RES_WR_EQSIZE(x) ((x) << S_FW_RI_RES_WR_EQSIZE) 425cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise#define G_FW_RI_RES_WR_EQSIZE(x) \ 426cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise (((x) >> S_FW_RI_RES_WR_EQSIZE) & M_FW_RI_RES_WR_EQSIZE) 427cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise 428cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise#define S_FW_RI_RES_WR_IQANDST 15 429cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise#define M_FW_RI_RES_WR_IQANDST 0x1 430cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise#define V_FW_RI_RES_WR_IQANDST(x) ((x) << S_FW_RI_RES_WR_IQANDST) 431cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise#define G_FW_RI_RES_WR_IQANDST(x) \ 432cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise (((x) >> S_FW_RI_RES_WR_IQANDST) & M_FW_RI_RES_WR_IQANDST) 433cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise#define F_FW_RI_RES_WR_IQANDST V_FW_RI_RES_WR_IQANDST(1U) 434cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise 435cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise#define S_FW_RI_RES_WR_IQANUS 14 436cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise#define M_FW_RI_RES_WR_IQANUS 0x1 437cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise#define V_FW_RI_RES_WR_IQANUS(x) ((x) << S_FW_RI_RES_WR_IQANUS) 438cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise#define G_FW_RI_RES_WR_IQANUS(x) \ 439cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise (((x) >> S_FW_RI_RES_WR_IQANUS) & M_FW_RI_RES_WR_IQANUS) 440cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise#define F_FW_RI_RES_WR_IQANUS V_FW_RI_RES_WR_IQANUS(1U) 441cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise 442cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise#define S_FW_RI_RES_WR_IQANUD 12 443cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise#define M_FW_RI_RES_WR_IQANUD 0x3 444cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise#define V_FW_RI_RES_WR_IQANUD(x) ((x) << S_FW_RI_RES_WR_IQANUD) 445cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise#define G_FW_RI_RES_WR_IQANUD(x) \ 446cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise (((x) >> S_FW_RI_RES_WR_IQANUD) & M_FW_RI_RES_WR_IQANUD) 447cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise 448cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise#define S_FW_RI_RES_WR_IQANDSTINDEX 0 449cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise#define M_FW_RI_RES_WR_IQANDSTINDEX 0xfff 450cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise#define V_FW_RI_RES_WR_IQANDSTINDEX(x) ((x) << S_FW_RI_RES_WR_IQANDSTINDEX) 451cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise#define G_FW_RI_RES_WR_IQANDSTINDEX(x) \ 452cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise (((x) >> S_FW_RI_RES_WR_IQANDSTINDEX) & M_FW_RI_RES_WR_IQANDSTINDEX) 453cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise 454cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise#define S_FW_RI_RES_WR_IQDROPRSS 15 455cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise#define M_FW_RI_RES_WR_IQDROPRSS 0x1 456cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise#define V_FW_RI_RES_WR_IQDROPRSS(x) ((x) << S_FW_RI_RES_WR_IQDROPRSS) 457cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise#define G_FW_RI_RES_WR_IQDROPRSS(x) \ 458cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise (((x) >> S_FW_RI_RES_WR_IQDROPRSS) & M_FW_RI_RES_WR_IQDROPRSS) 459cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise#define F_FW_RI_RES_WR_IQDROPRSS V_FW_RI_RES_WR_IQDROPRSS(1U) 460cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise 461cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise#define S_FW_RI_RES_WR_IQGTSMODE 14 462cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise#define M_FW_RI_RES_WR_IQGTSMODE 0x1 463cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise#define V_FW_RI_RES_WR_IQGTSMODE(x) ((x) << S_FW_RI_RES_WR_IQGTSMODE) 464cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise#define G_FW_RI_RES_WR_IQGTSMODE(x) \ 465cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise (((x) >> S_FW_RI_RES_WR_IQGTSMODE) & M_FW_RI_RES_WR_IQGTSMODE) 466cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise#define F_FW_RI_RES_WR_IQGTSMODE V_FW_RI_RES_WR_IQGTSMODE(1U) 467cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise 468cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise#define S_FW_RI_RES_WR_IQPCIECH 12 469cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise#define M_FW_RI_RES_WR_IQPCIECH 0x3 470cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise#define V_FW_RI_RES_WR_IQPCIECH(x) ((x) << S_FW_RI_RES_WR_IQPCIECH) 471cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise#define G_FW_RI_RES_WR_IQPCIECH(x) \ 472cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise (((x) >> S_FW_RI_RES_WR_IQPCIECH) & M_FW_RI_RES_WR_IQPCIECH) 473cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise 474cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise#define S_FW_RI_RES_WR_IQDCAEN 11 475cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise#define M_FW_RI_RES_WR_IQDCAEN 0x1 476cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise#define V_FW_RI_RES_WR_IQDCAEN(x) ((x) << S_FW_RI_RES_WR_IQDCAEN) 477cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise#define G_FW_RI_RES_WR_IQDCAEN(x) \ 478cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise (((x) >> S_FW_RI_RES_WR_IQDCAEN) & M_FW_RI_RES_WR_IQDCAEN) 479cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise#define F_FW_RI_RES_WR_IQDCAEN V_FW_RI_RES_WR_IQDCAEN(1U) 480cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise 481cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise#define S_FW_RI_RES_WR_IQDCACPU 6 482cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise#define M_FW_RI_RES_WR_IQDCACPU 0x1f 483cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise#define V_FW_RI_RES_WR_IQDCACPU(x) ((x) << S_FW_RI_RES_WR_IQDCACPU) 484cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise#define G_FW_RI_RES_WR_IQDCACPU(x) \ 485cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise (((x) >> S_FW_RI_RES_WR_IQDCACPU) & M_FW_RI_RES_WR_IQDCACPU) 486cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise 487cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise#define S_FW_RI_RES_WR_IQINTCNTTHRESH 4 488cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise#define M_FW_RI_RES_WR_IQINTCNTTHRESH 0x3 489cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise#define V_FW_RI_RES_WR_IQINTCNTTHRESH(x) \ 490cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise ((x) << S_FW_RI_RES_WR_IQINTCNTTHRESH) 491cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise#define G_FW_RI_RES_WR_IQINTCNTTHRESH(x) \ 492cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise (((x) >> S_FW_RI_RES_WR_IQINTCNTTHRESH) & M_FW_RI_RES_WR_IQINTCNTTHRESH) 493cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise 494cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise#define S_FW_RI_RES_WR_IQO 3 495cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise#define M_FW_RI_RES_WR_IQO 0x1 496cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise#define V_FW_RI_RES_WR_IQO(x) ((x) << S_FW_RI_RES_WR_IQO) 497cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise#define G_FW_RI_RES_WR_IQO(x) \ 498cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise (((x) >> S_FW_RI_RES_WR_IQO) & M_FW_RI_RES_WR_IQO) 499cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise#define F_FW_RI_RES_WR_IQO V_FW_RI_RES_WR_IQO(1U) 500cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise 501cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise#define S_FW_RI_RES_WR_IQCPRIO 2 502cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise#define M_FW_RI_RES_WR_IQCPRIO 0x1 503cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise#define V_FW_RI_RES_WR_IQCPRIO(x) ((x) << S_FW_RI_RES_WR_IQCPRIO) 504cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise#define G_FW_RI_RES_WR_IQCPRIO(x) \ 505cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise (((x) >> S_FW_RI_RES_WR_IQCPRIO) & M_FW_RI_RES_WR_IQCPRIO) 506cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise#define F_FW_RI_RES_WR_IQCPRIO V_FW_RI_RES_WR_IQCPRIO(1U) 507cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise 508cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise#define S_FW_RI_RES_WR_IQESIZE 0 509cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise#define M_FW_RI_RES_WR_IQESIZE 0x3 510cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise#define V_FW_RI_RES_WR_IQESIZE(x) ((x) << S_FW_RI_RES_WR_IQESIZE) 511cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise#define G_FW_RI_RES_WR_IQESIZE(x) \ 512cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise (((x) >> S_FW_RI_RES_WR_IQESIZE) & M_FW_RI_RES_WR_IQESIZE) 513cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise 514cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise#define S_FW_RI_RES_WR_IQNS 31 515cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise#define M_FW_RI_RES_WR_IQNS 0x1 516cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise#define V_FW_RI_RES_WR_IQNS(x) ((x) << S_FW_RI_RES_WR_IQNS) 517cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise#define G_FW_RI_RES_WR_IQNS(x) \ 518cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise (((x) >> S_FW_RI_RES_WR_IQNS) & M_FW_RI_RES_WR_IQNS) 519cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise#define F_FW_RI_RES_WR_IQNS V_FW_RI_RES_WR_IQNS(1U) 520cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise 521cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise#define S_FW_RI_RES_WR_IQRO 30 522cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise#define M_FW_RI_RES_WR_IQRO 0x1 523cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise#define V_FW_RI_RES_WR_IQRO(x) ((x) << S_FW_RI_RES_WR_IQRO) 524cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise#define G_FW_RI_RES_WR_IQRO(x) \ 525cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise (((x) >> S_FW_RI_RES_WR_IQRO) & M_FW_RI_RES_WR_IQRO) 526cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise#define F_FW_RI_RES_WR_IQRO V_FW_RI_RES_WR_IQRO(1U) 527cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise 528cfdda9d764362ab77b11a410bb928400e6520d57Steve Wisestruct fw_ri_rdma_write_wr { 529cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise __u8 opcode; 530cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise __u8 flags; 531cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise __u16 wrid; 532cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise __u8 r1[3]; 533cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise __u8 len16; 534cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise __be64 r2; 535cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise __be32 plen; 536cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise __be32 stag_sink; 537cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise __be64 to_sink; 538cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise#ifndef C99_NOT_SUPPORTED 539cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise union { 540cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise struct fw_ri_immd immd_src[0]; 541cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise struct fw_ri_isgl isgl_src[0]; 542cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise } u; 543cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise#endif 544cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise}; 545cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise 546cfdda9d764362ab77b11a410bb928400e6520d57Steve Wisestruct fw_ri_send_wr { 547cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise __u8 opcode; 548cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise __u8 flags; 549cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise __u16 wrid; 550cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise __u8 r1[3]; 551cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise __u8 len16; 552cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise __be32 sendop_pkd; 553cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise __be32 stag_inv; 554cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise __be32 plen; 555cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise __be32 r3; 556cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise __be64 r4; 557cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise#ifndef C99_NOT_SUPPORTED 558cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise union { 559cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise struct fw_ri_immd immd_src[0]; 560cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise struct fw_ri_isgl isgl_src[0]; 561cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise } u; 562cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise#endif 563cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise}; 564cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise 565cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise#define S_FW_RI_SEND_WR_SENDOP 0 566cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise#define M_FW_RI_SEND_WR_SENDOP 0xf 567cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise#define V_FW_RI_SEND_WR_SENDOP(x) ((x) << S_FW_RI_SEND_WR_SENDOP) 568cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise#define G_FW_RI_SEND_WR_SENDOP(x) \ 569cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise (((x) >> S_FW_RI_SEND_WR_SENDOP) & M_FW_RI_SEND_WR_SENDOP) 570cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise 571cfdda9d764362ab77b11a410bb928400e6520d57Steve Wisestruct fw_ri_rdma_read_wr { 572cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise __u8 opcode; 573cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise __u8 flags; 574cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise __u16 wrid; 575cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise __u8 r1[3]; 576cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise __u8 len16; 577cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise __be64 r2; 578cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise __be32 stag_sink; 579cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise __be32 to_sink_hi; 580cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise __be32 to_sink_lo; 581cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise __be32 plen; 582cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise __be32 stag_src; 583cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise __be32 to_src_hi; 584cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise __be32 to_src_lo; 585cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise __be32 r5; 586cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise}; 587cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise 588cfdda9d764362ab77b11a410bb928400e6520d57Steve Wisestruct fw_ri_recv_wr { 589cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise __u8 opcode; 590cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise __u8 r1; 591cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise __u16 wrid; 592cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise __u8 r2[3]; 593cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise __u8 len16; 594cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise struct fw_ri_isgl isgl; 595cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise}; 596cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise 597cfdda9d764362ab77b11a410bb928400e6520d57Steve Wisestruct fw_ri_bind_mw_wr { 598cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise __u8 opcode; 599cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise __u8 flags; 600cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise __u16 wrid; 601cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise __u8 r1[3]; 602cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise __u8 len16; 603cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise __u8 qpbinde_to_dcacpu; 604cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise __u8 pgsz_shift; 605cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise __u8 addr_type; 606cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise __u8 mem_perms; 607cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise __be32 stag_mr; 608cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise __be32 stag_mw; 609cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise __be32 r3; 610cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise __be64 len_mw; 611cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise __be64 va_fbo; 612cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise __be64 r4; 613cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise}; 614cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise 615cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise#define S_FW_RI_BIND_MW_WR_QPBINDE 6 616cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise#define M_FW_RI_BIND_MW_WR_QPBINDE 0x1 617cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise#define V_FW_RI_BIND_MW_WR_QPBINDE(x) ((x) << S_FW_RI_BIND_MW_WR_QPBINDE) 618cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise#define G_FW_RI_BIND_MW_WR_QPBINDE(x) \ 619cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise (((x) >> S_FW_RI_BIND_MW_WR_QPBINDE) & M_FW_RI_BIND_MW_WR_QPBINDE) 620cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise#define F_FW_RI_BIND_MW_WR_QPBINDE V_FW_RI_BIND_MW_WR_QPBINDE(1U) 621cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise 622cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise#define S_FW_RI_BIND_MW_WR_NS 5 623cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise#define M_FW_RI_BIND_MW_WR_NS 0x1 624cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise#define V_FW_RI_BIND_MW_WR_NS(x) ((x) << S_FW_RI_BIND_MW_WR_NS) 625cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise#define G_FW_RI_BIND_MW_WR_NS(x) \ 626cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise (((x) >> S_FW_RI_BIND_MW_WR_NS) & M_FW_RI_BIND_MW_WR_NS) 627cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise#define F_FW_RI_BIND_MW_WR_NS V_FW_RI_BIND_MW_WR_NS(1U) 628cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise 629cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise#define S_FW_RI_BIND_MW_WR_DCACPU 0 630cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise#define M_FW_RI_BIND_MW_WR_DCACPU 0x1f 631cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise#define V_FW_RI_BIND_MW_WR_DCACPU(x) ((x) << S_FW_RI_BIND_MW_WR_DCACPU) 632cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise#define G_FW_RI_BIND_MW_WR_DCACPU(x) \ 633cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise (((x) >> S_FW_RI_BIND_MW_WR_DCACPU) & M_FW_RI_BIND_MW_WR_DCACPU) 634cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise 635cfdda9d764362ab77b11a410bb928400e6520d57Steve Wisestruct fw_ri_fr_nsmr_wr { 636cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise __u8 opcode; 637cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise __u8 flags; 638cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise __u16 wrid; 639cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise __u8 r1[3]; 640cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise __u8 len16; 641cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise __u8 qpbinde_to_dcacpu; 642cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise __u8 pgsz_shift; 643cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise __u8 addr_type; 644cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise __u8 mem_perms; 645cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise __be32 stag; 646cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise __be32 len_hi; 647cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise __be32 len_lo; 648cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise __be32 va_hi; 649cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise __be32 va_lo_fbo; 650cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise}; 651cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise 652cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise#define S_FW_RI_FR_NSMR_WR_QPBINDE 6 653cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise#define M_FW_RI_FR_NSMR_WR_QPBINDE 0x1 654cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise#define V_FW_RI_FR_NSMR_WR_QPBINDE(x) ((x) << S_FW_RI_FR_NSMR_WR_QPBINDE) 655cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise#define G_FW_RI_FR_NSMR_WR_QPBINDE(x) \ 656cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise (((x) >> S_FW_RI_FR_NSMR_WR_QPBINDE) & M_FW_RI_FR_NSMR_WR_QPBINDE) 657cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise#define F_FW_RI_FR_NSMR_WR_QPBINDE V_FW_RI_FR_NSMR_WR_QPBINDE(1U) 658cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise 659cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise#define S_FW_RI_FR_NSMR_WR_NS 5 660cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise#define M_FW_RI_FR_NSMR_WR_NS 0x1 661cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise#define V_FW_RI_FR_NSMR_WR_NS(x) ((x) << S_FW_RI_FR_NSMR_WR_NS) 662cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise#define G_FW_RI_FR_NSMR_WR_NS(x) \ 663cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise (((x) >> S_FW_RI_FR_NSMR_WR_NS) & M_FW_RI_FR_NSMR_WR_NS) 664cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise#define F_FW_RI_FR_NSMR_WR_NS V_FW_RI_FR_NSMR_WR_NS(1U) 665cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise 666cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise#define S_FW_RI_FR_NSMR_WR_DCACPU 0 667cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise#define M_FW_RI_FR_NSMR_WR_DCACPU 0x1f 668cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise#define V_FW_RI_FR_NSMR_WR_DCACPU(x) ((x) << S_FW_RI_FR_NSMR_WR_DCACPU) 669cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise#define G_FW_RI_FR_NSMR_WR_DCACPU(x) \ 670cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise (((x) >> S_FW_RI_FR_NSMR_WR_DCACPU) & M_FW_RI_FR_NSMR_WR_DCACPU) 671cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise 672cfdda9d764362ab77b11a410bb928400e6520d57Steve Wisestruct fw_ri_inv_lstag_wr { 673cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise __u8 opcode; 674cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise __u8 flags; 675cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise __u16 wrid; 676cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise __u8 r1[3]; 677cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise __u8 len16; 678cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise __be32 r2; 679cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise __be32 stag_inv; 680cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise}; 681cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise 682cfdda9d764362ab77b11a410bb928400e6520d57Steve Wiseenum fw_ri_type { 683cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise FW_RI_TYPE_INIT, 684cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise FW_RI_TYPE_FINI, 685cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise FW_RI_TYPE_TERMINATE 686cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise}; 687cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise 688cfdda9d764362ab77b11a410bb928400e6520d57Steve Wiseenum fw_ri_init_p2ptype { 689cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise FW_RI_INIT_P2PTYPE_RDMA_WRITE = FW_RI_RDMA_WRITE, 690cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise FW_RI_INIT_P2PTYPE_READ_REQ = FW_RI_READ_REQ, 691cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise FW_RI_INIT_P2PTYPE_SEND = FW_RI_SEND, 692cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise FW_RI_INIT_P2PTYPE_SEND_WITH_INV = FW_RI_SEND_WITH_INV, 693cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise FW_RI_INIT_P2PTYPE_SEND_WITH_SE = FW_RI_SEND_WITH_SE, 694cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise FW_RI_INIT_P2PTYPE_SEND_WITH_SE_INV = FW_RI_SEND_WITH_SE_INV, 695cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise FW_RI_INIT_P2PTYPE_DISABLED = 0xf, 696cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise}; 697cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise 698cfdda9d764362ab77b11a410bb928400e6520d57Steve Wisestruct fw_ri_wr { 699cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise __be32 op_compl; 700cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise __be32 flowid_len16; 701cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise __u64 cookie; 702cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise union fw_ri { 703cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise struct fw_ri_init { 704cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise __u8 type; 705cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise __u8 mpareqbit_p2ptype; 706cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise __u8 r4[2]; 707cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise __u8 mpa_attrs; 708cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise __u8 qp_caps; 709cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise __be16 nrqe; 710cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise __be32 pdid; 711cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise __be32 qpid; 712cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise __be32 sq_eqid; 713cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise __be32 rq_eqid; 714cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise __be32 scqid; 715cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise __be32 rcqid; 716cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise __be32 ord_max; 717cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise __be32 ird_max; 718cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise __be32 iss; 719cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise __be32 irs; 720cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise __be32 hwrqsize; 721cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise __be32 hwrqaddr; 722cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise __be64 r5; 723cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise union fw_ri_init_p2p { 724cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise struct fw_ri_rdma_write_wr write; 725cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise struct fw_ri_rdma_read_wr read; 726cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise struct fw_ri_send_wr send; 727cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise } u; 728cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise } init; 729cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise struct fw_ri_fini { 730cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise __u8 type; 731cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise __u8 r3[7]; 732cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise __be64 r4; 733cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise } fini; 734cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise struct fw_ri_terminate { 735cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise __u8 type; 736cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise __u8 r3[3]; 737cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise __be32 immdlen; 738cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise __u8 termmsg[40]; 739cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise } terminate; 740cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise } u; 741cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise}; 742cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise 743cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise#define S_FW_RI_WR_MPAREQBIT 7 744cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise#define M_FW_RI_WR_MPAREQBIT 0x1 745cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise#define V_FW_RI_WR_MPAREQBIT(x) ((x) << S_FW_RI_WR_MPAREQBIT) 746cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise#define G_FW_RI_WR_MPAREQBIT(x) \ 747cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise (((x) >> S_FW_RI_WR_MPAREQBIT) & M_FW_RI_WR_MPAREQBIT) 748cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise#define F_FW_RI_WR_MPAREQBIT V_FW_RI_WR_MPAREQBIT(1U) 749cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise 750cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise#define S_FW_RI_WR_P2PTYPE 0 751cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise#define M_FW_RI_WR_P2PTYPE 0xf 752cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise#define V_FW_RI_WR_P2PTYPE(x) ((x) << S_FW_RI_WR_P2PTYPE) 753cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise#define G_FW_RI_WR_P2PTYPE(x) \ 754cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise (((x) >> S_FW_RI_WR_P2PTYPE) & M_FW_RI_WR_P2PTYPE) 755cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise 756cfdda9d764362ab77b11a410bb928400e6520d57Steve Wisestruct tcp_options { 757cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise __be16 mss; 758cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise __u8 wsf; 759cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise#if defined(__LITTLE_ENDIAN_BITFIELD) 760cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise __u8:4; 761cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise __u8 unknown:1; 762cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise __u8:1; 763cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise __u8 sack:1; 764cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise __u8 tstamp:1; 765cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise#else 766cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise __u8 tstamp:1; 767cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise __u8 sack:1; 768cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise __u8:1; 769cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise __u8 unknown:1; 770cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise __u8:4; 771cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise#endif 772cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise}; 773cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise 774cfdda9d764362ab77b11a410bb928400e6520d57Steve Wisestruct cpl_pass_accept_req { 775cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise union opcode_tid ot; 776cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise __be16 rsvd; 777cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise __be16 len; 778cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise __be32 hdr_len; 779cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise __be16 vlan; 780cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise __be16 l2info; 781cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise __be32 tos_stid; 782cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise struct tcp_options tcpopt; 783cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise}; 784cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise 785cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise/* cpl_pass_accept_req.hdr_len fields */ 786cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise#define S_SYN_RX_CHAN 0 787cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise#define M_SYN_RX_CHAN 0xF 788cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise#define V_SYN_RX_CHAN(x) ((x) << S_SYN_RX_CHAN) 789cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise#define G_SYN_RX_CHAN(x) (((x) >> S_SYN_RX_CHAN) & M_SYN_RX_CHAN) 790cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise 791cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise#define S_TCP_HDR_LEN 10 792cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise#define M_TCP_HDR_LEN 0x3F 793cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise#define V_TCP_HDR_LEN(x) ((x) << S_TCP_HDR_LEN) 794cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise#define G_TCP_HDR_LEN(x) (((x) >> S_TCP_HDR_LEN) & M_TCP_HDR_LEN) 795cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise 796cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise#define S_IP_HDR_LEN 16 797cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise#define M_IP_HDR_LEN 0x3FF 798cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise#define V_IP_HDR_LEN(x) ((x) << S_IP_HDR_LEN) 799cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise#define G_IP_HDR_LEN(x) (((x) >> S_IP_HDR_LEN) & M_IP_HDR_LEN) 800cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise 801cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise#define S_ETH_HDR_LEN 26 802cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise#define M_ETH_HDR_LEN 0x1F 803cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise#define V_ETH_HDR_LEN(x) ((x) << S_ETH_HDR_LEN) 804cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise#define G_ETH_HDR_LEN(x) (((x) >> S_ETH_HDR_LEN) & M_ETH_HDR_LEN) 805cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise 806cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise/* cpl_pass_accept_req.l2info fields */ 807cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise#define S_SYN_MAC_IDX 0 808cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise#define M_SYN_MAC_IDX 0x1FF 809cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise#define V_SYN_MAC_IDX(x) ((x) << S_SYN_MAC_IDX) 810cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise#define G_SYN_MAC_IDX(x) (((x) >> S_SYN_MAC_IDX) & M_SYN_MAC_IDX) 811cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise 812cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise#define S_SYN_XACT_MATCH 9 813cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise#define V_SYN_XACT_MATCH(x) ((x) << S_SYN_XACT_MATCH) 814cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise#define F_SYN_XACT_MATCH V_SYN_XACT_MATCH(1U) 815cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise 816cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise#define S_SYN_INTF 12 817cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise#define M_SYN_INTF 0xF 818cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise#define V_SYN_INTF(x) ((x) << S_SYN_INTF) 819cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise#define G_SYN_INTF(x) (((x) >> S_SYN_INTF) & M_SYN_INTF) 820cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise 821cfdda9d764362ab77b11a410bb928400e6520d57Steve Wisestruct ulptx_idata { 822cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise __be32 cmd_more; 823cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise __be32 len; 824cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise}; 825cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise 826cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise#define S_ULPTX_NSGE 0 827cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise#define M_ULPTX_NSGE 0xFFFF 828cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise#define V_ULPTX_NSGE(x) ((x) << S_ULPTX_NSGE) 829ba6d39256bed87a0e8ee1770b5f7638bb3e0cfe4Steve Wise 830ba6d39256bed87a0e8ee1770b5f7638bb3e0cfe4Steve Wise#define S_RX_DACK_MODE 29 831ba6d39256bed87a0e8ee1770b5f7638bb3e0cfe4Steve Wise#define M_RX_DACK_MODE 0x3 832ba6d39256bed87a0e8ee1770b5f7638bb3e0cfe4Steve Wise#define V_RX_DACK_MODE(x) ((x) << S_RX_DACK_MODE) 833ba6d39256bed87a0e8ee1770b5f7638bb3e0cfe4Steve Wise#define G_RX_DACK_MODE(x) (((x) >> S_RX_DACK_MODE) & M_RX_DACK_MODE) 834ba6d39256bed87a0e8ee1770b5f7638bb3e0cfe4Steve Wise 835ba6d39256bed87a0e8ee1770b5f7638bb3e0cfe4Steve Wise#define S_RX_DACK_CHANGE 31 836ba6d39256bed87a0e8ee1770b5f7638bb3e0cfe4Steve Wise#define V_RX_DACK_CHANGE(x) ((x) << S_RX_DACK_CHANGE) 837ba6d39256bed87a0e8ee1770b5f7638bb3e0cfe4Steve Wise#define F_RX_DACK_CHANGE V_RX_DACK_CHANGE(1U) 838ba6d39256bed87a0e8ee1770b5f7638bb3e0cfe4Steve Wise 839cfdda9d764362ab77b11a410bb928400e6520d57Steve Wise#endif /* _T4FW_RI_API_H_ */ 840