---
name: "nvdimm"
section: "4"
platform: "freebsd"
package: "base"
version: "16.0-CURRENT-20261027-61c70dc16a79"
release: "FreeBSD 16.0-CURRENT (2026-10-27)"
platforms: ["freebsd"]
url: "https://new.carta.tech/nvdimm"
---

# nvdimm(4)

ACPI NVDIMM driver

## NAME

**nvdimm** – ACPI NVDIMM driver

## SYNOPSIS

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

```
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)](/read/2.md), [write(2)](/write/2.md), or [mmap(2)](/mmap/2.md) 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)](/newfs/8.md)) and [mount(8)](/mount/8.md) 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)](/acpi/4.md), [GEOM(4)](/GEOM/4.md), [geom(8)](/geom/8.md), [mount(8)](/mount/8.md), [newfs(8)](/newfs/8.md), [disk(9)](/disk/9.md)

## HISTORY

The **nvdimm** driver first appeared in FreeBSD 12.0.

## AUTHORS

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.
