[t13] 04-136r0.pdf SCSI to ATA Command Translations

Pat LaVarre p.lavarre at IEEE.org
Fri Jun 4 10:44:06 PDT 2004

* From the T10 Reflector (t10 at t10.org), posted by:
* Pat LaVarre <p.lavarre at ieee.org>
Further thoughts at the next deeper level of detail ...

> ...
> 3.10.2 Read CDB format and supported fields.
> 3.11.2 Write CDB format and supported fields.
> () DPO (Disable page out)   Ignored.
> () FUA (Force Unit Access)  Supported with NCQ targets.
> For non NCQ drives do we need
> to send a cache flush to force unit access? 

Rumour, be it truth or slander, says massively distributed host binaries
- Windows in particular - gets unhappy unless the device implements DPO
and FUA.  The details I don't know.

> 3.15 Seek (06, 10) Command (0Bh, 2Bh)
> complete  with success.
> No commands are sent to the ATA device. 

I vote instead execute as if op x00 "TEST UNIT READY", which does
sometimes fail.

> 3.16 Rezero Unit (06) Command (01h)

'I vote instead execute as if op x00 "TEST UNIT READY", which does
sometimes fail.'

> 3.1.2 SCSI INQUIRY CDB format and supported fields
> EVPD ... Only ...
> Supported VPD pages (00h) and
> Unit  serial number (80h). 

When translating to Compact Flash ATA, do we want to pass thru the media
serial number as well?

Personally I only know enough to ask the question.  Because Compact
Flash is a more or less detachable drive, I ask do they report having a
unit or a media serial number.  The answer, I don't know.  I hear
changing unit serial numbers has consequences e.g. changing Win drive

> 3.1.2 SCSI INQUIRY CDB format and supported fields

I mis/remember MMC requires a zero in the byte 2 Version field of op x12
"INQUIRY" data ... compatibility there could force us to pay attention
to how to report version in the standard bytes that follow the
vendor-specific bytes out past offset x24.

> 3.2 Read Capacity (10) Command  (25h)
> This value is currently set to 512 bytes,
> which is the standard sector size for disk drives. 

I see us taking the chance to try to fix the bytes/LBA at 0.5 Ki, like
MMC fixed the bytes/LBA at 2 Ki, shutting out the (empty set of?) ATA MO

I like that.

>  For the Read(12) command, if the size
> TRANSFER LENGTH  field is greater than 16
> bits, then the command will terminate with a
> check condition where the  sense key set to
> illegal request and additional sense code set
> to invalid field in CDB.

I like that.  I independently reached that conclusion and shipped that
solution once, together with a comment something like "Comdex, 1996,
nothing so permanent as a temporary kluge".  So far as I know, noone
ever returned to that code to kick up the max LBA's/CDB past xFFFF.

Pat LaVarre

* 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