1 # SPDX-License-Identifier: GPL-2.0-only
6 tristate "NVM Express block device"
7 depends on PCI && BLOCK
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.
14 To compile this driver as a module, choose M here: the
15 module will be called nvme.
18 bool "NVMe multipath support"
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 namespace,
24 even if it is accessible through multiple controllers.
26 config NVME_VERBOSE_ERRORS
27 bool "NVMe verbose error reporting"
30 This option enables verbose reporting for NVMe errors. The
31 error translation table will grow the kernel image size by
35 bool "NVMe hardware monitoring"
36 depends on (NVME_CORE=y && HWMON=y) || (NVME_CORE=m && HWMON)
38 This provides support for NVMe hardware monitoring. If enabled,
39 a hardware monitoring device will be created for each NVMe drive
44 select NVME_KEYRING if NVME_TCP_TLS
48 tristate "NVM Express over Fabrics RDMA host driver"
49 depends on INFINIBAND && INFINIBAND_ADDR_TRANS && BLOCK
53 This provides support for the NVMe over Fabrics protocol using
54 the RDMA (Infiniband, RoCE, iWarp) transport. This allows you
55 to use remote block devices exported using the NVMe protocol set.
57 To configure a NVMe over Fabrics controller use the nvme-cli tool
58 from https://github.com/linux-nvme/nvme-cli.
63 tristate "NVM Express over Fabrics FC host driver"
69 This provides support for the NVMe over Fabrics protocol using
70 the FC transport. This allows you to use remote block devices
71 exported using the NVMe protocol set.
73 To configure a NVMe over Fabrics controller use the nvme-cli tool
74 from https://github.com/linux-nvme/nvme-cli.
79 tristate "NVM Express over Fabrics TCP host driver"
86 This provides support for the NVMe over Fabrics protocol using
87 the TCP transport. This allows you to use remote block devices
88 exported using the NVMe protocol set.
90 To configure a NVMe over Fabrics controller use the nvme-cli tool
91 from https://github.com/linux-nvme/nvme-cli.
96 bool "NVMe over Fabrics TCP TLS encryption support"
101 Enables TLS encryption for NVMe TCP using the netlink handshake API.
103 The TLS handshake daemon is availble at
104 https://github.com/oracle/ktls-utils.
108 config NVME_HOST_AUTH
109 bool "NVMe over Fabrics In-Band Authentication in host side"
112 select NVME_KEYRING if NVME_TCP_TLS
114 This provides support for NVMe over Fabrics In-Band Authentication in
120 tristate "Apple ANS2 NVM Express host driver"
121 depends on OF && BLOCK
122 depends on APPLE_RTKIT && APPLE_SART
123 depends on ARCH_APPLE || COMPILE_TEST
126 This provides support for the NVMe controller embedded in Apple SoCs
129 To compile this driver as a module, choose M here: the
130 module will be called nvme-apple.