Kconfig 3.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136
  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 controls support for multipath access to NVMe
  19. subsystems. If this option is enabled support for NVMe multipath
  20. access is included in the kernel. If this option is disabled support
  21. for NVMe multipath access is excluded from the kernel. When this
  22. option is disabled each controller/namespace receives its
  23. own /dev/nvmeXnY device entry and NVMe multipath access is
  24. not supported.
  25. If unsure, say Y.
  26. config NVME_VERBOSE_ERRORS
  27. bool "NVMe verbose error reporting"
  28. depends on NVME_CORE
  29. help
  30. This option enables verbose reporting for NVMe errors. The
  31. error translation table will grow the kernel image size by
  32. about 4 KB.
  33. config NVME_HWMON
  34. bool "NVMe hardware monitoring"
  35. depends on (NVME_CORE=y && HWMON=y) || (NVME_CORE=m && HWMON)
  36. help
  37. This provides support for NVMe hardware monitoring. If enabled,
  38. a hardware monitoring device will be created for each NVMe drive
  39. in the system.
  40. config NVME_FABRICS
  41. select NVME_CORE
  42. select NVME_KEYRING if NVME_TCP_TLS
  43. tristate
  44. config NVME_RDMA
  45. tristate "NVM Express over Fabrics RDMA host driver"
  46. depends on INFINIBAND && INFINIBAND_ADDR_TRANS && BLOCK
  47. select NVME_FABRICS
  48. select SG_POOL
  49. help
  50. This provides support for the NVMe over Fabrics protocol using
  51. the RDMA (Infiniband, RoCE, iWarp) transport. This allows you
  52. to use remote block devices exported using the NVMe protocol set.
  53. To configure a NVMe over Fabrics controller use the nvme-cli tool
  54. from https://github.com/linux-nvme/nvme-cli.
  55. If unsure, say N.
  56. config NVME_FC
  57. tristate "NVM Express over Fabrics FC host driver"
  58. depends on BLOCK
  59. depends on HAS_DMA
  60. select NVME_FABRICS
  61. select SG_POOL
  62. help
  63. This provides support for the NVMe over Fabrics protocol using
  64. the FC transport. This allows you to use remote block devices
  65. exported using the NVMe protocol set.
  66. To configure a NVMe over Fabrics controller use the nvme-cli tool
  67. from https://github.com/linux-nvme/nvme-cli.
  68. If unsure, say N.
  69. config NVME_TCP
  70. tristate "NVM Express over Fabrics TCP host driver"
  71. depends on INET
  72. depends on BLOCK
  73. select CRC32
  74. select NET_CRC32C
  75. select NVME_FABRICS
  76. help
  77. This provides support for the NVMe over Fabrics protocol using
  78. the TCP transport. This allows you to use remote block devices
  79. exported using the NVMe protocol set.
  80. To configure a NVMe over Fabrics controller use the nvme-cli tool
  81. from https://github.com/linux-nvme/nvme-cli.
  82. If unsure, say N.
  83. config NVME_TCP_TLS
  84. bool "NVMe over Fabrics TCP TLS encryption support"
  85. depends on NVME_TCP
  86. select NET_HANDSHAKE
  87. select KEYS
  88. select TLS
  89. help
  90. Enables TLS encryption for NVMe TCP using the netlink handshake API.
  91. The TLS handshake daemon is available at
  92. https://github.com/oracle/ktls-utils.
  93. If unsure, say N.
  94. config NVME_HOST_AUTH
  95. bool "NVMe over Fabrics In-Band Authentication in host side"
  96. depends on NVME_CORE
  97. select NVME_AUTH
  98. select NVME_KEYRING
  99. help
  100. This provides support for NVMe over Fabrics In-Band Authentication in
  101. host side.
  102. If unsure, say N.
  103. config NVME_APPLE
  104. tristate "Apple ANS2 NVM Express host driver"
  105. depends on OF && BLOCK
  106. depends on APPLE_RTKIT && APPLE_SART
  107. depends on ARCH_APPLE || COMPILE_TEST
  108. select NVME_CORE
  109. help
  110. This provides support for the NVMe controller embedded in Apple SoCs
  111. such as the M1.
  112. To compile this driver as a module, choose M here: the
  113. module will be called nvme-apple.