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