xref: /linux/drivers/infiniband/Kconfig (revision a3a400da206bd0cf426571633da51547d44f4f42)
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