162306a36Sopenharmony_ci# SPDX-License-Identifier: GPL-2.0-only 262306a36Sopenharmony_ciconfig NVME_CORE 362306a36Sopenharmony_ci tristate 462306a36Sopenharmony_ci select BLK_DEV_INTEGRITY_T10 if BLK_DEV_INTEGRITY 562306a36Sopenharmony_ci 662306a36Sopenharmony_ciconfig BLK_DEV_NVME 762306a36Sopenharmony_ci tristate "NVM Express block device" 862306a36Sopenharmony_ci depends on PCI && BLOCK 962306a36Sopenharmony_ci select NVME_CORE 1062306a36Sopenharmony_ci help 1162306a36Sopenharmony_ci The NVM Express driver is for solid state drives directly 1262306a36Sopenharmony_ci connected to the PCI or PCI Express bus. If you know you 1362306a36Sopenharmony_ci don't have one of these, it is safe to answer N. 1462306a36Sopenharmony_ci 1562306a36Sopenharmony_ci To compile this driver as a module, choose M here: the 1662306a36Sopenharmony_ci module will be called nvme. 1762306a36Sopenharmony_ci 1862306a36Sopenharmony_ciconfig NVME_MULTIPATH 1962306a36Sopenharmony_ci bool "NVMe multipath support" 2062306a36Sopenharmony_ci depends on NVME_CORE 2162306a36Sopenharmony_ci help 2262306a36Sopenharmony_ci This option enables support for multipath access to NVMe 2362306a36Sopenharmony_ci subsystems. If this option is enabled only a single 2462306a36Sopenharmony_ci /dev/nvmeXnY device will show up for each NVMe namespace, 2562306a36Sopenharmony_ci even if it is accessible through multiple controllers. 2662306a36Sopenharmony_ci 2762306a36Sopenharmony_ciconfig NVME_VERBOSE_ERRORS 2862306a36Sopenharmony_ci bool "NVMe verbose error reporting" 2962306a36Sopenharmony_ci depends on NVME_CORE 3062306a36Sopenharmony_ci help 3162306a36Sopenharmony_ci This option enables verbose reporting for NVMe errors. The 3262306a36Sopenharmony_ci error translation table will grow the kernel image size by 3362306a36Sopenharmony_ci about 4 KB. 3462306a36Sopenharmony_ci 3562306a36Sopenharmony_ciconfig NVME_HWMON 3662306a36Sopenharmony_ci bool "NVMe hardware monitoring" 3762306a36Sopenharmony_ci depends on (NVME_CORE=y && HWMON=y) || (NVME_CORE=m && HWMON) 3862306a36Sopenharmony_ci help 3962306a36Sopenharmony_ci This provides support for NVMe hardware monitoring. If enabled, 4062306a36Sopenharmony_ci a hardware monitoring device will be created for each NVMe drive 4162306a36Sopenharmony_ci in the system. 4262306a36Sopenharmony_ci 4362306a36Sopenharmony_ciconfig NVME_FABRICS 4462306a36Sopenharmony_ci select NVME_CORE 4562306a36Sopenharmony_ci tristate 4662306a36Sopenharmony_ci 4762306a36Sopenharmony_ciconfig NVME_RDMA 4862306a36Sopenharmony_ci tristate "NVM Express over Fabrics RDMA host driver" 4962306a36Sopenharmony_ci depends on INFINIBAND && INFINIBAND_ADDR_TRANS && BLOCK 5062306a36Sopenharmony_ci select NVME_FABRICS 5162306a36Sopenharmony_ci select SG_POOL 5262306a36Sopenharmony_ci help 5362306a36Sopenharmony_ci This provides support for the NVMe over Fabrics protocol using 5462306a36Sopenharmony_ci the RDMA (Infiniband, RoCE, iWarp) transport. This allows you 5562306a36Sopenharmony_ci to use remote block devices exported using the NVMe protocol set. 5662306a36Sopenharmony_ci 5762306a36Sopenharmony_ci To configure a NVMe over Fabrics controller use the nvme-cli tool 5862306a36Sopenharmony_ci from https://github.com/linux-nvme/nvme-cli. 5962306a36Sopenharmony_ci 6062306a36Sopenharmony_ci If unsure, say N. 6162306a36Sopenharmony_ci 6262306a36Sopenharmony_ciconfig NVME_FC 6362306a36Sopenharmony_ci tristate "NVM Express over Fabrics FC host driver" 6462306a36Sopenharmony_ci depends on BLOCK 6562306a36Sopenharmony_ci depends on HAS_DMA 6662306a36Sopenharmony_ci select NVME_FABRICS 6762306a36Sopenharmony_ci select SG_POOL 6862306a36Sopenharmony_ci help 6962306a36Sopenharmony_ci This provides support for the NVMe over Fabrics protocol using 7062306a36Sopenharmony_ci the FC transport. This allows you to use remote block devices 7162306a36Sopenharmony_ci exported using the NVMe protocol set. 7262306a36Sopenharmony_ci 7362306a36Sopenharmony_ci To configure a NVMe over Fabrics controller use the nvme-cli tool 7462306a36Sopenharmony_ci from https://github.com/linux-nvme/nvme-cli. 7562306a36Sopenharmony_ci 7662306a36Sopenharmony_ci If unsure, say N. 7762306a36Sopenharmony_ci 7862306a36Sopenharmony_ciconfig NVME_TCP 7962306a36Sopenharmony_ci tristate "NVM Express over Fabrics TCP host driver" 8062306a36Sopenharmony_ci depends on INET 8162306a36Sopenharmony_ci depends on BLOCK 8262306a36Sopenharmony_ci select NVME_FABRICS 8362306a36Sopenharmony_ci select CRYPTO 8462306a36Sopenharmony_ci select CRYPTO_CRC32C 8562306a36Sopenharmony_ci help 8662306a36Sopenharmony_ci This provides support for the NVMe over Fabrics protocol using 8762306a36Sopenharmony_ci the TCP transport. This allows you to use remote block devices 8862306a36Sopenharmony_ci exported using the NVMe protocol set. 8962306a36Sopenharmony_ci 9062306a36Sopenharmony_ci To configure a NVMe over Fabrics controller use the nvme-cli tool 9162306a36Sopenharmony_ci from https://github.com/linux-nvme/nvme-cli. 9262306a36Sopenharmony_ci 9362306a36Sopenharmony_ci If unsure, say N. 9462306a36Sopenharmony_ci 9562306a36Sopenharmony_ciconfig NVME_AUTH 9662306a36Sopenharmony_ci bool "NVM Express over Fabrics In-Band Authentication" 9762306a36Sopenharmony_ci depends on NVME_CORE 9862306a36Sopenharmony_ci select NVME_COMMON 9962306a36Sopenharmony_ci select CRYPTO 10062306a36Sopenharmony_ci select CRYPTO_HMAC 10162306a36Sopenharmony_ci select CRYPTO_SHA256 10262306a36Sopenharmony_ci select CRYPTO_SHA512 10362306a36Sopenharmony_ci select CRYPTO_DH 10462306a36Sopenharmony_ci select CRYPTO_DH_RFC7919_GROUPS 10562306a36Sopenharmony_ci help 10662306a36Sopenharmony_ci This provides support for NVMe over Fabrics In-Band Authentication. 10762306a36Sopenharmony_ci 10862306a36Sopenharmony_ci If unsure, say N. 10962306a36Sopenharmony_ci 11062306a36Sopenharmony_ciconfig NVME_APPLE 11162306a36Sopenharmony_ci tristate "Apple ANS2 NVM Express host driver" 11262306a36Sopenharmony_ci depends on OF && BLOCK 11362306a36Sopenharmony_ci depends on APPLE_RTKIT && APPLE_SART 11462306a36Sopenharmony_ci depends on ARCH_APPLE || COMPILE_TEST 11562306a36Sopenharmony_ci select NVME_CORE 11662306a36Sopenharmony_ci help 11762306a36Sopenharmony_ci This provides support for the NVMe controller embedded in Apple SoCs 11862306a36Sopenharmony_ci such as the M1. 11962306a36Sopenharmony_ci 12062306a36Sopenharmony_ci To compile this driver as a module, choose M here: the 12162306a36Sopenharmony_ci module will be called nvme-apple. 122