This message is from the T13 list server.

David F. wrote:
My main concern is the issue of  protocol related items being spread out in
various places instead of in the protocol section and it being missed by
device makers/firmware developers.  One example is how a device is to set
the various bits in the various registers such as BSY / DRQ in relation to
data packets (the protocol is documented with the registers instead of the
protocol section).

Looking at ATA/ATAPI-6 (the last valid description of PATA) and ATA/ATAPI-7 (not a valid description of PATA or SATA), I don't see the problem David F. talks about. Yes, there are problems in the text that goes with the state diagrams but I think it is very clear when and how the various registers, especially the BSY and DRQ bits are used. Yes, some information about the BSY and DRQ bits duplicated (I would call it "summarized") in the description of the Status register. But I see no real problem here.

The problems I do see are:

a) If you carefully read the text that goes with the state diagrams you will find things that are not correct, such as "when BSY=1 and DRQ=0, ..." which is wrong because when BSY=1, DRQ has no meaning.

b) I only use ATA/ATAPI-6 for PATA and I strongly recommend to anyone that asks about PATA to use ATA/ATAPI-6. Why? First it is only PATA and it is all in one document. Second, things were changed in ATA/ATAPI-7, apparently because SATA was merged in, and some of these changes apply only to SATA but that is not clear in the document - it is easy for someone to think one of the changed things applies to both PATA and SATA when if it applied to PATA it would not be correct. [I'll repeat myself: ATA/ATAPI-7 should have never been published, ATA8 (whatever that is) should not contain any PATA information. SATA is ATA in marketing hype only. PATA and SATA might share some of the same command codes, just as SCSI-1 shares command codes with iSCSI, but SATA is not ATA.]

c) While some SATA host controller vendors attempted to emulate the PATA host controller programming interface, I have not seen a single controller yet that does it correctly. I think this is what got David F.'s attention originally. This is odd because over the years lots of people have built devices/bridges/controllers that do emulate PATA correctly based on the ATA/ATAPI-4, -5 and -6. What happened with SATA? Resolve this problem by admitting that SATA is not ATA. Leave PATA alone. Let SATA move forward on its own. Stop corrupting the description of PATA with things from SATA.

Hale

--

++ Hale Landis ++ www.ata-atapi.com ++

Reply via email to