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