.TH SG_SAT_SET_FEATURES "8" "November 2014" "sg3_utils\-1.40" SG3_UTILS
.SH NAME
sg_sat_set_features \- use ATA SET FEATURES command via a SCSI to ATA
Translation (SAT) layer
.SH SYNOPSIS
.B sg_sat_set_features
[\fI\-\-count=CO\fR] [\fI\-\-ck_cond\fR] [\fI--extended\fR]
[\fI\-\-feature=FEA\fR] [\fI\-\-help\fR] [\fI\-\-lba=LBA\fR]
[\fI\-\-len=\fR{16|12}] [\fI\-\-readonly\fR] [\fI\-\-verbose\fR]
[\fI\-\-version\fR] \fIDEVICE\fR
.SH DESCRIPTION
.\" Add any additional description here
.PP
This utility sends an ATA SET FEATURES command to the \fIDEVICE\fR.
This command is used to change settings of ATA non\-packet (i.e. disks) and
packet devices (e.g. cd/dvd drives). Rather than send the SET FEATURES
command directly to the device it is sent via a SCSI transport which is
assumed to contain a SCSI to ATA Translation (SAT) Layer (SATL). The SATL
may be in an operating system driver, in host bus adapter firmware or in
some external enclosure.
.PP
The SAT standard (SAT ANSI INCITS 431\-2007, prior draft: sat\-r09.pdf at
www.t10.org) defines two SCSI "ATA PASS\-THROUGH" commands: one using a 16
byte "cdb" and the other with a 12 byte cdb. This utility defaults to using
the 16 byte cdb variant. SAT\-2 is also a standard: SAT\-2 ANSI INCITS
465\-2010 and the draft prior to that is sat2r09.pdf . The SAT-3 project has
started and the most recent draft is sat3r05b.pdf .
.PP
The features can be read using the sg_sat_identify utility which uses either
the ATA IDENTIFY DEVICE (for non\-packet devices) or the IDENTIFY PACKET
DEVICE (for packet devices) command.
.SH OPTIONS
Arguments to long options are mandatory for short options as well.
.TP
\fB\-c\fR, \fB\-\-count\fR=\fICO\fR
the number \fICO\fR is placed in the "count" field in the ATA SET
FEATURES command. Only some subcommands (a term used for the value
placed in the "feature" field) require the count field to be set.
The default value placed in the "count" field is 0.
.TP
\fB\-C\fR, \fB\-\-ck_cond\fR
sets the CK_COND bit in the ATA PASS\-THROUGH SCSI cdb. The
default setting is clear (i.e. 0). When set the SATL should yield a
sense buffer containing a ATA Result descriptor irrespective of whether
the ATA command succeeded or failed. When clear the SATL should only yield
a sense buffer containing a ATA Result descriptor if the ATA command failed.
.TP
\fB\-e\fR, \fB\-\-extended\fR
allow for extended LBA numbers (i.e. larger than 32 bits).
This value is enabled automatically for large LBA numbers, but can be
enabled explicitly even for low LBA numbers with this option.
.TP
\fB\-f\fR, \fB\-\-feature\fR=\fIFEA\fR
the value \fIFEA\fR is placed in the "feature" field in the ATA SET
FEATURES command. The term "subcommand" is sometimes used for this
value. The default value placed in the "feature" field is 0 which
is reserved and hence should not change anything. Two common examples
are 2h to enable the write cache and 82h to disable it.
.TP
\fB\-h\fR, \fB\-\-help\fR
outputs the usage message summarizing command line options
then exits. Ignores \fIDEVICE\fR if given.
.TP
\fB\-L\fR, \fB\-\-lba\fR=\fILBA\fR
the number \fILBA\fR is placed in the "lba" field of the ATA SET
FEATURES command. Only some sub\-commands (a term used for the value
placed in the "feature" field) require the lba field to be set. This
value is typically not a "logical block address" as the acronym might
imply.  The default value placed in the "lba" field is 0. The maximum value
allowed for \fILBA\fR is 0xfffffffe (or 0xffffff if \fI\-\-len=\fR12).
.TP
\fB\-l\fR, \fB\-\-len\fR={16|12}
this is the length of the SCSI cdb used for the ATA PASS\-THROUGH commands.
The argument can either be 16 or 12. The default is 16. Some SCSI
transports cannot convey SCSI commands longer than 12 bytes.
.TP
\fB\-r\fR, \fB\-\-readonly\fR
causes the \fIDEVICE\fR to be opened with the read\-only flag (O_RDONLY in
Unix). The default action is to open \fIDEVICE\fR with the read\-write
flag (O_RDWR in Unix). In some cases sending power management commands to
ATA disks are defeated by OS actions on the close() if the \fIDEVICE\fR was
opened with the read\-write flag (e.g. the OS might think it needs to
flush something to disk).
.TP
\fB\-v\fR, \fB\-\-verbose\fR
increases the level or verbosity.
.TP
\fB\-V\fR, \fB\-\-version\fR
print out version string
.SH NOTES
In the 2.4 series of Linux kernels the \fIDEVICE\fR must be
a SCSI generic (sg) device. In the 2.6 and 3 series block devices (e.g. disks
and ATAPI DVDs) can also be specified. For example "sg_inq /dev/sda"
will work in the 2.6 series kernels. From lk 2.6.6 other SCSI "char"
device names may be used as well (e.g. "/dev/st0m"). Prior to lk 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 EXIT STATUS
The exit status of sg_sat_set_features is 0 when it is successful. Otherwise
see the sg3_utils(8) man page.
.SH AUTHOR
Written by Douglas Gilbert
.SH "REPORTING BUGS"
Report bugs to <dgilbert at interlog dot com>.
.SH COPYRIGHT
Copyright \(co 2007\-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_sat_identify(sg3_utils), sg_inq(sg3_utils), sdparm(sdparm),
.B hdparm(hdparm)
