We are actively iterating on adding NVDIMM support to FreeBSD. To test the program without actual NVDIMM hardware, we use the newest version of QEMU which has support of virtual NVDIMM and is not yet available in ports.


    1. Install build dependencies
      pkg install git python pkgconf bison gmake
    2. Clone source code and update dtc module
      git clone cd qemu git submodule update --init dtc
    3. Build and install
      mkdir build cd build ../configure gmake gmake check gmake install
      The source code (including build) folder can then be deleted after the installation.
    4. Prepare an image
      You can get a FreeBSD snapshot build of 12-CURRENT here, or build your own ones.
    5. Start QEMU and test the functionality
      qemu-system-x86_64 -hda freebsd.img -boot d -machine pc,nvdimm -m 32G,maxmem=100G,slots=10 -object memory-backend-ram,id=mem2,size=10G -device nvdimm,memdev=mem2,id=nv2,label-size=128k
      (In QEMU:)
      acpidump -t | less

 – Contributed by Guangyuan (Charlie) Yang