Linux 4.2.1
[linux/fpc-iii.git] / drivers / nvdimm / Kconfig
blob72226acb5c0fb8af7b72b88fd7b8f46329095626
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.
17 if LIBNVDIMM
19 config BLK_DEV_PMEM
20         tristate "PMEM: Persistent memory block device support"
21         default LIBNVDIMM
22         depends on HAS_IOMEM
23         select ND_BTT if BTT
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/kernel-parameters.txt).  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.
35           Say Y if you want to use an NVDIMM
37 config ND_BLK
38         tristate "BLK: Block data window (aperture) device support"
39         default LIBNVDIMM
40         select ND_BTT if BTT
41         help
42           Support NVDIMMs, or other devices, that implement a BLK-mode
43           access capability.  BLK-mode access uses memory-mapped-i/o
44           apertures to access persistent media.
46           Say Y if your platform firmware emits an ACPI.NFIT table
47           (CONFIG_ACPI_NFIT), or otherwise exposes BLK-mode
48           capabilities.
50 config ND_BTT
51         tristate
53 config BTT
54         bool "BTT: Block Translation Table (atomic sector updates)"
55         default y if LIBNVDIMM
56         help
57           The Block Translation Table (BTT) provides atomic sector
58           update semantics for persistent memory devices, so that
59           applications that rely on sector writes not being torn (a
60           guarantee that typical disks provide) can continue to do so.
61           The BTT manifests itself as an alternate personality for an
62           NVDIMM namespace, i.e. a namespace can be in raw mode (pmemX,
63           ndblkX.Y, etc...), or 'sectored' mode, (pmemXs, ndblkX.Ys,
64           etc...).
66           Select Y if unsure
68 endif