aboutsummaryrefslogtreecommitdiff
path: root/doc
diff options
context:
space:
mode:
authorDouglas Gilbert <dgilbert@interlog.com>2018-01-13 06:38:53 +0000
committerDouglas Gilbert <dgilbert@interlog.com>2018-01-13 06:38:53 +0000
commit239d147229acac3d3504360a38cd5ec8505d0d5e (patch)
tree308272c943a93228ac732eff81e7f94840d6e76e /doc
parent605b21190ce9af77ee3533e12b2e59a7f883ffee (diff)
downloadsg3_utils-239d147229acac3d3504360a38cd5ec8505d0d5e.tar.gz
sg_ses_microcode: add --dry-run and --ealsd; sg_write_buffer: add --dry-run
git-svn-id: https://svn.bingwo.ca/repos/sg3_utils/trunk@744 6180dd3e-e324-4e3e-922d-17de1ae2f315
Diffstat (limited to 'doc')
-rw-r--r--doc/sg3_utils.84
-rw-r--r--doc/sg_format.82
-rw-r--r--doc/sg_logs.82
-rw-r--r--doc/sg_persist.88
-rw-r--r--doc/sg_sat_identify.855
-rw-r--r--doc/sg_ses.88
-rw-r--r--doc/sg_ses_microcode.865
-rw-r--r--doc/sg_test_rwbuf.819
-rw-r--r--doc/sg_verify.86
-rw-r--r--doc/sg_write_buffer.823
-rw-r--r--doc/sg_write_x.82
11 files changed, 145 insertions, 49 deletions
diff --git a/doc/sg3_utils.8 b/doc/sg3_utils.8
index 93b4e1bb..7238303b 100644
--- a/doc/sg3_utils.8
+++ b/doc/sg3_utils.8
@@ -329,7 +329,7 @@ OS system calls that fail often return a small integer number to help
indicate what the error is. For example in Unix the inability of a system
call to allocate memory returns (in 'errno') ENOMEM which often is
associated with the integer 12. So 62 (i.e. '50 + 12') may be returned
-by a utility in this case. It is also possible that a utiity in this
+by a utility in this case. It is also possible that a utility in this
package reports 50+ENOMEM when it can't allocate memory, not necessarily
from an OS system call. In recent versions of Linux the file showing the
mapping between symbolic constants (e.g. ENOMEM) and the corresponding
@@ -448,7 +448,7 @@ usually sent to stderr so as to not interfere with the output from this
option.
.br
Some utilities that consume data to send to the \fIDEVICE\fR along with the
-SCSI command, use this option. Alernatively the \fI\-\-in=FN\fR option causes
+SCSI command, use this option. Alternatively the \fI\-\-in=FN\fR option causes
\fIDEVICE\fR to be ignored and the response data (to be decoded) fetched
from a file named \fIFN\fR. In these cases this option may indicate that
binary data can be read from stdin or from a nominated file (e.g. \fIFN\fR).
diff --git a/doc/sg_format.8 b/doc/sg_format.8
index 449fa605..5d0d22e5 100644
--- a/doc/sg_format.8
+++ b/doc/sg_format.8
@@ -138,7 +138,7 @@ which no data has been written to, since the fast format. When \fIFFMT\fR
is 1 the read operation should return "unspecified logical block data" and
complete without error. When \fIFFMT\fR is 2 the read operation should
yield check condition status with a sense key set to hardware error, medium
-error or command aborted. See SBC\-4 revsion 10 section 4.35 for more
+error or command aborted. See SBC\-4 revision 10 section 4.35 for more
details.
.TP
\fB\-f\fR, \fB\-\-fmtpinfo\fR=\fIFPI\fR
diff --git a/doc/sg_logs.8 b/doc/sg_logs.8
index 72212829..04bb4f56 100644
--- a/doc/sg_logs.8
+++ b/doc/sg_logs.8
@@ -50,7 +50,7 @@ file (named \fIFN\fR) and decodes it as if it were a response from a LOG
SENSE command. The third form shows the options that can be used to send a
LOG SELECT command. The fourth form groups various management options.
The last form shows the older, deprecated command line interface which is
-maintaimed for backward compatibility.
+maintained for backward compatibility.
.SH OPTIONS
Arguments to long options are mandatory for short options as well.
The options are arranged in alphabetical order based on the long
diff --git a/doc/sg_persist.8 b/doc/sg_persist.8
index ca0eb5db..167d2665 100644
--- a/doc/sg_persist.8
+++ b/doc/sg_persist.8
@@ -1,4 +1,4 @@
-.TH SG_PERSIST "8" "November 2017" "sg3_utils\-1.43" SG3_UTILS
+.TH SG_PERSIST "8" "January 2018" "sg3_utils\-1.43" SG3_UTILS
.SH NAME
sg_persist \- use SCSI PERSISTENT RESERVE command to access registrations
and reservations
@@ -237,7 +237,7 @@ The \fITIDS\fR argument can take one of several forms. It can be a
comma (or single space) separated list of ASCII hex bytes representing
a single TransportID as defined in SPC\-4. They are usually 24 bytes
long apart from in iSCSI. The \fITIDS\fR argument may be a transport
-specific form (e.g. "sas,5000c50005b32001" is clearer than and equivalent
+specific form (e.g. "sas,5000c50005b32001" is clearer than an equivalent
to the hex byte form: "6,0,0,0,5,0,c5,0,5,b3,20,1"). The \fITIDS\fR argument
may be "\-" in which case one or more TransportIDs can be read from stdin.
The \fITIDS\fR argument may be of the form "file=<name>" in which case
@@ -305,7 +305,7 @@ command line invocation of sg_persist with "LANG=en_US.utf\-8" for example.
Alternatively the \fITIDS\fR argument may specify a file (or pipe) from which
one or more TransportIDs may be read. If the \fITIDS\fR argument is "\-"
then stdin (standard input) is read. If the \fITIDS\fR argument is of the
-form "file=<name>" than a file called <name> is read.
+form "file=<name>" then a file called <name> is read.
A valid SPC\-4 TransportID is built from the transport specific string
outlined in the previous paragraphs. The parsing of the data read is
relatively simple. Empty lines are ignored. Everything from and including
@@ -423,7 +423,7 @@ Written by Douglas Gilbert
.SH "REPORTING BUGS"
Report bugs to <dgilbert at interlog dot com>.
.SH COPYRIGHT
-Copyright \(co 2004\-2017 Douglas Gilbert
+Copyright \(co 2004\-2018 Douglas Gilbert
.br
This software is distributed under the GPL version 2. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
diff --git a/doc/sg_sat_identify.8 b/doc/sg_sat_identify.8
index db05d0f2..aee34674 100644
--- a/doc/sg_sat_identify.8
+++ b/doc/sg_sat_identify.8
@@ -1,4 +1,4 @@
-.TH SG_SAT_IDENTIFY "8" "October 2017" "sg3_utils\-1.43" SG3_UTILS
+.TH SG_SAT_IDENTIFY "8" "January 2018" "sg3_utils\-1.43" SG3_UTILS
.SH NAME
sg_sat_identify \- send ATA IDENTIFY DEVICE command via SCSI to ATA
Translation (SAT) layer
@@ -24,7 +24,7 @@ byte "cdb" and the other with a 12 byte cdb. This utility defaults to using
the 16 byte cdb variant. SAT\-4 revision 5 added a SCSI "ATA
PASS\-THROUGH(32)" command. SAT\-2 and SAT\-3 are now also standards: SAT\-2
ANSI INCITS 465\-2010 and SAT\3 ANSI INCITS 517-2015 . The SAT\-4 project
-is ongiong and the most recent draft is sat4r05c.pdf .
+is near standardization and the most recent draft is sat4r06.pdf .
.SH OPTIONS
Arguments to long options are mandatory for short options as well.
.TP
@@ -102,6 +102,55 @@ does not clash with anything so it is a better choice.
.PP
Prior to Linux kernel 2.6.29 USB mass storage limited sense data to 18 bytes
which made the \fB\-\-ck_cond\fR option yield strange (truncated) results.
+.SH EXAMPLES
+These examples use Linux device names and a Linux utility called hdparm. For
+suitable device names in other supported Operating Systems see the
+sg3_utils(8) man page.
+.PP
+In this example /dev/sdb is a SATA 2.5" disk connected via a USB (type C
+connector) dongle that implements the UAS (USB attached SCSI) protocol (also
+known as UASP). UAS is a vast improvement over the USB mass storage class.
+.PP
+ # sg_sat_identify /dev/sdb
+.br
+Response for IDENTIFY DEVICE ATA command:
+.br
+ 00 0c5a 3fff c837 0010 0000 0000 003f 0000 .Z ?. .7 .. .. .. .? ..
+.br
+ ....
+.PP
+The hexadecimal ASCII (with plain ASCII to the right) output is abridged
+to a single line (i.e. the first 16 bytes (or 8 words)). Now to decode
+some of that ATA Identify response. First sg_inq can decode a few strings:
+.PP
+ # sg_sat_identify \-HHHH /dev/sdb | sg_inq \-\-ata \-I \-
+.br
+ATA device: model, serial number and firmware revision:
+.br
+ ST9500420AS 5VJCE6R7 0002SDM1
+.PP
+For a lot more details, the hdparm utility is a good choice:
+.PP
+ # sg_sat_identify \-HHH /dev/sdb | hdparm \-\-Istdin
+.br
+ATA device, with non\-removable media
+.br
+ Model Number: ST9500420AS
+.br
+ Serial Number: 5VJCE6R7
+.br
+ Firmware Revision: 0002SDM1
+.br
+ Transport: Serial
+.br
+Standards:
+.br
+ ....
+.PP
+There are about 80 more lines of details decoded by hdparm in this case.
+Notice the difference in the number of "H" options: three give an unadorned
+hex output arranged in (little endian) words (i.e. 16 bits each) while
+four "H" options give an unadorned hex output in bytes (i.e. 8 bits each).
.SH EXIT STATUS
The exit status of sg_sat_identify is 0 when it is successful. Otherwise
see the sg3_utils(8) man page.
@@ -110,7 +159,7 @@ Written by Douglas Gilbert
.SH "REPORTING BUGS"
Report bugs to <dgilbert at interlog dot com>.
.SH COPYRIGHT
-Copyright \(co 2006\-2017 Douglas Gilbert
+Copyright \(co 2006\-2018 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.
diff --git a/doc/sg_ses.8 b/doc/sg_ses.8
index bef92cfe..56234047 100644
--- a/doc/sg_ses.8
+++ b/doc/sg_ses.8
@@ -248,8 +248,10 @@ the read\-mask\-modify\-write sequence.
DIAGNOSTIC RESULTS commands sent by the utility. It represents the maximum
size of data the SES device can return (in bytes). It cannot exceed 65535
and defaults to 65532 (bytes). Some systems may not permit such large sizes
-hence the need for this option. If \fILEN\fR is set to 0 then the default
-size is used.
+hence the need for this option. If \fILEN\fR is less than 0 or greater than
+65535 then an error is generated. If \fILEN\fR is 0 then the default value
+is used, otherwise if it is less than 4 then it is ignored (and a warning is
+sent to stderr).
.TP
\fB\-n\fR, \fB\-\-nickname\fR=\fISEN\fR
where \fISEN\fR is the new Subenclosure Nickname. Only the first 32
@@ -381,7 +383,7 @@ individual index then the option is equivalent to \fI\-\-index=0,II\fR. When
.PP
Wherever an individual index is applicable, it can be replaced by an
individual index range. It has the form: <first_ii>-<last_ii>. For
-example: '3\-5' will select individial indexes 3, 4 and 5 .
+example: '3\-5' will select individual indexes 3, 4 and 5 .
.PP
To cope with vendor specific Element types (which should be in the range 128
to 255) the Element type can be given as a number with a leading underscore.
diff --git a/doc/sg_ses_microcode.8 b/doc/sg_ses_microcode.8
index 3e4a9d27..0f486b03 100644
--- a/doc/sg_ses_microcode.8
+++ b/doc/sg_ses_microcode.8
@@ -1,12 +1,13 @@
-.TH SG_SES_MICROCODE "8" "October 2014" "sg3_utils\-1.40" SG3_UTILS
+.TH SG_SES_MICROCODE "8" "January 2018" "sg3_utils\-1.43" 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
+[\fI\-\-bpw=CS\fR] [\fI\-\-dry\-run\fR] [\fI\-\-ealsd\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
@@ -53,6 +54,33 @@ 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\-d\fR, \fB\-\-dry\-run\fR
+the actual calls to perform SEND DIAGNOSTIC and RECEIVE DIAGNOSTIC RESULTS
+commands are skipped when this option is given. No SCSI commands are sent
+to the \fIDEVICE\fR but it is still opened and is required to be given.
+A dummy device such as /dev/null (in Unix) can be used.
+.br
+This utility expects a "sensible" response to the RECEIVE DIAGNOSTIC RESULTS
+command it sends (and will abort if it doesn't receive one). So this option
+supplies dummy responses with one primary enclosure and three
+sub\-enclosures. The dummy responses include good status values.
+.TP
+\fB\-e\fR, \fB\-\-ealsd\fR
+exit after last SEND DIAGNOSTIC command. A SES device should not start its
+firmware update immediately after the last received "chunk" of its firmware.
+Rather it should wait till at least one RECEIVE DIAGNOSTIC RESULTS command
+is sent to give the device a chance to report any error. However some
+devices do start the firmware update immediately which causes the trailing
+RECEIVE DIAGNOSTIC RESULTS command to be held up and often be aborted with
+a "target reset" error.
+.br
+This option causes the trailing RECEIVE DIAGNOSTIC RESULTS command to be
+skipped. This option would be typically used with the \fI\-\-bpw=CS\fR
+option.
+.br
+Prior to version 1.10 of this utility [20180112] this (i.e. skipping
+the last RECEIVE DIAGNOSTIC RESULTS command) was the default action.
+.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.
@@ -91,7 +119,8 @@ dpage combination is avoided unless an error has already occurred.
\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.
+byte offset. This option is ignored (and a warning sent to stderr) if the
+\fI\-\-bpw=CS\fR option is also given.
.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
@@ -100,14 +129,18 @@ a regular file, rather than stdin. Data is read starting at byte offset
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
+\fISEID\fR is the sub\-enclosure 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.
+downloaded. It defaults to 0 which is okay in most cases. This option only
+comes into play when \fITLEN\fR is greater than \fILEN\fR. In this case
+\fITLEN\fR is sent to the SES \fIDEVICE\fR so that it knows when it only
+receives \fILEN\fR bytes from this invocation, that it should expect more
+to be sent in the near future (e.g. by another invocation). This option
+is only needed when sections of microcode are being sent in separate
+invocations of this utility (e.g. the microcode is spread across two files).
.TP
\fB\-v\fR, \fB\-\-verbose\fR
increase the level of verbosity, (i.e. debug output).
@@ -139,7 +172,7 @@ 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
+the Download microcode status dpage is fetched with the RECEIVE DIAGNOSTIC
RESULTS command and decoded.
.SH WHEN THE DOWNLOAD FAILS
Firstly, if it succeeds, this utility should stay silent and return.
@@ -154,7 +187,7 @@ be needed.
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
+and if downgrading (i.e. trying to reinstate older firmware), does
the vendor allow that?
.PP
Getting new firmware on a device is a delicate operation that is not
@@ -204,11 +237,11 @@ happening, fetching the status page should not cause any problems:
.br
Download microcode status diagnostic page:
.br
- number of secondary subenclosures: 0
+ number of secondary sub\-enclosures: 0
.br
generation code: 0x0
.br
- subenclosure identifier: 0 [primary]
+ sub\-enclosure identifier: 0 [primary]
.br
download microcode status: No download microcode operation in progress [0x0]
.br
@@ -238,9 +271,9 @@ Written by Douglas Gilbert.
.SH "REPORTING BUGS"
Report bugs to <dgilbert at interlog dot com>.
.SH COPYRIGHT
-Copyright \(co 2014 Douglas Gilbert
+Copyright \(co 2014\-2018 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)
+.B sg_ses, sg_write_buffer, sg_inq(sg3_utils)
diff --git a/doc/sg_test_rwbuf.8 b/doc/sg_test_rwbuf.8
index f30c3517..d610531e 100644
--- a/doc/sg_test_rwbuf.8
+++ b/doc/sg_test_rwbuf.8
@@ -1,4 +1,4 @@
-.TH SG_TEST_RWBUF "8" "November 2012" "sg3_utils\-1.35" SG3_UTILS
+.TH SG_TEST_RWBUF "8" "January 2018" "sg3_utils\-1.43" SG3_UTILS
.SH NAME
sg_test_rwbuf \- test a SCSI host adapter by issuing dummy writes
and reads
@@ -26,12 +26,13 @@ read \fIAR\fR additional bytes.
Arguments to long options are mandatory for short options as well.
.TP
\fB\-r\fR, \fB\-\-addrd\fR=\fIAR\fR
-Read an additional \fIAR\fR bytes (than indicated by \fISZ\fR) from the data
-buffer. Checksum is performed over the first \fISZ\fR bytes.
+Read an additional \fIAR\fR bytes (more than indicated by \fISZ\fR) from the
+data buffer. Checksum is performed over the first \fISZ\fR bytes.
.TP
\fB\-w\fR, \fB\-\-addwr\fR=\fIAW\fR
-Write an additional \fIAW\fR bytes (than indicated by \fISZ\fR) of zeros
-into the data buffer. Checksum is generated over the first \fISZ\fR bytes.
+Write an additional \fIAW\fR bytes (more than indicated by \fISZ\fR) of
+zeros into the data buffer. Checksum is generated over the first \fISZ\fR
+bytes.
.TP
\fB\-h\fR, \fB\-\-help\fR
Print out a usage message the exit.
@@ -70,16 +71,16 @@ standard does state in its WRITE BUFFER command: "This command shall not
alter any medium of the logical unit when data mode ... is specified". This
implies that it _is_ safe to use this utility with devices that have mounted
file systems on them.
-Following this theme further, a disk with active mounted file systems may cause
-the data read back to be different (due to caching activity) to what was written
-and hence a checksum error.
+Following this theme further, a disk with active mounted file systems may
+cause the data read back to be different (due to caching activity) to what
+was written and hence a checksum error.
.SH EXIT STATUS
The exit status of sg_test_rwbuf is 0 when it is successful. Otherwise see
the sg3_utils(8) man page.
.SH AUTHORS
Written by D. Gilbert and K. Garloff
.SH COPYRIGHT
-Copyright \(co 2000\-2012 Douglas Gilbert, Kurt Garloff
+Copyright \(co 2000\-2018 Douglas Gilbert, Kurt Garloff
.br
This software is distributed under the GPL version 2. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
diff --git a/doc/sg_verify.8 b/doc/sg_verify.8
index 4e7ddf3a..51c8f880 100644
--- a/doc/sg_verify.8
+++ b/doc/sg_verify.8
@@ -1,4 +1,4 @@
-.TH SG_VERIFY "8" "November 2017" "sg3_utils\-1.43" SG3_UTILS
+.TH SG_VERIFY "8" "January 2018" "sg3_utils\-1.43" SG3_UTILS
.SH NAME
sg_verify \- invoke SCSI VERIFY command(s) on a block device
.SH SYNOPSIS
@@ -64,7 +64,7 @@ field in the block limits VPD page.
\fB\-c\fR, \fB\-\-count\fR=\fICOUNT\fR
where \fICOUNT\fR specifies the number of blocks to verify. The default value
is 1 . If \fICOUNT\fR is greater than \fIBPC\fR (or its default value of 128)
-and \fINDO\fR is not given, 0 or less then multiple SCSI VERIFY commands are
+and \fINDO\fR is not given, 0 or less than multiple SCSI VERIFY commands are
sent to the device. Otherwise \fICOUNT\fR becomes the contents of the
verification length field of the SCSI VERIFY command issued. The
.B sg_readcap
@@ -198,7 +198,7 @@ Written by Douglas Gilbert.
.SH "REPORTING BUGS"
Report bugs to <dgilbert at interlog dot com>.
.SH COPYRIGHT
-Copyright \(co 2004\-2017 Douglas Gilbert
+Copyright \(co 2004\-2018 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.
diff --git a/doc/sg_write_buffer.8 b/doc/sg_write_buffer.8
index 888288db..cde60deb 100644
--- a/doc/sg_write_buffer.8
+++ b/doc/sg_write_buffer.8
@@ -1,12 +1,13 @@
-.TH SG_WRITE_BUFFER "8" "October 2017" "sg3_utils\-1.43" SG3_UTILS
+.TH SG_WRITE_BUFFER "8" "January 2018" "sg3_utils\-1.43" 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\-\-read\-stdin\fR] [\fI\-\-skip=SKIP\fR] [\fI\-\-specific=MS\fR]
-[\fI\-\-timeout=TO\fR] [\fI\-\-verbose\fR] [\fI\-\-version\fR] \fIDEVICE\fR
+[\fI\-\-bpw=CS\fR] [\fI\-\-dry\-run\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\-\-read\-stdin\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
@@ -40,6 +41,14 @@ 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\-d\fR, \fB\-\-dry\-run\fR
+Do all the command line processing and sanity checks including reading
+the input file. However at the point where a WRITE BUFFER SCSI command(s)
+would be sent, step over that call and assume it completed without errors
+and continue. \fIDEVICE\fR is still opened but can be /dev/null (in Unix).
+It is recommended to use \fI\-\-verbose\fR with this option to get an
+overview of what would have happened.
+.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.
@@ -75,7 +84,7 @@ between 0 (default) and 2**24\-1 . It is a byte offset.
\fB\-r\fR, \fB\-\-read\-stdin\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=\-'. Previousy this option's long name was
+same as using '\-\-in=\-'. Previously this option's long name was
\fI\-\-raw\fR and it may still be used for backward compatibility.
.TP
\fB\-s\fR, \fB\-\-skip\fR=\fISKIP\fR
@@ -210,7 +219,7 @@ Written by Luben Tuikov and Douglas Gilbert.
.SH "REPORTING BUGS"
Report bugs to <dgilbert at interlog dot com>.
.SH COPYRIGHT
-Copyright \(co 2006\-2017 Luben Tuikov and Douglas Gilbert
+Copyright \(co 2006\-2018 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.
diff --git a/doc/sg_write_x.8 b/doc/sg_write_x.8
index 294096d4..9d965a5f 100644
--- a/doc/sg_write_x.8
+++ b/doc/sg_write_x.8
@@ -15,6 +15,8 @@ sg_write_x \- SCSI WRITE normal/ATOMIC/SAME/SCATTERED/STREAM, ORWRITE commands
[\fI\-\-unmap=U_A\fR] [\fI\-\-verbose\fR] [\fI\-\-version\fR]
[\fI\-\-wrprotect=WPR\fR] \fIDEVICE\fR
.PP
+Synopsis per supported command:
+.PP
.B sg_write_x
\fI\-\-normal\fR \fI\-\-in=IF\fR [\fI\-\-16\fR] [\fI\-\-32\fR]
[\fI\-\-app\-tag=AT\fR] [\fI\-\-bs=BS\fR] [\fI\-\-dld=DLD\fR] [\fI\-\-dpo\fR]