Infinite NAK loop in Linux with Cy7C67300 | Cypress Semiconductor
Infinite NAK loop in Linux with Cy7C67300
I'm running on a MicroBlaze processor (running at 133 MHz), and I'm encountering a situation where the CSW response to a bulk data write (usually after a big block, i.e. 128KB) is always NAKed. I see the CSW URB being posted (size=13), and then the td associated with the URB is NAK'd. The Linux driver yanks the TD as it services the completed TD's, then re-submits it again since the URB is still there. This infinite loop continues until the higher-level SCSI or Block sub-system times out and the device port get's a hard reset - after 30 seconds usually.
Bear in mind that I'm able to write thousands of data blocks before this situation occurs. That could mean minutes to hours of error-free writes and then the system borks.
Does anyone know all the events that can occur to cause a C67300 to forever-NAK like this? Anyone else had a similar issue? I'm making the assumption that the standard Linux drivers should work, and that maybe it has something to do with the slower 133 MHz speed of the CPU.
Thanks for any help or recommendations!