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
	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_BTT
	tristate

config BTT
	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
