This message is from the T13 list server.

Hale is correct - ATA/ATAPI 6 and 7 are incorrect. ATA-8 is correct. 

-----Original Message-----
From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf Of Hale
Landis
Sent: Friday, May 19, 2006 7:52 AM
To: kepler
Cc: t13-ATA; SATA_team
Subject: Re: [t13] The DRQ in normal outputs of data transmission
condition for READ/WRITE DMA QUEUED EXT command shall be one or zero?

This message is from the T13 list server.


kepler wrote:
> This message is from the T13 list server.
> 
> In clause 8.27.5.1, page 170 of ATA/ATAPI-6, it says the DRQ bit shall
> be set to one in the data transmission condition of normal outputs for
> READ DMA QUEUED command.
> However, in clause 8.28.5.1, page 174 of ATA/ATAPI-6, DRQ is said to
be
> zero for READ DMA QUEUED EXT command.

Again, the READ/WRITE DMA QUEUED EXT command descriptions are incorrect.

Use the READ/WRITE DMA QUEUED command descriptions - they appear to be 
correct (and are the same except for the LBA28/LBA48 difference in 
command parameters). And again, ATA/ATAPI-7 has the same 'errors' in the

READ/WRITE DMA QUEUED EXT command descriptions.

> For the READ DMA QUEUED EXT command, the normal outputs for bus
release
> condition shall have DRQ cleared to zero as shown in clause 8.28.5.2
on
> page 175. When the host reads back the Status register from the
delivery
> of READ DMA QUEUED EXT command, how can the host determines the device
> is at the condition of data transmission or bus release?

For the O/Q command when a device has status of BSY=0 DRQ=0 it could 
mean command completion or bus release - if it is command completion 
REL=0, if bus release REL=1.

> In clause 7.15.6.5 on apge 73, it indicates that DRQ means Data
request,
> therefore, when the device has already prepared data for transfer
after
> the READ DMA QUEUED EXT command, I think DRQ bit shall be set one to
> indicate the "data request". Moreover, in figure 36 on page 349, DRQ=1
> if the state transits to DDMAQ1:Transfer_Data at device, and in figure
> 35 on page 347, DRQ=1 is the necessary condition for the state
> transition to HDMAQ1:Transfer_Data at host.

Clause 7.15.6.5 (ATA/ATAPI-6) may not have the best wording for how DRQ 
is used by the DMA QUEUED commands. Note that these commands must use 
DRQ=1 so that the host can read the Command Block registers especially 
so the host can read the Sector Count register. However, please note 
that DRQ=1 is 'normally' used only by PIO Data In/Out commands and only 
when the device expects the host to read/write the Data register. This 
use of DRQ=1 during a DMA command is 'unusual' but required so the host 
can read the Command Block registers (long story here but it has to do 
with setting up the host side DMA engine for these commands).

> Therefore, I think the DRQ bit shall be set to one in clause 8.28.5.1
on
> page 174 for the data transmission condition of READ DMA QUEUED EXT
> command such that the host could differentiate the condition as either
> data transmission or bus release if both SERV and ERR bits are
returned 0.
> The same bug occurs for WRITE DMA QUEUED EXT command, too.

Yes, again the READ (and WRITE) DMA QUEUED EXT command descriptions have

a number of incorrect statements. Again use the R/W DMA QUEUED command 
descriptions (in both ATA/ATAPI-6 and ATA/ATAPI-7).

Hale

-- 

++ Hale Landis ++ [EMAIL PROTECTED] ++

-----------------------------------------------------------------------------------
This email message is for the sole use of the intended recipient(s) and may 
contain
confidential information.  Any unauthorized review, use, disclosure or 
distribution
is prohibited.  If you are not the intended recipient, please contact the 
sender by
reply email and destroy all copies of the original message.
-----------------------------------------------------------------------------------

Reply via email to