This message is from the T13 list server.
Jeff Garzik wrote:
This message is from the T13 list server.
It's more than just that. Given that there is no READ FPDMA nor WRITE
FPDMA commands that are applicable to ATAPI, one would have to
contemplate use of a tagging system buried inside the command set [SCSI].
Hmmm... I don't understand your comment... The tag number is in the
Sector Count register bits 7-3 for R/W DMA QUEUED, PACKET and R/W FPDMA.
Why would the tag need to be inside the PACKET SCSI CDB?
If you think about it the FPDMA command codes were never needed. The
existing R/W DMA QUEUED command codes could have been used - assuming
PATA devices would implement the 'bus release/service' version of 'tcq'
and that SATA devices would implement the 'ncq' version of 'tcq'. Even
if a SATA device needed the option of implementing both versions of
'tcq', it would require only one bit in the command parameters to tell
the device which to use. But there is a strong ATA tradition to create
new command codes for minor variations of the same basic command - I'm
sure that is why we have new command codes for R/W FPDMA.
The PACKET command has never needed all this confusion of multiple
command codes for PIO or DMA or overlap/queuing because the PACKET
command uses the Features register as a way to select protocol and
execution options. So the OVL bit (in the PACKET command Features
register) could be used to select 'ncq' on a SATAPI device. But again,
if an SATAPI device needed the option of implementing both the PATA and
SATA versions of 'tcq', it would require only one more bit in the PACKET
command Features register to tell the device to use SATA 'ncq' (my new
NCQ bit) instead of PATA 'bus release/service' (the OVL bit). That is
why I said only a new NCQ bit is required in the PACKET command input
parameters.
What did I miss?
Oh, yea, there is the problem of the SATA command protocol
specification. But we could probably ignore this detail since it has
been ignored so far...
What do I mean?
The SATA documents, pick one, ATA/ATAPI-7 or the secret society
specification, do not contain the equivalent to the PATA command
protocol state diagrams. The best you can find is ATA/ATAPI-7's Annex J
that is informative. I know a lot of people think the PATA command
protocol state diagrams are used to describe the SATA command protocol
but this is wrong and misleading. SATA is not PATA. SATA is very
different. I have asked many previous times for SATA command protocol
state diagrams (in ATA/ATAPI-7 vol 3) in a similar format to the PATA
command protocol state diagrams (in ATA/ATAPI-7 vol 2). But I guess the
secret society likes their 'informative' (and not 'normative') version
of the SATA command protocols - sure does make it easier to change
things if there is no real specification/standard.
So I guess a poorly written and 'informative' description of PACKET NCQ
in ATA/ATAPI-7 vol 3 Annex J is the only other thing that needs to be added.
Hale
--
++ Hale Landis ++ www.ata-atapi.com ++