Kconfig 3.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131
  1. # SPDX-License-Identifier: GPL-2.0-only
  2. config NVME_CORE
  3. tristate
  4. config BLK_DEV_NVME
  5. tristate "NVM Express block device"
  6. depends on PCI && BLOCK
  7. select NVME_CORE
  8. help
  9. The NVM Express driver is for solid state drives directly
  10. connected to the PCI or PCI Express bus. If you know you
  11. don't have one of these, it is safe to answer N.
  12. To compile this driver as a module, choose M here: the
  13. module will be called nvme.
  14. config NVME_MULTIPATH
  15. bool "NVMe multipath support"
  16. depends on NVME_CORE
  17. help
  18. This option enables support for multipath access to NVMe
  19. subsystems. If this option is enabled only a single
  20. /dev/nvmeXnY device will show up for each NVMe namespace,
  21. even if it is accessible through multiple controllers.
  22. config NVME_VERBOSE_ERRORS
  23. bool "NVMe verbose error reporting"
  24. depends on NVME_CORE
  25. help
  26. This option enables verbose reporting for NVMe errors. The
  27. error translation table will grow the kernel image size by
  28. about 4 KB.
  29. config NVME_HWMON
  30. bool "NVMe hardware monitoring"
  31. depends on (NVME_CORE=y && HWMON=y) || (NVME_CORE=m && HWMON)
  32. help
  33. This provides support for NVMe hardware monitoring. If enabled,
  34. a hardware monitoring device will be created for each NVMe drive
  35. in the system.
  36. config NVME_FABRICS
  37. select NVME_CORE
  38. select NVME_KEYRING if NVME_TCP_TLS
  39. tristate
  40. config NVME_RDMA
  41. tristate "NVM Express over Fabrics RDMA host driver"
  42. depends on INFINIBAND && INFINIBAND_ADDR_TRANS && BLOCK
  43. select NVME_FABRICS
  44. select SG_POOL
  45. help
  46. This provides support for the NVMe over Fabrics protocol using
  47. the RDMA (Infiniband, RoCE, iWarp) transport. This allows you
  48. to use remote block devices exported using the NVMe protocol set.
  49. To configure a NVMe over Fabrics controller use the nvme-cli tool
  50. from https://github.com/linux-nvme/nvme-cli.
  51. If unsure, say N.
  52. config NVME_FC
  53. tristate "NVM Express over Fabrics FC host driver"
  54. depends on BLOCK
  55. depends on HAS_DMA
  56. select NVME_FABRICS
  57. select SG_POOL
  58. help
  59. This provides support for the NVMe over Fabrics protocol using
  60. the FC transport. This allows you to use remote block devices
  61. exported using the NVMe protocol set.
  62. To configure a NVMe over Fabrics controller use the nvme-cli tool
  63. from https://github.com/linux-nvme/nvme-cli.
  64. If unsure, say N.
  65. config NVME_TCP
  66. tristate "NVM Express over Fabrics TCP host driver"
  67. depends on INET
  68. depends on BLOCK
  69. select NVME_FABRICS
  70. select CRYPTO
  71. select CRYPTO_CRC32C
  72. help
  73. This provides support for the NVMe over Fabrics protocol using
  74. the TCP transport. This allows you to use remote block devices
  75. exported using the NVMe protocol set.
  76. To configure a NVMe over Fabrics controller use the nvme-cli tool
  77. from https://github.com/linux-nvme/nvme-cli.
  78. If unsure, say N.
  79. config NVME_TCP_TLS
  80. bool "NVMe over Fabrics TCP TLS encryption support"
  81. depends on NVME_TCP
  82. select NET_HANDSHAKE
  83. select KEYS
  84. select TLS
  85. help
  86. Enables TLS encryption for NVMe TCP using the netlink handshake API.
  87. The TLS handshake daemon is availble at
  88. https://github.com/oracle/ktls-utils.
  89. If unsure, say N.
  90. config NVME_HOST_AUTH
  91. bool "NVMe over Fabrics In-Band Authentication in host side"
  92. depends on NVME_CORE
  93. select NVME_AUTH
  94. select NVME_KEYRING if NVME_TCP_TLS
  95. help
  96. This provides support for NVMe over Fabrics In-Band Authentication in
  97. host side.
  98. If unsure, say N.
  99. config NVME_APPLE
  100. tristate "Apple ANS2 NVM Express host driver"
  101. depends on OF && BLOCK
  102. depends on APPLE_RTKIT && APPLE_SART
  103. depends on ARCH_APPLE || COMPILE_TEST
  104. select NVME_CORE
  105. help
  106. This provides support for the NVMe controller embedded in Apple SoCs
  107. such as the M1.
  108. To compile this driver as a module, choose M here: the
  109. module will be called nvme-apple.