This message is from the T13 list server.

On Sun, 10 Aug 2003 09:03:59 -0700, Mukesh Kataria wrote:
>This message is from the T13 list server.
>I have a question about DRDY.
>BACKGROUND
>For PIO IN commands, say IDENTIFY DEVICE, the prerequisite is
>that DRDY is set to 1. Similarly after successful command
>completion, condition is that "DRDY shall be SET to 1".

Most commands to an ATA device require DRDY=1 otherwise the
device *may* reject the command (some devices can execute some
commands when DRDY=0, of course these devices may not conform to
a strict interpretation of the standard)..

>QUESTION
>What is supposed to happen to DRDY in between.  After IDENTIFY
>DEVICE command has been sent to device:

Not specified what happens DRDY *during* the execution of a
command.  DRDY never appears in the command execution state
diagrams (certainly never appears at a decision point in the
host side state diagrams).

>- Is device supposed to leave DRDY unchanged (i.e. 1)

Doesn't matter but a device that toggles DRDY on/off is
definitely not following the traditions and spirit of ATA.  Note
that there are well defined times when an ATAPI devices turns
DRDY on/off, but even with ATAPI it does not matter what DRDY
does *during* the execution of a command.

>- OR is device supposed to clear DRDY till whole identify packet
>has been read thru data port?

No, not required and a device that did toggle DRDY would be a
strange device.

>In all true ATA devices, I see DRDY set during packet reading.
>But I have this "emulated" ATA device which clears the DRDY
>during PIO in phase and manufacturer says that spec asks device
>to set DRDY only "when the device is capable of accepting all
>commands" and during packet read (PIO IN) phase device is not
>capable of accepting any other command.

Ahhh...  They are "wrong".  I would not call their device
"broken" but it sure is "strange".  But a host should not care
what a device is doing with DRDY *during* the execution a
command.  There is no reason for the host to be looking at DRDY
*during* the execution of a command.

Hale



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



Reply via email to