.TH SG_WRITE_BUFFER "8" "February 2015" "sg3_utils\-1.41" SG3_UTILS
.SH NAME
sg_write_buffer \- send SCSI WRITE BUFFER commands
.SH SYNOPSIS
.B sg_write_buffer
[\fI\-\-bpw=CS\fR] [\fI\-\-help\fR] [\fI\-\-id=ID\fR] [\fI\-\-in=FILE\fR]
[\fI\-\-length=LEN\fR] [\fI\-\-mode=MO\fR] [\fI\-\-offset=OFF\fR]
[\fI\-\-raw\fR] [\fI\-\-skip=SKIP\fR] [\fI\-\-specific=MS\fR]
[\fI\-\-timeout=TO\fR] [\fI\-\-verbose\fR] [\fI\-\-version\fR] \fIDEVICE\fR
.SH DESCRIPTION
.\" Add any additional description here
.PP
Sends one or more SCSI WRITE BUFFER commands to \fIDEVICE\fR, along with data
provided by the user. In some cases no data is required, or data can be read
from the file given in the \fI\-\-in=FILE\fR option, or data is read from
stdin when either \fI\-\-raw\fR or \fI\-\-in=\-\fR is given.
.PP
Some WRITE BUFFER command variants do not have associated data to send to the
device. For example "activate_mc" activates deferred microcode that was sent
via prior WRITE BUFFER commands. There is a different method used to download
microcode to SES devices, see the sg_ses_microcode 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. This will be the maximum number
of bytes sent per WRITE BUFFER command. So if \fICS\fR is less than the
effective length then multiple WRITE BUFFER commands are sent, each taking
the next chunk from the read data and increasing the buffer offset field
in the WRITE BUFFER command by the appropriate amount. The default is
a chunk size of 0 which is interpreted as a very large number hence only
one WRITE BUFFER command will be sent. This option should only be used with
modes that "download microcode, with offsets ..."; namely either mode 0x6,
0x7, 0xd or 0xe.
.br
The number in \fICS\fR can optionally be followed by ",act" or ",activate".
In this case after WRITE BUFFER commands have been sent until the
effective length is exhausted another WRITE BUFFER command with its mode
set to "Activate deferred microcode mode" [mode 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 cdb. \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 WRITE BUFFER
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 field in the cdb. \fIMO\fR is a value between
0 (default) and 31 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 '\-hh' option.
.TP
\fB\-o\fR, \fB\-\-offset\fR=\fIOFF\fR
this option sets the BUFFER OFFSET field in the cdb. \fIOFF\fR is a value
between 0 (default) and 2**24\-1 . It is a byte offset.
.TP
\fB\-r\fR, \fB\-\-raw\fR
read data from stdin until an EOF is detected. This data is sent with
the WRITE BUFFER command to \fIDEVICE\fR. The action of this option is the
same as using '\-\-in=\-'.
.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\-\-specific\fR=\fIMS\fR
\fIMS\fR is the MODE SPECIFIC field in the cdb. This is a 3\-bit field
so the values 0 to 7 are accepted. This field was introduced in SPC\-4
revision 32 and can be used to specify additional events that activate
deferred microcode (when \fIMO\fR is 0xD).
.TP
\fB\-t\fR, \fB\-\-timeout\fR=\fITO\fR
\fITO\fR is the command timeout (in seconds) for each WRITE BUFFER command
issued by this utility. Its default value is 300 seconds (5 minutes) and
should only be altered if this is not sufficient.
.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 of WRITE BUFFER command settings for the MODE field.
First is an acronym accepted by the \fIMO\fR argument of this utility.
Following the acronym in square brackets are the corresponding decimal and
hex values that may also be given for \fIMO\fR. The following are listed
in numerical order.
.TP
hd  [0, 0x0]
Combined header and data (obsolete in SPC\-4).
.TP
vendor  [1, 0x1]
Vendor specific.
.TP
data  [2, 0x2]
Data (was called "Write Data" in SPC\-3).
.TP
dmc  [4, 0x4]
Download microcode and activate (was called "Download microcode" in SPC\-3).
.TP
dmc_save  [5, 0x5]
Download microcode, save, and activate (was called "Download microcode and
save" in SPC\-3).
.TP
dmc_offs  [6, 0x6]
Download microcode with offsets and activate (was called "Download microcode
with offsets" in SPC\-3).
.TP
dmc_offs_save  [7, 0x7]
Download microcode with offsets, save, and activate (was called "Download
microcode with offsets and save" in SPC\-3).
.TP
echo  [10, 0xa]
Write data to echo buffer (was called "Echo buffer" in SPC\-3).
.TP
dmc_offs_ev_defer  [13, 0xd]
Download microcode with offsets, select activation events, save, and defer
activate (introduced in SPC\-4).
.TP
dmc_offs_defer  [14, 0xe]
Download microcode with offsets, save, and defer activate (introduced in
SPC\-4).
.TP
activate_mc  [15, 0xf]
Activate deferred microcode (introduced in SPC\-4).
.TP
en_ex  [26, 0x1A]
Enable expander communications protocol and Echo buffer (obsolete in SPC\-4).
.TP
dis_ex  [27, 0x1B]
Disable expander communications protocol (obsolete in SPC\-4).
.TP
deh  [28, 0x1C]
Download application client error history (was called "Download application
log" in SPC\-3).
.SH NOTES
If no \fI\-\-length=LEN\fR is given this utility reads up to 8 MiB of data
from the given file \fIFILE\fR (or stdin). If a larger amount of data is
required then the \fI\-\-length=LEN\fR option should be given.
.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 WRITE
BUFFER commands being sent.
.PP
Attempting to download a microcode/firmware file that is too large may
cause an error to occur in the pass-through layer (i.e. before the
SCSI command is issued). In Linux such error reports can be obscure as
in "pass through os error invalid argument". FreeBSD reports such
errors well to the machine's console but returns a cryptic error message
to this utility.
.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. If the SCSI WRITE BUFFER command is given
values in its cdb (e.g. \fILEN\fR) that are inappropriate (e.g. too large)
then the device should respond with a sense key of ILLEGAL REQUEST and
an additional sense code of INVALID FIELD in CDB. If a WRITE BUFFER
command (or a sequence of them) fails due to device vendor verification
checks then it should respond with a sense key of ILLEGAL REQUEST and
an additional sense code of COMMAND SEQUENCE ERROR.
.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
The following sends new firmware to an enclosure. Sending a 1.5 MB
file in one WRITE BUFFER 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_write_buffer \-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_write_buffer is 0 when it is successful. Otherwise
see the sg3_utils(8) man page.
.SH AUTHORS
Written by Luben Tuikov and Douglas Gilbert.
.SH "REPORTING BUGS"
Report bugs to <dgilbert at interlog dot com>.
.SH COPYRIGHT
Copyright \(co 2006\-2015 Luben Tuikov and 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_read_buffer, sg_ses_microcode(sg3_utils)
