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