xref: /linux/drivers/nvme/host/Kconfig (revision 2c97b5ae83dca56718774e7b4bf9640f05d11867)
1# SPDX-License-Identifier: GPL-2.0-only
2config NVME_CORE
3	tristate
4
5config BLK_DEV_NVME
6	tristate "NVM Express block device"
7	depends on PCI && BLOCK
8	select NVME_CORE
9	---help---
10	  The NVM Express driver is for solid state drives directly
11	  connected to the PCI or PCI Express bus.  If you know you
12	  don't have one of these, it is safe to answer N.
13
14	  To compile this driver as a module, choose M here: the
15	  module will be called nvme.
16
17config NVME_MULTIPATH
18	bool "NVMe multipath support"
19	depends on NVME_CORE
20	---help---
21	   This option enables support for multipath access to NVMe
22	   subsystems.  If this option is enabled only a single
23	   /dev/nvmeXnY device will show up for each NVMe namespaces,
24	   even if it is accessible through multiple controllers.
25
26config NVME_HWMON
27	bool "NVMe hardware monitoring"
28	depends on (NVME_CORE=y && HWMON=y) || (NVME_CORE=m && HWMON)
29	help
30	  This provides support for NVMe hardware monitoring. If enabled,
31	  a hardware monitoring device will be created for each NVMe drive
32	  in the system.
33
34	  If unsure, say N.
35
36config NVME_FABRICS
37	tristate
38
39config NVME_RDMA
40	tristate "NVM Express over Fabrics RDMA host driver"
41	depends on INFINIBAND && INFINIBAND_ADDR_TRANS && BLOCK
42	select NVME_CORE
43	select NVME_FABRICS
44	select SG_POOL
45	help
46	  This provides support for the NVMe over Fabrics protocol using
47	  the RDMA (Infiniband, RoCE, iWarp) transport.  This allows you
48	  to use remote block devices exported using the NVMe protocol set.
49
50	  To configure a NVMe over Fabrics controller use the nvme-cli tool
51	  from https://github.com/linux-nvme/nvme-cli.
52
53	  If unsure, say N.
54
55config NVME_FC
56	tristate "NVM Express over Fabrics FC host driver"
57	depends on BLOCK
58	depends on HAS_DMA
59	select NVME_CORE
60	select NVME_FABRICS
61	select SG_POOL
62	help
63	  This provides support for the NVMe over Fabrics protocol using
64	  the FC transport.  This allows you to use remote block devices
65	  exported using the NVMe protocol set.
66
67	  To configure a NVMe over Fabrics controller use the nvme-cli tool
68	  from https://github.com/linux-nvme/nvme-cli.
69
70	  If unsure, say N.
71
72config NVME_TCP
73	tristate "NVM Express over Fabrics TCP host driver"
74	depends on INET
75	depends on BLK_DEV_NVME
76	select NVME_FABRICS
77	select CRYPTO_CRC32C
78	help
79	  This provides support for the NVMe over Fabrics protocol using
80	  the TCP transport.  This allows you to use remote block devices
81	  exported using the NVMe protocol set.
82
83	  To configure a NVMe over Fabrics controller use the nvme-cli tool
84	  from https://github.com/linux-nvme/nvme-cli.
85
86	  If unsure, say N.
87