Skip to content

Commit 6d82ac7

Browse files
committed
ionic: Add ionic provider
Introduce a provider for AMD pensando ionic devices to user applications. Co-developed-by: Andrew Boyer <andrew.boyer@amd.com> Signed-off-by: Andrew Boyer <andrew.boyer@amd.com> Co-developed-by: Allen Hubbe <allen.hubbe@amd.com> Signed-off-by: Allen Hubbe <allen.hubbe@amd.com> Signed-off-by: Abhijit Gangurde <abhijit.gangurde@amd.com>
1 parent 83bfd14 commit 6d82ac7

27 files changed

Lines changed: 4926 additions & 3 deletions

CMakeLists.txt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -731,6 +731,7 @@ add_subdirectory(providers/efa/man)
731731
add_subdirectory(providers/erdma)
732732
add_subdirectory(providers/hns)
733733
add_subdirectory(providers/hns/man)
734+
add_subdirectory(providers/ionic)
734735
add_subdirectory(providers/irdma)
735736
add_subdirectory(providers/mana)
736737
add_subdirectory(providers/mana/man)

MAINTAINERS

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -77,6 +77,13 @@ M: Chengchang Tang <tangchengchang@huawei.com>
7777
S: Supported
7878
F: providers/hns/
7979

80+
IONIC USERSPACE PROVIDER (for ionic_rdma.ko)
81+
M: Allen Hubbe <Allen.Hubbe@amd.com>
82+
M: Andrew Boyer <Andrew.Boyer@amd.com>
83+
M: Abhijit Gangurde <abhijit.gangurde@amd.com>
84+
S: Supported
85+
F: providers/ionic/
86+
8087
IRDMA USERSPACE PROVIDER (for i40iw.ko and irdma.ko)
8188
M: Sindhu Devale <sindhu.devale@intel.com>
8289
M: Tatyana Nikolova <tatyana.e.nikolova@intel.com>

README.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@ is included:
2020
- iw_cxgb4.ko
2121
- hfi1.ko
2222
- hns-roce-hw-v2.ko
23+
- ionic_rdma.ko
2324
- irdma.ko
2425
- ib_qib.ko
2526
- mana_ib.ko

debian/control

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -88,6 +88,7 @@ Description: User space provider drivers for libibverbs
8888
- erdma: Alibaba Elastic RDMA (iWarp) Adapter
8989
- hfi1verbs: Intel Omni-Path HFI
9090
- hns: HiSilicon Hip06 SoC
91+
- ionic: AMD Pensando Distributed Services Card (DSC) RDMA/RoCE Support
9192
- ipathverbs: QLogic InfiniPath HCAs
9293
- irdma: Intel Ethernet Connection RDMA
9394
- mana: Microsoft Azure Network Adapter

debian/copyright

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -177,6 +177,10 @@ Copyright: 2006-2010, QLogic Corp.
177177
2013, Intel Corporation
178178
License: BSD-MIT or GPL-2
179179

180+
Files: providers/ionic/*
181+
Copyright: 2018-2025, Advanced Micro Devices, Inc.
182+
License: BSD-MIT or GPL-2
183+
180184
Files: providers/irdma/*
181185
Copyright: 2015-2023, Intel Corporation.
182186
License: BSD-MIT or GPL-2

debian/ibverbs-providers.install

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@ etc/libibverbs.d/
22
usr/lib/*/libefa.so.*
33
usr/lib/*/libhns.so.*
44
usr/lib/*/libibverbs/lib*-rdmav*.so
5+
usr/lib/*/libionic.so.*
56
usr/lib/*/libmana.so.*
67
usr/lib/*/libmlx4.so.*
78
usr/lib/*/libmlx5.so.*

debian/ibverbs-providers.symbols

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -191,3 +191,12 @@ libmana.so.1 ibverbs-providers #MINVER#
191191
MANA_1.0@MANA_1.0 41
192192
manadv_init_obj@MANA_1.0 41
193193
manadv_set_context_attr@MANA_1.0 41
194+
libionic.so.1 ibverbs-providers #MINVER#
195+
* Build-Depends-Package: libibverbs-dev
196+
IONIC_1.0@IONIC_1.0 59
197+
ionic_dv_ctx_get_udma_count@IONIC_1.0 59
198+
ionic_dv_ctx_get_udma_mask@IONIC_1.0 59
199+
ionic_dv_pd_get_udma_mask@IONIC_1.0 59
200+
ionic_dv_pd_set_udma_mask@IONIC_1.0 59
201+
ionic_dv_pd_set_sqcmb@IONIC_1.0 59
202+
ionic_dv_pd_set_rqcmb@IONIC_1.0 59

debian/libibverbs-dev.install

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@ usr/include/infiniband/arch.h
22
usr/include/infiniband/efadv.h
33
usr/include/infiniband/hnsdv.h
44
usr/include/infiniband/ib_user_ioctl_verbs.h
5+
usr/include/infiniband/ionic_dv.h
56
usr/include/infiniband/manadv.h
67
usr/include/infiniband/mlx4dv.h
78
usr/include/infiniband/mlx5_api.h
@@ -20,6 +21,8 @@ usr/lib/*/libhns.a
2021
usr/lib/*/libhns.so
2122
usr/lib/*/libibverbs*.so
2223
usr/lib/*/libibverbs.a
24+
usr/lib/*/libionic.a
25+
usr/lib/*/libionic.so*
2326
usr/lib/*/libmana.a
2427
usr/lib/*/libmana.so
2528
usr/lib/*/libmlx4.a
@@ -29,6 +32,7 @@ usr/lib/*/libmlx5.so
2932
usr/lib/*/pkgconfig/libefa.pc
3033
usr/lib/*/pkgconfig/libhns.pc
3134
usr/lib/*/pkgconfig/libibverbs.pc
35+
usr/lib/*/pkgconfig/libionic.pc
3236
usr/lib/*/pkgconfig/libmana.pc
3337
usr/lib/*/pkgconfig/libmlx4.pc
3438
usr/lib/*/pkgconfig/libmlx5.pc

kernel-headers/CMakeLists.txt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -71,6 +71,7 @@ rdma_kernel_provider_abi(
7171
rdma/erdma-abi.h
7272
rdma/hns-abi.h
7373
rdma/ib_user_verbs.h
74+
rdma/ionic-abi.h
7475
rdma/irdma-abi.h
7576
rdma/mana-abi.h
7677
rdma/mlx4-abi.h

libibverbs/verbs.h

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2298,7 +2298,7 @@ struct ibv_device **ibv_get_device_list(int *num_devices);
22982298
*/
22992299
#ifdef RDMA_STATIC_PROVIDERS
23002300
#define _RDMA_STATIC_PREFIX_(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, \
2301-
_12, _13, _14, _15, _16, _17, _18, _19, ...) \
2301+
_12, _13, _14, _15, _16, _17, _18, _19, _20, ...) \
23022302
&verbs_provider_##_1, &verbs_provider_##_2, &verbs_provider_##_3, \
23032303
&verbs_provider_##_4, &verbs_provider_##_5, \
23042304
&verbs_provider_##_6, &verbs_provider_##_7, \
@@ -2307,11 +2307,12 @@ struct ibv_device **ibv_get_device_list(int *num_devices);
23072307
&verbs_provider_##_12, &verbs_provider_##_13, \
23082308
&verbs_provider_##_14, &verbs_provider_##_15, \
23092309
&verbs_provider_##_16, &verbs_provider_##_17, \
2310-
&verbs_provider_##_18, &verbs_provider_##_19
2310+
&verbs_provider_##_18, &verbs_provider_##_19, \
2311+
&verbs_provider_##_20
23112312
#define _RDMA_STATIC_PREFIX(arg) \
23122313
_RDMA_STATIC_PREFIX_(arg, none, none, none, none, none, none, none, \
23132314
none, none, none, none, none, none, none, none, \
2314-
none, none, none)
2315+
none, none, none, none)
23152316

23162317
struct verbs_devices_ops;
23172318
extern const struct verbs_device_ops verbs_provider_bnxt_re;
@@ -2331,6 +2332,7 @@ extern const struct verbs_device_ops verbs_provider_qedr;
23312332
extern const struct verbs_device_ops verbs_provider_rxe;
23322333
extern const struct verbs_device_ops verbs_provider_siw;
23332334
extern const struct verbs_device_ops verbs_provider_vmw_pvrdma;
2335+
extern const struct verbs_device_ops verbs_provider_ionic;
23342336
extern const struct verbs_device_ops verbs_provider_all;
23352337
extern const struct verbs_device_ops verbs_provider_none;
23362338
void ibv_static_providers(void *unused, ...);

0 commit comments

Comments
 (0)