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 ++

Reply via email to