| # SPDX-License-Identifier: GPL-2.0-only |
| config NVME_CORE |
| tristate |
| |
| config BLK_DEV_NVME |
| tristate "NVM Express block device" |
| depends on PCI && BLOCK |
| select NVME_CORE |
| help |
| The NVM Express driver is for solid state drives directly |
| connected to the PCI or PCI Express bus. If you know you |
| don't have one of these, it is safe to answer N. |
| |
| To compile this driver as a module, choose M here: the |
| module will be called nvme. |
| |
| config NVME_MULTIPATH |
| bool "NVMe multipath support" |
| depends on NVME_CORE |
| help |
| This option enables support for multipath access to NVMe |
| subsystems. If this option is enabled only a single |
| /dev/nvmeXnY device will show up for each NVMe namespace, |
| even if it is accessible through multiple controllers. |
| |
| config NVME_VERBOSE_ERRORS |
| bool "NVMe verbose error reporting" |
| depends on NVME_CORE |
| help |
| This option enables verbose reporting for NVMe errors. The |
| error translation table will grow the kernel image size by |
| about 4 KB. |
| |
| config NVME_HWMON |
| bool "NVMe hardware monitoring" |
| depends on (NVME_CORE=y && HWMON=y) || (NVME_CORE=m && HWMON) |
| help |
| This provides support for NVMe hardware monitoring. If enabled, |
| a hardware monitoring device will be created for each NVMe drive |
| in the system. |
| |
| config NVME_FABRICS |
| select NVME_CORE |
| select NVME_KEYRING if NVME_TCP_TLS |
| tristate |
| |
| config NVME_RDMA |
| tristate "NVM Express over Fabrics RDMA host driver" |
| depends on INFINIBAND && INFINIBAND_ADDR_TRANS && BLOCK |
| select NVME_FABRICS |
| select SG_POOL |
| help |
| This provides support for the NVMe over Fabrics protocol using |
| the RDMA (Infiniband, RoCE, iWarp) transport. This allows you |
| to use remote block devices exported using the NVMe protocol set. |
| |
| To configure a NVMe over Fabrics controller use the nvme-cli tool |
| from https://github.com/linux-nvme/nvme-cli. |
| |
| If unsure, say N. |
| |
| config NVME_FC |
| tristate "NVM Express over Fabrics FC host driver" |
| depends on BLOCK |
| depends on HAS_DMA |
| select NVME_FABRICS |
| select SG_POOL |
| help |
| This provides support for the NVMe over Fabrics protocol using |
| the FC transport. This allows you to use remote block devices |
| exported using the NVMe protocol set. |
| |
| To configure a NVMe over Fabrics controller use the nvme-cli tool |
| from https://github.com/linux-nvme/nvme-cli. |
| |
| If unsure, say N. |
| |
| config NVME_TCP |
| tristate "NVM Express over Fabrics TCP host driver" |
| depends on INET |
| depends on BLOCK |
| select NVME_FABRICS |
| select CRYPTO |
| select CRYPTO_CRC32C |
| help |
| This provides support for the NVMe over Fabrics protocol using |
| the TCP transport. This allows you to use remote block devices |
| exported using the NVMe protocol set. |
| |
| To configure a NVMe over Fabrics controller use the nvme-cli tool |
| from https://github.com/linux-nvme/nvme-cli. |
| |
| If unsure, say N. |
| |
| config NVME_TCP_TLS |
| bool "NVMe over Fabrics TCP TLS encryption support" |
| depends on NVME_TCP |
| select NET_HANDSHAKE |
| select KEYS |
| help |
| Enables TLS encryption for NVMe TCP using the netlink handshake API. |
| |
| The TLS handshake daemon is availble at |
| https://github.com/oracle/ktls-utils. |
| |
| If unsure, say N. |
| |
| config NVME_HOST_AUTH |
| bool "NVMe over Fabrics In-Band Authentication in host side" |
| depends on NVME_CORE |
| select NVME_AUTH |
| select NVME_KEYRING if NVME_TCP_TLS |
| help |
| This provides support for NVMe over Fabrics In-Band Authentication in |
| host side. |
| |
| If unsure, say N. |
| |
| config NVME_APPLE |
| tristate "Apple ANS2 NVM Express host driver" |
| depends on OF && BLOCK |
| depends on APPLE_RTKIT && APPLE_SART |
| depends on ARCH_APPLE || COMPILE_TEST |
| select NVME_CORE |
| help |
| This provides support for the NVMe controller embedded in Apple SoCs |
| such as the M1. |
| |
| To compile this driver as a module, choose M here: the |
| module will be called nvme-apple. |