Linux kernel mirror (for testing)
git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel
os
linux
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 controls support for multipath access to NVMe
22 subsystems. If this option is enabled support for NVMe multipath
23 access is included in the kernel. If this option is disabled support
24 for NVMe multipath access is excluded from the kernel. When this
25 option is disabled each controller/namespace receives its
26 own /dev/nvmeXnY device entry and NVMe multipath access is
27 not supported.
28
29 If unsure, say Y.
30
31config NVME_VERBOSE_ERRORS
32 bool "NVMe verbose error reporting"
33 depends on NVME_CORE
34 help
35 This option enables verbose reporting for NVMe errors. The
36 error translation table will grow the kernel image size by
37 about 4 KB.
38
39config NVME_HWMON
40 bool "NVMe hardware monitoring"
41 depends on (NVME_CORE=y && HWMON=y) || (NVME_CORE=m && HWMON)
42 help
43 This provides support for NVMe hardware monitoring. If enabled,
44 a hardware monitoring device will be created for each NVMe drive
45 in the system.
46
47config NVME_FABRICS
48 select NVME_CORE
49 select NVME_KEYRING if NVME_TCP_TLS
50 tristate
51
52config NVME_RDMA
53 tristate "NVM Express over Fabrics RDMA host driver"
54 depends on INFINIBAND && INFINIBAND_ADDR_TRANS && BLOCK
55 select NVME_FABRICS
56 select SG_POOL
57 help
58 This provides support for the NVMe over Fabrics protocol using
59 the RDMA (Infiniband, RoCE, iWarp) transport. This allows you
60 to use remote block devices exported using the NVMe protocol set.
61
62 To configure a NVMe over Fabrics controller use the nvme-cli tool
63 from https://github.com/linux-nvme/nvme-cli.
64
65 If unsure, say N.
66
67config NVME_FC
68 tristate "NVM Express over Fabrics FC host driver"
69 depends on BLOCK
70 depends on HAS_DMA
71 select NVME_FABRICS
72 select SG_POOL
73 help
74 This provides support for the NVMe over Fabrics protocol using
75 the FC transport. This allows you to use remote block devices
76 exported using the NVMe protocol set.
77
78 To configure a NVMe over Fabrics controller use the nvme-cli tool
79 from https://github.com/linux-nvme/nvme-cli.
80
81 If unsure, say N.
82
83config NVME_TCP
84 tristate "NVM Express over Fabrics TCP host driver"
85 depends on INET
86 depends on BLOCK
87 select CRC32
88 select NET_CRC32C
89 select NVME_FABRICS
90 help
91 This provides support for the NVMe over Fabrics protocol using
92 the TCP transport. This allows you to use remote block devices
93 exported using the NVMe protocol set.
94
95 To configure a NVMe over Fabrics controller use the nvme-cli tool
96 from https://github.com/linux-nvme/nvme-cli.
97
98 If unsure, say N.
99
100config NVME_TCP_TLS
101 bool "NVMe over Fabrics TCP TLS encryption support"
102 depends on NVME_TCP
103 select NET_HANDSHAKE
104 select KEYS
105 select TLS
106 help
107 Enables TLS encryption for NVMe TCP using the netlink handshake API.
108
109 The TLS handshake daemon is available at
110 https://github.com/oracle/ktls-utils.
111
112 If unsure, say N.
113
114config NVME_HOST_AUTH
115 bool "NVMe over Fabrics In-Band Authentication in host side"
116 depends on NVME_CORE
117 select NVME_AUTH
118 select NVME_KEYRING
119 help
120 This provides support for NVMe over Fabrics In-Band Authentication in
121 host side.
122
123 If unsure, say N.
124
125config NVME_APPLE
126 tristate "Apple ANS2 NVM Express host driver"
127 depends on OF && BLOCK
128 depends on APPLE_RTKIT && APPLE_SART
129 depends on ARCH_APPLE || COMPILE_TEST
130 select NVME_CORE
131 help
132 This provides support for the NVMe controller embedded in Apple SoCs
133 such as the M1.
134
135 To compile this driver as a module, choose M here: the
136 module will be called nvme-apple.