.TH SG_SES_MICROCODE "8" "October 2014" "sg3_utils\-1.40" SG3_UTILS
.SH NAME
sg_ses_microcode \- send microcode to a SCSI enclosure
.SH SYNOPSIS
.B sg_ses_microcode
[\fI\-\-bpw=CS\fR] [\fI\-\-help\fR] [\fI\-\-id=ID\fR] [\fI\-\-in=FILE\fR]
[\fI\-\-length=LEN\fR] [\fI\-\-mode=MO\fR] [\fI\-\-non\fR]
[\fI\-\-offset=OFF\fR] [\fI\-\-skip=SKIP\fR] [\fI\-\-subenc=MS\fR]
[\fI\-\-tlength=TLEN\fR] [\fI\-\-verbose\fR] [\fI\-\-version\fR] \fIDEVICE\fR
.SH DESCRIPTION
.\" Add any additional description here
.PP
This utility attempts to download microcode to an enclosure (or one of its
sub\-enclosures) associated with the \fIDEVICE\fR. The process for doing
this is defined in the SCSI Enclosure Services (SES) standards and drafts
maintained by the T10 committee.
.PP
The process is to send one or more sequences containing a SCSI SEND
DIAGNOSTIC command followed optionally by a RECEIVE DIAGNOSTIC RESULTS
command. The former sends a Download microcode Control diagnostic
page (dpage) and the latter fetches a Download microcode status dpage which
can be viewed as a report on the former command.
.PP
The default action (i.e. when the \fI\-\-mode=MO\fR option is not given)
is to fetch the Download microcode status dpage and decode it. This does
not require the microcode (firmware) itself so the \fI\-\-in=FILE\fR option
is not required.
.PP
The most recent reference for this utility is the draft SCSI Enclosure
Services 3 (SES\-3) document T10/2149\-D Revision 7 at http://www.t10.org .
Existing standards for SES and SES\-2 are ANSI INCITS 305\-1998 and ANSI
INCITS 448\-2008 respectively.
.PP
Most other support for SES in this package (apart from downloading
microcode) can be found in the sg_ses utility. Another way of downloading
firmware to a SCSI device is with the WRITE BUFFER command defined in
SPC\-4, see the sg_write_buffer utility.
.SH OPTIONS
Arguments to long options are mandatory for short options as well.
.TP
\fB\-b\fR, \fB\-\-bpw\fR=\fICS\fR
where \fICS\fR is the chunk size in bytes and should be a multiple of 4.
This will be the maximum number of bytes sent per SEND DIAGNOSTIC command.
So if \fICS\fR is less than the effective length of the microcode then
multiple SEND DIAGNOSTIC commands are sent, each taking the next chunk
from the read data and increasing the buffer offset field in the Download
microcode control dpage by the appropriate amount. The default is
a chunk size of 0 which is interpreted as a very large number hence only
one SEND DIAGNOSTIC command will be sent.
.br
The number in \fICS\fR can optionally be followed by ",act" or ",activate".
In this case after the microcode has been successfully sent to the
\fIDEVICE\fR, an additional Download microcode control dpage with its mode
set to "Activate deferred microcode" [0xf] is sent.
.TP
\fB\-h\fR, \fB\-\-help\fR
output the usage message then exit. If used multiple times also prints
the mode names and their acronyms.
.TP
\fB\-i\fR, \fB\-\-id\fR=\fIID\fR
this option sets the BUFFER ID field in the Download microcode control
dpage. \fIID\fR is a value between 0 (default) and 255 inclusive.
.TP
\fB\-I\fR, \fB\-\-in\fR=\fIFILE\fR
read data from file \fIFILE\fR that will be sent with the SEND DIAGNOSTIC
command.  If \fIFILE\fR is '\-' then stdin is read until an EOF is
detected (this is the same action as \fI\-\-raw\fR). Data is read from
the beginning of \fIFILE\fR except in the case when it is a regular file
and the \fI\-\-skip=SKIP\fR option is given.
.TP
\fB\-l\fR, \fB\-\-length\fR=\fILEN\fR
where \fILEN\fR is the length, in bytes, of data to be written to the device.
If not given (and the length cannot be deduced from \fI\-\-in=FILE\fR or
\fI\-\-raw\fR) then defaults to zero. If the option is given and the length
deduced from \fI\-\-in=FILE\fR or \fI\-\-raw\fR is less (or no data is
provided), then bytes of 0xff are used as fill bytes.
.TP
\fB\-m\fR, \fB\-\-mode\fR=\fIMO\fR
this option sets the MODE. \fIMO\fR is a value between
0 (which is dmc_status and the default) and 255 inclusive. Alternatively
an abbreviation can be given. See the MODES section below. To list the
available mode abbreviations at run time give an invalid
one (e.g. '\-\-mode=xxx') or use the '\-h' option.
.TP
\fB\-N\fR, \fB\-\-non\fR
allow for non\-standard implementations that reset their Download microcode
engine after a RECEIVE DIAGNOSTIC RESULTS command with the Download microcode
status dpage is sent. When this option is given sending that command and
dpage combination is avoided unless an error has already occurred.
.TP
\fB\-o\fR, \fB\-\-offset\fR=\fIOFF\fR
this option sets the BUFFER OFFSET field in the Download microcode control
dpage. \fIOFF\fR is a value between 0 (default) and 2**32\-1 . It is a
byte offset.
.TP
\fB\-s\fR, \fB\-\-skip\fR=\fISKIP\fR
this option is only active when \fI\-\-in=FILE\fR is given and \fIFILE\fR is
a regular file, rather than stdin. Data is read starting at byte offset
\fISKIP\fR to the end of file (or the amount given by \fI\-\-length=LEN\fR).
If not given the byte offset defaults to 0 (i.e. the start of the file).
.TP
\fB\-S\fR, \fB\-\-subenc\fR=\fISEID\fR
\fISEID\fR is the subenclosure identify. It defaults to 0 which is the
primary enclosure identifier.
.TP
\fB\-t\fR, \fB\-\-tlength\fR=\fITLEN\fR
\fITLEN\fR is the total length in bytes of the microcode to be (or being)
downloaded. It defaults to 0 which is okay in most cases. This option is
only needed when sections of microcode and being sent in separate invocations
of this utility.
.TP
\fB\-v\fR, \fB\-\-verbose\fR
increase the level of verbosity, (i.e. debug output).
.TP
\fB\-V\fR, \fB\-\-version\fR
print the version string and then exit.
.SH MODES
Following is a list accepted by the \fIMO\fR argument of this utility.
First shown is an acronym followed in square brackets by the corresponding
decimal and hex values that may also be given for \fIMO\fR.
.TP
dmc_status  [0, 0x0]
Use RECEIVE DIAGNOSTIC RESULTS to fetch the Download microcode status dpage
and print it out.
.TP
dmc_offs  [6, 0x6]
Download microcode with offsets and activate.
.TP
dmc_offs_save  [7, 0x7]
Download microcode with offsets, save, and activate.
.TP
dmc_offs_defer  [14, 0xe]
Download microcode with offsets, save, and defer activate.
.TP
activate_mc  [15, 0xf]
Activate deferred microcode. There is no follow-up RECEIVE DIAGNOSTIC RESULTS
to fetch the Download microcode status dpage since the \fIDEVICE\fR might be
resetting.
.PP
Apart from dmc_status, these are placed in the Download microcode mode
field in the Download microcode control dpage. In the case of dmc_status
the Download microcode status dpage is fetch with the RECEIVE DIAGNOSTIC
RESULTS command and decoded.
.SH WHEN THE DOWNLOAD FAILS
Firstly, if it succeeds, this utility should stay silent and return.
Typically vendors will change the "revision" string (which is 4 characters
long) whenever they release new firmware. That can be seen in the response
to a SCSI INQUIRY command, for example by using the sg_inq utility.
It is possible that the device needs to be power cycled before the new
microcode becomes active. Also if mode dmc_offs_defer [0xe] is used to
download the microcode, then another invocation with activate_mc may
be needed.
.PP
If something goes wrong, there will typically be messages printed out
by this utility. The first thing to check is the microcode (firmware)
file itself. Is it designed for the device model; has it been corrupted,
and if downgrading (i.e. trying to re-instate older firmware), does
the vendor allow that?
.PP
Getting new firmware on a device is a delicate operation that is not
always well defined by T10's standards and drafts. One might speculate
that they are deliberately vague. In testing this utility one vendor's
interpretation of the standard was somewhat surprising. The \fI\-\-non\fR
option was added to cope with their interpretation. So if the above
suggestions don't help, try adding the \fI\-\-non\fR option.
.SH NOTES
This utility can handle a maximum size of 128 MB of microcode which
should be sufficient for most purposes. In a system that is memory
constrained, such large allocations of memory may fail.
.PP
The user should be aware that most operating systems have limits on the
amount of data that can be sent with one SCSI command. In Linux this
depends on the pass through mechanism used (e.g. block SG_IO or the sg
driver) and various setting in sysfs in the Linux lk 2.6/3
series (e.g. /sys/block/sda/queue/max_sectors_kb). Devices (i.e. logical
units) also typically have limits on the maximum amount of data they can
handle in one command. These two limitations suggest that modes
containing the word "offset" together with the \fI\-\-bpw=CS\fR option
are required as firmware files get larger and larger. And \fICS\fR
can be quite small, for example 4096 bytes, resulting in many SEND
DIAGNOSTIC commands being sent.
.PP
The exact error from the non\-standard implementation was a sense key of
ILLEGAL REQUEST and an asc/ascq code of 0x26,0x0 which is "Invalid field in
parameter list". If that is seen try again with the \fI\-\-non\fR option.
.PP
Downloading incorrect microcode into a device has the ability to render
that device inoperable. One would hope that the device vendor verifies
the data before activating it.
.PP
A long (operating system) timeout of 7200 seconds is set on each SEND
DIAGNOSTIC command.
.PP
All numbers given with options are assumed to be decimal.
Alternatively numerical values can be given in hexadecimal preceded by
either "0x" or "0X" (or has a trailing "h" or "H").
.SH EXAMPLES
If no microcode/firmware file is given then this utility fetches and decodes
the Download microcode status dpage which could possibly show another
initiator in the process of updating the microcode. Even if that is
happening, fetching the status page should not cause any problems:
.PP
  sg_ses_microcode /dev/sg3
.br
Download microcode status diagnostic page:
.br
  number of secondary subenclosures: 0
.br
  generation code: 0x0
.br
   subenclosure identifier: 0 [primary]
.br
     download microcode status: No download microcode operation in progress [0x0]
.br
     download microcode additional status: 0x0
.br
     download microcode maximum size: 1048576 bytes
.br
     download microcode expected buffer id: 0x0
.br
     download microcode expected buffer id offset: 0
.PP
The following sends new microcode/firmware to an enclosure. Sending a 1.5 MB
file in one command caused the enclosure to lock up temporarily and did
not update the firmware. Breaking the firmware file into 4 KB chunks (an
educated guess) was more successful:
.PP
  sg_ses_microcode \-b 4k \-m dmc_offs_save \-I firmware.bin /dev/sg4
.PP
The firmware update occurred in the following enclosure power cycle. With
a modern enclosure the Extended Inquiry VPD page gives indications in which
situations a firmware upgrade will take place.
.SH EXIT STATUS
The exit status of sg_ses_microcode is 0 when it is successful. Otherwise
see the sg3_utils(8) man page.
.SH AUTHORS
Written by Douglas Gilbert.
.SH "REPORTING BUGS"
Report bugs to <dgilbert at interlog dot com>.
.SH COPYRIGHT
Copyright \(co 2014 Douglas Gilbert
.br
This software is distributed under a FreeBSD license. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
.SH "SEE ALSO"
.B sg_ses, sg_write_buffer(sg3_utils)
