Merge git://git.kernel.org/pub/scm/linux/kernel/git/pablo/nf
[firefly-linux-kernel-4.4.55.git] / drivers / nvdimm / Kconfig
index 5680e8e7a7aa7f1294b38806c95d3d7c515e643c..72226acb5c0fb8af7b72b88fd7b8f46329095626 100644 (file)
@@ -8,11 +8,11 @@ menuconfig LIBNVDIMM
          NFIT, or otherwise can discover NVDIMM resources, a libnvdimm
          bus is registered to advertise PMEM (persistent memory)
          namespaces (/dev/pmemX) and BLK (sliding mmio window(s))
-         namespaces (/dev/ndX). A PMEM namespace refers to a memory
-         resource that may span multiple DIMMs and support DAX (see
-         CONFIG_DAX).  A BLK namespace refers to an NVDIMM control
-         region which exposes an mmio register set for windowed
-         access mode to non-volatile memory.
+         namespaces (/dev/ndblkX.Y). A PMEM namespace refers to a
+         memory resource that may span multiple DIMMs and support DAX
+         (see CONFIG_DAX).  A BLK namespace refers to an NVDIMM control
+         region which exposes an mmio register set for windowed access
+         mode to non-volatile memory.
 
 if LIBNVDIMM
 
@@ -20,6 +20,7 @@ config BLK_DEV_PMEM
        tristate "PMEM: Persistent memory block device support"
        default LIBNVDIMM
        depends on HAS_IOMEM
+       select ND_BTT if BTT
        help
          Memory ranges for PMEM are described by either an NFIT
          (NVDIMM Firmware Interface Table, see CONFIG_NFIT_ACPI), a
@@ -33,7 +34,35 @@ config BLK_DEV_PMEM
 
          Say Y if you want to use an NVDIMM
 
+config ND_BLK
+       tristate "BLK: Block data window (aperture) device support"
+       default LIBNVDIMM
+       select ND_BTT if BTT
+       help
+         Support NVDIMMs, or other devices, that implement a BLK-mode
+         access capability.  BLK-mode access uses memory-mapped-i/o
+         apertures to access persistent media.
+
+         Say Y if your platform firmware emits an ACPI.NFIT table
+         (CONFIG_ACPI_NFIT), or otherwise exposes BLK-mode
+         capabilities.
+
+config ND_BTT
+       tristate
+
 config BTT
-       def_bool y
+       bool "BTT: Block Translation Table (atomic sector updates)"
+       default y if LIBNVDIMM
+       help
+         The Block Translation Table (BTT) provides atomic sector
+         update semantics for persistent memory devices, so that
+         applications that rely on sector writes not being torn (a
+         guarantee that typical disks provide) can continue to do so.
+         The BTT manifests itself as an alternate personality for an
+         NVDIMM namespace, i.e. a namespace can be in raw mode (pmemX,
+         ndblkX.Y, etc...), or 'sectored' mode, (pmemXs, ndblkX.Ys,
+         etc...).
+
+         Select Y if unsure
 
 endif