AT2LP reaction to a drive stall




Question: In case an error on the ATAPI device prevents it from servicing the previous command, how does the AT2LP react?

Response: The mass storage spec does not define any specific time out value.

The firmware of CY4611 FX2 to ATA reference design keeps reading the busy bit of the ATAPI Status Register in a function called WaitforBusyBit. The AT2LP returns the CSW packet to the host only once the ATAPI device is idle.

So, as long as the device as busy, i.e. the IDE/SCSI controller is busy, the firmware does not come out of the above function and the CSW packet is not sent back for the corresponding CBW packet. 

Usually, for every CBW, the host requests for a CSW. Hence, depending on the timeout value specified on the host side, the command is timed out.