1ec8f24b7SThomas Gleixner# SPDX-License-Identifier: GPL-2.0-only 2576d55d6SMing Linconfig NVME_CORE 3576d55d6SMing Lin tristate 4576d55d6SMing Lin 557dacad5SJay Sternbergconfig BLK_DEV_NVME 657dacad5SJay Sternberg tristate "NVM Express block device" 711feb18fSKeith Busch depends on PCI && BLOCK 8576d55d6SMing Lin select NVME_CORE 9a7f7f624SMasahiro Yamada help 1057dacad5SJay Sternberg The NVM Express driver is for solid state drives directly 1157dacad5SJay Sternberg connected to the PCI or PCI Express bus. If you know you 1257dacad5SJay Sternberg don't have one of these, it is safe to answer N. 1357dacad5SJay Sternberg 1457dacad5SJay Sternberg To compile this driver as a module, choose M here: the 1557dacad5SJay Sternberg module will be called nvme. 1644907332SChristoph Hellwig 1732acab31SChristoph Hellwigconfig NVME_MULTIPATH 1832acab31SChristoph Hellwig bool "NVMe multipath support" 1932acab31SChristoph Hellwig depends on NVME_CORE 20a7f7f624SMasahiro Yamada help 2132c92814SJohn Meneghini This option controls support for multipath access to NVMe 2232c92814SJohn Meneghini subsystems. If this option is enabled support for NVMe multipath 2332c92814SJohn Meneghini access is included in the kernel. If this option is disabled support 2432c92814SJohn Meneghini for NVMe multipath access is excluded from the kernel. When this 2532c92814SJohn Meneghini option is disabled each controller/namespace receives its 2632c92814SJohn Meneghini own /dev/nvmeXnY device entry and NVMe multipath access is 2732c92814SJohn Meneghini not supported. 2832c92814SJohn Meneghini 2932c92814SJohn Meneghini If unsure, say Y. 3032acab31SChristoph Hellwig 31bd83fe6fSAlan Adamsonconfig NVME_VERBOSE_ERRORS 32bd83fe6fSAlan Adamson bool "NVMe verbose error reporting" 33bd83fe6fSAlan Adamson depends on NVME_CORE 34bd83fe6fSAlan Adamson help 35bd83fe6fSAlan Adamson This option enables verbose reporting for NVMe errors. The 36bd83fe6fSAlan Adamson error translation table will grow the kernel image size by 37bd83fe6fSAlan Adamson about 4 KB. 38bd83fe6fSAlan Adamson 39400b6a7bSGuenter Roeckconfig NVME_HWMON 40400b6a7bSGuenter Roeck bool "NVMe hardware monitoring" 41400b6a7bSGuenter Roeck depends on (NVME_CORE=y && HWMON=y) || (NVME_CORE=m && HWMON) 42400b6a7bSGuenter Roeck help 43400b6a7bSGuenter Roeck This provides support for NVMe hardware monitoring. If enabled, 44400b6a7bSGuenter Roeck a hardware monitoring device will be created for each NVMe drive 45400b6a7bSGuenter Roeck in the system. 46400b6a7bSGuenter Roeck 4707bfcd09SChristoph Hellwigconfig NVME_FABRICS 480866200eSSagi Grimberg select NVME_CORE 492d5a333eSArnd Bergmann select NVME_KEYRING if NVME_TCP_TLS 5007bfcd09SChristoph Hellwig tristate 5171102307SChristoph Hellwig 5271102307SChristoph Hellwigconfig NVME_RDMA 5371102307SChristoph Hellwig tristate "NVM Express over Fabrics RDMA host driver" 54533d1daeSArnd Bergmann depends on INFINIBAND && INFINIBAND_ADDR_TRANS && BLOCK 5571102307SChristoph Hellwig select NVME_FABRICS 5671102307SChristoph Hellwig select SG_POOL 5771102307SChristoph Hellwig help 5871102307SChristoph Hellwig This provides support for the NVMe over Fabrics protocol using 5971102307SChristoph Hellwig the RDMA (Infiniband, RoCE, iWarp) transport. This allows you 6071102307SChristoph Hellwig to use remote block devices exported using the NVMe protocol set. 6171102307SChristoph Hellwig 6271102307SChristoph Hellwig To configure a NVMe over Fabrics controller use the nvme-cli tool 6371102307SChristoph Hellwig from https://github.com/linux-nvme/nvme-cli. 6471102307SChristoph Hellwig 6571102307SChristoph Hellwig If unsure, say N. 66e399441dSJames Smart 67e399441dSJames Smartconfig NVME_FC 68e399441dSJames Smart tristate "NVM Express over Fabrics FC host driver" 69e399441dSJames Smart depends on BLOCK 70e399441dSJames Smart depends on HAS_DMA 71e399441dSJames Smart select NVME_FABRICS 72e399441dSJames Smart select SG_POOL 73e399441dSJames Smart help 74e399441dSJames Smart This provides support for the NVMe over Fabrics protocol using 75e399441dSJames Smart the FC transport. This allows you to use remote block devices 76e399441dSJames Smart exported using the NVMe protocol set. 77e399441dSJames Smart 78e399441dSJames Smart To configure a NVMe over Fabrics controller use the nvme-cli tool 79e399441dSJames Smart from https://github.com/linux-nvme/nvme-cli. 80e399441dSJames Smart 81e399441dSJames Smart If unsure, say N. 823f2304f8SSagi Grimberg 833f2304f8SSagi Grimbergconfig NVME_TCP 843f2304f8SSagi Grimberg tristate "NVM Express over Fabrics TCP host driver" 853f2304f8SSagi Grimberg depends on INET 86042a3eaaSSagi Grimberg depends on BLOCK 87427fff9aSEric Biggers select CRC32 88427fff9aSEric Biggers select NET_CRC32C 893f2304f8SSagi Grimberg select NVME_FABRICS 903f2304f8SSagi Grimberg help 913f2304f8SSagi Grimberg This provides support for the NVMe over Fabrics protocol using 923f2304f8SSagi Grimberg the TCP transport. This allows you to use remote block devices 933f2304f8SSagi Grimberg exported using the NVMe protocol set. 943f2304f8SSagi Grimberg 953f2304f8SSagi Grimberg To configure a NVMe over Fabrics controller use the nvme-cli tool 963f2304f8SSagi Grimberg from https://github.com/linux-nvme/nvme-cli. 973f2304f8SSagi Grimberg 983f2304f8SSagi Grimberg If unsure, say N. 995bd2927aSSven Peter 100be8e82caSHannes Reineckeconfig NVME_TCP_TLS 101be8e82caSHannes Reinecke bool "NVMe over Fabrics TCP TLS encryption support" 102be8e82caSHannes Reinecke depends on NVME_TCP 103be8e82caSHannes Reinecke select NET_HANDSHAKE 104be8e82caSHannes Reinecke select KEYS 10552198794SAlistair Francis select TLS 106be8e82caSHannes Reinecke help 107be8e82caSHannes Reinecke Enables TLS encryption for NVMe TCP using the netlink handshake API. 108be8e82caSHannes Reinecke 109*44e479d7SYi Zhang The TLS handshake daemon is available at 110be8e82caSHannes Reinecke https://github.com/oracle/ktls-utils. 111be8e82caSHannes Reinecke 112be8e82caSHannes Reinecke If unsure, say N. 113be8e82caSHannes Reinecke 114d6800634SHannes Reineckeconfig NVME_HOST_AUTH 11529ac4b2fSShin'ichiro Kawasaki bool "NVMe over Fabrics In-Band Authentication in host side" 116f50fff73SHannes Reinecke depends on NVME_CORE 117d6800634SHannes Reinecke select NVME_AUTH 118e88a7595SHannes Reinecke select NVME_KEYRING 119f50fff73SHannes Reinecke help 12029ac4b2fSShin'ichiro Kawasaki This provides support for NVMe over Fabrics In-Band Authentication in 12129ac4b2fSShin'ichiro Kawasaki host side. 122f50fff73SHannes Reinecke 123f50fff73SHannes Reinecke If unsure, say N. 124f50fff73SHannes Reinecke 1255bd2927aSSven Peterconfig NVME_APPLE 1265bd2927aSSven Peter tristate "Apple ANS2 NVM Express host driver" 1275bd2927aSSven Peter depends on OF && BLOCK 1285bd2927aSSven Peter depends on APPLE_RTKIT && APPLE_SART 1295bd2927aSSven Peter depends on ARCH_APPLE || COMPILE_TEST 1305bd2927aSSven Peter select NVME_CORE 1315bd2927aSSven Peter help 1325bd2927aSSven Peter This provides support for the NVMe controller embedded in Apple SoCs 1335bd2927aSSven Peter such as the M1. 1345bd2927aSSven Peter 1355bd2927aSSven Peter To compile this driver as a module, choose M here: the 1365bd2927aSSven Peter module will be called nvme-apple. 137