NVM
ND: NFIT-Defined / NVDIMM Subsystem
Ray+hue
2016. 8. 2. 10:33
ND: NFIT-Defined / NVDIMM Subsystem
Since 2010 Intel has included non-volatile memory support on a few storage-focused platforms with a feature named ADR (Asynchronous DRAM Refresh). These platforms were mostly targeted at custom applications and never enjoyed standard discovery mechanisms for platform firmware to advertise non-volatile memory capabilities. This now changes with the publication of version 6 of the ACPI specification [1] and its inclusion of a new table for describing platform memory capabilities. The NVDIMM Firmware Interface Table (NFIT), along with new EFI and E820 memory types, enumerates persistent memory ranges, memory-mapped-I/O apertures, physical memory devices (DIMMs), and their associated properties. The ND-subsystem wraps a Linux device driver model around the objects and address boundaries defined in the specification and introduces 3 new drivers. nd_pmem: NFIT enabled version of the existing 'pmem' driver [2] nd_blk: mmio aperture method for accessing persistent storage nd_btt: give persistent memory disk semantics (atomic sector update) See the documentation in patch2 for more details, and there is supplemental documentation on pmem.io [4]. Please review, and patches welcome... For kicking the tires, this release is accompanied by a userspace management library 'ndctl' that includes unit tests (make check) for all of the kernel ABIs. The nfit_test.ko module can be used to explore a sample NFIT topology. [1]: http://www.uefi.org/sites/default/files/resources/ACPI_6.... [2]: https://git.kernel.org/cgit/linux/kernel/git/tip/tip.git/... [3]: https://github.com/pmem/ndctl [4]: http://pmem.io/documents/ -- Dan for the NFIT driver development team Andy Rudoff, Matthew Wilcox, Ross Zwisler, and Vishal Verma
Original Source: https://lwn.net/Articles/640891/