This message is from the T13 list server.

Mukesh,

    In days of old, PIO wait loops used to require "D0h" (DRDY, SC, BUSY) be
set when a device was busy processing a command.  The place I worked used to
actually force DRDY and SC to "1" in our IDLE loop just in case it somehow
was cleared.  I think all of that went away in about 1995 (or whenever ATAPI
entered the world). Most ATA folks leave DRDY set today (SC is long gone)
and most drivers don't care anyway (except for maybe BIOS and DOS level test
utilities).  I do seem to remember recently seeing some ATAPI devices
flipping it for some reason but I cant remember who or why anymore.  As far
as I can see in the spec it is not specified as to what is should be during
command processing however.  Personal opinion is if BUSY is set, the rest of
the bits are "X".

2 cents,

Gary Laatsch
[EMAIL PROTECTED]


----- Original Message ----- 
From: "Hale Landis" <[EMAIL PROTECTED]>
To: <[EMAIL PROTECTED]>
Sent: Sunday, August 10, 2003 7:53 PM
Subject: Re: [t13] Question about DRDY


> 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