This message is from the T13 list server.


Mark Overby wrote:
Yes. "Old style" (ATA-7 and previous) command queuing is supported on SATA. NCQ is silent on use by ATAPI. I believe it should be prohibited for use by packet devices. (And I'm not going to comment on the wisdom of having 3rd parties define protocols for T13 devices)


As a point of reference, I call ATA-7-style queueing "legacy TCQ" or "ATA TCQ", and call the newer SATA stuff "ATA NCQ".

Linux will support TCQ for ATA devices --where the hardware automates support for it--. Supporting ATA TCQ on standard PATA-ish taskfile register-based controllers is just too complex. Most recent ATA controllers prefer a DMA ring or DMA linked list to tons of PIO register writes, making the OS driver both less complex and more efficient. For these controllers, vendors sometimes choose to support ATA TCQ in silicon, making ATA TCQ easy to support.

Linux will certainly support NCQ for ATA devices -- a key point of NCQ is that a lot of the complexity of handling multiple commands (service/release irqs, etc) is removed.

Linux will NOT support TCQ or NCQ for ATAPI devices. Instead the queueing features (or lack thereof) of the underlying SCSI-ish packet command set is used.

I don't have any comment on ATAPI overlap... Linux doesn't currently attempt use it AFAIK.

        Jeff




Reply via email to