nvme-fw-commit(1)
=================

NAME
----
nvme-fw-commit - Used to verify and commit a firmware image.

SYNOPSIS
--------
[verse]
'nvme' [<global-options>] 'fw commit' <device> [--slot=<slot> | -s <slot>]
			[--action=<action> | -a <action>]
			[--bpid=<boot-partid> | -b <boot-partid>]

DESCRIPTION
-----------
For the NVMe device given, send an nvme Firmware Commit admin command
and provides the results.

The Firmware Commit command is used to verify that a valid firmware
image has been downloaded and to commit that revision to a specific
firmware slot. The host may select the firmware image to commit on the
next controller reset (CC.EN transitions from ‘1’ to ‘0’, a PCI
function level reset, and/or other Controller or NVM Subsystem Reset)
as part of this command. The currently executing firmware revision may
be determined from the Firmware Revision field of the Identify Controller
data structure as indicated in the Firmware Slot Information log page.

No further action is automatically taken to reset the device, which is
usually required to complete the activation process. If your kernel and
driver are recent enough, you can commit the firmware by issuing a
reset through Linux sysfs, for example:

------------
 # echo 1 > /sys/class/nvme/nvme0/device/reset
------------

If your kernel is not recent enough, you will need to remove and add
the device some other way.

The bare 'nvme fw-commit' form (without a space) still works as a deprecated
alias and will be removed in a future major version. New scripts should
use 'nvme fw commit' instead.

OPTIONS
-------
-a <action>::
--action=<action>::
	Commit Action: This field specifies the action that is taken
	on the image downloaded with the Firmware Image Download command
	or on a previously downloaded and placed image.
+
[]
|=================
|Value|Definition
|0 \| 'replace'| Downloaded image replaces the image indicated by the
Firmware Slot field. This image is not activated.
|1 \| 'replace-and-activate'| Downloaded image replaces the image
indicated by the Firmware Slot field. This image is activated at the
next reset.
|2 \| 'set-active'| The image indicated by the Firmware Slot field is
activated at the next reset.
|3 \| 'replace-and-activate-immediate'| The image specified by the
Firmware Slot field is requested to be activated immediately without
reset.
|6 \| 'replace-boot-partition'| Downloaded image replaces the Boot
Partition specified by the Boot Partition ID field.
|7 \| 'activate-boot-partition'| Mark the Boot Partition specified in
the BPID field as active and update BPINFO.ABPID.
|=================

-s <slot>::
--slot=<slot>::
	Firmware Slot: Specifies the firmware slot that shall be used for
	the Commit Action, if applicable. If the value specified is 0h,
	then the controller shall choose the firmware slot (slot 1 – 7)
	to use for the operation.

--bpid=<boot-partid>::
-b <boot-partid>::
	Specifies the Boot partition that shall be used for the Commit Action,
	if applicable (default: 0)

include::global-options.txt[]

EXAMPLES
--------
* commit the last downloaded fw to slot 1.
+
------------
# nvme fw commit /dev/nvme0 --slot=1 --action=2
------------

ALIAS
-----

fw-activate

NVME
----
Part of the nvme-user suite
