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