xref: /linux/drivers/nvdimm/Kconfig (revision 047fc8a1f9a6330eacc80374dff087e20dc2304b)
118da2c9eSDan Williamsmenuconfig LIBNVDIMM
2b94d5230SDan Williams	tristate "NVDIMM (Non-Volatile Memory Device) Support"
3b94d5230SDan Williams	depends on PHYS_ADDR_T_64BIT
4b94d5230SDan Williams	depends on BLK_DEV
5b94d5230SDan Williams	help
6b94d5230SDan Williams	  Generic support for non-volatile memory devices including
7b94d5230SDan Williams	  ACPI-6-NFIT defined resources.  On platforms that define an
8b94d5230SDan Williams	  NFIT, or otherwise can discover NVDIMM resources, a libnvdimm
9b94d5230SDan Williams	  bus is registered to advertise PMEM (persistent memory)
10b94d5230SDan Williams	  namespaces (/dev/pmemX) and BLK (sliding mmio window(s))
115212e11fSVishal Verma	  namespaces (/dev/ndblkX.Y). A PMEM namespace refers to a
125212e11fSVishal Verma	  memory resource that may span multiple DIMMs and support DAX
135212e11fSVishal Verma	  (see CONFIG_DAX).  A BLK namespace refers to an NVDIMM control
145212e11fSVishal Verma	  region which exposes an mmio register set for windowed access
155212e11fSVishal Verma	  mode to non-volatile memory.
1618da2c9eSDan Williams
1718da2c9eSDan Williamsif LIBNVDIMM
1818da2c9eSDan Williams
1918da2c9eSDan Williamsconfig BLK_DEV_PMEM
2018da2c9eSDan Williams	tristate "PMEM: Persistent memory block device support"
2118da2c9eSDan Williams	default LIBNVDIMM
2218da2c9eSDan Williams	depends on HAS_IOMEM
235212e11fSVishal Verma	select ND_BTT if BTT
2418da2c9eSDan Williams	help
2518da2c9eSDan Williams	  Memory ranges for PMEM are described by either an NFIT
2618da2c9eSDan Williams	  (NVDIMM Firmware Interface Table, see CONFIG_NFIT_ACPI), a
2718da2c9eSDan Williams	  non-standard OEM-specific E820 memory type (type-12, see
2818da2c9eSDan Williams	  CONFIG_X86_PMEM_LEGACY), or it is manually specified by the
2918da2c9eSDan Williams	  'memmap=nn[KMG]!ss[KMG]' kernel command line (see
3018da2c9eSDan Williams	  Documentation/kernel-parameters.txt).  This driver converts
3118da2c9eSDan Williams	  these persistent memory ranges into block devices that are
3218da2c9eSDan Williams	  capable of DAX (direct-access) file system mappings.  See
3318da2c9eSDan Williams	  Documentation/nvdimm/nvdimm.txt for more details.
3418da2c9eSDan Williams
3518da2c9eSDan Williams	  Say Y if you want to use an NVDIMM
3618da2c9eSDan Williams
37*047fc8a1SRoss Zwislerconfig ND_BLK
38*047fc8a1SRoss Zwisler	tristate "BLK: Block data window (aperture) device support"
39*047fc8a1SRoss Zwisler	default LIBNVDIMM
40*047fc8a1SRoss Zwisler	select ND_BTT if BTT
41*047fc8a1SRoss Zwisler	help
42*047fc8a1SRoss Zwisler	  Support NVDIMMs, or other devices, that implement a BLK-mode
43*047fc8a1SRoss Zwisler	  access capability.  BLK-mode access uses memory-mapped-i/o
44*047fc8a1SRoss Zwisler	  apertures to access persistent media.
45*047fc8a1SRoss Zwisler
46*047fc8a1SRoss Zwisler	  Say Y if your platform firmware emits an ACPI.NFIT table
47*047fc8a1SRoss Zwisler	  (CONFIG_ACPI_NFIT), or otherwise exposes BLK-mode
48*047fc8a1SRoss Zwisler	  capabilities.
49*047fc8a1SRoss Zwisler
505212e11fSVishal Vermaconfig ND_BTT
515212e11fSVishal Verma	tristate
525212e11fSVishal Verma
538c2f7e86SDan Williamsconfig BTT
545212e11fSVishal Verma	bool "BTT: Block Translation Table (atomic sector updates)"
555212e11fSVishal Verma	default y if LIBNVDIMM
565212e11fSVishal Verma	help
575212e11fSVishal Verma	  The Block Translation Table (BTT) provides atomic sector
585212e11fSVishal Verma	  update semantics for persistent memory devices, so that
595212e11fSVishal Verma	  applications that rely on sector writes not being torn (a
605212e11fSVishal Verma	  guarantee that typical disks provide) can continue to do so.
615212e11fSVishal Verma	  The BTT manifests itself as an alternate personality for an
625212e11fSVishal Verma	  NVDIMM namespace, i.e. a namespace can be in raw mode (pmemX,
635212e11fSVishal Verma	  ndblkX.Y, etc...), or 'sectored' mode, (pmemXs, ndblkX.Ys,
645212e11fSVishal Verma	  etc...).
655212e11fSVishal Verma
665212e11fSVishal Verma	  Select Y if unsure
678c2f7e86SDan Williams
6818da2c9eSDan Williamsendif
69