SAT: ATA PASS THROUGH sector count for IDENTIFY DEVICE
James C Hatfield
james.c.hatfield at seagate.com
Tue Apr 20 16:23:43 PDT 2010
Formatted message: <a href="http://www.t10.org/cgi-bin/ac.pl?t=r&f=r1004201_f.htm">HTML-formatted message</a>
For ATA (SATA or PATA), the Count field should NEVER be zero, because
neither interface supports zero-length data transfer for any protocol (dma,
In ATA, 'N/A' is defined the way it is because there are some ancient
implementations for which there are vendor specific differences.
If a NOTE is needed, perhaps that is beneficial for those not as familiar
Thank You !!!
Seagate Technology LLC
e-mail: James.C.Hatfield at seagate.com
s-mail: 389 Disc Drive; Longmont, CO 80503 USA
On Tue, Apr 20, 2010 at 12:43 PM, Douglas Gilbert
<dgilbert at interlog.com>wrote:
> * From the T10 Reflector (t10 at t10.org), posted by:
> * Douglas Gilbert <dgilbert at interlog.com>
> While debugging some USB-3 storage devices (using
> the mass storage class rather than UAS **) the
> linux community has stumbled across confusion on
> the sector_count field in the ATA PASS THROUGH (12)
> and (16) commands defined in SAT and SAT-2.
> One tool wants to send an ATA IDENTIFY DEVICE command
> through the SAT pass-through to a SATA disk inside
> an external USB enclosure. The SCSI ATA PASS THROUGH
> command fields are set like this to fetch the 512 byte
> response from the IDENTIFY DEVICE command:
> PROTOCOL: 4 [PIO DATA-in]
> T_DIR: 1 [data-in]
> BYTE_BLOCK: 1 [transfer unit is 512 bytes]
> T_LENGTH: 2 [use sector_count]
> SECTOR_COUNT: 1 or 0 ??
> SAT indicates that SECTOR_COUNT should be 1. However
> those familiar with ATA see that SECTOR_COUNT maps
> to the COUNT field in the ATA IDENTIFY DEVICE command
> and that is marked as "N/A". And they interpret that
> to mean 0. According to ACS-2 the "N/A" keyword "has no
> defined value and should not be checked by the host or
> device". So 1 would seem to be permissible but not
> obvious to ATA tools tunnelling through SAT.
> The SATL in the USB-3 case failed when sector_count=0
> but there seem to be plenty of SATLs out there that
> accept it and respond with a block of data.
> May I suggest an Annex to SAT-3 to show the encoding
> of very common ATA commands like IDENTIFY DEVICE through
> the ATA PASS THROUGH commands.
> ** Folk from Intel recently presented some work on the
> "UASP" transport to Linux community. A suggestion
> that the standard will be called "UAS" seem to fall
> on deaf ears.
> Doug Gilbert
> * For T10 Reflector information, send a message with
> * 'info t10' (no quotes) in the message body to majordomo at t10.org
More information about the T10