# NDCTL User Guide

## Introduction

`ndctl` is a utility for managing the Linux LIBNVDIMM Kernel subsystem. It is designed to work with various non-volatile memory devices (NVDIMMs) from different vendors. The LIBNVDIMM subsystem defines a kernel device model and control message interface for platform NVDIMM resources like those defined by the [ACPI v6.0](http://www.uefi.org/sites/default/files/resources/ACPI_6_0_Errata_A.PDF) NFIT (**N**VDIMM **F**irmware **I**nterface **T**able). The latest [ACPI ](http://www.uefi.org/specifications)and [UEFI ](http://www.uefi.org/specifications)specifications can be found at [uefi.org](http://www.uefi.org). Operations supported by `ndctl` include:

* Provisioning capacity (namespaces)
* Enumerating Devices
* Enabling and Disabling NVDIMMs, Regions, and Namespaces
* Managing NVDIMM Labels

## What's new in v70

This release incorporates functionality up to the 5.9 kernel.

Highlights include support for the new firmware activation facility, a new 'split-acpi' command in 'daxctl' to aid testing and debugging, and other minor fixes.

Commands:&#x20;

* update-firmware: add support for firmware activation&#x20;
* list: updates for firmware activation&#x20;
* activate-firmware: new command to trigger firmware activation&#x20;
* daxctl-split-acpi: split ACPI tables for debugging

Tests:&#x20;

* revoke-devmem: new test to validate iomem protections&#x20;
* update-firmware: update to test firmware activation

APIs:&#x20;

* ndctl\_bus\_activate\_firmware&#x20;
* ndctl\_bus\_clear\_fw\_activate\_noidle&#x20;
* ndctl\_bus\_clear\_fw\_activate\_nosuspend&#x20;
* ndctl\_bus\_get\_fw\_activate\_method&#x20;
* ndctl\_bus\_get\_fw\_activate\_state&#x20;
* ndctl\_bus\_set\_fw\_activate\_noidle&#x20;
* ndctl\_bus\_set\_fw\_activate\_nosuspend&#x20;
* ndctl\_dimm\_fw\_activate\_arm&#x20;
* ndctl\_dimm\_fw\_activate\_disarm&#x20;
* ndctl\_dimm\_get\_fw\_activate\_result&#x20;
* ndctl\_dimm\_get\_fw\_activate\_state
