From nobody Mon May 30 14:44:21 2022 X-Original-To: dev-commits-src-all@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 7D1E81B47AE3; Mon, 30 May 2022 14:44:23 +0000 (UTC) (envelope-from mhorne@freebsd.org) Received: from smtp.freebsd.org (smtp.freebsd.org [96.47.72.83]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "smtp.freebsd.org", Issuer "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4LBdTg32V0z4RR6; Mon, 30 May 2022 14:44:23 +0000 (UTC) (envelope-from mhorne@freebsd.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1653921863; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=7AJroWvBQHUu1LRp0WrJL3DgQs9tMfYQ7WJ0dM+M6v4=; b=jGuNMAQnh6Qz4Aipoc30viSQNERSaVypto3lgn8O5RdskcHNAEekR/7w/ui5n31GDXTB/b tiKT/OuusBEB9D7eXcQkMjIgOQVTjx9Yl85egQl0qFs03aAOKDO9+esefFYudvof+CSuaQ C/08Jrdq8mHeYTW48OjqQ0a26akJw4smGIa4fuLjmydBd8GhUgaYTJJ8jK2K5pqiVAuihh w9WWCsheomkV09iWdiJs6meoaT40Cggb+WnyvqwqfL1Pd5w6YDPslnxHlIx9YHFmqi5344 etqPeLlkrxiB/38ivHNHi3ucaKx4CVp+6I9Ur1sTEDrqlDn5brMocyIi5GAoKg== Received: from [192.168.1.106] (host-71-7-134-180.public.eastlink.ca [71.7.134.180]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (Client did not present a certificate) (Authenticated sender: mhorne) by smtp.freebsd.org (Postfix) with ESMTPSA id EA763EAFC; Mon, 30 May 2022 14:44:22 +0000 (UTC) (envelope-from mhorne@freebsd.org) Message-ID: <4de20f77-984e-b687-d618-105ce86da04c@freebsd.org> Date: Mon, 30 May 2022 11:44:21 -0300 List-Id: Commit messages for all branches of the src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-all List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-dev-commits-src-all@freebsd.org X-BeenThere: dev-commits-src-all@freebsd.org MIME-Version: 1.0 User-Agent: Mozilla/5.0 (X11; FreeBSD amd64; rv:91.0) Gecko/20100101 Thunderbird/91.9.1 Subject: Re: cdcd52d41e24 - main - irdma: Add RDMA driver for Intel(R) Ethernet Controller E810 Content-Language: en-CA To: Ravi Pokala , Eric Joyner , src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org References: <202205232354.24NNs69N032987@gitrepo.freebsd.org> From: Mitchell Horne In-Reply-To: Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1653921863; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=7AJroWvBQHUu1LRp0WrJL3DgQs9tMfYQ7WJ0dM+M6v4=; b=QMSHRUJfIu9JKRpGxJptfFdrCDdXn4/lom9ANzKYazsiKIfTpLXXfL8KFxqNSfVjJXh/dU Ls14fFLEGixl9oAxG/Etg9bfWO7HKcBD2gLB+A6XnRjSxgME3uP6LqOlvsvUfBDbW76PP/ 5gqAGB1FG4fgVLLSrDscIL36bu4UF1NrouWEGgyZSbfUDRnJ2Q5M2twriiMx3tpDBb4hgU +WLxukCSOtxqXevwGWbQJMjukBqkFM7BiS054Z+AB5H8wAFeDyCmC2YNb+018EORvb5XLB veCsS7PiGGsrTUOiTAIB0nMDpWdM0AoqBayVmylQhnSvbpMLGwEXK1G3qb8DNA== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1653921863; a=rsa-sha256; cv=none; b=GckiEt7L+9T5/Xbq/Ezvg3zVbsNGpZKRdNItVfEcCBr7j9wrmBwkkAWIb6oF++5oo40ZMx JLiVXH6zmXdPK9MvXGBcOYnJNqTV9f0t95fO4OwD+/Nj7jl/aoOoRsuHsT9yr2eIL+E+Yp 2gYCzjN9y71yfj5jrQmK2wnoBFcRl1iRcdtsREV913fYnSb9EW50AOjckuZ8nLmPgpqbvW 7Jo/lvqCSRy/NETrPaghBS1jeNJyutH2npGtxmjq+hIMekNyYKll1lmnrpghQWa2t6IEib Y9wg+0Q4fb4tncjb3EzoVHtVAqCI7HHrPrrH6PJGybfKyKAFQvrov+A9V7bc+w== ARC-Authentication-Results: i=1; mx1.freebsd.org; none X-ThisMailContainsUnwantedMimeParts: N On 5/29/22 02:52, Ravi Pokala wrote: > Hi Eric, > > This change appears to have broken the amd64 LINT-{NOINET,NOINET6,NOIP} kernels: > > LINT-NOINET > ---------------------------------------------------------------- > /usr/home/rpokala/freebsd/src/clean-main/sys/modules/irdma/../../dev/irdma/irdma_cm.c:1659:11: error: implicit declaration of function 'ip_ifp_find' is invalid in C99 [-Werror,-Wimplicit-function-declaration] > netdev = ip_ifp_find(&init_net, htonl(addr[0])); > ^ > /usr/home/rpokala/freebsd/src/clean-main/sys/modules/irdma/../../dev/irdma/irdma_cm.c:1659:11: note: did you mean 'ip6_ifp_find'? > /usr/home/rpokala/freebsd/src/clean-main/sys/modules/irdma/../../ofed/include/rdma/ib_addr_freebsd.h:64:1: note: 'ip6_ifp_find' declared here > ip6_ifp_find(struct vnet *vnet, struct in6_addr addr, uint16_t scope_id) > ^ > /usr/home/rpokala/freebsd/src/clean-main/sys/modules/irdma/../../dev/irdma/irdma_cm.c:1659:9: error: incompatible integer to pointer conversion assigning to 'struct ifnet *' from 'int' [-Werror,-Wint-conversion] > netdev = ip_ifp_find(&init_net, htonl(addr[0])); > ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ > 2 errors generated. > --- irdma_cm.o --- > ---------------------------------------------------------------- > > LINT-NOINET6 > ---------------------------------------------------------------- > /usr/home/rpokala/freebsd/src/clean-main/sys/modules/irdma/../../dev/irdma/irdma_cm.c:1638:11: error: implicit declaration of function 'ip6_ifp_find' is invalid in C99 [-Werror,-Wimplicit-function-declaration] > ip_dev = ip6_ifp_find(&init_net, laddr6, 0); > ^ > /usr/home/rpokala/freebsd/src/clean-main/sys/modules/irdma/../../dev/irdma/irdma_cm.c:1638:11: note: did you mean 'ip_ifp_find'? > /usr/home/rpokala/freebsd/src/clean-main/sys/modules/irdma/../../ofed/include/rdma/ib_addr_freebsd.h:36:1: note: 'ip_ifp_find' declared here > ip_ifp_find(struct vnet *vnet, uint32_t addr) > ^ > /usr/home/rpokala/freebsd/src/clean-main/sys/modules/irdma/../../dev/irdma/irdma_cm.c:1638:9: error: incompatible integer to pointer conversion assigning to 'struct ifnet *' from 'int' [-Werror,-Wint-conversion] > ip_dev = ip6_ifp_find(&init_net, laddr6, 0); > ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ > 2 errors generated. > --- irdma_cm.o --- > ---------------------------------------------------------------- > > LINT-NOIP: > ---------------------------------------------------------------- > /usr/home/rpokala/freebsd/src/clean-main/sys/modules/irdma/../../dev/irdma/irdma_cm.c:1638:11: error: implicit declaration of function 'ip6_ifp_find' is invalid in C99 [-Werror,-Wimplicit-function-declaration] > ip_dev = ip6_ifp_find(&init_net, laddr6, 0); > ^ > /usr/home/rpokala/freebsd/src/clean-main/sys/modules/irdma/../../dev/irdma/irdma_cm.c:1638:9: error: incompatible integer to pointer conversion assigning to 'struct ifnet *' from 'int' [-Werror,-Wint-conversion] > ip_dev = ip6_ifp_find(&init_net, laddr6, 0); > ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ > /usr/home/rpokala/freebsd/src/clean-main/sys/modules/irdma/../../dev/irdma/irdma_cm.c:1659:11: error: implicit declaration of function 'ip_ifp_find' is invalid in C99 [-Werror,-Wimplicit-function-declaration] > netdev = ip_ifp_find(&init_net, htonl(addr[0])); > ^ > /usr/home/rpokala/freebsd/src/clean-main/sys/modules/irdma/../../dev/irdma/irdma_cm.c:1659:9: error: incompatible integer to pointer conversion assigning to 'struct ifnet *' from 'int' [-Werror,-Wint-conversion] > netdev = ip_ifp_find(&init_net, htonl(addr[0])); > ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ > 4 errors generated. > --- irdma_cm.o --- > ---------------------------------------------------------------- > Hi, I posted a fix for this, which resolves the issue for me. I will commit it later today if I don't hear anything back. https://reviews.freebsd.org/D35343 Cheers, Mitchell > Thanks, > > Ravi (rpokala@) > > -----Original Message----- > From: on behalf of Eric Joyner > Date: 2022-05-23, Monday at 16:54 > To: , , > Subject: git: cdcd52d41e24 - main - irdma: Add RDMA driver for Intel(R) Ethernet Controller E810 > > The branch main has been updated by erj: > > URL: https://cgit.FreeBSD.org/src/commit/?id=cdcd52d41e246ba1c0fcfad0769bd691487355ef > > commit cdcd52d41e246ba1c0fcfad0769bd691487355ef > Author: Bartosz Sobczak > AuthorDate: 2022-05-23 23:39:27 +0000 > Commit: Eric Joyner > CommitDate: 2022-05-23 23:52:49 +0000 > > irdma: Add RDMA driver for Intel(R) Ethernet Controller E810 > > This is an initial commit for RDMA FreeBSD driver for Intel(R) Ethernet > Controller E810, called irdma. Supporting both RoCEv2 and iWARP > protocols in per-PF manner, RoCEv2 being the default. > > Testing has been done using krping tool, perftest, ucmatose, rping, > ud_pingpong, rc_pingpong and others. > > Signed-off-by: Eric Joyner > > Reviewed by: #manpages (pauamma_gundo.com) [documentation] > MFC after: 1 week > Relnotes: yes > Sponsored by: Intel Corporation > Differential Revision: https://reviews.freebsd.org/D34690 > --- > contrib/ofed/libirdma/abi.h | 180 ++ > contrib/ofed/libirdma/i40e_devids.h | 69 + > contrib/ofed/libirdma/i40iw_hw.h | 64 + > contrib/ofed/libirdma/ice_devids.h | 92 + > contrib/ofed/libirdma/irdma-abi.h | 143 + > contrib/ofed/libirdma/irdma.h | 93 + > contrib/ofed/libirdma/irdma_defs.h | 554 ++++ > contrib/ofed/libirdma/irdma_uk.c | 1884 ++++++++++++ > contrib/ofed/libirdma/irdma_umain.c | 255 ++ > contrib/ofed/libirdma/irdma_umain.h | 218 ++ > contrib/ofed/libirdma/irdma_user.h | 479 +++ > contrib/ofed/libirdma/irdma_uverbs.c | 2262 ++++++++++++++ > contrib/ofed/libirdma/libirdma.map | 10 + > contrib/ofed/libirdma/osdep.h | 213 ++ > lib/ofed/Makefile | 2 + > lib/ofed/libirdma/Makefile | 23 + > share/man/man4/irdma.4 | 233 ++ > share/mk/bsd.libnames.mk | 1 + > share/mk/src.libnames.mk | 3 + > sys/amd64/conf/NOTES | 3 + > sys/conf/files | 31 + > sys/dev/irdma/fbsd_kcompat.c | 736 +++++ > sys/dev/irdma/fbsd_kcompat.h | 251 ++ > sys/dev/irdma/ice_devids.h | 92 + > sys/dev/irdma/icrdma.c | 704 +++++ > sys/dev/irdma/icrdma_hw.c | 418 +++ > sys/dev/irdma/icrdma_hw.h | 137 + > sys/dev/irdma/irdma-abi.h | 143 + > sys/dev/irdma/irdma.h | 238 ++ > sys/dev/irdma/irdma_cm.c | 4253 +++++++++++++++++++++++++ > sys/dev/irdma/irdma_cm.h | 453 +++ > sys/dev/irdma/irdma_ctrl.c | 5644 ++++++++++++++++++++++++++++++++++ > sys/dev/irdma/irdma_defs.h | 2337 ++++++++++++++ > sys/dev/irdma/irdma_hmc.c | 734 +++++ > sys/dev/irdma/irdma_hmc.h | 202 ++ > sys/dev/irdma/irdma_hw.c | 2829 +++++++++++++++++ > sys/dev/irdma/irdma_kcompat.c | 1568 ++++++++++ > sys/dev/irdma/irdma_main.h | 589 ++++ > sys/dev/irdma/irdma_pble.c | 557 ++++ > sys/dev/irdma/irdma_pble.h | 166 + > sys/dev/irdma/irdma_protos.h | 141 + > sys/dev/irdma/irdma_puda.c | 1856 +++++++++++ > sys/dev/irdma/irdma_puda.h | 221 ++ > sys/dev/irdma/irdma_type.h | 1533 +++++++++ > sys/dev/irdma/irdma_uda.c | 318 ++ > sys/dev/irdma/irdma_uda.h | 120 + > sys/dev/irdma/irdma_uda_d.h | 415 +++ > sys/dev/irdma/irdma_uk.c | 1808 +++++++++++ > sys/dev/irdma/irdma_user.h | 477 +++ > sys/dev/irdma/irdma_utils.c | 2325 ++++++++++++++ > sys/dev/irdma/irdma_verbs.c | 3364 ++++++++++++++++++++ > sys/dev/irdma/irdma_verbs.h | 313 ++ > sys/dev/irdma/irdma_ws.c | 447 +++ > sys/dev/irdma/irdma_ws.h | 74 + > sys/dev/irdma/osdep.h | 247 ++ > sys/modules/Makefile | 4 + > sys/modules/irdma/Makefile | 23 + > usr.bin/ofed/libibverbs/Makefile.inc | 2 +- > usr.bin/ofed/librdmacm/Makefile.inc | 2 +- > 59 files changed, 42551 insertions(+), 2 deletions(-) > > diff --git a/contrib/ofed/libirdma/abi.h b/contrib/ofed/libirdma/abi.h > new file mode 100644 > index 000000000000..ff7a2828efe0 > --- /dev/null > +++ b/contrib/ofed/libirdma/abi.h > @@ -0,0 +1,180 @@ > +/*- > + * SPDX-License-Identifier: GPL-2.0 or Linux-OpenIB > + * > + * Copyright (C) 2019 - 2020 Intel Corporation > + * > + * This software is available to you under a choice of one of two > + * licenses. You may choose to be licensed under the terms of the GNU > + * General Public License (GPL) Version 2, available from the file > + * COPYING in the main directory of this source tree, or the > + * OpenFabrics.org BSD license below: > + * > + * Redistribution and use in source and binary forms, with or > + * without modification, are permitted provided that the following > + * conditions are met: > + * > + * - Redistributions of source code must retain the above > + * copyright notice, this list of conditions and the following > + * disclaimer. > + * > + * - Redistributions in binary form must reproduce the above > + * copyright notice, this list of conditions and the following > + * disclaimer in the documentation and/or other materials > + * provided with the distribution. > + * > + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, > + * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF > + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND > + * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS > + * BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN > + * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN > + * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE > + * SOFTWARE. > + */ > +/*$FreeBSD$*/ > + > +#ifndef PROVIDER_IRDMA_ABI_H > +#define PROVIDER_IRDMA_ABI_H > + > +#include "irdma.h" > +#include > +#include "irdma-abi.h" > + > +#define IRDMA_MIN_ABI_VERSION 0 > +#define IRDMA_MAX_ABI_VERSION 5 > + > +struct irdma_ualloc_pd_resp { > + struct ibv_alloc_pd_resp ibv_resp; > + __u32 pd_id; > + __u8 rsvd[4]; > + > +}; > +struct irdma_ucreate_cq { > + struct ibv_create_cq ibv_cmd; > + __aligned_u64 user_cq_buf; > + __aligned_u64 user_shadow_area; > + > +}; > +struct irdma_ucreate_cq_resp { > + struct ibv_create_cq_resp ibv_resp; > + __u32 cq_id; > + __u32 cq_size; > + > +}; > +struct irdma_ucreate_cq_ex { > + struct ibv_create_cq_ex ibv_cmd; > + __aligned_u64 user_cq_buf; > + __aligned_u64 user_shadow_area; > + > +}; > +struct irdma_ucreate_cq_ex_resp { > + struct ibv_create_cq_resp_ex ibv_resp; > + __u32 cq_id; > + __u32 cq_size; > + > +}; > +struct irdma_uresize_cq { > + struct ibv_resize_cq ibv_cmd; > + __aligned_u64 user_cq_buffer; > + > +}; > +struct irdma_uresize_cq_resp { > + struct ibv_resize_cq_resp ibv_resp; > + > +}; > +struct irdma_ucreate_qp { > + struct ibv_create_qp ibv_cmd; > + __aligned_u64 user_wqe_bufs; > + __aligned_u64 user_compl_ctx; > + > +}; > +struct irdma_ucreate_qp_resp { > + struct ibv_create_qp_resp ibv_resp; > + __u32 qp_id; > + __u32 actual_sq_size; > + __u32 actual_rq_size; > + __u32 irdma_drv_opt; > + __u16 push_idx; > + __u8 lsmm; > + __u8 rsvd; > + __u32 qp_caps; > + > +}; > +struct irdma_umodify_qp_resp { > + struct ibv_modify_qp_resp_ex ibv_resp; > + __aligned_u64 push_wqe_mmap_key; > + __aligned_u64 push_db_mmap_key; > + __u16 push_offset; > + __u8 push_valid; > + __u8 rd_fence_rate; > + __u8 rsvd[4]; > + > +}; > +struct irdma_get_context { > + struct ibv_get_context ibv_cmd; > + __u32 rsvd32; > + __u8 userspace_ver; > + __u8 rsvd8[3]; > + > +}; > +struct irdma_get_context_resp { > + struct ibv_get_context_resp ibv_resp; > + __u32 max_pds; > + __u32 max_qps; > + __u32 wq_size; /* size of the WQs (SQ+RQ) in the mmaped area */ > + __u8 kernel_ver; > + __u8 rsvd[3]; > + __aligned_u64 feature_flags; > + __aligned_u64 db_mmap_key; > + __u32 max_hw_wq_frags; > + __u32 max_hw_read_sges; > + __u32 max_hw_inline; > + __u32 max_hw_rq_quanta; > + __u32 max_hw_wq_quanta; > + __u32 min_hw_cq_size; > + __u32 max_hw_cq_size; > + __u16 max_hw_sq_chunk; > + __u8 hw_rev; > + __u8 rsvd2; > + > +}; > +struct irdma_ureg_mr { > + struct ibv_reg_mr ibv_cmd; > + __u16 reg_type; /* enum irdma_memreg_type */ > + __u16 cq_pages; > + __u16 rq_pages; > + __u16 sq_pages; > + > +}; > +struct irdma_ucreate_ah_resp { > + struct ibv_create_ah_resp ibv_resp; > + __u32 ah_id; > + __u8 rsvd[4]; > + > +}; > + > +struct irdma_modify_qp_cmd { > + struct ibv_modify_qp_ex ibv_cmd; > + __u8 sq_flush; > + __u8 rq_flush; > + __u8 rsvd[6]; > +}; > + > +struct irdma_query_device_ex { > + struct ibv_query_device_ex ibv_cmd; > +}; > + > +struct irdma_query_device_ex_resp { > + struct ibv_query_device_resp_ex ibv_resp; > + __u32 comp_mask; > + __u32 response_length; > + struct ibv_odp_caps_resp odp_caps; > + __u64 timestamp_mask; > + __u64 hca_core_clock; > + __u64 device_cap_flags_ex; > + struct ibv_rss_caps_resp rss_caps; > + __u32 max_wq_type_rq; > + __u32 raw_packet_caps; > + struct ibv_tso_caps tso_caps; > +}; > +#endif /* PROVIDER_IRDMA_ABI_H */ > diff --git a/contrib/ofed/libirdma/i40e_devids.h b/contrib/ofed/libirdma/i40e_devids.h > new file mode 100644 > index 000000000000..1b0eaae95b82 > --- /dev/null > +++ b/contrib/ofed/libirdma/i40e_devids.h > @@ -0,0 +1,69 @@ > +/*- > + * SPDX-License-Identifier: GPL-2.0 or Linux-OpenIB > + * > + * Copyright (c) 2015 - 2019 Intel Corporation > + * > + * This software is available to you under a choice of one of two > + * licenses. You may choose to be licensed under the terms of the GNU > + * General Public License (GPL) Version 2, available from the file > + * COPYING in the main directory of this source tree, or the > + * OpenFabrics.org BSD license below: > + * > + * Redistribution and use in source and binary forms, with or > + * without modification, are permitted provided that the following > + * conditions are met: > + * > + * - Redistributions of source code must retain the above > + * copyright notice, this list of conditions and the following > + * disclaimer. > + * > + * - Redistributions in binary form must reproduce the above > + * copyright notice, this list of conditions and the following > + * disclaimer in the documentation and/or other materials > + * provided with the distribution. > + * > + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, > + * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF > + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND > + * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS > + * BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN > + * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN > + * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE > + * SOFTWARE. > + */ > +/*$FreeBSD$*/ > + > +#ifndef I40E_DEVIDS_H > +#define I40E_DEVIDS_H > + > +/* Vendor ID */ > +#define I40E_INTEL_VENDOR_ID 0x8086 > + > +/* Device IDs */ > +#define I40E_DEV_ID_SFP_XL710 0x1572 > +#define I40E_DEV_ID_QEMU 0x1574 > +#define I40E_DEV_ID_KX_B 0x1580 > +#define I40E_DEV_ID_KX_C 0x1581 > +#define I40E_DEV_ID_QSFP_A 0x1583 > +#define I40E_DEV_ID_QSFP_B 0x1584 > +#define I40E_DEV_ID_QSFP_C 0x1585 > +#define I40E_DEV_ID_10G_BASE_T 0x1586 > +#define I40E_DEV_ID_20G_KR2 0x1587 > +#define I40E_DEV_ID_20G_KR2_A 0x1588 > +#define I40E_DEV_ID_10G_BASE_T4 0x1589 > +#define I40E_DEV_ID_25G_B 0x158A > +#define I40E_DEV_ID_25G_SFP28 0x158B > +#define I40E_DEV_ID_VF 0x154C > +#define I40E_DEV_ID_VF_HV 0x1571 > +#define I40E_DEV_ID_X722_A0 0x374C > +#define I40E_DEV_ID_X722_A0_VF 0x374D > +#define I40E_DEV_ID_KX_X722 0x37CE > +#define I40E_DEV_ID_QSFP_X722 0x37CF > +#define I40E_DEV_ID_SFP_X722 0x37D0 > +#define I40E_DEV_ID_1G_BASE_T_X722 0x37D1 > +#define I40E_DEV_ID_10G_BASE_T_X722 0x37D2 > +#define I40E_DEV_ID_SFP_I_X722 0x37D3 > +#define I40E_DEV_ID_X722_VF 0x37CD > +#define I40E_DEV_ID_X722_VF_HV 0x37D9 > + > +#endif /* I40E_DEVIDS_H */ > diff --git a/contrib/ofed/libirdma/i40iw_hw.h b/contrib/ofed/libirdma/i40iw_hw.h > new file mode 100644 > index 000000000000..38c7e37c35c9 > --- /dev/null > +++ b/contrib/ofed/libirdma/i40iw_hw.h > @@ -0,0 +1,64 @@ > +/*- > + * SPDX-License-Identifier: GPL-2.0 or Linux-OpenIB > + * > + * Copyright (c) 2015 - 2020 Intel Corporation > + * > + * This software is available to you under a choice of one of two > + * licenses. You may choose to be licensed under the terms of the GNU > + * General Public License (GPL) Version 2, available from the file > + * COPYING in the main directory of this source tree, or the > + * OpenFabrics.org BSD license below: > + * > + * Redistribution and use in source and binary forms, with or > + * without modification, are permitted provided that the following > + * conditions are met: > + * > + * - Redistributions of source code must retain the above > + * copyright notice, this list of conditions and the following > + * disclaimer. > + * > + * - Redistributions in binary form must reproduce the above > + * copyright notice, this list of conditions and the following > + * disclaimer in the documentation and/or other materials > + * provided with the distribution. > + * > + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, > + * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF > + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND > + * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS > + * BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN > + * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN > + * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE > + * SOFTWARE. > + */ > +/*$FreeBSD$*/ > + > +#ifndef I40IW_HW_H > +#define I40IW_HW_H > + > +enum i40iw_device_caps_const { > + I40IW_MAX_WQ_FRAGMENT_COUNT = 3, > + I40IW_MAX_SGE_RD = 1, > + I40IW_MAX_PUSH_PAGE_COUNT = 0, > + I40IW_MAX_INLINE_DATA_SIZE = 48, > + I40IW_MAX_IRD_SIZE = 63, > + I40IW_MAX_ORD_SIZE = 127, > + I40IW_MAX_WQ_ENTRIES = 2048, > + I40IW_MAX_WQE_SIZE_RQ = 128, > + I40IW_MAX_PDS = 32768, > + I40IW_MAX_STATS_COUNT = 16, > + I40IW_MAX_CQ_SIZE = 1048575, > + I40IW_MAX_OUTBOUND_MSG_SIZE = 2147483647, > + I40IW_MAX_INBOUND_MSG_SIZE = 2147483647, > +}; > + > +#define I40IW_QP_WQE_MIN_SIZE 32 > +#define I40IW_QP_WQE_MAX_SIZE 128 > +#define I40IW_QP_SW_MIN_WQSIZE 4 > +#define I40IW_MAX_RQ_WQE_SHIFT 2 > +#define I40IW_MAX_QUANTA_PER_WR 2 > + > +#define I40IW_QP_SW_MAX_SQ_QUANTA 2048 > +#define I40IW_QP_SW_MAX_RQ_QUANTA 16384 > +#define I40IW_QP_SW_MAX_WQ_QUANTA 2048 > +#endif /* I40IW_HW_H */ > diff --git a/contrib/ofed/libirdma/ice_devids.h b/contrib/ofed/libirdma/ice_devids.h > new file mode 100644 > index 000000000000..57f26bc33260 > --- /dev/null > +++ b/contrib/ofed/libirdma/ice_devids.h > @@ -0,0 +1,92 @@ > +/*- > + * SPDX-License-Identifier: GPL-2.0 or Linux-OpenIB > + * > + * Copyright (c) 2019 - 2020 Intel Corporation > + * > + * This software is available to you under a choice of one of two > + * licenses. You may choose to be licensed under the terms of the GNU > + * General Public License (GPL) Version 2, available from the file > + * COPYING in the main directory of this source tree, or the > + * OpenFabrics.org BSD license below: > + * > + * Redistribution and use in source and binary forms, with or > + * without modification, are permitted provided that the following > + * conditions are met: > + * > + * - Redistributions of source code must retain the above > + * copyright notice, this list of conditions and the following > + * disclaimer. > + * > + * - Redistributions in binary form must reproduce the above > + * copyright notice, this list of conditions and the following > + * disclaimer in the documentation and/or other materials > + * provided with the distribution. > + * > + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, > + * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF > + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND > + * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS > + * BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN > + * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN > + * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE > + * SOFTWARE. > + */ > +/*$FreeBSD$*/ > + > +#ifndef ICE_DEVIDS_H > +#define ICE_DEVIDS_H > + > +#define PCI_VENDOR_ID_INTEL 0x8086 > + > +/* Device IDs */ > +/* Intel(R) Ethernet Connection E823-L for backplane */ > +#define ICE_DEV_ID_E823L_BACKPLANE 0x124C > +/* Intel(R) Ethernet Connection E823-L for SFP */ > +#define ICE_DEV_ID_E823L_SFP 0x124D > +/* Intel(R) Ethernet Connection E823-L/X557-AT 10GBASE-T */ > +#define ICE_DEV_ID_E823L_10G_BASE_T 0x124E > +/* Intel(R) Ethernet Connection E823-L 1GbE */ > +#define ICE_DEV_ID_E823L_1GBE 0x124F > +/* Intel(R) Ethernet Connection E823-L for QSFP */ > +#define ICE_DEV_ID_E823L_QSFP 0x151D > +/* Intel(R) Ethernet Controller E810-C for backplane */ > +#define ICE_DEV_ID_E810C_BACKPLANE 0x1591 > +/* Intel(R) Ethernet Controller E810-C for QSFP */ > +#define ICE_DEV_ID_E810C_QSFP 0x1592 > +/* Intel(R) Ethernet Controller E810-C for SFP */ > +#define ICE_DEV_ID_E810C_SFP 0x1593 > +/* Intel(R) Ethernet Controller E810-XXV for backplane */ > +#define ICE_DEV_ID_E810_XXV_BACKPLANE 0x1599 > +/* Intel(R) Ethernet Controller E810-XXV for QSFP */ > +#define ICE_DEV_ID_E810_XXV_QSFP 0x159A > +/* Intel(R) Ethernet Controller E810-XXV for SFP */ > +#define ICE_DEV_ID_E810_XXV_SFP 0x159B > +/* Intel(R) Ethernet Connection E823-C for backplane */ > +#define ICE_DEV_ID_E823C_BACKPLANE 0x188A > +/* Intel(R) Ethernet Connection E823-C for QSFP */ > +#define ICE_DEV_ID_E823C_QSFP 0x188B > +/* Intel(R) Ethernet Connection E823-C for SFP */ > +#define ICE_DEV_ID_E823C_SFP 0x188C > +/* Intel(R) Ethernet Connection E823-C/X557-AT 10GBASE-T */ > +#define ICE_DEV_ID_E823C_10G_BASE_T 0x188D > +/* Intel(R) Ethernet Connection E823-C 1GbE */ > +#define ICE_DEV_ID_E823C_SGMII 0x188E > +/* Intel(R) Ethernet Connection C822N for backplane */ > +#define ICE_DEV_ID_C822N_BACKPLANE 0x1890 > +/* Intel(R) Ethernet Connection C822N for QSFP */ > +#define ICE_DEV_ID_C822N_QSFP 0x1891 > +/* Intel(R) Ethernet Connection C822N for SFP */ > +#define ICE_DEV_ID_C822N_SFP 0x1892 > +/* Intel(R) Ethernet Connection E822-C/X557-AT 10GBASE-T */ > +#define ICE_DEV_ID_E822C_10G_BASE_T 0x1893 > +/* Intel(R) Ethernet Connection E822-C 1GbE */ > +#define ICE_DEV_ID_E822C_SGMII 0x1894 > +/* Intel(R) Ethernet Connection E822-L for backplane */ > +#define ICE_DEV_ID_E822L_BACKPLANE 0x1897 > +/* Intel(R) Ethernet Connection E822-L for SFP */ > +#define ICE_DEV_ID_E822L_SFP 0x1898 > +/* Intel(R) Ethernet Connection E822-L/X557-AT 10GBASE-T */ > +#define ICE_DEV_ID_E822L_10G_BASE_T 0x1899 > +/* Intel(R) Ethernet Connection E822-L 1GbE */ > +#define ICE_DEV_ID_E822L_SGMII 0x189A > +#endif /* ICE_DEVIDS_H */ > diff --git a/contrib/ofed/libirdma/irdma-abi.h b/contrib/ofed/libirdma/irdma-abi.h > new file mode 100644 > index 000000000000..8a06198608e2 > --- /dev/null > +++ b/contrib/ofed/libirdma/irdma-abi.h > @@ -0,0 +1,143 @@ > +/*- > + * SPDX-License-Identifier: (GPL-2.0 WITH Linux-syscall-note) OR Linux-OpenIB) > + * > + * > + * Copyright (c) 2006 - 2021 Intel Corporation. All rights reserved. > + * Copyright (c) 2005 Topspin Communications. All rights reserved. > + * Copyright (c) 2005 Cisco Systems. All rights reserved. > + * Copyright (c) 2005 Open Grid Computing, Inc. All rights reserved. > + * > + * This software is available to you under a choice of one of two > + * licenses. You may choose to be licensed under the terms of the GNU > + * General Public License (GPL) Version 2, available from the file > + * COPYING in the main directory of this source tree, or the > + * OpenFabrics.org BSD license below: > + * > + * Redistribution and use in source and binary forms, with or > + * without modification, are permitted provided that the following > + * conditions are met: > + * > + * - Redistributions of source code must retain the above > + * copyright notice, this list of conditions and the following > + * disclaimer. > + * > + * - Redistributions in binary form must reproduce the above > + * copyright notice, this list of conditions and the following > + * disclaimer in the documentation and/or other materials > + * provided with the distribution. > + * > + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, > + * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF > + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND > + * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS > + * BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN > + * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN > + * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE > + * SOFTWARE. > + */ > +/*$FreeBSD$*/ > + > +#ifndef IRDMA_ABI_H > +#define IRDMA_ABI_H > + > +#include > + > +/* irdma must support legacy GEN_1 i40iw kernel > + * and user-space whose last ABI ver is 5 > + */ > +#define IRDMA_ABI_VER 5 > + > +enum irdma_memreg_type { > + IRDMA_MEMREG_TYPE_MEM = 0, > + IRDMA_MEMREG_TYPE_QP = 1, > + IRDMA_MEMREG_TYPE_CQ = 2, > +}; > + > +struct irdma_alloc_ucontext_req { > + __u32 rsvd32; > + __u8 userspace_ver; > + __u8 rsvd8[3]; > +}; > + > +struct irdma_alloc_ucontext_resp { > + __u32 max_pds; > + __u32 max_qps; > + __u32 wq_size; /* size of the WQs (SQ+RQ) in the mmaped area */ > + __u8 kernel_ver; > + __u8 rsvd[3]; > + __aligned_u64 feature_flags; > + __aligned_u64 db_mmap_key; > + __u32 max_hw_wq_frags; > + __u32 max_hw_read_sges; > + __u32 max_hw_inline; > + __u32 max_hw_rq_quanta; > + __u32 max_hw_wq_quanta; > + __u32 min_hw_cq_size; > + __u32 max_hw_cq_size; > + __u16 max_hw_sq_chunk; > + __u8 hw_rev; > + __u8 rsvd2; > +}; > + > +struct irdma_alloc_pd_resp { > + __u32 pd_id; > + __u8 rsvd[4]; > +}; > + > +struct irdma_resize_cq_req { > + __aligned_u64 user_cq_buffer; > +}; > + > +struct irdma_create_cq_req { > + __aligned_u64 user_cq_buf; > + __aligned_u64 user_shadow_area; > +}; > + > +struct irdma_create_qp_req { > + __aligned_u64 user_wqe_bufs; > + __aligned_u64 user_compl_ctx; > +}; > + > +struct irdma_mem_reg_req { > + __u16 reg_type; /* enum irdma_memreg_type */ > + __u16 cq_pages; > + __u16 rq_pages; > + __u16 sq_pages; > +}; > + > +struct irdma_modify_qp_req { > + __u8 sq_flush; > + __u8 rq_flush; > + __u8 rsvd[6]; > +}; > + > +struct irdma_create_cq_resp { > + __u32 cq_id; > + __u32 cq_size; > +}; > + > +struct irdma_create_qp_resp { > + __u32 qp_id; > + __u32 actual_sq_size; > + __u32 actual_rq_size; > + __u32 irdma_drv_opt; > + __u16 push_idx; > + __u8 lsmm; > + __u8 rsvd; > + __u32 qp_caps; > +}; > + > +struct irdma_modify_qp_resp { > + __aligned_u64 push_wqe_mmap_key; > + __aligned_u64 push_db_mmap_key; > + __u16 push_offset; > + __u8 push_valid; > + __u8 rd_fence_rate; > + __u8 rsvd[4]; > +}; > + > +struct irdma_create_ah_resp { > + __u32 ah_id; > + __u8 rsvd[4]; > +}; > +#endif /* IRDMA_ABI_H */ > diff --git a/contrib/ofed/libirdma/irdma.h b/contrib/ofed/libirdma/irdma.h > new file mode 100644 > index 000000000000..27fa3d53d3e8 > --- /dev/null > +++ b/contrib/ofed/libirdma/irdma.h > @@ -0,0 +1,93 @@ > +/*- > + * SPDX-License-Identifier: GPL-2.0 or Linux-OpenIB > + * > + * Copyright (c) 2017 - 2021 Intel Corporation > + * > + * This software is available to you under a choice of one of two > + * licenses. You may choose to be licensed under the terms of the GNU > + * General Public License (GPL) Version 2, available from the file > + * COPYING in the main directory of this source tree, or the > + * OpenFabrics.org BSD license below: > + * > + * Redistribution and use in source and binary forms, with or > + * without modification, are permitted provided that the following > + * conditions are met: > + * > + * - Redistributions of source code must retain the above > + * copyright notice, this list of conditions and the following > + * disclaimer. > + * > + * - Redistributions in binary form must reproduce the above > + * copyright notice, this list of conditions and the following > + * disclaimer in the documentation and/or other materials > + * provided with the distribution. > + * > + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, > + * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF > + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND > + * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS > + * BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN > + * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN > + * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE > + * SOFTWARE. > + */ > +/*$FreeBSD$*/ > + > +#ifndef IRDMA_H > +#define IRDMA_H > + > +#define RDMA_BIT2(type, a) ((u##type) 1UL << a) > +#define RDMA_MASK3(type, mask, shift) ((u##type) mask << shift) > +#define MAKEMASK(m, s) ((m) << (s)) > +#define IRDMA_WQEALLOC_WQE_DESC_INDEX_S 20 > +#define IRDMA_WQEALLOC_WQE_DESC_INDEX_M (0xfff << IRDMA_WQEALLOC_WQE_DESC_INDEX_S) > + > +enum irdma_vers { > + IRDMA_GEN_RSVD, > + IRDMA_GEN_1, > + IRDMA_GEN_2, > +}; > + > +struct irdma_uk_attrs { > + u64 feature_flags; > + u32 max_hw_wq_frags; > + u32 max_hw_read_sges; > + u32 max_hw_inline; > + u32 max_hw_rq_quanta; > + u32 max_hw_wq_quanta; > + u32 min_hw_cq_size; > + u32 max_hw_cq_size; > + u16 max_hw_sq_chunk; > + u16 max_hw_wq_size; > + u16 min_sw_wq_size; > + u8 hw_rev; > +}; > + > +struct irdma_hw_attrs { > + struct irdma_uk_attrs uk_attrs; > + u64 max_hw_outbound_msg_size; > + u64 max_hw_inbound_msg_size; > + u64 max_mr_size; > + u32 min_hw_qp_id; > + u32 min_hw_aeq_size; > + u32 max_hw_aeq_size; > + u32 min_hw_ceq_size; > + u32 max_hw_ceq_size; > + u32 max_hw_device_pages; > + u32 max_hw_vf_fpm_id; > + u32 first_hw_vf_fpm_id; > + u32 max_hw_ird; > + u32 max_hw_ord; > + u32 max_hw_wqes; > + u32 max_hw_pds; > + u32 max_hw_ena_vf_count; > + u32 max_qp_wr; > + u32 max_pe_ready_count; > + u32 max_done_count; > + u32 max_sleep_count; > + u32 max_cqp_compl_wait_time_ms; > + u16 max_stat_inst; > + u16 max_stat_idx; > +}; > + > +#endif /* IRDMA_H*/ > diff --git a/contrib/ofed/libirdma/irdma_defs.h b/contrib/ofed/libirdma/irdma_defs.h > new file mode 100644 > index 000000000000..8fb9f1e2b622 > --- /dev/null > +++ b/contrib/ofed/libirdma/irdma_defs.h > @@ -0,0 +1,554 @@ > +/*- > + * SPDX-License-Identifier: GPL-2.0 or Linux-OpenIB > + * > + * Copyright (c) 2015 - 2021 Intel Corporation > + * > + * This software is available to you under a choice of one of two > + * licenses. You may choose to be licensed under the terms of the GNU > + * General Public License (GPL) Version 2, available from the file > + * COPYING in the main directory of this source tree, or the > + * OpenFabrics.org BSD license below: > + * > + * Redistribution and use in source and binary forms, with or > + * without modification, are permitted provided that the following > + * conditions are met: > + * > + * - Redistributions of source code must retain the above > + * copyright notice, this list of conditions and the following > + * disclaimer. > + * > + * - Redistributions in binary form must reproduce the above > + * copyright notice, this list of conditions and the following > + * disclaimer in the documentation and/or other materials > + * provided with the distribution. > + * > + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, > + * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF > + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND > + * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS > + * BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN > + * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN > + * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE > + * SOFTWARE. > + */ > +/*$FreeBSD$*/ > + > +#ifndef IRDMA_DEFS_H > +#define IRDMA_DEFS_H > + > +#define IRDMA_BYTE_0 0 > +#define IRDMA_BYTE_8 8 > +#define IRDMA_BYTE_16 16 > +#define IRDMA_BYTE_24 24 > +#define IRDMA_BYTE_32 32 > +#define IRDMA_BYTE_40 40 > +#define IRDMA_BYTE_48 48 > +#define IRDMA_BYTE_56 56 > +#define IRDMA_BYTE_64 64 > +#define IRDMA_BYTE_72 72 > +#define IRDMA_BYTE_80 80 > +#define IRDMA_BYTE_88 88 > +#define IRDMA_BYTE_96 96 > +#define IRDMA_BYTE_104 104 > +#define IRDMA_BYTE_112 112 > +#define IRDMA_BYTE_120 120 > +#define IRDMA_BYTE_128 128 > +#define IRDMA_BYTE_136 136 > +#define IRDMA_BYTE_144 144 > +#define IRDMA_BYTE_152 152 > +#define IRDMA_BYTE_160 160 > +#define IRDMA_BYTE_168 168 > +#define IRDMA_BYTE_176 176 > +#define IRDMA_BYTE_184 184 > +#define IRDMA_BYTE_192 192 > +#define IRDMA_BYTE_200 200 > +#define IRDMA_BYTE_208 208 > +#define IRDMA_BYTE_216 216 > + > +#define IRDMA_QP_TYPE_IWARP 1 > +#define IRDMA_QP_TYPE_UDA 2 > +#define IRDMA_QP_TYPE_ROCE_RC 3 > +#define IRDMA_QP_TYPE_ROCE_UD 4 > + > +#define IRDMA_HW_PAGE_SIZE 4096 > +#define IRDMA_HW_PAGE_SHIFT 12 > +#define IRDMA_CQE_QTYPE_RQ 0 > +#define IRDMA_CQE_QTYPE_SQ 1 > + > +#define IRDMA_QP_SW_MIN_WQSIZE 8u /* in WRs*/ > +#define IRDMA_QP_WQE_MIN_SIZE 32 > +#define IRDMA_QP_WQE_MAX_SIZE 256 > +#define IRDMA_QP_WQE_MIN_QUANTA 1 > +#define IRDMA_MAX_RQ_WQE_SHIFT_GEN1 2 > +#define IRDMA_MAX_RQ_WQE_SHIFT_GEN2 3 > + > +#define IRDMA_SQ_RSVD 258 > +#define IRDMA_RQ_RSVD 1 > + > +#define IRDMA_FEATURE_RTS_AE 1ULL > +#define IRDMA_FEATURE_CQ_RESIZE 2ULL > +#define IRDMA_FEATURE_RELAX_RQ_ORDER 4ULL > +#define IRDMAQP_OP_RDMA_WRITE 0x00 > +#define IRDMAQP_OP_RDMA_READ 0x01 > +#define IRDMAQP_OP_RDMA_SEND 0x03 > +#define IRDMAQP_OP_RDMA_SEND_INV 0x04 > +#define IRDMAQP_OP_RDMA_SEND_SOL_EVENT 0x05 > +#define IRDMAQP_OP_RDMA_SEND_SOL_EVENT_INV 0x06 > +#define IRDMAQP_OP_BIND_MW 0x08 > +#define IRDMAQP_OP_FAST_REGISTER 0x09 > +#define IRDMAQP_OP_LOCAL_INVALIDATE 0x0a > +#define IRDMAQP_OP_RDMA_READ_LOC_INV 0x0b > +#define IRDMAQP_OP_NOP 0x0c > + > +#ifndef LS_64_1 > +#define LS_64_1(val, bits) ((u64)(uintptr_t)(val) << (bits)) > +#define RS_64_1(val, bits) ((u64)(uintptr_t)(val) >> (bits)) > +#define LS_32_1(val, bits) ((u32)((val) << (bits))) > +#define RS_32_1(val, bits) ((u32)((val) >> (bits))) > +#endif > +#define LS_64(val, field) (((u64)(val) << field ## _S) & (field ## _M)) > +#define RS_64(val, field) ((u64)((val) & field ## _M) >> field ## _S) > +#define LS_32(val, field) (((val) << field ## _S) & (field ## _M)) > +#define RS_32(val, field) (((val) & field ## _M) >> field ## _S) > + > +#define IRDMA_CQPHC_QPCTX_S 0 > +#define IRDMA_CQPHC_QPCTX_M \ > + (0xffffffffffffffffULL << IRDMA_CQPHC_QPCTX_S) > + > +/* iWARP QP Doorbell shadow area */ > +#define IRDMA_QP_DBSA_HW_SQ_TAIL_S 0 > +#define IRDMA_QP_DBSA_HW_SQ_TAIL_M \ > + (0x7fffULL << IRDMA_QP_DBSA_HW_SQ_TAIL_S) > + > +/* Completion Queue Doorbell shadow area */ > +#define IRDMA_CQ_DBSA_CQEIDX_S 0 > +#define IRDMA_CQ_DBSA_CQEIDX_M (0xfffffULL << IRDMA_CQ_DBSA_CQEIDX_S) > + > +#define IRDMA_CQ_DBSA_SW_CQ_SELECT_S 0 > +#define IRDMA_CQ_DBSA_SW_CQ_SELECT_M \ > + (0x3fffULL << IRDMA_CQ_DBSA_SW_CQ_SELECT_S) > + > +#define IRDMA_CQ_DBSA_ARM_NEXT_S 14 > +#define IRDMA_CQ_DBSA_ARM_NEXT_M BIT_ULL(IRDMA_CQ_DBSA_ARM_NEXT_S) > + > +#define IRDMA_CQ_DBSA_ARM_NEXT_SE_S 15 > +#define IRDMA_CQ_DBSA_ARM_NEXT_SE_M BIT_ULL(IRDMA_CQ_DBSA_ARM_NEXT_SE_S) > + > +#define IRDMA_CQ_DBSA_ARM_SEQ_NUM_S 16 > +#define IRDMA_CQ_DBSA_ARM_SEQ_NUM_M \ > + (0x3ULL << IRDMA_CQ_DBSA_ARM_SEQ_NUM_S) > + > +/* CQP and iWARP Completion Queue */ > +#define IRDMA_CQ_QPCTX_S IRDMA_CQPHC_QPCTX_S > +#define IRDMA_CQ_QPCTX_M IRDMA_CQPHC_QPCTX_M > + > +#define IRDMA_CQ_MINERR_S 0 > +#define IRDMA_CQ_MINERR_M (0xffffULL << IRDMA_CQ_MINERR_S) > + > +#define IRDMA_CQ_MAJERR_S 16 > +#define IRDMA_CQ_MAJERR_M (0xffffULL << IRDMA_CQ_MAJERR_S) > + > +#define IRDMA_CQ_WQEIDX_S 32 > +#define IRDMA_CQ_WQEIDX_M (0x7fffULL << IRDMA_CQ_WQEIDX_S) > + > +#define IRDMA_CQ_EXTCQE_S 50 > +#define IRDMA_CQ_EXTCQE_M BIT_ULL(IRDMA_CQ_EXTCQE_S) > + > +#define IRDMA_OOO_CMPL_S 54 > +#define IRDMA_OOO_CMPL_M BIT_ULL(IRDMA_OOO_CMPL_S) > + > +#define IRDMA_CQ_ERROR_S 55 > +#define IRDMA_CQ_ERROR_M BIT_ULL(IRDMA_CQ_ERROR_S) > + > +#define IRDMA_CQ_SQ_S 62 > +#define IRDMA_CQ_SQ_M BIT_ULL(IRDMA_CQ_SQ_S) > + > +#define IRDMA_CQ_VALID_S 63 > +#define IRDMA_CQ_VALID_M BIT_ULL(IRDMA_CQ_VALID_S) > + > +#define IRDMA_CQ_IMMVALID_S 62 > +#define IRDMA_CQ_IMMVALID_M BIT_ULL(IRDMA_CQ_IMMVALID_S) > + > +#define IRDMA_CQ_UDSMACVALID_S 61 > +#define IRDMA_CQ_UDSMACVALID_M BIT_ULL(IRDMA_CQ_UDSMACVALID_S) > + > +#define IRDMA_CQ_UDVLANVALID_S 60 > +#define IRDMA_CQ_UDVLANVALID_M BIT_ULL(IRDMA_CQ_UDVLANVALID_S) > + > +#define IRDMA_CQ_UDSMAC_S 0 > +#define IRDMA_CQ_UDSMAC_M (0xffffffffffffULL << IRDMA_CQ_UDSMAC_S) > + > +#define IRDMA_CQ_UDVLAN_S 48 > +#define IRDMA_CQ_UDVLAN_M (0xffffULL << IRDMA_CQ_UDVLAN_S) > + > +#define IRDMA_CQ_IMMDATA_S 0 > +#define IRDMA_CQ_IMMDATA_M (0xffffffffffffffffULL << IRDMA_CQ_IMMVALID_S) > + > +#define IRDMA_CQ_IMMDATALOW32_S 0 > +#define IRDMA_CQ_IMMDATALOW32_M (0xffffffffULL << IRDMA_CQ_IMMDATALOW32_S) > + > +#define IRDMA_CQ_IMMDATAUP32_S 32 > +#define IRDMA_CQ_IMMDATAUP32_M (0xffffffffULL << IRDMA_CQ_IMMDATAUP32_S) > + > +#define IRDMACQ_PAYLDLEN_S 0 > +#define IRDMACQ_PAYLDLEN_M (0xffffffffULL << IRDMACQ_PAYLDLEN_S) > + > +#define IRDMACQ_TCPSEQNUMRTT_S 32 > +#define IRDMACQ_TCPSEQNUMRTT_M (0xffffffffULL << IRDMACQ_TCPSEQNUMRTT_S) > + > +#define IRDMACQ_INVSTAG_S 0 > +#define IRDMACQ_INVSTAG_M (0xffffffffULL << IRDMACQ_INVSTAG_S) > + > +#define IRDMACQ_QPID_S 32 > +#define IRDMACQ_QPID_M (0xffffffULL << IRDMACQ_QPID_S) > + > +#define IRDMACQ_UDSRCQPN_S 0 > +#define IRDMACQ_UDSRCQPN_M (0xffffffffULL << IRDMACQ_UDSRCQPN_S) > + > +#define IRDMACQ_PSHDROP_S 51 > +#define IRDMACQ_PSHDROP_M BIT_ULL(IRDMACQ_PSHDROP_S) > + > +#define IRDMACQ_STAG_S 53 > +#define IRDMACQ_STAG_M BIT_ULL(IRDMACQ_STAG_S) > + > +#define IRDMACQ_IPV4_S 53 > +#define IRDMACQ_IPV4_M BIT_ULL(IRDMACQ_IPV4_S) > + > *** 42081 LINES SKIPPED *** > >