11203 Support for NVMe drive firmware updates

Review Request #2013 — Created June 21, 2019 and submitted — Latest diff uploaded

hans, rm

Adds three new sub-commands to nvmeadm:

  • nvmeadm load-firmware - loads firmware files into the drive's holding area.
  • nvmeadm commit-firmware - takes the firmware in the holding area and commits to a slot.
  • nvmeadm activate-firmware - activates a given slot. The firmware in the active slot is loaded by the drive when it is next reset, and becomes the running firmware.

https://www.illumos.org/issues/11203 has an example of how the commands are used.

This process is used by WDC to update NVMe firmware in their IntelliFlash products during manufacturing process.