summaryrefslogtreecommitdiffstats
path: root/Documentation/nvme-fw-download.txt
diff options
context:
space:
mode:
Diffstat (limited to 'Documentation/nvme-fw-download.txt')
-rw-r--r--Documentation/nvme-fw-download.txt68
1 files changed, 68 insertions, 0 deletions
diff --git a/Documentation/nvme-fw-download.txt b/Documentation/nvme-fw-download.txt
new file mode 100644
index 0000000..6b11d05
--- /dev/null
+++ b/Documentation/nvme-fw-download.txt
@@ -0,0 +1,68 @@
+nvme-fw-download(1)
+===================
+
+NAME
+----
+nvme-fw-download - Download all or a portion of an nvme firmware image.
+
+SYNOPSIS
+--------
+[verse]
+'nvme fw-download' <device> [--fw=<firmware-file> | -f <firmware-file>]
+ [--xfer=<transfer-size> | -x <transfer-size>]
+ [--offset=<offset> | -o <offset>]
+
+DESCRIPTION
+-----------
+The Firmware Image Download command is used to download all or a portion
+of the firmware image for a future update to the controller. The Firmware
+Image Download command may be submitted while other commands on the Admin
+Submission Queue or I/O Submission Queues are outstanding. The Firmware
+Image Download command copies the new firmware image (in whole or in part)
+to the controller.
+
+The firmware image may be constructed of multiple pieces that
+are individually downloaded with separate Firmware Image Download
+commands. Each Firmware Image Download command includes a Dword
+Offset and Number of Dwords that specify a Dword range. The host
+software shall ensure that firmware pieces do not have Dword ranges
+that overlap. Firmware portions may be submitted out of order to the
+controller.
+
+The new firmware image is not applied as part of the Firmware Image
+Download command. It is applied following a reset, where the image to
+apply and the firmware slot it should be committed to is specified with
+the Firmware Commit command (nvme fw-commit <args>).
+
+OPTIONS
+-------
+-f <firmware-file>::
+--fw=<firmeware-file>::
+ Required argument. This specifies the path to the device's
+ firmware file on your system that will be read by the program
+ and sent to the device.
+
+-x <transfer-size>::
+--xfer=<transfer-size>::
+ This specifies the size to split each transfer. This is useful if
+ the device has a max transfer size requirement for firmware. It
+ defaults to 4k.
+
+-o <offset>::
+--offset=<offset>::
+ This specifies the starting offset in dwords. This is really only
+ useful if your firmware is split in multiple files; otherwise
+ the offset starts at zero and automatically adjusts based on the
+ 'xfer' size given.
+
+EXAMPLES
+--------
+* Transfer a firmware size 128KiB at a time:
++
+------------
+# nvme fw-download /dev/nvme0 --fw=/path/to/nvme.fw --xfer=0x20000
+------------
+
+NVME
+----
+Part of the nvme-user suite