1ec8f24b7SThomas Gleixner# SPDX-License-Identifier: GPL-2.0-only 2576d55d6SMing Linconfig NVME_CORE 3576d55d6SMing Lin tristate 4a754bd5fSHerbert Xu select BLK_DEV_INTEGRITY_T10 if BLK_DEV_INTEGRITY 5576d55d6SMing Lin 657dacad5SJay Sternbergconfig BLK_DEV_NVME 757dacad5SJay Sternberg tristate "NVM Express block device" 811feb18fSKeith Busch depends on PCI && BLOCK 9576d55d6SMing Lin select NVME_CORE 10a7f7f624SMasahiro Yamada help 1157dacad5SJay Sternberg The NVM Express driver is for solid state drives directly 1257dacad5SJay Sternberg connected to the PCI or PCI Express bus. If you know you 1357dacad5SJay Sternberg don't have one of these, it is safe to answer N. 1457dacad5SJay Sternberg 1557dacad5SJay Sternberg To compile this driver as a module, choose M here: the 1657dacad5SJay Sternberg module will be called nvme. 1744907332SChristoph Hellwig 1832acab31SChristoph Hellwigconfig NVME_MULTIPATH 1932acab31SChristoph Hellwig bool "NVMe multipath support" 2032acab31SChristoph Hellwig depends on NVME_CORE 21a7f7f624SMasahiro Yamada help 2232acab31SChristoph Hellwig This option enables support for multipath access to NVMe 2332acab31SChristoph Hellwig subsystems. If this option is enabled only a single 24d399742cSGeert Uytterhoeven /dev/nvmeXnY device will show up for each NVMe namespace, 2532acab31SChristoph Hellwig even if it is accessible through multiple controllers. 2632acab31SChristoph Hellwig 27bd83fe6fSAlan Adamsonconfig NVME_VERBOSE_ERRORS 28bd83fe6fSAlan Adamson bool "NVMe verbose error reporting" 29bd83fe6fSAlan Adamson depends on NVME_CORE 30bd83fe6fSAlan Adamson help 31bd83fe6fSAlan Adamson This option enables verbose reporting for NVMe errors. The 32bd83fe6fSAlan Adamson error translation table will grow the kernel image size by 33bd83fe6fSAlan Adamson about 4 KB. 34bd83fe6fSAlan Adamson 35400b6a7bSGuenter Roeckconfig NVME_HWMON 36400b6a7bSGuenter Roeck bool "NVMe hardware monitoring" 37400b6a7bSGuenter Roeck depends on (NVME_CORE=y && HWMON=y) || (NVME_CORE=m && HWMON) 38400b6a7bSGuenter Roeck help 39400b6a7bSGuenter Roeck This provides support for NVMe hardware monitoring. If enabled, 40400b6a7bSGuenter Roeck a hardware monitoring device will be created for each NVMe drive 41400b6a7bSGuenter Roeck in the system. 42400b6a7bSGuenter Roeck 4307bfcd09SChristoph Hellwigconfig NVME_FABRICS 440866200eSSagi Grimberg select NVME_CORE 4507bfcd09SChristoph Hellwig tristate 4671102307SChristoph Hellwig 4771102307SChristoph Hellwigconfig NVME_RDMA 4871102307SChristoph Hellwig tristate "NVM Express over Fabrics RDMA host driver" 49533d1daeSArnd Bergmann depends on INFINIBAND && INFINIBAND_ADDR_TRANS && BLOCK 5071102307SChristoph Hellwig select NVME_FABRICS 5171102307SChristoph Hellwig select SG_POOL 5271102307SChristoph Hellwig help 5371102307SChristoph Hellwig This provides support for the NVMe over Fabrics protocol using 5471102307SChristoph Hellwig the RDMA (Infiniband, RoCE, iWarp) transport. This allows you 5571102307SChristoph Hellwig to use remote block devices exported using the NVMe protocol set. 5671102307SChristoph Hellwig 5771102307SChristoph Hellwig To configure a NVMe over Fabrics controller use the nvme-cli tool 5871102307SChristoph Hellwig from https://github.com/linux-nvme/nvme-cli. 5971102307SChristoph Hellwig 6071102307SChristoph Hellwig If unsure, say N. 61e399441dSJames Smart 62e399441dSJames Smartconfig NVME_FC 63e399441dSJames Smart tristate "NVM Express over Fabrics FC host driver" 64e399441dSJames Smart depends on BLOCK 65e399441dSJames Smart depends on HAS_DMA 66e399441dSJames Smart select NVME_FABRICS 67e399441dSJames Smart select SG_POOL 68e399441dSJames Smart help 69e399441dSJames Smart This provides support for the NVMe over Fabrics protocol using 70e399441dSJames Smart the FC transport. This allows you to use remote block devices 71e399441dSJames Smart exported using the NVMe protocol set. 72e399441dSJames Smart 73e399441dSJames Smart To configure a NVMe over Fabrics controller use the nvme-cli tool 74e399441dSJames Smart from https://github.com/linux-nvme/nvme-cli. 75e399441dSJames Smart 76e399441dSJames Smart If unsure, say N. 773f2304f8SSagi Grimberg 783f2304f8SSagi Grimbergconfig NVME_TCP 793f2304f8SSagi Grimberg tristate "NVM Express over Fabrics TCP host driver" 803f2304f8SSagi Grimberg depends on INET 81042a3eaaSSagi Grimberg depends on BLOCK 823f2304f8SSagi Grimberg select NVME_FABRICS 83af5ad178SNecip Fazil Yildiran select CRYPTO 8479fd751dSMinwoo Im select CRYPTO_CRC32C 853f2304f8SSagi Grimberg help 863f2304f8SSagi Grimberg This provides support for the NVMe over Fabrics protocol using 873f2304f8SSagi Grimberg the TCP transport. This allows you to use remote block devices 883f2304f8SSagi Grimberg exported using the NVMe protocol set. 893f2304f8SSagi Grimberg 903f2304f8SSagi Grimberg To configure a NVMe over Fabrics controller use the nvme-cli tool 913f2304f8SSagi Grimberg from https://github.com/linux-nvme/nvme-cli. 923f2304f8SSagi Grimberg 933f2304f8SSagi Grimberg If unsure, say N. 945bd2927aSSven Peter 95f50fff73SHannes Reineckeconfig NVME_AUTH 96f50fff73SHannes Reinecke bool "NVM Express over Fabrics In-Band Authentication" 97f50fff73SHannes Reinecke depends on NVME_CORE 98f50fff73SHannes Reinecke select NVME_COMMON 99f50fff73SHannes Reinecke select CRYPTO 100f50fff73SHannes Reinecke select CRYPTO_HMAC 101f50fff73SHannes Reinecke select CRYPTO_SHA256 102f50fff73SHannes Reinecke select CRYPTO_SHA512 103*b61775d1SHannes Reinecke select CRYPTO_DH 104*b61775d1SHannes Reinecke select CRYPTO_DH_RFC7919_GROUPS 105f50fff73SHannes Reinecke help 106f50fff73SHannes Reinecke This provides support for NVMe over Fabrics In-Band Authentication. 107f50fff73SHannes Reinecke 108f50fff73SHannes Reinecke If unsure, say N. 109f50fff73SHannes Reinecke 1105bd2927aSSven Peterconfig NVME_APPLE 1115bd2927aSSven Peter tristate "Apple ANS2 NVM Express host driver" 1125bd2927aSSven Peter depends on OF && BLOCK 1135bd2927aSSven Peter depends on APPLE_RTKIT && APPLE_SART 1145bd2927aSSven Peter depends on ARCH_APPLE || COMPILE_TEST 1155bd2927aSSven Peter select NVME_CORE 1165bd2927aSSven Peter help 1175bd2927aSSven Peter This provides support for the NVMe controller embedded in Apple SoCs 1185bd2927aSSven Peter such as the M1. 1195bd2927aSSven Peter 1205bd2927aSSven Peter To compile this driver as a module, choose M here: the 1215bd2927aSSven Peter module will be called nvme-apple. 122