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

 

Reply via email to