This message is from the T13 list server.
Hi Mike, I don't know if you remember (but I'm sure that Hale does), but, based on a proposal from me, T13 completely went through the EXECUTE DEVICE DIAGNOSTICS sequence in ATA/ATAPI-4. As I recall this exercise took the better part of several meetings. Then Pete McL went and turned what we thought at the time were completely accurate words into state diagrams. Go figure - ha! When I look at the words in A/A-5 describing Transition HED2:HED2:, they say, "When BSY is set to one, the host shall make a transition to the HED1:Check_status state." Ooops. I'm sure this is a cut and paste error that should say, "When BSY is set to one, the host shall make a transition to the HED2:Check_status state." This is still in A/A-7. Regardless, the state diagram looks correct to me. Remember, there are two ways to get to HED2. One of those ways is when nIEN is set to one. In this case there IS no INTRQ, and the host has to poll the Status register to see when BSY changes state. Hence the HED2 to HED2 transition. If you wanted to make the words describing Transition HED2:HED2: completely clear, more could be added something like, "When BSY is set to one (i.e., nIEN is set to one disabling INTRQ), the host shall make a transition to the HED2:Check_status state." Please feel free to call or send an email to me if you have any additional questions about this. Regards, Mark Evans Maxtor Corporation -----Original Message----- From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf Of Eschmann, Michael K Sent: Thursday, September 23, 2004 12:34 PM To: [EMAIL PROTECTED] Subject: [t13] ATA spec issue with Execute Device Diagnostics command This message is from the T13 list server. Hale and I were discussing an issue with the "Execute Device Diagnostics" command, and I'd like to see if there's enough collective memory as to why the spec is the way it is. Ever since ATA5 there is a host-side state diagram that shows a transition to the "HED2: Check Status" after receiving a completion interrupt for the EDD command, at which time the host state diagram shows the host polling on busy de-asserting. The polling is unnecessary since a master cannot complete the coomand and interrupt the host until the slave has de-asserted busy and signalled PDIAG (assuming the working case, for now). So why did we put this polling loop in the unterrupt path? It seems like a mistake to me. ATA4 didn't define this behavior, so I believe the error snuck in at ATA5 time and lingered ever since. Does anyone remember what gives from back in 1999 on this subject? Thanks, MKE
