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