NVDIMM(4)

NAME
nvdimm - ACPI NVDIMM driver

SYNOPSIS
To load the driver as a module at boot, place the following line in loader.conf(5):

    nvdimm_load="YES"

DESCRIPTION
Note: The nvdimm driver is under development and has some important limitations described below.

The nvdimm driver provides access to Non-Volatile DIMM (NVDIMM) persistent memory devices, which are ACPI-enumerated under the root NVDIMM device with a _HID of ACPI0012 and in the NFIT table.

For each System Physical Address (SPA) Range described by NFIT, a device node /dev/nvdimm_spaNNN is created, where NNN is the SPA position in the table. The node can be used to read(2), write(2), or mmap(2) the device.

Also, for each SPA, the geom provider spaNNN is created, which can be used to create a conventional filesystem (e.g., by newfs(8)) and mount(8) it as any storage volume. Content accessible by /dev/nvdimm_spaNNN and /dev/spaNNN is coherent.

The nvdimm driver has support for reading NVDIMM namespaces (if supported by your hardware and already configured by some other mechanism, e.g., a BIOS configuration screen). The driver will provide a /dev/nvdimm_spaNNNnsMMM device node and spaNNNnsMMM geom provider for each namespace in a SPA, which behave analogously to their full-SPA cousins described above.

SEE ALSO
acpi(4), GEOM(4), geom(8), mount(8), newfs(8), disk(9)

HISTORY
The nvdimm driver first appeared in FreeBSD 12.0.

AUTHORS
-nosplit The nvdimm driver was originally written by Konstantin Belousov <kib@FreeBSD.org>, and then updated by D. Scott Phillips <scottph@FreeBSD.org>.

BUGS
The nvdimm driver does not utilize the Block Window interface, so if a write to an NVDIMM is interrupted due to a system crash or power outage, the corresponding page might be left in a partially updated state.

There is no support for Device-Specific Methods (DSM), used to report and control device health and wearing.

The driver depends on the pmap_largemap(9) pmap interface, which is currently only implemented on amd64. The interface can be only reasonable implemented on 64bit architectures.