1# SPDX-License-Identifier: GPL-2.0-only 2menuconfig INFINIBAND 3 tristate "InfiniBand support" 4 depends on HAS_IOMEM && HAS_DMA 5 depends on NET 6 depends on INET 7 depends on m || IPV6 != m 8 depends on !ALPHA 9 select IRQ_POLL 10 ---help--- 11 Core support for InfiniBand (IB). Make sure to also select 12 any protocols you wish to use as well as drivers for your 13 InfiniBand hardware. 14 15if INFINIBAND 16 17config INFINIBAND_USER_MAD 18 tristate "InfiniBand userspace MAD support" 19 depends on INFINIBAND 20 ---help--- 21 Userspace InfiniBand Management Datagram (MAD) support. This 22 is the kernel side of the userspace MAD support, which allows 23 userspace processes to send and receive MADs. You will also 24 need libibumad from rdma-core 25 <https://github.com/linux-rdma/rdma-core>. 26 27config INFINIBAND_USER_ACCESS 28 tristate "InfiniBand userspace access (verbs and CM)" 29 depends on MMU 30 ---help--- 31 Userspace InfiniBand access support. This enables the 32 kernel side of userspace verbs and the userspace 33 communication manager (CM). This allows userspace processes 34 to set up connections and directly access InfiniBand 35 hardware for fast-path operations. You will also need 36 libibverbs, libibcm and a hardware driver library from 37 rdma-core <https://github.com/linux-rdma/rdma-core>. 38 39config INFINIBAND_EXP_LEGACY_VERBS_NEW_UAPI 40 bool "Allow experimental legacy verbs in new ioctl uAPI (EXPERIMENTAL)" 41 depends on INFINIBAND_USER_ACCESS 42 ---help--- 43 IOCTL based uAPI support for Infiniband is enabled by default for 44 new verbs only. This allows userspace to invoke the IOCTL based uAPI 45 for current legacy verbs too. 46 47config INFINIBAND_USER_MEM 48 bool 49 depends on INFINIBAND_USER_ACCESS != n 50 depends on MMU 51 default y 52 53config INFINIBAND_ON_DEMAND_PAGING 54 bool "InfiniBand on-demand paging support" 55 depends on INFINIBAND_USER_MEM 56 select MMU_NOTIFIER 57 default y 58 ---help--- 59 On demand paging support for the InfiniBand subsystem. 60 Together with driver support this allows registration of 61 memory regions without pinning their pages, fetching the 62 pages on demand instead. 63 64config INFINIBAND_ADDR_TRANS 65 bool "RDMA/CM" 66 depends on INFINIBAND 67 default y 68 ---help--- 69 Support for RDMA communication manager (CM). 70 This allows for a generic connection abstraction over RDMA. 71 72config INFINIBAND_ADDR_TRANS_CONFIGFS 73 bool 74 depends on INFINIBAND_ADDR_TRANS && CONFIGFS_FS && !(INFINIBAND=y && CONFIGFS_FS=m) 75 default y 76 ---help--- 77 ConfigFS support for RDMA communication manager (CM). 78 This allows the user to config the default GID type that the CM 79 uses for each device, when initiaing new connections. 80 81if INFINIBAND_USER_ACCESS || !INFINIBAND_USER_ACCESS 82source "drivers/infiniband/hw/mthca/Kconfig" 83source "drivers/infiniband/hw/qib/Kconfig" 84source "drivers/infiniband/hw/cxgb3/Kconfig" 85source "drivers/infiniband/hw/cxgb4/Kconfig" 86source "drivers/infiniband/hw/efa/Kconfig" 87source "drivers/infiniband/hw/i40iw/Kconfig" 88source "drivers/infiniband/hw/mlx4/Kconfig" 89source "drivers/infiniband/hw/mlx5/Kconfig" 90source "drivers/infiniband/hw/ocrdma/Kconfig" 91source "drivers/infiniband/hw/vmw_pvrdma/Kconfig" 92source "drivers/infiniband/hw/usnic/Kconfig" 93source "drivers/infiniband/hw/hns/Kconfig" 94source "drivers/infiniband/hw/bnxt_re/Kconfig" 95source "drivers/infiniband/hw/hfi1/Kconfig" 96source "drivers/infiniband/hw/qedr/Kconfig" 97source "drivers/infiniband/sw/rdmavt/Kconfig" 98source "drivers/infiniband/sw/rxe/Kconfig" 99source "drivers/infiniband/sw/siw/Kconfig" 100endif 101 102source "drivers/infiniband/ulp/ipoib/Kconfig" 103 104source "drivers/infiniband/ulp/srp/Kconfig" 105source "drivers/infiniband/ulp/srpt/Kconfig" 106 107source "drivers/infiniband/ulp/iser/Kconfig" 108source "drivers/infiniband/ulp/isert/Kconfig" 109 110source "drivers/infiniband/ulp/opa_vnic/Kconfig" 111 112endif # INFINIBAND 113