Kconfig 3.0 KB

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