File tree Expand file tree Collapse file tree 3 files changed +120
-0
lines changed Expand file tree Collapse file tree 3 files changed +120
-0
lines changed Original file line number Diff line number Diff line change @@ -9,6 +9,7 @@ publish_internal_headers(rdma
99 rdma/ib_user_mad.h
1010 rdma/ib_user_sa.h
1111 rdma/ib_user_verbs.h
12+ rdma/ionic-abi.h
1213 rdma/irdma-abi.h
1314 rdma/mana-abi.h
1415 rdma/mlx4-abi.h
@@ -70,6 +71,7 @@ rdma_kernel_provider_abi(
7071 rdma/erdma-abi.h
7172 rdma/hns-abi.h
7273 rdma/ib_user_verbs.h
74+ rdma/ionic-abi.h
7375 rdma/irdma-abi.h
7476 rdma/mana-abi.h
7577 rdma/mlx4-abi.h
Original file line number Diff line number Diff line change @@ -255,6 +255,7 @@ enum rdma_driver_id {
255255 RDMA_DRIVER_SIW ,
256256 RDMA_DRIVER_ERDMA ,
257257 RDMA_DRIVER_MANA ,
258+ RDMA_DRIVER_IONIC ,
258259};
259260
260261enum ib_uverbs_gid_type {
Original file line number Diff line number Diff line change 1+ /* SPDX-License-Identifier: ((GPL-2.0 WITH Linux-syscall-note) OR Linux-OpenIB) */
2+ /*
3+ * Copyright (c) 2018-2025 Advanced Micro Devices, Inc. All rights reserved.
4+ */
5+
6+ #ifndef IONIC_ABI_H
7+ #define IONIC_ABI_H
8+
9+ #include <linux/types.h>
10+
11+ #define IONIC_ABI_VERSION 4
12+
13+ #define IONIC_EXPDB_64 1
14+ #define IONIC_EXPDB_128 2
15+ #define IONIC_EXPDB_256 4
16+ #define IONIC_EXPDB_512 8
17+
18+ #define IONIC_EXPDB_SQ 1
19+ #define IONIC_EXPDB_RQ 2
20+
21+ #define IONIC_CMB_ENABLE 1
22+ #define IONIC_CMB_REQUIRE 2
23+ #define IONIC_CMB_EXPDB 4
24+ #define IONIC_CMB_WC 8
25+ #define IONIC_CMB_UC 16
26+
27+ struct ionic_ctx_req {
28+ __u32 rsvd [2 ];
29+ };
30+
31+ struct ionic_ctx_resp {
32+ __u32 rsvd ;
33+ __u32 page_shift ;
34+
35+ __aligned_u64 dbell_offset ;
36+
37+ __u16 version ;
38+ __u8 qp_opcodes ;
39+ __u8 admin_opcodes ;
40+
41+ __u8 sq_qtype ;
42+ __u8 rq_qtype ;
43+ __u8 cq_qtype ;
44+ __u8 admin_qtype ;
45+
46+ __u8 max_stride ;
47+ __u8 max_spec ;
48+ __u8 udma_count ;
49+ __u8 expdb_mask ;
50+ __u8 expdb_qtypes ;
51+
52+ __u8 rsvd2 [3 ];
53+ };
54+
55+ struct ionic_qdesc {
56+ __aligned_u64 addr ;
57+ __u32 size ;
58+ __u16 mask ;
59+ __u8 depth_log2 ;
60+ __u8 stride_log2 ;
61+ };
62+
63+ struct ionic_ah_resp {
64+ __u32 ahid ;
65+ __u32 pad ;
66+ };
67+
68+ struct ionic_cq_req {
69+ struct ionic_qdesc cq [2 ];
70+ __u8 udma_mask ;
71+ __u8 rsvd [7 ];
72+ };
73+
74+ struct ionic_cq_resp {
75+ __u32 cqid [2 ];
76+ __u8 udma_mask ;
77+ __u8 rsvd [7 ];
78+ };
79+
80+ struct ionic_qp_req {
81+ struct ionic_qdesc sq ;
82+ struct ionic_qdesc rq ;
83+ __u8 sq_spec ;
84+ __u8 rq_spec ;
85+ __u8 sq_cmb ;
86+ __u8 rq_cmb ;
87+ __u8 udma_mask ;
88+ __u8 rsvd [3 ];
89+ };
90+
91+ struct ionic_qp_resp {
92+ __u32 qpid ;
93+ __u8 sq_cmb ;
94+ __u8 rq_cmb ;
95+ __u8 udma_idx ;
96+ __u8 rsvd [1 ];
97+ __aligned_u64 sq_cmb_offset ;
98+ __aligned_u64 rq_cmb_offset ;
99+ };
100+
101+ struct ionic_srq_req {
102+ struct ionic_qdesc rq ;
103+ __u8 rq_spec ;
104+ __u8 rq_cmb ;
105+ __u8 udma_mask ;
106+ __u8 rsvd [5 ];
107+ };
108+
109+ struct ionic_srq_resp {
110+ __u32 qpid ;
111+ __u8 rq_cmb ;
112+ __u8 udma_idx ;
113+ __u8 rsvd [2 ];
114+ __aligned_u64 rq_cmb_offset ;
115+ };
116+
117+ #endif /* IONIC_ABI_H */
You can’t perform that action at this time.
0 commit comments