This message is from the T13 list server.
kepler said: > This message is from the T13 list server. > In clause 8.59.8, page 289 of ATA/ATAPI-6, it describes that "The device > shall interrupt for each DRQ block transferred" for the WRITE LOG EXT > command. > However, there is not prerequisite to clear nIEN bit in the Device > Control register. If the nIEN bit is not previously cleared, shall INTRQ > still be asserted after each DRQ block? The wording of the WRITE LOG [EXT] command is probably incorrect (or at least inconsistent). First, I assume the WRITE LOG [EXT] command is like R/W SECTORS in that it transfers one 'sector' per DRQ Data Block (I've read the R/W LOG [EXT] command descriptions several times lately and there are a bunch of things that are not very clearly stated). Second, there are times when a device enters the 'interrupt pending' state. One of those times is during PIO data transfer commands when the device changes its status to BSY=0 DRQ=1. The 'interrupt pending' state is when a device also asserts the INTRQ signal but only if nIEN=0. nIEN is nothing more than a on/off switch for the INTRQ signal driver. The state of nIEN has NO EFFECT of the 'interrupt pending' state of the device. The host must read the Status register to clear the 'interrupt pending' state in the device. Third, a 'polling host' that never uses the INTRQ signal is likely to keep nIEN=1 all the time. This has NO EFFECT on the command protocols and NO EFFECT on how a command is executed by the device. NOTE: Everything above applies to Parallel ATA. Please note that SATA messed up the definition and use of nIEN such that nIEN is really not useful any more. If a host knows it is dealing with a SATA device it should keep nIEN=0 all the time, even if the host is a 'polling' host. In SATA nIEN=1 should have prevented the device from setting the I bit to 1, or, it should have prevented the SATA host controller from generating an interrupt. But nIEN was poorly described by SATA and that resulted in random implementations of nIEN and I bit functionality that has resulted in nIEN not being useful any more for SATA. Hale -- Hale Landis -- [EMAIL PROTECTED]
