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