18c2ecf20Sopenharmony_ci# SPDX-License-Identifier: GPL-2.0-only
28c2ecf20Sopenharmony_cimenuconfig INFINIBAND
38c2ecf20Sopenharmony_ci	tristate "InfiniBand support"
48c2ecf20Sopenharmony_ci	depends on HAS_IOMEM && HAS_DMA
58c2ecf20Sopenharmony_ci	depends on NET
68c2ecf20Sopenharmony_ci	depends on INET
78c2ecf20Sopenharmony_ci	depends on m || IPV6 != m
88c2ecf20Sopenharmony_ci	depends on !ALPHA
98c2ecf20Sopenharmony_ci	select IRQ_POLL
108c2ecf20Sopenharmony_ci	select DIMLIB
118c2ecf20Sopenharmony_ci	help
128c2ecf20Sopenharmony_ci	  Core support for InfiniBand (IB).  Make sure to also select
138c2ecf20Sopenharmony_ci	  any protocols you wish to use as well as drivers for your
148c2ecf20Sopenharmony_ci	  InfiniBand hardware.
158c2ecf20Sopenharmony_ci
168c2ecf20Sopenharmony_ciif INFINIBAND
178c2ecf20Sopenharmony_ci
188c2ecf20Sopenharmony_ciconfig INFINIBAND_USER_MAD
198c2ecf20Sopenharmony_ci	tristate "InfiniBand userspace MAD support"
208c2ecf20Sopenharmony_ci	depends on INFINIBAND
218c2ecf20Sopenharmony_ci	help
228c2ecf20Sopenharmony_ci	  Userspace InfiniBand Management Datagram (MAD) support.  This
238c2ecf20Sopenharmony_ci	  is the kernel side of the userspace MAD support, which allows
248c2ecf20Sopenharmony_ci	  userspace processes to send and receive MADs. You will also
258c2ecf20Sopenharmony_ci	  need libibumad from rdma-core
268c2ecf20Sopenharmony_ci	  <https://github.com/linux-rdma/rdma-core>.
278c2ecf20Sopenharmony_ci
288c2ecf20Sopenharmony_ciconfig INFINIBAND_USER_ACCESS
298c2ecf20Sopenharmony_ci	tristate "InfiniBand userspace access (verbs and CM)"
308c2ecf20Sopenharmony_ci	depends on MMU
318c2ecf20Sopenharmony_ci	help
328c2ecf20Sopenharmony_ci	  Userspace InfiniBand access support.  This enables the
338c2ecf20Sopenharmony_ci	  kernel side of userspace verbs and the userspace
348c2ecf20Sopenharmony_ci	  communication manager (CM).  This allows userspace processes
358c2ecf20Sopenharmony_ci	  to set up connections and directly access InfiniBand
368c2ecf20Sopenharmony_ci	  hardware for fast-path operations.  You will also need
378c2ecf20Sopenharmony_ci	  libibverbs, libibcm and a hardware driver library from
388c2ecf20Sopenharmony_ci	  rdma-core <https://github.com/linux-rdma/rdma-core>.
398c2ecf20Sopenharmony_ci
408c2ecf20Sopenharmony_ciconfig INFINIBAND_USER_MEM
418c2ecf20Sopenharmony_ci	bool
428c2ecf20Sopenharmony_ci	depends on INFINIBAND_USER_ACCESS != n
438c2ecf20Sopenharmony_ci	depends on MMU
448c2ecf20Sopenharmony_ci	default y
458c2ecf20Sopenharmony_ci
468c2ecf20Sopenharmony_ciconfig INFINIBAND_ON_DEMAND_PAGING
478c2ecf20Sopenharmony_ci	bool "InfiniBand on-demand paging support"
488c2ecf20Sopenharmony_ci	depends on INFINIBAND_USER_MEM
498c2ecf20Sopenharmony_ci	select MMU_NOTIFIER
508c2ecf20Sopenharmony_ci	select INTERVAL_TREE
518c2ecf20Sopenharmony_ci	select HMM_MIRROR
528c2ecf20Sopenharmony_ci	default y
538c2ecf20Sopenharmony_ci	help
548c2ecf20Sopenharmony_ci	  On demand paging support for the InfiniBand subsystem.
558c2ecf20Sopenharmony_ci	  Together with driver support this allows registration of
568c2ecf20Sopenharmony_ci	  memory regions without pinning their pages, fetching the
578c2ecf20Sopenharmony_ci	  pages on demand instead.
588c2ecf20Sopenharmony_ci
598c2ecf20Sopenharmony_ciconfig INFINIBAND_ADDR_TRANS
608c2ecf20Sopenharmony_ci	bool "RDMA/CM"
618c2ecf20Sopenharmony_ci	depends on INFINIBAND
628c2ecf20Sopenharmony_ci	default y
638c2ecf20Sopenharmony_ci	help
648c2ecf20Sopenharmony_ci	  Support for RDMA communication manager (CM).
658c2ecf20Sopenharmony_ci	  This allows for a generic connection abstraction over RDMA.
668c2ecf20Sopenharmony_ci
678c2ecf20Sopenharmony_ciconfig INFINIBAND_ADDR_TRANS_CONFIGFS
688c2ecf20Sopenharmony_ci	bool
698c2ecf20Sopenharmony_ci	depends on INFINIBAND_ADDR_TRANS && CONFIGFS_FS && !(INFINIBAND=y && CONFIGFS_FS=m)
708c2ecf20Sopenharmony_ci	default y
718c2ecf20Sopenharmony_ci	help
728c2ecf20Sopenharmony_ci	  ConfigFS support for RDMA communication manager (CM).
738c2ecf20Sopenharmony_ci	  This allows the user to config the default GID type that the CM
748c2ecf20Sopenharmony_ci	  uses for each device, when initiaing new connections.
758c2ecf20Sopenharmony_ci
768c2ecf20Sopenharmony_ciconfig INFINIBAND_VIRT_DMA
778c2ecf20Sopenharmony_ci	def_bool !HIGHMEM
788c2ecf20Sopenharmony_ci
798c2ecf20Sopenharmony_ciif INFINIBAND_USER_ACCESS || !INFINIBAND_USER_ACCESS
808c2ecf20Sopenharmony_cisource "drivers/infiniband/hw/mthca/Kconfig"
818c2ecf20Sopenharmony_cisource "drivers/infiniband/hw/qib/Kconfig"
828c2ecf20Sopenharmony_cisource "drivers/infiniband/hw/cxgb4/Kconfig"
838c2ecf20Sopenharmony_cisource "drivers/infiniband/hw/efa/Kconfig"
848c2ecf20Sopenharmony_cisource "drivers/infiniband/hw/i40iw/Kconfig"
858c2ecf20Sopenharmony_cisource "drivers/infiniband/hw/mlx4/Kconfig"
868c2ecf20Sopenharmony_cisource "drivers/infiniband/hw/mlx5/Kconfig"
878c2ecf20Sopenharmony_cisource "drivers/infiniband/hw/ocrdma/Kconfig"
888c2ecf20Sopenharmony_cisource "drivers/infiniband/hw/vmw_pvrdma/Kconfig"
898c2ecf20Sopenharmony_cisource "drivers/infiniband/hw/usnic/Kconfig"
908c2ecf20Sopenharmony_cisource "drivers/infiniband/hw/hns/Kconfig"
918c2ecf20Sopenharmony_cisource "drivers/infiniband/hw/bnxt_re/Kconfig"
928c2ecf20Sopenharmony_cisource "drivers/infiniband/hw/hfi1/Kconfig"
938c2ecf20Sopenharmony_cisource "drivers/infiniband/hw/qedr/Kconfig"
948c2ecf20Sopenharmony_cisource "drivers/infiniband/sw/rdmavt/Kconfig"
958c2ecf20Sopenharmony_cisource "drivers/infiniband/sw/rxe/Kconfig"
968c2ecf20Sopenharmony_cisource "drivers/infiniband/sw/siw/Kconfig"
978c2ecf20Sopenharmony_ciendif
988c2ecf20Sopenharmony_ci
998c2ecf20Sopenharmony_cisource "drivers/infiniband/ulp/ipoib/Kconfig"
1008c2ecf20Sopenharmony_ci
1018c2ecf20Sopenharmony_cisource "drivers/infiniband/ulp/srp/Kconfig"
1028c2ecf20Sopenharmony_cisource "drivers/infiniband/ulp/srpt/Kconfig"
1038c2ecf20Sopenharmony_ci
1048c2ecf20Sopenharmony_cisource "drivers/infiniband/ulp/iser/Kconfig"
1058c2ecf20Sopenharmony_cisource "drivers/infiniband/ulp/isert/Kconfig"
1068c2ecf20Sopenharmony_cisource "drivers/infiniband/ulp/rtrs/Kconfig"
1078c2ecf20Sopenharmony_ci
1088c2ecf20Sopenharmony_cisource "drivers/infiniband/ulp/opa_vnic/Kconfig"
1098c2ecf20Sopenharmony_ci
1108c2ecf20Sopenharmony_ciendif # INFINIBAND
111