| .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 BSD\-2\-Clause 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) |