SAT3r07: ATA_PASSTHROUGH and transfer length

Neil Wanamaker Neil.Wanamaker at pmcs.com
Fri Jun 12 11:42:13 PDT 2015


* From the T10 Reflector (t10 at t10.org), posted by:
* Neil Wanamaker <Neil.Wanamaker at pmcs.com>
*
Hannes,
Since an IDENTIFY DEVICE is normally issued with FEATURE, COUNT, and LBA all
set to zero, the only viable option is to set T_LENGTH = 11b (TPSIU) and
BYTE_BLOCK = 0 (and looking at this section reminds me that I need to fix the
column headers in table 153!).	
As Curtis points out, especially as 4KN devices become prevalent, one will
need to be careful to distinguish whether a particular command transfers
logical sectors (e.g., media access) or 512B blocks (e.g., log pages). 
Regards,
Neil Wanamaker
Principal Engineer, Enterprise Storage Division
PMC-Sierra
1380 Bordeaux Dr., Sunnyvale, CA 94089
408.239.8277
neil.wanamaker at pmcs.com
-----Original Message-----
From: owner-t10 at t10.org [mailto:owner-t10 at t10.org] On Behalf Of Curtis
Stevens
Sent: Friday, June 12, 2015 10:13 AM
To: Hannes Reinecke; t10 at t10.org
Subject: RE: SAT3r07: ATA_PASSTHROUGH and transfer length
* From the T10 Reflector (t10 at t10.org), posted by:
* Curtis Stevens <curtis.stevens at wdc.com>
*
T_Length should always be set based on T_Type and Byte_Block.  There is
supposed to be no opcode scanning by the pass-through process, so this
setting is mandatory, even for the IDENTIFY DEVICE command.  In the case of
the IDENTIFY DEVICE command, there are a couple of settings...
Byte_Block = 0 and T_Length = TPSIU (0200h).  T_Type is ignored
Byte_Block = 1, T_Type = 0, T_Length = Features or Sector_Count (01h)
I would recommend against using T_Type =1
-------------------------------------------------
Curtis E. Stevens
Director, Standards & Features Technology
3355 Michelson Dr. #100
Office: 1-1041
Irvine, Ca. 92612
Phone: 949-672-7933
Cell: 949-307-5050
E-Mail: Curtis.Stevens at WDC.com
Remember, you may only be blamed for something if you are actually doing
something.
-----Original Message-----
From: owner-t10 at t10.org [mailto:owner-t10 at t10.org] On Behalf Of Hannes
Reinecke
Sent: Friday, June 12, 2015 5:13 AM
To: t10 at t10.org
Subject: SAT3r07: ATA_PASSTHROUGH and transfer length
* From the T10 Reflector (t10 at t10.org), posted by:
* Hannes Reinecke <hare at suse.de>
*
Hi all,
I have been notified that the linux SATL does not set the 't_type'
and 't_length' bits in the ATA PASS-THROUGH command correctly.
Trying to fix this up I've come across this oddity:
As per spec 't_length' specifies the location where the transfer length is
located; this can either be the 'features' field, the 'sector_count' field,
or the TPSIU location.
However, some commands (like IDENTIFY) return a single block, and implicitly
assume a transfer length of 512 bytes without having it specified in any
fields. Currently 't_length' is set to '0', but this runs agains the spec,
which claims this to signal 'No data is transferred'.
Other commands (like TRUSTED RECEIVE) have split location (the lower byte is
in the 'count' field, the high byte is in the low byte of the 'lba' field).
What is the appropriate value of 't_length' in these cases?
Cheers,
Hannes
-- 
Dr. Hannes Reinecke			       zSeries & Storage
hare at suse.de				       +49 911 74053 688
SUSE LINUX GmbH, Maxfeldstr. 5, 90409 Nürnberg
GF: F. Imendörffer, J. Smithard, J. Guild, D. Upmanyu, G. Norton HRB 21284
(AG Nürnberg)
*
* For T10 Reflector information, send a message with
* 'info t10' (no quotes) in the message body to majordomo at t10.org
*
* For T10 Reflector information, send a message with
* 'info t10' (no quotes) in the message body to majordomo at t10.org
*
* 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 mailing list