ndctl-activate-firmware(1)

ndctl-activate-firmware1

Activate staged firmware on memory devices

Usage

ndctl activate-firmware [<bus-id> <bus-id2> ... <bus-idN>] [<options>]

Examples

Check for any buses that support activation without triggering an activation:

# ndctl activate-firmware all --dry-run
ACPI.NFIT: ndbus1: has no devices that support firmware update.
nfit_test.1: ndbus3: has no devices that support firmware update.
e820: ndbus0: has no devices that support firmware update.
[
  {
    "provider":"nfit_test.0",
    "dev":"ndbus1",
    "scrub_state":"idle",
    "firmware":{
      "activate_method":"suspend",
      "activate_state":"idle"
    },
    "dimms":[
      {
...

Check that a specific bus supports activation without performing an activation:

# ndctl activate-firmware nfit_test.0 --dry-run --force
[
  {
    "provider":"nfit_test.0",
    "dev":"ndbus2",
    "scrub_state":"idle",
    "firmware":{
      "activate_method":"suspend",
      "activate_state":"idle"
    },
    "dimms":[
...
]

The result is equivalent to ndctl list -BFDu upon successful activation.

The ndctl list command can also enumerate the default activation method:

# ndctl list -b nfit_test.0 -BF
[
  {
    "provider":"nfit_test.0",
    "dev":"ndbus2",
    "scrub_state":"idle",
    "firmware":{
      "activate_method":"suspend",
      "activate_state":"idle"
    }
  }
]

Options

-n, --dry-run

Perform all actions related to activation including honoring --idle and --force, but skip the final execution of the activation. The overrides are undone before the command completes. Any failed overrides will be reported as error messages.

-I, --idle

Implied by default, this option controls whether the platform will attempt to increase the completion timeout of all devices in the system and validate that the max completion timeout satisfies the time needed to perform the activation. This validation step can be overridden by specifying --no-idle.

-f, --force

The activation method defaults to the reported "bus.firmware.activate_method" property. When the method is "live" then this --force option is ignored. When the method is "reset" no runtime activation is attempted. When the method is "suspend" this option indicates to the driver to bypass the hibernate cycle to activate firmware. in the bus When the reported "activate_method" is "suspend" the kernel driver may support overriding the suspend requirement and instead issue the firmware-activation live. CAUTION this may lead to undefined system behavior if device completion timeouts are violated for in-flight memory operations.

-v, --verbose

Emit debug messages for the firmware activation procedure

Releases

4 releases since Debian 11 (Bullseye); the text changed 3 times.

  1. 11
  2. 12
  3. 13
  4. Arch

From ndctl 85-1 in Arch Linux 2026-11-01. Parsed by carta from the page's man source.