18c2ecf20Sopenharmony_ci# SPDX-License-Identifier: GPL-2.0-only
28c2ecf20Sopenharmony_ci
38c2ecf20Sopenharmony_ciconfig NVME_TARGET
48c2ecf20Sopenharmony_ci	tristate "NVMe Target support"
58c2ecf20Sopenharmony_ci	depends on BLOCK
68c2ecf20Sopenharmony_ci	depends on CONFIGFS_FS
78c2ecf20Sopenharmony_ci	select BLK_DEV_INTEGRITY_T10 if BLK_DEV_INTEGRITY
88c2ecf20Sopenharmony_ci	select SGL_ALLOC
98c2ecf20Sopenharmony_ci	help
108c2ecf20Sopenharmony_ci	  This enabled target side support for the NVMe protocol, that is
118c2ecf20Sopenharmony_ci	  it allows the Linux kernel to implement NVMe subsystems and
128c2ecf20Sopenharmony_ci	  controllers and export Linux block devices as NVMe namespaces.
138c2ecf20Sopenharmony_ci	  You need to select at least one of the transports below to make this
148c2ecf20Sopenharmony_ci	  functionality useful.
158c2ecf20Sopenharmony_ci
168c2ecf20Sopenharmony_ci	  To configure the NVMe target you probably want to use the nvmetcli
178c2ecf20Sopenharmony_ci	  tool from http://git.infradead.org/users/hch/nvmetcli.git.
188c2ecf20Sopenharmony_ci
198c2ecf20Sopenharmony_ciconfig NVME_TARGET_PASSTHRU
208c2ecf20Sopenharmony_ci	bool "NVMe Target Passthrough support"
218c2ecf20Sopenharmony_ci	depends on NVME_TARGET
228c2ecf20Sopenharmony_ci	depends on NVME_CORE=y || NVME_CORE=NVME_TARGET
238c2ecf20Sopenharmony_ci	help
248c2ecf20Sopenharmony_ci	  This enables target side NVMe passthru controller support for the
258c2ecf20Sopenharmony_ci	  NVMe Over Fabrics protocol. It allows for hosts to manage and
268c2ecf20Sopenharmony_ci	  directly access an actual NVMe controller residing on the target
278c2ecf20Sopenharmony_ci	  side, incuding executing Vendor Unique Commands.
288c2ecf20Sopenharmony_ci
298c2ecf20Sopenharmony_ci	  If unsure, say N.
308c2ecf20Sopenharmony_ci
318c2ecf20Sopenharmony_ciconfig NVME_TARGET_LOOP
328c2ecf20Sopenharmony_ci	tristate "NVMe loopback device support"
338c2ecf20Sopenharmony_ci	depends on NVME_TARGET
348c2ecf20Sopenharmony_ci	select NVME_CORE
358c2ecf20Sopenharmony_ci	select NVME_FABRICS
368c2ecf20Sopenharmony_ci	select SG_POOL
378c2ecf20Sopenharmony_ci	help
388c2ecf20Sopenharmony_ci	  This enables the NVMe loopback device support, which can be useful
398c2ecf20Sopenharmony_ci	  to test NVMe host and target side features.
408c2ecf20Sopenharmony_ci
418c2ecf20Sopenharmony_ci	  If unsure, say N.
428c2ecf20Sopenharmony_ci
438c2ecf20Sopenharmony_ciconfig NVME_TARGET_RDMA
448c2ecf20Sopenharmony_ci	tristate "NVMe over Fabrics RDMA target support"
458c2ecf20Sopenharmony_ci	depends on INFINIBAND && INFINIBAND_ADDR_TRANS
468c2ecf20Sopenharmony_ci	depends on NVME_TARGET
478c2ecf20Sopenharmony_ci	select SGL_ALLOC
488c2ecf20Sopenharmony_ci	help
498c2ecf20Sopenharmony_ci	  This enables the NVMe RDMA target support, which allows exporting NVMe
508c2ecf20Sopenharmony_ci	  devices over RDMA.
518c2ecf20Sopenharmony_ci
528c2ecf20Sopenharmony_ci	  If unsure, say N.
538c2ecf20Sopenharmony_ci
548c2ecf20Sopenharmony_ciconfig NVME_TARGET_FC
558c2ecf20Sopenharmony_ci	tristate "NVMe over Fabrics FC target driver"
568c2ecf20Sopenharmony_ci	depends on NVME_TARGET
578c2ecf20Sopenharmony_ci	depends on HAS_DMA
588c2ecf20Sopenharmony_ci	select SGL_ALLOC
598c2ecf20Sopenharmony_ci	help
608c2ecf20Sopenharmony_ci	  This enables the NVMe FC target support, which allows exporting NVMe
618c2ecf20Sopenharmony_ci	  devices over FC.
628c2ecf20Sopenharmony_ci
638c2ecf20Sopenharmony_ci	  If unsure, say N.
648c2ecf20Sopenharmony_ci
658c2ecf20Sopenharmony_ciconfig NVME_TARGET_FCLOOP
668c2ecf20Sopenharmony_ci	tristate "NVMe over Fabrics FC Transport Loopback Test driver"
678c2ecf20Sopenharmony_ci	depends on NVME_TARGET
688c2ecf20Sopenharmony_ci	select NVME_CORE
698c2ecf20Sopenharmony_ci	select NVME_FABRICS
708c2ecf20Sopenharmony_ci	select SG_POOL
718c2ecf20Sopenharmony_ci	depends on NVME_FC
728c2ecf20Sopenharmony_ci	depends on NVME_TARGET_FC
738c2ecf20Sopenharmony_ci	help
748c2ecf20Sopenharmony_ci	  This enables the NVMe FC loopback test support, which can be useful
758c2ecf20Sopenharmony_ci	  to test NVMe-FC transport interfaces.
768c2ecf20Sopenharmony_ci
778c2ecf20Sopenharmony_ci	  If unsure, say N.
788c2ecf20Sopenharmony_ci
798c2ecf20Sopenharmony_ciconfig NVME_TARGET_TCP
808c2ecf20Sopenharmony_ci	tristate "NVMe over Fabrics TCP target support"
818c2ecf20Sopenharmony_ci	depends on INET
828c2ecf20Sopenharmony_ci	depends on NVME_TARGET
838c2ecf20Sopenharmony_ci	help
848c2ecf20Sopenharmony_ci	  This enables the NVMe TCP target support, which allows exporting NVMe
858c2ecf20Sopenharmony_ci	  devices over TCP.
868c2ecf20Sopenharmony_ci
878c2ecf20Sopenharmony_ci	  If unsure, say N.
88