xref: /linux/drivers/infiniband/hw/bng_re/bng_sp.h (revision 55aa394a5ed871208eac11c5f4677cafd258c4dd)
1 /* SPDX-License-Identifier: GPL-2.0 */
2 // Copyright (c) 2025 Broadcom.
3 
4 #ifndef __BNG_SP_H__
5 #define __BNG_SP_H__
6 
7 #include "bng_fw.h"
8 
9 #define BNG_VAR_MAX_WQE		4352
10 #define BNG_VAR_MAX_SGE		13
11 
12 struct bng_re_dev_attr {
13 #define FW_VER_ARR_LEN			4
14 	u8				fw_ver[FW_VER_ARR_LEN];
15 #define BNG_RE_NUM_GIDS_SUPPORTED	256
16 	u16				max_sgid;
17 	u16				max_mrw;
18 	u32				max_qp;
19 #define BNG_RE_MAX_OUT_RD_ATOM		126
20 	u32				max_qp_rd_atom;
21 	u32				max_qp_init_rd_atom;
22 	u32				max_qp_wqes;
23 	u32				max_qp_sges;
24 	u32				max_cq;
25 	u32				max_cq_wqes;
26 	u32				max_cq_sges;
27 	u32				max_mr;
28 	u64				max_mr_size;
29 	u32				max_pd;
30 	u32				max_mw;
31 	u32				max_raw_ethy_qp;
32 	u32				max_ah;
33 	u32				max_srq;
34 	u32				max_srq_wqes;
35 	u32				max_srq_sges;
36 	u32				max_pkey;
37 	u32				max_inline_data;
38 	u32				l2_db_size;
39 	u8				tqm_alloc_reqs[BNG_MAX_TQM_ALLOC_REQ];
40 	bool				is_atomic;
41 	u16                             dev_cap_flags;
42 	u16                             dev_cap_flags2;
43 	u32                             max_dpi;
44 };
45 
46 int bng_re_get_dev_attr(struct bng_re_rcfw *rcfw);
47 #endif
48