Tool/software: Linux
Are there any known silicon errata on the AM335x that can cause spurious invalid packets to be sent on USB in host mode?
I am seening corrupt packets (with bad packet ID) which results in a callback for an IN URB getting error -71 (-EPROTO) with no data. This happens intermittently (due to bad PID error, usually multiple in close proximity, which were observed on a USB analyzer). At least one custom device I know of has a driver that doesn't gracefully handle this (that can be fixed to work around the corruption). It appears to be cleared up by simply re-submitting the URB and continuing on without data loss. However, I am trying to find the source of the corruption in the first place. It doesn't seem like it's a specific device causing it. It looks like a host issue.