This message is from the T13 list server.
John Sherman wrote:
This message is from the T13 list server. I am performing a WRITE_SECTORS command to write 0x10 sectors to a HDD. After each sector of data (512 bytes), Intrq is asserted, the status register is read, and the next sector begins transferring. After the last sector has been written to the HDD, Intrq is NOT assertted but my understanding of the spec is that it should be. Am I missing something in the spec that makes it optional for a device to assert Intrq at the end of a PIO data-out transfer? Or should I consider this HDD out of spec?
Assuming your host is not setting nIEN=1 before that last INTRQ assertion is expected, then yes, the drive is broken. Remember that for ATA PIO Data In/Out, if INTRQ is used (nIEN=0) then the number of interrupts (number of assertions of INTRQ) is the same as the number of DRQ data blocks (For PACKET PIO the number of interrupts is also the number of DRQ data blocks [note: the command packet is not a data block]).
Hale -- ++ Hale Landis ++ www.ata-atapi.com ++
