12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091 |
- menuconfig LIBNVDIMM
- tristate "NVDIMM (Non-Volatile Memory Device) Support"
- depends on PHYS_ADDR_T_64BIT
- depends on BLK_DEV
- help
- Generic support for non-volatile memory devices including
- ACPI-6-NFIT defined resources. On platforms that define an
- 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/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
- config BLK_DEV_PMEM
- tristate "PMEM: Persistent memory block device support"
- default LIBNVDIMM
- depends on HAS_IOMEM
- select ND_BTT if BTT
- select ND_PFN if NVDIMM_PFN
- help
- Memory ranges for PMEM are described by either an NFIT
- (NVDIMM Firmware Interface Table, see CONFIG_NFIT_ACPI), a
- non-standard OEM-specific E820 memory type (type-12, see
- CONFIG_X86_PMEM_LEGACY), or it is manually specified by the
- 'memmap=nn[KMG]!ss[KMG]' kernel command line (see
- Documentation/kernel-parameters.txt). This driver converts
- these persistent memory ranges into block devices that are
- capable of DAX (direct-access) file system mappings. See
- Documentation/nvdimm/nvdimm.txt for more details.
- 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_CLAIM
- bool
- config ND_BTT
- tristate
- config BTT
- bool "BTT: Block Translation Table (atomic sector updates)"
- default y if LIBNVDIMM
- select ND_CLAIM
- 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
- config ND_PFN
- tristate
- config NVDIMM_PFN
- bool "PFN: Map persistent (device) memory"
- default LIBNVDIMM
- depends on ZONE_DEVICE
- select ND_CLAIM
- help
- Map persistent memory, i.e. advertise it to the memory
- management sub-system. By default persistent memory does
- not support direct I/O, RDMA, or any other usage that
- requires a 'struct page' to mediate an I/O request. This
- driver allocates and initializes the infrastructure needed
- to support those use cases.
- Select Y if unsure
- endif
|