18c2ecf20Sopenharmony_ci# SPDX-License-Identifier: GPL-2.0-only
28c2ecf20Sopenharmony_ciconfig NVME_CORE
38c2ecf20Sopenharmony_ci	tristate
48c2ecf20Sopenharmony_ci	select BLK_DEV_INTEGRITY_T10 if BLK_DEV_INTEGRITY
58c2ecf20Sopenharmony_ci
68c2ecf20Sopenharmony_ciconfig BLK_DEV_NVME
78c2ecf20Sopenharmony_ci	tristate "NVM Express block device"
88c2ecf20Sopenharmony_ci	depends on PCI && BLOCK
98c2ecf20Sopenharmony_ci	select NVME_CORE
108c2ecf20Sopenharmony_ci	help
118c2ecf20Sopenharmony_ci	  The NVM Express driver is for solid state drives directly
128c2ecf20Sopenharmony_ci	  connected to the PCI or PCI Express bus.  If you know you
138c2ecf20Sopenharmony_ci	  don't have one of these, it is safe to answer N.
148c2ecf20Sopenharmony_ci
158c2ecf20Sopenharmony_ci	  To compile this driver as a module, choose M here: the
168c2ecf20Sopenharmony_ci	  module will be called nvme.
178c2ecf20Sopenharmony_ci
188c2ecf20Sopenharmony_ciconfig NVME_MULTIPATH
198c2ecf20Sopenharmony_ci	bool "NVMe multipath support"
208c2ecf20Sopenharmony_ci	depends on NVME_CORE
218c2ecf20Sopenharmony_ci	help
228c2ecf20Sopenharmony_ci	   This option enables support for multipath access to NVMe
238c2ecf20Sopenharmony_ci	   subsystems.  If this option is enabled only a single
248c2ecf20Sopenharmony_ci	   /dev/nvmeXnY device will show up for each NVMe namespaces,
258c2ecf20Sopenharmony_ci	   even if it is accessible through multiple controllers.
268c2ecf20Sopenharmony_ci
278c2ecf20Sopenharmony_ciconfig NVME_HWMON
288c2ecf20Sopenharmony_ci	bool "NVMe hardware monitoring"
298c2ecf20Sopenharmony_ci	depends on (NVME_CORE=y && HWMON=y) || (NVME_CORE=m && HWMON)
308c2ecf20Sopenharmony_ci	help
318c2ecf20Sopenharmony_ci	  This provides support for NVMe hardware monitoring. If enabled,
328c2ecf20Sopenharmony_ci	  a hardware monitoring device will be created for each NVMe drive
338c2ecf20Sopenharmony_ci	  in the system.
348c2ecf20Sopenharmony_ci
358c2ecf20Sopenharmony_ciconfig NVME_FABRICS
368c2ecf20Sopenharmony_ci	tristate
378c2ecf20Sopenharmony_ci
388c2ecf20Sopenharmony_ciconfig NVME_RDMA
398c2ecf20Sopenharmony_ci	tristate "NVM Express over Fabrics RDMA host driver"
408c2ecf20Sopenharmony_ci	depends on INFINIBAND && INFINIBAND_ADDR_TRANS && BLOCK
418c2ecf20Sopenharmony_ci	select NVME_CORE
428c2ecf20Sopenharmony_ci	select NVME_FABRICS
438c2ecf20Sopenharmony_ci	select SG_POOL
448c2ecf20Sopenharmony_ci	help
458c2ecf20Sopenharmony_ci	  This provides support for the NVMe over Fabrics protocol using
468c2ecf20Sopenharmony_ci	  the RDMA (Infiniband, RoCE, iWarp) transport.  This allows you
478c2ecf20Sopenharmony_ci	  to use remote block devices exported using the NVMe protocol set.
488c2ecf20Sopenharmony_ci
498c2ecf20Sopenharmony_ci	  To configure a NVMe over Fabrics controller use the nvme-cli tool
508c2ecf20Sopenharmony_ci	  from https://github.com/linux-nvme/nvme-cli.
518c2ecf20Sopenharmony_ci
528c2ecf20Sopenharmony_ci	  If unsure, say N.
538c2ecf20Sopenharmony_ci
548c2ecf20Sopenharmony_ciconfig NVME_FC
558c2ecf20Sopenharmony_ci	tristate "NVM Express over Fabrics FC host driver"
568c2ecf20Sopenharmony_ci	depends on BLOCK
578c2ecf20Sopenharmony_ci	depends on HAS_DMA
588c2ecf20Sopenharmony_ci	select NVME_CORE
598c2ecf20Sopenharmony_ci	select NVME_FABRICS
608c2ecf20Sopenharmony_ci	select SG_POOL
618c2ecf20Sopenharmony_ci	help
628c2ecf20Sopenharmony_ci	  This provides support for the NVMe over Fabrics protocol using
638c2ecf20Sopenharmony_ci	  the FC transport.  This allows you to use remote block devices
648c2ecf20Sopenharmony_ci	  exported using the NVMe protocol set.
658c2ecf20Sopenharmony_ci
668c2ecf20Sopenharmony_ci	  To configure a NVMe over Fabrics controller use the nvme-cli tool
678c2ecf20Sopenharmony_ci	  from https://github.com/linux-nvme/nvme-cli.
688c2ecf20Sopenharmony_ci
698c2ecf20Sopenharmony_ci	  If unsure, say N.
708c2ecf20Sopenharmony_ci
718c2ecf20Sopenharmony_ciconfig NVME_TCP
728c2ecf20Sopenharmony_ci	tristate "NVM Express over Fabrics TCP host driver"
738c2ecf20Sopenharmony_ci	depends on INET
748c2ecf20Sopenharmony_ci	depends on BLOCK
758c2ecf20Sopenharmony_ci	select NVME_CORE
768c2ecf20Sopenharmony_ci	select NVME_FABRICS
778c2ecf20Sopenharmony_ci	select CRYPTO
788c2ecf20Sopenharmony_ci	select CRYPTO_CRC32C
798c2ecf20Sopenharmony_ci	help
808c2ecf20Sopenharmony_ci	  This provides support for the NVMe over Fabrics protocol using
818c2ecf20Sopenharmony_ci	  the TCP transport.  This allows you to use remote block devices
828c2ecf20Sopenharmony_ci	  exported using the NVMe protocol set.
838c2ecf20Sopenharmony_ci
848c2ecf20Sopenharmony_ci	  To configure a NVMe over Fabrics controller use the nvme-cli tool
858c2ecf20Sopenharmony_ci	  from https://github.com/linux-nvme/nvme-cli.
868c2ecf20Sopenharmony_ci
878c2ecf20Sopenharmony_ci	  If unsure, say N.
88