Go to main content

man pages section 1M: System Administration Commands

Exit Print View

Updated: July 2017

sg_sat_phy_event (1m)


sg_sat_phy_event - Sends an ATA READ LOG EXT command via a SAT pass through to fetch log page 11h which contains SATA phy event counters


sg_sat_phy_event [--ck_cond]  [--extend]  [--help]  [--hex]  [--ignore]
[--len=16|12] [--raw] [--reset] --verbose] [--version] DEVICE


SG_SAT_PHY_EVENT(8)                SG3_UTILS               SG_SAT_PHY_EVENT(8)

       sg_sat_phy_event  -  Sends  an  ATA READ LOG EXT command via a SAT pass
       through to fetch log page 11h which contains SATA phy event counters

       sg_sat_phy_event [--ck_cond]  [--extend]  [--help]  [--hex]  [--ignore]
       [--len=16|12] [--raw] [--reset] --verbose] [--version] DEVICE

       This  utility  sends  an ATA READ LOG EXT with the log page ("address")
       set to 11h to DEVICE and outputs the response. Log page 11h is  defined
       in  the  SATA 2.5 standard and contains phy event counters. Rather than
       send this command directly to the DEVICE, are 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.

       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 sat3r01.pdf .

       Arguments to long options are mandatory for short options as well.

       -c, --ck_cond
              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  irre-
              spective  of whether the command succeeded or failed. When clear
              the SATL should only yield  a  sense  buffer  containing  a  ATA
              Result descriptor if the command failed.

       -e, --extend
              sets  the  EXTEND  bit  in  the  ATA  PASS-THROUGH SCSI cdb. The
              default setting is clear (i.e. 0). When set a 48 bit LBA command
              is sent to the device. This option has no effect when --len=12.

       -h, --help
              outputs  the usage message summarizing command line options then
              exits. Ignores DEVICE if given.

       -H, --hex
              outputs the ATA READ LOG EXT response in hex. The default action
              (i.e.  without  any  '-H'  options) is to output the response in
              hex, grouped in 16 bit words (i.e. the  ATA  standard's  prefer-
              ence).   When  given  once,  the response is output in ASCII hex
              bytes (i.e. the SCSI standard's preference).  When  given  twice
              (i.e.  '-HH') the output is in hex, grouped in 16 bit words, the
              same as the default but without a header.

       -i, --ignore
              usually the phy counter identifier names are decoded. When  this
              option  is given, the numeric value of the identifier is output,
              the vendor flag, the data length (in bytes) and the  correspond-
              ing value.

       -l, --len=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.  The  larger cdb size is needed for 48 bit LBA addressing of
              ATA devices. On the other hand some SCSI transports cannot  con-
              vey SCSI commands longer than 12 bytes.

       -r, --raw
              output  the  ATA  READ  LOG  EXT  response in binary. The output
              should be piped to a file or another utility when this option is
              used.   The  binary  is  sent  to stdout, and errors are sent to

       -R, --reset
              reset the  counters  after  the  current  values  are  returned,
              decoded and displayed.

       -v, --verbose
              increases the level or verbosity.

       -V, --version
              print out version string

       See attributes(5) for descriptions of the following attributes:

       |Availability   | system/storage/sg3_utils |
       |Stability      | Uncommitted              |
       The  SCSI ATA PASS-THROUGH (12) command's opcode is 0xa1 and it clashes
       with the MMC set's BLANK command used by cd/dvd writers. So a  SATL  in
       front of an ATAPI device that uses MMC (i.e. has peripheral device type
       5) probably should treat opcode 0xa1 as a BLANK  command  and  send  it
       through to the cd/dvd drive. The ATA PASS-THROUGH (16) command's opcode
       (0x85) does not clash with anything so it is a better choice.

       In the 2.4 series of Linux kernels the DEVICE must be  a  SCSI  generic
       (sg)  device.  In  the  2.6  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 --ck_cond option
       yield strange (truncated) results.

       The exit status of sg_sat_identify is 0 when it is  successful.  Other-
       wise see the sg3_utils(8) man page.

       Written by Doug Gilbert

       Report bugs to <dgilbert at interlog dot com>.

       Copyright (C) 2006-2011 Douglas Gilbert
       This  software is distributed under a FreeBSD license. There is NO war-
       ranty; not even for MERCHANTABILITY or FITNESS FOR  A  PARTICULAR  PUR-

       sg_sat_identify(sg3_utils),             smp_rep_phy_err_log(smp_utils),
       sdparm(sdparm), hdparm(hdparm)

       This    software    was    built    from    source     available     at
       https://java.net/projects/solaris-userland.    The  original  community
       source was downloaded from  http://sg.danny.cz/sg/p/sg3_utils-1.33.tgz

       Further information about this software can be found on the open source
       community website at http://sg.danny.cz/sg/sg3_utils.html.

sg3_utils-1.32                    March 2011               SG_SAT_PHY_EVENT(8)