MFC r258071:

Check for special status code from FIRMWARE_ACTIVATE command
signifying that a reboot is required to complete activation
of the requested firmware image.
MFC r260381:

For "nvmecontrol devlist", show namespace sizes in terms of MB instead of
GB to improve granularity of the reporting - especially for namespaces
that are on the order of 1 or 2 GB.
MFC r260382:

For IDENTIFY passthrough commands to Chatham prototype controllers, copy
the spoofed identify data into the user buffer rather than issuing the
command to the controller, since Chatham IDENTIFY data is always spoofed.

While here, fix a bug in the spoofed data for Chatham submission and
completion queue entry sizes.
MFC r263275:

isci: Ensure ATA passthrough commands with RETURN_RESPONSE bit set
translate their response.
MFC r263276:

Base the max number of SG elements on MAXPHYS.
MFC r263277:

nvme: Remove the software progress marker SET_FEATURE command during
controller initialization.

The spec says OS drivers should send this command after controller
initialization completes successfully, but other NVMe OS drivers are
not sending this command.  This change will therefore reduce differences
between the FreeBSD and other OS drivers.
MFC r263278:

nvme:  NVMe specification dictates 4-byte alignment for PRPs (not 8).
MFC r263303:

Update nvme(4) and nvd(4) man pages to clarify the differences between
their respective device nodes.
MFC r263310:

nvme: Close hole where nvd(4) would not be notified of all nvme(4)
instances if modules loaded during boot.
MFC r263311:

nvme: Allocate all MSI resources up front so that we can fall back to
INTx if necessary.