Kconfig 3.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116
  1. menuconfig LIBNVDIMM
  2. tristate "NVDIMM (Non-Volatile Memory Device) Support"
  3. depends on PHYS_ADDR_T_64BIT
  4. depends on HAS_IOMEM
  5. depends on BLK_DEV
  6. help
  7. Generic support for non-volatile memory devices including
  8. ACPI-6-NFIT defined resources. On platforms that define an
  9. NFIT, or otherwise can discover NVDIMM resources, a libnvdimm
  10. bus is registered to advertise PMEM (persistent memory)
  11. namespaces (/dev/pmemX) and BLK (sliding mmio window(s))
  12. namespaces (/dev/ndblkX.Y). A PMEM namespace refers to a
  13. memory resource that may span multiple DIMMs and support DAX
  14. (see CONFIG_DAX). A BLK namespace refers to an NVDIMM control
  15. region which exposes an mmio register set for windowed access
  16. mode to non-volatile memory.
  17. if LIBNVDIMM
  18. config BLK_DEV_PMEM
  19. tristate "PMEM: Persistent memory block device support"
  20. default LIBNVDIMM
  21. select DAX_DRIVER
  22. select ND_BTT if BTT
  23. select ND_PFN if NVDIMM_PFN
  24. help
  25. Memory ranges for PMEM are described by either an NFIT
  26. (NVDIMM Firmware Interface Table, see CONFIG_NFIT_ACPI), a
  27. non-standard OEM-specific E820 memory type (type-12, see
  28. CONFIG_X86_PMEM_LEGACY), or it is manually specified by the
  29. 'memmap=nn[KMG]!ss[KMG]' kernel command line (see
  30. Documentation/admin-guide/kernel-parameters.rst). This driver converts
  31. these persistent memory ranges into block devices that are
  32. capable of DAX (direct-access) file system mappings. See
  33. Documentation/nvdimm/nvdimm.txt for more details.
  34. Say Y if you want to use an NVDIMM
  35. config ND_BLK
  36. tristate "BLK: Block data window (aperture) device support"
  37. default LIBNVDIMM
  38. select ND_BTT if BTT
  39. help
  40. Support NVDIMMs, or other devices, that implement a BLK-mode
  41. access capability. BLK-mode access uses memory-mapped-i/o
  42. apertures to access persistent media.
  43. Say Y if your platform firmware emits an ACPI.NFIT table
  44. (CONFIG_ACPI_NFIT), or otherwise exposes BLK-mode
  45. capabilities.
  46. config ND_CLAIM
  47. bool
  48. config ND_BTT
  49. tristate
  50. config BTT
  51. bool "BTT: Block Translation Table (atomic sector updates)"
  52. default y if LIBNVDIMM
  53. select ND_CLAIM
  54. help
  55. The Block Translation Table (BTT) provides atomic sector
  56. update semantics for persistent memory devices, so that
  57. applications that rely on sector writes not being torn (a
  58. guarantee that typical disks provide) can continue to do so.
  59. The BTT manifests itself as an alternate personality for an
  60. NVDIMM namespace, i.e. a namespace can be in raw mode (pmemX,
  61. ndblkX.Y, etc...), or 'sectored' mode, (pmemXs, ndblkX.Ys,
  62. etc...).
  63. Select Y if unsure
  64. config ND_PFN
  65. tristate
  66. config NVDIMM_PFN
  67. bool "PFN: Map persistent (device) memory"
  68. default LIBNVDIMM
  69. depends on ZONE_DEVICE
  70. select ND_CLAIM
  71. help
  72. Map persistent memory, i.e. advertise it to the memory
  73. management sub-system. By default persistent memory does
  74. not support direct I/O, RDMA, or any other usage that
  75. requires a 'struct page' to mediate an I/O request. This
  76. driver allocates and initializes the infrastructure needed
  77. to support those use cases.
  78. Select Y if unsure
  79. config NVDIMM_DAX
  80. bool "NVDIMM DAX: Raw access to persistent memory"
  81. default LIBNVDIMM
  82. depends on NVDIMM_PFN
  83. help
  84. Support raw device dax access to a persistent memory
  85. namespace. For environments that want to hard partition
  86. persistent memory, this capability provides a mechanism to
  87. sub-divide a namespace into character devices that can only be
  88. accessed via DAX (mmap(2)).
  89. Select Y if unsure
  90. config OF_PMEM
  91. tristate "Device-tree support for persistent memory regions"
  92. depends on OF
  93. default LIBNVDIMM
  94. help
  95. Allows regions of persistent memory to be described in the
  96. device-tree.
  97. Select Y if unsure.
  98. endif