[PATCH v4 14/14] RDMA/ionic: Add Makefile/Kconfig to kernel build environment

Abhijit Gangurde posted 14 patches 2 months, 2 weeks ago
There is a newer version of this series
[PATCH v4 14/14] RDMA/ionic: Add Makefile/Kconfig to kernel build environment
Posted by Abhijit Gangurde 2 months, 2 weeks ago
Add ionic to the kernel build environment.

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>
---
v2->v3
  - Removed select of ethernet driver
  - Fixed make htmldocs error

 .../device_drivers/ethernet/index.rst         |  1 +
 .../ethernet/pensando/ionic_rdma.rst          | 43 +++++++++++++++++++
 MAINTAINERS                                   |  9 ++++
 drivers/infiniband/Kconfig                    |  1 +
 drivers/infiniband/hw/Makefile                |  1 +
 drivers/infiniband/hw/ionic/Kconfig           | 15 +++++++
 drivers/infiniband/hw/ionic/Makefile          |  9 ++++
 7 files changed, 79 insertions(+)
 create mode 100644 Documentation/networking/device_drivers/ethernet/pensando/ionic_rdma.rst
 create mode 100644 drivers/infiniband/hw/ionic/Kconfig
 create mode 100644 drivers/infiniband/hw/ionic/Makefile

diff --git a/Documentation/networking/device_drivers/ethernet/index.rst b/Documentation/networking/device_drivers/ethernet/index.rst
index 139b4c75a191..4b16ecd289da 100644
--- a/Documentation/networking/device_drivers/ethernet/index.rst
+++ b/Documentation/networking/device_drivers/ethernet/index.rst
@@ -50,6 +50,7 @@ Contents:
    neterion/s2io
    netronome/nfp
    pensando/ionic
+   pensando/ionic_rdma
    smsc/smc9
    stmicro/stmmac
    ti/cpsw
diff --git a/Documentation/networking/device_drivers/ethernet/pensando/ionic_rdma.rst b/Documentation/networking/device_drivers/ethernet/pensando/ionic_rdma.rst
new file mode 100644
index 000000000000..80c4d9876d3e
--- /dev/null
+++ b/Documentation/networking/device_drivers/ethernet/pensando/ionic_rdma.rst
@@ -0,0 +1,43 @@
+.. SPDX-License-Identifier: GPL-2.0+
+
+============================================================
+Linux Driver for the AMD Pensando(R) Ethernet adapter family
+============================================================
+
+AMD Pensando RDMA driver.
+Copyright (C) 2018-2025, Advanced Micro Devices, Inc.
+
+Contents
+========
+
+- Identifying the Adapter
+- Enabling the driver
+- Support
+
+Identifying the Adapter
+=======================
+
+See Documentation/networking/device_drivers/ethernet/pensando/ionic.rst
+for more information on identifying the adapter.
+
+Enabling the driver
+===================
+
+The driver is enabled via the standard kernel configuration system,
+using the make command::
+
+  make oldconfig/menuconfig/etc.
+
+The driver is located in the menu structure at:
+
+  -> Device Drivers
+    -> InfiniBand support
+      -> AMD Pensando DSC RDMA/RoCE Support
+
+Support
+=======
+
+For general Linux rdma support, please use the rdma mailing
+list, which is monitored by AMD Pensando personnel::
+
+  linux-rdma@vger.kernel.org
diff --git a/MAINTAINERS b/MAINTAINERS
index b4f3fa14ddca..f52409bde673 100644
--- a/MAINTAINERS
+++ b/MAINTAINERS
@@ -1165,6 +1165,15 @@ F:	Documentation/networking/device_drivers/ethernet/amd/pds_core.rst
 F:	drivers/net/ethernet/amd/pds_core/
 F:	include/linux/pds/
 
+AMD PENSANDO RDMA DRIVER
+M:	Abhijit Gangurde <abhijit.gangurde@amd.com>
+M:	Allen Hubbe <allen.hubbe@amd.com>
+L:	linux-rdma@vger.kernel.org
+S:	Maintained
+F:	Documentation/networking/device_drivers/ethernet/pensando/ionic_rdma.rst
+F:	drivers/infiniband/hw/ionic/
+F:	include/uapi/rdma/ionic-abi.h
+
 AMD PMC DRIVER
 M:	Shyam Sundar S K <Shyam-sundar.S-k@amd.com>
 L:	platform-driver-x86@vger.kernel.org
diff --git a/drivers/infiniband/Kconfig b/drivers/infiniband/Kconfig
index 3a394cd772f6..f0323f1d6f01 100644
--- a/drivers/infiniband/Kconfig
+++ b/drivers/infiniband/Kconfig
@@ -85,6 +85,7 @@ source "drivers/infiniband/hw/efa/Kconfig"
 source "drivers/infiniband/hw/erdma/Kconfig"
 source "drivers/infiniband/hw/hfi1/Kconfig"
 source "drivers/infiniband/hw/hns/Kconfig"
+source "drivers/infiniband/hw/ionic/Kconfig"
 source "drivers/infiniband/hw/irdma/Kconfig"
 source "drivers/infiniband/hw/mana/Kconfig"
 source "drivers/infiniband/hw/mlx4/Kconfig"
diff --git a/drivers/infiniband/hw/Makefile b/drivers/infiniband/hw/Makefile
index df61b2299ec0..b706dc0d0263 100644
--- a/drivers/infiniband/hw/Makefile
+++ b/drivers/infiniband/hw/Makefile
@@ -14,3 +14,4 @@ obj-$(CONFIG_INFINIBAND_HNS_HIP08)	+= hns/
 obj-$(CONFIG_INFINIBAND_QEDR)		+= qedr/
 obj-$(CONFIG_INFINIBAND_BNXT_RE)	+= bnxt_re/
 obj-$(CONFIG_INFINIBAND_ERDMA)		+= erdma/
+obj-$(CONFIG_INFINIBAND_IONIC)		+= ionic/
diff --git a/drivers/infiniband/hw/ionic/Kconfig b/drivers/infiniband/hw/ionic/Kconfig
new file mode 100644
index 000000000000..de6f10e9b6e9
--- /dev/null
+++ b/drivers/infiniband/hw/ionic/Kconfig
@@ -0,0 +1,15 @@
+# SPDX-License-Identifier: GPL-2.0
+# Copyright (C) 2018-2025, Advanced Micro Devices, Inc.
+
+config INFINIBAND_IONIC
+	tristate "AMD Pensando DSC RDMA/RoCE Support"
+	depends on NETDEVICES && ETHERNET && PCI && INET && IONIC
+	help
+	  This enables RDMA/RoCE support for the AMD Pensando family of
+	  Distributed Services Cards (DSCs).
+
+	  To learn more, visit our website at
+	  <https://www.amd.com/en/products/accelerators/pensando.html>.
+
+	  To compile this driver as a module, choose M here. The module
+	  will be called ionic_rdma.
diff --git a/drivers/infiniband/hw/ionic/Makefile b/drivers/infiniband/hw/ionic/Makefile
new file mode 100644
index 000000000000..957973742820
--- /dev/null
+++ b/drivers/infiniband/hw/ionic/Makefile
@@ -0,0 +1,9 @@
+# SPDX-License-Identifier: GPL-2.0
+
+ccflags-y :=  -I $(srctree)/drivers/net/ethernet/pensando/ionic
+
+obj-$(CONFIG_INFINIBAND_IONIC)	+= ionic_rdma.o
+
+ionic_rdma-y :=	\
+	ionic_ibdev.o ionic_lif_cfg.o ionic_queue.o ionic_pgtbl.o ionic_admin.o \
+	ionic_controlpath.o ionic_datapath.o ionic_hw_stats.o
-- 
2.43.0
Re: [PATCH v4 14/14] RDMA/ionic: Add Makefile/Kconfig to kernel build environment
Posted by kernel test robot 2 months, 1 week ago
Hi Abhijit,

kernel test robot noticed the following build errors:

[auto build test ERROR on e1bed9a94da86a7c01b985c2e9a030207269cbc7]

url:    https://github.com/intel-lab-lkp/linux/commits/Abhijit-Gangurde/net-ionic-Create-an-auxiliary-device-for-rdma-driver/20250724-014031
base:   e1bed9a94da86a7c01b985c2e9a030207269cbc7
patch link:    https://lore.kernel.org/r/20250723173149.2568776-15-abhijit.gangurde%40amd.com
patch subject: [PATCH v4 14/14] RDMA/ionic: Add Makefile/Kconfig to kernel build environment
config: s390-allyesconfig (https://download.01.org/0day-ci/archive/20250724/202507242337.xwu7Zm2I-lkp@intel.com/config)
compiler: s390-linux-gcc (GCC) 15.1.0
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20250724/202507242337.xwu7Zm2I-lkp@intel.com/reproduce)

If you fix the issue in a separate patch/commit (i.e. not just a new version of
the same patch/commit), kindly add following tags
| Reported-by: kernel test robot <lkp@intel.com>
| Closes: https://lore.kernel.org/oe-kbuild-all/202507242337.xwu7Zm2I-lkp@intel.com/

All errors (new ones prefixed by >>):

>> drivers/infiniband/hw/ionic/ionic_ibdev.c:235:24: error: initialization of 'struct ib_mr * (*)(struct ib_pd *, u64,  u64,  u64,  int,  struct ib_dmah *, struct ib_udata *)' {aka 'struct ib_mr * (*)(struct ib_pd *, long long unsigned int,  long long unsigned int,  long long unsigned int,  int,  struct ib_dmah *, struct ib_udata *)'} from incompatible pointer type 'struct ib_mr * (*)(struct ib_pd *, u64,  u64,  u64,  int,  struct ib_udata *)' {aka 'struct ib_mr * (*)(struct ib_pd *, long long unsigned int,  long long unsigned int,  long long unsigned int,  int,  struct ib_udata *)'} [-Wincompatible-pointer-types]
     235 |         .reg_user_mr = ionic_reg_user_mr,
         |                        ^~~~~~~~~~~~~~~~~
   drivers/infiniband/hw/ionic/ionic_ibdev.c:235:24: note: (near initialization for 'ionic_dev_ops.reg_user_mr')
   In file included from drivers/infiniband/hw/ionic/ionic_ibdev.c:12:
   drivers/infiniband/hw/ionic/ionic_ibdev.h:469:15: note: 'ionic_reg_user_mr' declared here
     469 | struct ib_mr *ionic_reg_user_mr(struct ib_pd *ibpd, u64 start, u64 length,
         |               ^~~~~~~~~~~~~~~~~
>> drivers/infiniband/hw/ionic/ionic_ibdev.c:236:31: error: initialization of 'struct ib_mr * (*)(struct ib_pd *, u64,  u64,  u64,  int,  int,  struct ib_dmah *, struct uverbs_attr_bundle *)' {aka 'struct ib_mr * (*)(struct ib_pd *, long long unsigned int,  long long unsigned int,  long long unsigned int,  int,  int,  struct ib_dmah *, struct uverbs_attr_bundle *)'} from incompatible pointer type 'struct ib_mr * (*)(struct ib_pd *, u64,  u64,  u64,  int,  int,  struct uverbs_attr_bundle *)' {aka 'struct ib_mr * (*)(struct ib_pd *, long long unsigned int,  long long unsigned int,  long long unsigned int,  int,  int,  struct uverbs_attr_bundle *)'} [-Wincompatible-pointer-types]
     236 |         .reg_user_mr_dmabuf = ionic_reg_user_mr_dmabuf,
         |                               ^~~~~~~~~~~~~~~~~~~~~~~~
   drivers/infiniband/hw/ionic/ionic_ibdev.c:236:31: note: (near initialization for 'ionic_dev_ops.reg_user_mr_dmabuf')
   drivers/infiniband/hw/ionic/ionic_ibdev.h:471:15: note: 'ionic_reg_user_mr_dmabuf' declared here
     471 | struct ib_mr *ionic_reg_user_mr_dmabuf(struct ib_pd *ibpd, u64 offset,
         |               ^~~~~~~~~~~~~~~~~~~~~~~~


vim +235 drivers/infiniband/hw/ionic/ionic_ibdev.c

5bac24d9a932cb6 Abhijit Gangurde 2025-07-23  218  
2dd4118243d6859 Abhijit Gangurde 2025-07-23  219  static const struct ib_device_ops ionic_dev_ops = {
2dd4118243d6859 Abhijit Gangurde 2025-07-23  220  	.owner = THIS_MODULE,
2dd4118243d6859 Abhijit Gangurde 2025-07-23  221  	.driver_id = RDMA_DRIVER_IONIC,
2dd4118243d6859 Abhijit Gangurde 2025-07-23  222  	.uverbs_abi_ver = IONIC_ABI_VERSION,
2dd4118243d6859 Abhijit Gangurde 2025-07-23  223  
2dd4118243d6859 Abhijit Gangurde 2025-07-23  224  	.alloc_ucontext = ionic_alloc_ucontext,
2dd4118243d6859 Abhijit Gangurde 2025-07-23  225  	.dealloc_ucontext = ionic_dealloc_ucontext,
2dd4118243d6859 Abhijit Gangurde 2025-07-23  226  	.mmap = ionic_mmap,
2dd4118243d6859 Abhijit Gangurde 2025-07-23  227  	.mmap_free = ionic_mmap_free,
2dd4118243d6859 Abhijit Gangurde 2025-07-23  228  	.alloc_pd = ionic_alloc_pd,
2dd4118243d6859 Abhijit Gangurde 2025-07-23  229  	.dealloc_pd = ionic_dealloc_pd,
2dd4118243d6859 Abhijit Gangurde 2025-07-23  230  	.create_ah = ionic_create_ah,
2dd4118243d6859 Abhijit Gangurde 2025-07-23  231  	.query_ah = ionic_query_ah,
2dd4118243d6859 Abhijit Gangurde 2025-07-23  232  	.destroy_ah = ionic_destroy_ah,
2dd4118243d6859 Abhijit Gangurde 2025-07-23  233  	.create_user_ah = ionic_create_ah,
2dd4118243d6859 Abhijit Gangurde 2025-07-23  234  	.get_dma_mr = ionic_get_dma_mr,
2dd4118243d6859 Abhijit Gangurde 2025-07-23 @235  	.reg_user_mr = ionic_reg_user_mr,
2dd4118243d6859 Abhijit Gangurde 2025-07-23 @236  	.reg_user_mr_dmabuf = ionic_reg_user_mr_dmabuf,
2dd4118243d6859 Abhijit Gangurde 2025-07-23  237  	.dereg_mr = ionic_dereg_mr,
2dd4118243d6859 Abhijit Gangurde 2025-07-23  238  	.alloc_mr = ionic_alloc_mr,
2dd4118243d6859 Abhijit Gangurde 2025-07-23  239  	.map_mr_sg = ionic_map_mr_sg,
2dd4118243d6859 Abhijit Gangurde 2025-07-23  240  	.alloc_mw = ionic_alloc_mw,
2dd4118243d6859 Abhijit Gangurde 2025-07-23  241  	.dealloc_mw = ionic_dealloc_mw,
2dd4118243d6859 Abhijit Gangurde 2025-07-23  242  	.create_cq = ionic_create_cq,
2dd4118243d6859 Abhijit Gangurde 2025-07-23  243  	.destroy_cq = ionic_destroy_cq,
2dd4118243d6859 Abhijit Gangurde 2025-07-23  244  	.create_qp = ionic_create_qp,
2dd4118243d6859 Abhijit Gangurde 2025-07-23  245  	.modify_qp = ionic_modify_qp,
2dd4118243d6859 Abhijit Gangurde 2025-07-23  246  	.query_qp = ionic_query_qp,
2dd4118243d6859 Abhijit Gangurde 2025-07-23  247  	.destroy_qp = ionic_destroy_qp,
2dd4118243d6859 Abhijit Gangurde 2025-07-23  248  
423894d5361e62f Abhijit Gangurde 2025-07-23  249  	.post_send = ionic_post_send,
423894d5361e62f Abhijit Gangurde 2025-07-23  250  	.post_recv = ionic_post_recv,
423894d5361e62f Abhijit Gangurde 2025-07-23  251  	.poll_cq = ionic_poll_cq,
423894d5361e62f Abhijit Gangurde 2025-07-23  252  	.req_notify_cq = ionic_req_notify_cq,
423894d5361e62f Abhijit Gangurde 2025-07-23  253  
5bac24d9a932cb6 Abhijit Gangurde 2025-07-23  254  	.query_device = ionic_query_device,
5bac24d9a932cb6 Abhijit Gangurde 2025-07-23  255  	.query_port = ionic_query_port,
5bac24d9a932cb6 Abhijit Gangurde 2025-07-23  256  	.get_link_layer = ionic_get_link_layer,
5bac24d9a932cb6 Abhijit Gangurde 2025-07-23  257  	.query_pkey = ionic_query_pkey,
5bac24d9a932cb6 Abhijit Gangurde 2025-07-23  258  	.modify_device = ionic_modify_device,
5bac24d9a932cb6 Abhijit Gangurde 2025-07-23  259  	.get_port_immutable = ionic_get_port_immutable,
5bac24d9a932cb6 Abhijit Gangurde 2025-07-23  260  	.get_dev_fw_str = ionic_get_dev_fw_str,
5bac24d9a932cb6 Abhijit Gangurde 2025-07-23  261  	.get_vector_affinity = ionic_get_vector_affinity,
5bac24d9a932cb6 Abhijit Gangurde 2025-07-23  262  	.device_group = &ionic_rdma_attr_group,
5bac24d9a932cb6 Abhijit Gangurde 2025-07-23  263  	.disassociate_ucontext = ionic_disassociate_ucontext,
5bac24d9a932cb6 Abhijit Gangurde 2025-07-23  264  
2dd4118243d6859 Abhijit Gangurde 2025-07-23  265  	INIT_RDMA_OBJ_SIZE(ib_ucontext, ionic_ctx, ibctx),
2dd4118243d6859 Abhijit Gangurde 2025-07-23  266  	INIT_RDMA_OBJ_SIZE(ib_pd, ionic_pd, ibpd),
2dd4118243d6859 Abhijit Gangurde 2025-07-23  267  	INIT_RDMA_OBJ_SIZE(ib_ah, ionic_ah, ibah),
2dd4118243d6859 Abhijit Gangurde 2025-07-23  268  	INIT_RDMA_OBJ_SIZE(ib_cq, ionic_vcq, ibcq),
2dd4118243d6859 Abhijit Gangurde 2025-07-23  269  	INIT_RDMA_OBJ_SIZE(ib_qp, ionic_qp, ibqp),
2dd4118243d6859 Abhijit Gangurde 2025-07-23  270  	INIT_RDMA_OBJ_SIZE(ib_mw, ionic_mr, ibmw),
2dd4118243d6859 Abhijit Gangurde 2025-07-23  271  };
2dd4118243d6859 Abhijit Gangurde 2025-07-23  272  

-- 
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki
Re: [PATCH v4 14/14] RDMA/ionic: Add Makefile/Kconfig to kernel build environment
Posted by Shannon Nelson 2 months, 2 weeks ago
On 7/23/25 10:31 AM, Abhijit Gangurde wrote:
> Add ionic to the kernel build environment.
>
> 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>
> ---
> v2->v3
>    - Removed select of ethernet driver
>    - Fixed make htmldocs error
>
>   .../device_drivers/ethernet/index.rst         |  1 +
>   .../ethernet/pensando/ionic_rdma.rst          | 43 +++++++++++++++++++
>   MAINTAINERS                                   |  9 ++++
>   drivers/infiniband/Kconfig                    |  1 +
>   drivers/infiniband/hw/Makefile                |  1 +
>   drivers/infiniband/hw/ionic/Kconfig           | 15 +++++++
>   drivers/infiniband/hw/ionic/Makefile          |  9 ++++
>   7 files changed, 79 insertions(+)
>   create mode 100644 Documentation/networking/device_drivers/ethernet/pensando/ionic_rdma.rst
>   create mode 100644 drivers/infiniband/hw/ionic/Kconfig
>   create mode 100644 drivers/infiniband/hw/ionic/Makefile
>
> diff --git a/Documentation/networking/device_drivers/ethernet/index.rst b/Documentation/networking/device_drivers/ethernet/index.rst
> index 139b4c75a191..4b16ecd289da 100644
> --- a/Documentation/networking/device_drivers/ethernet/index.rst
> +++ b/Documentation/networking/device_drivers/ethernet/index.rst
> @@ -50,6 +50,7 @@ Contents:
>      neterion/s2io
>      netronome/nfp
>      pensando/ionic
> +   pensando/ionic_rdma
>      smsc/smc9
>      stmicro/stmmac
>      ti/cpsw
> diff --git a/Documentation/networking/device_drivers/ethernet/pensando/ionic_rdma.rst b/Documentation/networking/device_drivers/ethernet/pensando/ionic_rdma.rst
> new file mode 100644
> index 000000000000..80c4d9876d3e
> --- /dev/null
> +++ b/Documentation/networking/device_drivers/ethernet/pensando/ionic_rdma.rst
> @@ -0,0 +1,43 @@
> +.. SPDX-License-Identifier: GPL-2.0+
> +
> +============================================================
> +Linux Driver for the AMD Pensando(R) Ethernet adapter family
> +============================================================
> +
> +AMD Pensando RDMA driver.
> +Copyright (C) 2018-2025, Advanced Micro Devices, Inc.
> +
> +Contents
> +========
> +
> +- Identifying the Adapter
> +- Enabling the driver
> +- Support
> +
> +Identifying the Adapter
> +=======================
> +
> +See Documentation/networking/device_drivers/ethernet/pensando/ionic.rst
> +for more information on identifying the adapter.
> +
> +Enabling the driver
> +===================
> +
> +The driver is enabled via the standard kernel configuration system,
> +using the make command::
> +
> +  make oldconfig/menuconfig/etc.
> +
> +The driver is located in the menu structure at:
> +
> +  -> Device Drivers
> +    -> InfiniBand support
> +      -> AMD Pensando DSC RDMA/RoCE Support

Please add some verbage about this being an auxiliary_device dependent 
on the ionic driver, and that it can be disabled/enab led with a devlink 
command.

sln


> +
> +Support
> +=======
> +
> +For general Linux rdma support, please use the rdma mailing
> +list, which is monitored by AMD Pensando personnel::
> +
> +  linux-rdma@vger.kernel.org
> diff --git a/MAINTAINERS b/MAINTAINERS
> index b4f3fa14ddca..f52409bde673 100644
> --- a/MAINTAINERS
> +++ b/MAINTAINERS
> @@ -1165,6 +1165,15 @@ F:	Documentation/networking/device_drivers/ethernet/amd/pds_core.rst
>   F:	drivers/net/ethernet/amd/pds_core/
>   F:	include/linux/pds/
>   
> +AMD PENSANDO RDMA DRIVER
> +M:	Abhijit Gangurde <abhijit.gangurde@amd.com>
> +M:	Allen Hubbe <allen.hubbe@amd.com>
> +L:	linux-rdma@vger.kernel.org
> +S:	Maintained
> +F:	Documentation/networking/device_drivers/ethernet/pensando/ionic_rdma.rst
> +F:	drivers/infiniband/hw/ionic/
> +F:	include/uapi/rdma/ionic-abi.h
> +
>   AMD PMC DRIVER
>   M:	Shyam Sundar S K <Shyam-sundar.S-k@amd.com>
>   L:	platform-driver-x86@vger.kernel.org
> diff --git a/drivers/infiniband/Kconfig b/drivers/infiniband/Kconfig
> index 3a394cd772f6..f0323f1d6f01 100644
> --- a/drivers/infiniband/Kconfig
> +++ b/drivers/infiniband/Kconfig
> @@ -85,6 +85,7 @@ source "drivers/infiniband/hw/efa/Kconfig"
>   source "drivers/infiniband/hw/erdma/Kconfig"
>   source "drivers/infiniband/hw/hfi1/Kconfig"
>   source "drivers/infiniband/hw/hns/Kconfig"
> +source "drivers/infiniband/hw/ionic/Kconfig"
>   source "drivers/infiniband/hw/irdma/Kconfig"
>   source "drivers/infiniband/hw/mana/Kconfig"
>   source "drivers/infiniband/hw/mlx4/Kconfig"
> diff --git a/drivers/infiniband/hw/Makefile b/drivers/infiniband/hw/Makefile
> index df61b2299ec0..b706dc0d0263 100644
> --- a/drivers/infiniband/hw/Makefile
> +++ b/drivers/infiniband/hw/Makefile
> @@ -14,3 +14,4 @@ obj-$(CONFIG_INFINIBAND_HNS_HIP08)	+= hns/
>   obj-$(CONFIG_INFINIBAND_QEDR)		+= qedr/
>   obj-$(CONFIG_INFINIBAND_BNXT_RE)	+= bnxt_re/
>   obj-$(CONFIG_INFINIBAND_ERDMA)		+= erdma/
> +obj-$(CONFIG_INFINIBAND_IONIC)		+= ionic/
> diff --git a/drivers/infiniband/hw/ionic/Kconfig b/drivers/infiniband/hw/ionic/Kconfig
> new file mode 100644
> index 000000000000..de6f10e9b6e9
> --- /dev/null
> +++ b/drivers/infiniband/hw/ionic/Kconfig
> @@ -0,0 +1,15 @@
> +# SPDX-License-Identifier: GPL-2.0
> +# Copyright (C) 2018-2025, Advanced Micro Devices, Inc.
> +
> +config INFINIBAND_IONIC
> +	tristate "AMD Pensando DSC RDMA/RoCE Support"
> +	depends on NETDEVICES && ETHERNET && PCI && INET && IONIC
> +	help
> +	  This enables RDMA/RoCE support for the AMD Pensando family of
> +	  Distributed Services Cards (DSCs).
> +
> +	  To learn more, visit our website at
> +	  <https://www.amd.com/en/products/accelerators/pensando.html>.
> +
> +	  To compile this driver as a module, choose M here. The module
> +	  will be called ionic_rdma.
> diff --git a/drivers/infiniband/hw/ionic/Makefile b/drivers/infiniband/hw/ionic/Makefile
> new file mode 100644
> index 000000000000..957973742820
> --- /dev/null
> +++ b/drivers/infiniband/hw/ionic/Makefile
> @@ -0,0 +1,9 @@
> +# SPDX-License-Identifier: GPL-2.0
> +
> +ccflags-y :=  -I $(srctree)/drivers/net/ethernet/pensando/ionic
> +
> +obj-$(CONFIG_INFINIBAND_IONIC)	+= ionic_rdma.o
> +
> +ionic_rdma-y :=	\
> +	ionic_ibdev.o ionic_lif_cfg.o ionic_queue.o ionic_pgtbl.o ionic_admin.o \
> +	ionic_controlpath.o ionic_datapath.o ionic_hw_stats.o
Re: [PATCH v4 14/14] RDMA/ionic: Add Makefile/Kconfig to kernel build environment
Posted by Abhijit Gangurde 2 months, 1 week ago
On 7/23/25 23:43, Shannon Nelson wrote:
> On 7/23/25 10:31 AM, Abhijit Gangurde wrote:
>> Add ionic to the kernel build environment.
>>
>> 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>
>> ---
>> v2->v3
>>    - Removed select of ethernet driver
>>    - Fixed make htmldocs error
>>
>>   .../device_drivers/ethernet/index.rst         |  1 +
>>   .../ethernet/pensando/ionic_rdma.rst          | 43 +++++++++++++++++++
>>   MAINTAINERS                                   |  9 ++++
>>   drivers/infiniband/Kconfig                    |  1 +
>>   drivers/infiniband/hw/Makefile                |  1 +
>>   drivers/infiniband/hw/ionic/Kconfig           | 15 +++++++
>>   drivers/infiniband/hw/ionic/Makefile          |  9 ++++
>>   7 files changed, 79 insertions(+)
>>   create mode 100644 
>> Documentation/networking/device_drivers/ethernet/pensando/ionic_rdma.rst
>>   create mode 100644 drivers/infiniband/hw/ionic/Kconfig
>>   create mode 100644 drivers/infiniband/hw/ionic/Makefile
>>
>> diff --git 
>> a/Documentation/networking/device_drivers/ethernet/index.rst 
>> b/Documentation/networking/device_drivers/ethernet/index.rst
>> index 139b4c75a191..4b16ecd289da 100644
>> --- a/Documentation/networking/device_drivers/ethernet/index.rst
>> +++ b/Documentation/networking/device_drivers/ethernet/index.rst
>> @@ -50,6 +50,7 @@ Contents:
>>      neterion/s2io
>>      netronome/nfp
>>      pensando/ionic
>> +   pensando/ionic_rdma
>>      smsc/smc9
>>      stmicro/stmmac
>>      ti/cpsw
>> diff --git 
>> a/Documentation/networking/device_drivers/ethernet/pensando/ionic_rdma.rst 
>> b/Documentation/networking/device_drivers/ethernet/pensando/ionic_rdma.rst 
>>
>> new file mode 100644
>> index 000000000000..80c4d9876d3e
>> --- /dev/null
>> +++ 
>> b/Documentation/networking/device_drivers/ethernet/pensando/ionic_rdma.rst
>> @@ -0,0 +1,43 @@
>> +.. SPDX-License-Identifier: GPL-2.0+
>> +
>> +============================================================
>> +Linux Driver for the AMD Pensando(R) Ethernet adapter family
>> +============================================================
>> +
>> +AMD Pensando RDMA driver.
>> +Copyright (C) 2018-2025, Advanced Micro Devices, Inc.
>> +
>> +Contents
>> +========
>> +
>> +- Identifying the Adapter
>> +- Enabling the driver
>> +- Support
>> +
>> +Identifying the Adapter
>> +=======================
>> +
>> +See Documentation/networking/device_drivers/ethernet/pensando/ionic.rst
>> +for more information on identifying the adapter.
>> +
>> +Enabling the driver
>> +===================
>> +
>> +The driver is enabled via the standard kernel configuration system,
>> +using the make command::
>> +
>> +  make oldconfig/menuconfig/etc.
>> +
>> +The driver is located in the menu structure at:
>> +
>> +  -> Device Drivers
>> +    -> InfiniBand support
>> +      -> AMD Pensando DSC RDMA/RoCE Support
>
> Please add some verbage about this being an auxiliary_device dependent 
> on the ionic driver, and that it can be disabled/enab led with a 
> devlink command.
>
> sln
>
Sure. I'll add verbiage explaining that this is an auxiliary device 
dependent on the ionic driver. Although this series doesn't include the 
devlink changes for enabling/disabling functionality, I'll make sure to 
mention this aspect when the devlink changes are submitted.

Thanks,
Abhijit




Re: [PATCH v4 14/14] RDMA/ionic: Add Makefile/Kconfig to kernel build environment
Posted by Randy Dunlap 2 months, 2 weeks ago

On 7/23/25 10:31 AM, Abhijit Gangurde wrote:
> Add ionic to the kernel build environment.
> 
> 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>
> ---
> v2->v3
>   - Removed select of ethernet driver
>   - Fixed make htmldocs error
> 
>  .../device_drivers/ethernet/index.rst         |  1 +
>  .../ethernet/pensando/ionic_rdma.rst          | 43 +++++++++++++++++++
>  MAINTAINERS                                   |  9 ++++
>  drivers/infiniband/Kconfig                    |  1 +
>  drivers/infiniband/hw/Makefile                |  1 +
>  drivers/infiniband/hw/ionic/Kconfig           | 15 +++++++
>  drivers/infiniband/hw/ionic/Makefile          |  9 ++++
>  7 files changed, 79 insertions(+)
>  create mode 100644 Documentation/networking/device_drivers/ethernet/pensando/ionic_rdma.rst
>  create mode 100644 drivers/infiniband/hw/ionic/Kconfig
>  create mode 100644 drivers/infiniband/hw/ionic/Makefile
> 

> diff --git a/Documentation/networking/device_drivers/ethernet/pensando/ionic_rdma.rst b/Documentation/networking/device_drivers/ethernet/pensando/ionic_rdma.rst
> new file mode 100644
> index 000000000000..80c4d9876d3e
> --- /dev/null
> +++ b/Documentation/networking/device_drivers/ethernet/pensando/ionic_rdma.rst
> @@ -0,0 +1,43 @@
> +.. SPDX-License-Identifier: GPL-2.0+
> +
> +============================================================
> +Linux Driver for the AMD Pensando(R) Ethernet adapter family
> +============================================================

Please try to differentiate the title of this driver from that of
the Pensando ethernet driver:

========================================================
Linux Driver for the Pensando(R) Ethernet adapter family
========================================================

Thanks.

> +
> +AMD Pensando RDMA driver.
> +Copyright (C) 2018-2025, Advanced Micro Devices, Inc.
> +
> +Contents
> +========
> +
> +- Identifying the Adapter
> +- Enabling the driver
> +- Support
> +
> +Identifying the Adapter
> +=======================
> +
> +See Documentation/networking/device_drivers/ethernet/pensando/ionic.rst
> +for more information on identifying the adapter.
> +
> +Enabling the driver
> +===================
> +
> +The driver is enabled via the standard kernel configuration system,
> +using the make command::
> +
> +  make oldconfig/menuconfig/etc.
> +
> +The driver is located in the menu structure at:
> +
> +  -> Device Drivers
> +    -> InfiniBand support
> +      -> AMD Pensando DSC RDMA/RoCE Support
> +
> +Support
> +=======
> +
> +For general Linux rdma support, please use the rdma mailing
> +list, which is monitored by AMD Pensando personnel::
> +
> +  linux-rdma@vger.kernel.org


-- 
~Randy
Re: [PATCH v4 14/14] RDMA/ionic: Add Makefile/Kconfig to kernel build environment
Posted by Abhijit Gangurde 2 months, 1 week ago
On 7/23/25 23:40, Randy Dunlap wrote:
>
> On 7/23/25 10:31 AM, Abhijit Gangurde wrote:
>> Add ionic to the kernel build environment.
>>
>> 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>
>> ---
>> v2->v3
>>    - Removed select of ethernet driver
>>    - Fixed make htmldocs error
>>
>>   .../device_drivers/ethernet/index.rst         |  1 +
>>   .../ethernet/pensando/ionic_rdma.rst          | 43 +++++++++++++++++++
>>   MAINTAINERS                                   |  9 ++++
>>   drivers/infiniband/Kconfig                    |  1 +
>>   drivers/infiniband/hw/Makefile                |  1 +
>>   drivers/infiniband/hw/ionic/Kconfig           | 15 +++++++
>>   drivers/infiniband/hw/ionic/Makefile          |  9 ++++
>>   7 files changed, 79 insertions(+)
>>   create mode 100644 Documentation/networking/device_drivers/ethernet/pensando/ionic_rdma.rst
>>   create mode 100644 drivers/infiniband/hw/ionic/Kconfig
>>   create mode 100644 drivers/infiniband/hw/ionic/Makefile
>>
>> diff --git a/Documentation/networking/device_drivers/ethernet/pensando/ionic_rdma.rst b/Documentation/networking/device_drivers/ethernet/pensando/ionic_rdma.rst
>> new file mode 100644
>> index 000000000000..80c4d9876d3e
>> --- /dev/null
>> +++ b/Documentation/networking/device_drivers/ethernet/pensando/ionic_rdma.rst
>> @@ -0,0 +1,43 @@
>> +.. SPDX-License-Identifier: GPL-2.0+
>> +
>> +============================================================
>> +Linux Driver for the AMD Pensando(R) Ethernet adapter family
>> +============================================================
> Please try to differentiate the title of this driver from that of
> the Pensando ethernet driver:
>
> ========================================================
> Linux Driver for the Pensando(R) Ethernet adapter family
> ========================================================
>
> Thanks.

Thanks. I will correct the title of the RDMA driver.

Abhijit

>
>> +
>> +AMD Pensando RDMA driver.
>> +Copyright (C) 2018-2025, Advanced Micro Devices, Inc.
>> +
>> +Contents
>> +========
>> +
>> +- Identifying the Adapter
>> +- Enabling the driver
>> +- Support
>> +
>> +Identifying the Adapter
>> +=======================
>> +
>> +See Documentation/networking/device_drivers/ethernet/pensando/ionic.rst
>> +for more information on identifying the adapter.
>> +
>> +Enabling the driver
>> +===================
>> +
>> +The driver is enabled via the standard kernel configuration system,
>> +using the make command::
>> +
>> +  make oldconfig/menuconfig/etc.
>> +
>> +The driver is located in the menu structure at:
>> +
>> +  -> Device Drivers
>> +    -> InfiniBand support
>> +      -> AMD Pensando DSC RDMA/RoCE Support
>> +
>> +Support
>> +=======
>> +
>> +For general Linux rdma support, please use the rdma mailing
>> +list, which is monitored by AMD Pensando personnel::
>> +
>> +  linux-rdma@vger.kernel.org
>