xref: /linux/drivers/nvme/host/Kconfig (revision 71e2f4dd5a65bd8dbca0b77661e75eea471168f8)
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_FABRICS
27	tristate
28
29config NVME_RDMA
30	tristate "NVM Express over Fabrics RDMA host driver"
31	depends on INFINIBAND && INFINIBAND_ADDR_TRANS && BLOCK
32	select NVME_CORE
33	select NVME_FABRICS
34	select SG_POOL
35	help
36	  This provides support for the NVMe over Fabrics protocol using
37	  the RDMA (Infiniband, RoCE, iWarp) transport.  This allows you
38	  to use remote block devices exported using the NVMe protocol set.
39
40	  To configure a NVMe over Fabrics controller use the nvme-cli tool
41	  from https://github.com/linux-nvme/nvme-cli.
42
43	  If unsure, say N.
44
45config NVME_FC
46	tristate "NVM Express over Fabrics FC host driver"
47	depends on BLOCK
48	depends on HAS_DMA
49	select NVME_CORE
50	select NVME_FABRICS
51	select SG_POOL
52	help
53	  This provides support for the NVMe over Fabrics protocol using
54	  the FC transport.  This allows you to use remote block devices
55	  exported using the NVMe protocol set.
56
57	  To configure a NVMe over Fabrics controller use the nvme-cli tool
58	  from https://github.com/linux-nvme/nvme-cli.
59
60	  If unsure, say N.
61
62config NVME_TCP
63	tristate "NVM Express over Fabrics TCP host driver"
64	depends on INET
65	depends on BLK_DEV_NVME
66	select NVME_FABRICS
67	select CRYPTO_CRC32C
68	help
69	  This provides support for the NVMe over Fabrics protocol using
70	  the TCP transport.  This allows you to use remote block devices
71	  exported using the NVMe protocol set.
72
73	  To configure a NVMe over Fabrics controller use the nvme-cli tool
74	  from https://github.com/linux-nvme/nvme-cli.
75
76	  If unsure, say N.
77