xref: /openbmc/linux/include/linux/qed/rdma_common.h (revision fe40a830)
1 /* SPDX-License-Identifier: (GPL-2.0-only OR BSD-3-Clause) */
2 /* QLogic qed NIC Driver
3  * Copyright (c) 2015-2017  QLogic Corporation
4  * Copyright (c) 2019-2020 Marvell International Ltd.
5  */
6 
7 #ifndef __RDMA_COMMON__
8 #define __RDMA_COMMON__
9 
10 /************************/
11 /* RDMA FW CONSTANTS */
12 /************************/
13 
14 #define RDMA_RESERVED_LKEY		(0)
15 #define RDMA_RING_PAGE_SIZE		(0x1000)
16 
17 #define RDMA_MAX_SGE_PER_SQ_WQE		(4)
18 #define RDMA_MAX_SGE_PER_RQ_WQE		(4)
19 
20 #define RDMA_MAX_DATA_SIZE_IN_WQE	(0x80000000)
21 
22 #define RDMA_REQ_RD_ATOMIC_ELM_SIZE	(0x50)
23 #define RDMA_RESP_RD_ATOMIC_ELM_SIZE	(0x20)
24 
25 #define RDMA_MAX_CQS			(64 * 1024)
26 #define RDMA_MAX_TIDS			(128 * 1024 - 1)
27 #define RDMA_MAX_PDS			(64 * 1024)
28 #define RDMA_MAX_XRC_SRQS                       (1024)
29 #define RDMA_MAX_SRQS                           (32 * 1024)
30 #define RDMA_MAX_IRQ_ELEMS_IN_PAGE      (128)
31 
32 #define RDMA_NUM_STATISTIC_COUNTERS	MAX_NUM_VPORTS
33 #define RDMA_NUM_STATISTIC_COUNTERS_K2	MAX_NUM_VPORTS_K2
34 #define RDMA_NUM_STATISTIC_COUNTERS_BB	MAX_NUM_VPORTS_BB
35 
36 #define RDMA_TASK_TYPE (PROTOCOLID_ROCE)
37 
38 struct rdma_srq_id {
39 	__le16 srq_idx;
40 	__le16 opaque_fid;
41 };
42 
43 struct rdma_srq_producers {
44 	__le32 sge_prod;
45 	__le32 wqe_prod;
46 };
47 
48 #endif /* __RDMA_COMMON__ */
49