[PATCH rdma v5 1/7] RDMA/zrdma: Add build infrastructure and module skeleton
Yanze Zhang <[email protected]>
| Newsgroups | org.kernel.vger.linux-rdma,org.kernel.vger.linux-kernel |
|---|---|
| Message-ID | <[email protected]> |
Add MAINTAINERS entry, Kconfig, and Makefile entries for the ZTE DingHai RDMA driver. Include a minimal module skeleton with auxiliary driver registration structure to ensure the build system works and the module can be loaded. Signed-off-by: Yanze Zhang <[email protected]> --- MAINTAINERS | 6 +++ drivers/infiniband/Kconfig | 1 + drivers/infiniband/hw/Makefile | 1 + drivers/infiniband/hw/zrdma/Kconfig | 12 +++++ drivers/infiniband/hw/zrdma/Makefile | 4 ++ drivers/infiniband/hw/zrdma/zrdma_main.c | 59 ++++++++++++++++++++++++ include/uapi/rdma/ib_user_ioctl_verbs.h | 1 + 7 files changed, 84 insertions(+) create mode 100644 drivers/infiniband/hw/zrdma/Kconfig create mode 100644 drivers/infiniband/hw/zrdma/Makefile create mode 100644 drivers/infiniband/hw/zrdma/zrdma_main.c diff --git a/MAINTAINERS b/MAINTAINERS index 806bd2d80d15..e1369b20a1ef 100644 --- a/MAINTAINERS +++ b/MAINTAINERS @@ -29831,6 +29831,12 @@ S: Maintained T: git git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound.git F: sound/hda/codecs/senarytech.c +ZTE DINGHAI ZRDMA DRIVER +M: Yanze Zhang <[email protected]> +L: [email protected] +S: Supported +F: drivers/infiniband/hw/zrdma/ + THE REST M: Linus Torvalds <[email protected]> L: [email protected] diff --git a/drivers/infiniband/Kconfig b/drivers/infiniband/Kconfig index 086195758a8a..419dbf742f38 100644 --- a/drivers/infiniband/Kconfig +++ b/drivers/infiniband/Kconfig @@ -100,6 +100,7 @@ source "drivers/infiniband/hw/ocrdma/Kconfig" source "drivers/infiniband/hw/qedr/Kconfig" source "drivers/infiniband/hw/usnic/Kconfig" source "drivers/infiniband/hw/vmw_pvrdma/Kconfig" +source "drivers/infiniband/hw/zrdma/Kconfig" source "drivers/infiniband/sw/rdmavt/Kconfig" endif # !UML source "drivers/infiniband/sw/rxe/Kconfig" diff --git a/drivers/infiniband/hw/Makefile b/drivers/infiniband/hw/Makefile index c42b22ac3303..a86b867c56d4 100644 --- a/drivers/infiniband/hw/Makefile +++ b/drivers/infiniband/hw/Makefile @@ -16,3 +16,4 @@ obj-$(CONFIG_INFINIBAND_BNXT_RE) += bnxt_re/ obj-$(CONFIG_INFINIBAND_BNG_RE) += bng_re/ obj-$(CONFIG_INFINIBAND_ERDMA) += erdma/ obj-$(CONFIG_INFINIBAND_IONIC) += ionic/ +obj-$(CONFIG_INFINIBAND_ZRDMA) += zrdma/ diff --git a/drivers/infiniband/hw/zrdma/Kconfig b/drivers/infiniband/hw/zrdma/Kconfig new file mode 100644 index 000000000000..bfe21c123217 --- /dev/null +++ b/drivers/infiniband/hw/zrdma/Kconfig @@ -0,0 +1,12 @@ +# SPDX-License-Identifier: GPL-2.0 OR Linux-OpenIB +config INFINIBAND_ZRDMA + tristate "ZTE Ethernet Protocol Driver for RDMA" + depends on PCI + depends on NETDEVICES + select AUXILIARY_BUS + help + Say Y or M here to enable support for the ZTE DingHai (ZXDH) Ethernet + Protocol Driver for RDMA. This driver provides RDMA over Converged + Ethernet (RoCE) functionality for ZTE DingHai network adapters. + If you choose to build this driver as a module, it will be built as + a module named zrdma. diff --git a/drivers/infiniband/hw/zrdma/Makefile b/drivers/infiniband/hw/zrdma/Makefile new file mode 100644 index 000000000000..2ddf50d1fd20 --- /dev/null +++ b/drivers/infiniband/hw/zrdma/Makefile @@ -0,0 +1,4 @@ +# SPDX-License-Identifier: GPL-2.0 OR Linux-OpenIB + +obj-$(CONFIG_INFINIBAND_ZRDMA) += zrdma.o +zrdma-y := zrdma_main.o diff --git a/drivers/infiniband/hw/zrdma/zrdma_main.c b/drivers/infiniband/hw/zrdma/zrdma_main.c new file mode 100644 index 000000000000..7954d86573e2 --- /dev/null +++ b/drivers/infiniband/hw/zrdma/zrdma_main.c @@ -0,0 +1,59 @@ +// SPDX-License-Identifier: GPL-2.0 OR Linux-OpenIB +/* + * ZTE DingHai Rdma driver + * Copyright (c) 2022-2026, ZTE Corporation + */ + +#include <linux/module.h> +#include <linux/auxiliary_bus.h> + +#define ZXDH_PF_NAME "dinghai10e" +#define ZXDH_RDMA_DEV_NAME "rdma_aux" + +MODULE_LICENSE("Dual BSD/GPL"); +MODULE_AUTHOR("Yanze Zhang <[email protected]>"); +MODULE_DESCRIPTION("ZTE Ethernet Protocol Driver for RDMA"); + +static const struct auxiliary_device_id zxdh_auxiliary_id_table[] = { + { + .name = ZXDH_PF_NAME "." ZXDH_RDMA_DEV_NAME, + }, + {}, +}; + +MODULE_DEVICE_TABLE(auxiliary, zxdh_auxiliary_id_table); + +static int zxdh_probe(struct auxiliary_device *aux_dev, + const struct auxiliary_device_id *id) +{ + /* Placeholder: Real probe logic will be added in subsequent patches */ + dev_info(&aux_dev->dev, "ZTE DingHai RDMA device detected (stub)\n"); + return 0; +} + +static void zxdh_remove(struct auxiliary_device *aux_dev) +{ + dev_info(&aux_dev->dev, "ZTE DingHai RDMA device removed (stub)\n"); +} + +static struct auxiliary_driver zxdh_auxiliary_drv = { + .driver = { + .name = ZXDH_RDMA_DEV_NAME, + }, + .id_table = zxdh_auxiliary_id_table, + .probe = zxdh_probe, + .remove = zxdh_remove, +}; + +static int __init zrdma_module_init(void) +{ + return auxiliary_driver_register(&zxdh_auxiliary_drv); +} + +static void __exit zrdma_module_exit(void) +{ + auxiliary_driver_unregister(&zxdh_auxiliary_drv); +} + +module_init(zrdma_module_init); +module_exit(zrdma_module_exit); diff --git a/include/uapi/rdma/ib_user_ioctl_verbs.h b/include/uapi/rdma/ib_user_ioctl_verbs.h index 21f86cc7bb1f..98dcea207357 100644 --- a/include/uapi/rdma/ib_user_ioctl_verbs.h +++ b/include/uapi/rdma/ib_user_ioctl_verbs.h @@ -257,6 +257,7 @@ enum rdma_driver_id { RDMA_DRIVER_ERDMA, RDMA_DRIVER_MANA, RDMA_DRIVER_IONIC, + RDMA_DRIVER_ZRDMA, }; enum ib_uverbs_gid_type { -- 2.27.0