blob: a5827d11e9346a890c55804052c9bfa21076dde1 [file] [log] [blame]
Thomas Gleixnerec8f24b2019-05-19 13:07:45 +01001# SPDX-License-Identifier: GPL-2.0-only
Jan Engelhardt06cc8502007-05-23 14:21:22 -07002menuconfig INFINIBAND
Linus Torvalds1da177e2005-04-16 15:20:36 -07003 tristate "InfiniBand support"
Geert Uytterhoevendb0acbc2017-11-19 19:58:30 +01004 depends on HAS_IOMEM && HAS_DMA
Roland Dreierb2cbae22011-05-20 11:46:11 -07005 depends on NET
Matan Barak2f85d242014-01-16 17:16:47 +02006 depends on INET
7 depends on m || IPV6 != m
Paul E. McKenneyadf90eb2017-11-27 09:04:22 -08008 depends on !ALPHA
Christoph Hellwig14d3a3b2015-12-11 11:53:03 -08009 select IRQ_POLL
Yamin Friedmanf8fc8cd2019-07-08 13:59:04 +030010 select DIMLIB
Masahiro Yamadaa7f7f622020-06-14 01:50:22 +090011 help
Linus Torvalds1da177e2005-04-16 15:20:36 -070012 Core support for InfiniBand (IB). Make sure to also select
13 any protocols you wish to use as well as drivers for your
14 InfiniBand hardware.
15
Jan Engelhardt06cc8502007-05-23 14:21:22 -070016if INFINIBAND
17
James Lentini17781cd2005-09-07 12:43:08 -070018config INFINIBAND_USER_MAD
19 tristate "InfiniBand userspace MAD support"
Roland Dreier2d927d62005-07-07 17:57:14 -070020 depends on INFINIBAND
Masahiro Yamadaa7f7f622020-06-14 01:50:22 +090021 help
James Lentini17781cd2005-09-07 12:43:08 -070022 Userspace InfiniBand Management Datagram (MAD) support. This
23 is the kernel side of the userspace MAD support, which allows
Roland Dreier3cd96562006-09-22 15:22:46 -070024 userspace processes to send and receive MADs. You will also
Jason Gunthorpe46adb172018-02-02 14:35:29 -070025 need libibumad from rdma-core
26 <https://github.com/linux-rdma/rdma-core>.
James Lentini17781cd2005-09-07 12:43:08 -070027
28config INFINIBAND_USER_ACCESS
29 tristate "InfiniBand userspace access (verbs and CM)"
Jason Gunthorpe914e5d72018-09-28 15:20:23 -060030 depends on MMU
Masahiro Yamadaa7f7f622020-06-14 01:50:22 +090031 help
James Lentini17781cd2005-09-07 12:43:08 -070032 Userspace InfiniBand access support. This enables the
33 kernel side of userspace verbs and the userspace
34 communication manager (CM). This allows userspace processes
35 to set up connections and directly access InfiniBand
36 hardware for fast-path operations. You will also need
37 libibverbs, libibcm and a hardware driver library from
Jason Gunthorpe46adb172018-02-02 14:35:29 -070038 rdma-core <https://github.com/linux-rdma/rdma-core>.
Roland Dreier2d927d62005-07-07 17:57:14 -070039
Roland Dreierf7c6a7b2007-03-04 16:15:11 -080040config INFINIBAND_USER_MEM
41 bool
42 depends on INFINIBAND_USER_ACCESS != n
Arnd Bergmann9cc12ad2017-10-06 09:13:46 +020043 depends on MMU
Jianxin Xiong368c0152020-12-15 13:27:13 -080044 select DMA_SHARED_BUFFER
Roland Dreierf7c6a7b2007-03-04 16:15:11 -080045 default y
46
Sagi Grimberg860f10a2014-12-11 17:04:16 +020047config INFINIBAND_ON_DEMAND_PAGING
48 bool "InfiniBand on-demand paging support"
49 depends on INFINIBAND_USER_MEM
Haggai Eran882214e2014-12-11 17:04:18 +020050 select MMU_NOTIFIER
Jason Gunthorpe7cc2e182019-08-19 14:16:59 +030051 select INTERVAL_TREE
Yishai Hadas36f30e42020-09-30 19:38:25 +030052 select HMM_MIRROR
Sagi Grimberg860f10a2014-12-11 17:04:16 +020053 default y
Masahiro Yamadaa7f7f622020-06-14 01:50:22 +090054 help
Sagi Grimberg860f10a2014-12-11 17:04:16 +020055 On demand paging support for the InfiniBand subsystem.
56 Together with driver support this allows registration of
57 memory regions without pinning their pages, fetching the
58 pages on demand instead.
59
Sean Hefty7025fcd2006-06-17 20:37:28 -070060config INFINIBAND_ADDR_TRANS
Greg Thelenf7cb7b82018-04-26 11:19:35 -070061 bool "RDMA/CM"
Matan Barak2f85d242014-01-16 17:16:47 +020062 depends on INFINIBAND
Sean Hefty7025fcd2006-06-17 20:37:28 -070063 default y
Masahiro Yamadaa7f7f622020-06-14 01:50:22 +090064 help
Greg Thelenf7cb7b82018-04-26 11:19:35 -070065 Support for RDMA communication manager (CM).
66 This allows for a generic connection abstraction over RDMA.
Sean Hefty7025fcd2006-06-17 20:37:28 -070067
Matan Barak045959d2015-12-23 14:56:55 +020068config INFINIBAND_ADDR_TRANS_CONFIGFS
69 bool
70 depends on INFINIBAND_ADDR_TRANS && CONFIGFS_FS && !(INFINIBAND=y && CONFIGFS_FS=m)
71 default y
Masahiro Yamadaa7f7f622020-06-14 01:50:22 +090072 help
Matan Barak045959d2015-12-23 14:56:55 +020073 ConfigFS support for RDMA communication manager (CM).
74 This allows the user to config the default GID type that the CM
75 uses for each device, when initiaing new connections.
76
Christoph Hellwigb1e678b2020-11-06 19:19:32 +010077config INFINIBAND_VIRT_DMA
78 def_bool !HIGHMEM
79
Shamir Rabinovitch6fa8f1a2019-01-09 11:15:15 +020080if INFINIBAND_USER_ACCESS || !INFINIBAND_USER_ACCESS
Randy Dunlap323a74f2022-12-02 13:19:40 -080081if !UML
Cheng Xuca7fd6c2022-07-27 09:49:27 +080082source "drivers/infiniband/hw/bnxt_re/Kconfig"
Steve Wisecfdda9d2010-04-21 15:30:06 -070083source "drivers/infiniband/hw/cxgb4/Kconfig"
Gal Pressmanf23afd72019-05-05 20:59:31 +030084source "drivers/infiniband/hw/efa/Kconfig"
Cheng Xuca7fd6c2022-07-27 09:49:27 +080085source "drivers/infiniband/hw/erdma/Kconfig"
86source "drivers/infiniband/hw/hfi1/Kconfig"
87source "drivers/infiniband/hw/hns/Kconfig"
Shiraz Saleemfa0cf562021-06-02 15:51:37 -050088source "drivers/infiniband/hw/irdma/Kconfig"
Long Li0266a172022-11-03 12:16:30 -070089source "drivers/infiniband/hw/mana/Kconfig"
Roland Dreier225c7b12007-05-08 18:00:38 -070090source "drivers/infiniband/hw/mlx4/Kconfig"
Eli Cohene126ba92013-07-07 17:25:49 +030091source "drivers/infiniband/hw/mlx5/Kconfig"
Cheng Xuca7fd6c2022-07-27 09:49:27 +080092source "drivers/infiniband/hw/mthca/Kconfig"
Parav Panditfe2caef2012-03-21 04:09:06 +053093source "drivers/infiniband/hw/ocrdma/Kconfig"
Shamir Rabinovitch6fa8f1a2019-01-09 11:15:15 +020094source "drivers/infiniband/hw/qedr/Kconfig"
Cheng Xuca7fd6c2022-07-27 09:49:27 +080095source "drivers/infiniband/hw/qib/Kconfig"
96source "drivers/infiniband/hw/usnic/Kconfig"
97source "drivers/infiniband/hw/vmw_pvrdma/Kconfig"
Shamir Rabinovitch6fa8f1a2019-01-09 11:15:15 +020098source "drivers/infiniband/sw/rdmavt/Kconfig"
Randy Dunlap323a74f2022-12-02 13:19:40 -080099endif # !UML
Shamir Rabinovitch6fa8f1a2019-01-09 11:15:15 +0200100source "drivers/infiniband/sw/rxe/Kconfig"
Bernard Metzlerc0cf5bd2019-06-20 18:21:33 +0200101source "drivers/infiniband/sw/siw/Kconfig"
Shamir Rabinovitch6fa8f1a2019-01-09 11:15:15 +0200102endif
Roland Dreier225c7b12007-05-08 18:00:38 -0700103
Linus Torvalds1da177e2005-04-16 15:20:36 -0700104source "drivers/infiniband/ulp/ipoib/Kconfig"
105
Roland Dreieraef9ec32005-11-02 14:07:13 -0800106source "drivers/infiniband/ulp/srp/Kconfig"
Bart Van Asschea42d9852011-10-14 01:30:46 +0000107source "drivers/infiniband/ulp/srpt/Kconfig"
Roland Dreieraef9ec32005-11-02 14:07:13 -0800108
Or Gerlitz3f1244a2006-05-11 10:03:30 +0300109source "drivers/infiniband/ulp/iser/Kconfig"
Nicholas Bellingerb8d26b32013-03-07 00:56:19 -0800110source "drivers/infiniband/ulp/isert/Kconfig"
Jack Wangc013fbc2020-05-11 15:51:19 +0200111source "drivers/infiniband/ulp/rtrs/Kconfig"
Or Gerlitz3f1244a2006-05-11 10:03:30 +0300112
Vishwanathapura, Niranjana7d6f7282017-04-12 20:29:22 -0700113source "drivers/infiniband/ulp/opa_vnic/Kconfig"
Selvin Xavier592e8b32017-02-10 03:19:53 -0800114
Jan Engelhardt06cc8502007-05-23 14:21:22 -0700115endif # INFINIBAND