I did test double reads and always saw the same value both times. Another piece of info: I tested this software on an older vortex86dx and saw the same issue. It is plausible that a vortex86dx and vortex86dx3 could have the same flawed EHCI. Or perhaps there's some other systemic issue that I'm not seeing. On Thu, Oct 25, 2018 at 10:30 AM David Laight <David.Laight@xxxxxxxxxx> wrote: > > From: Daniel Goertzen > > Sent: 24 October 2018 17:47 > > > > I am developing a custom USB device that makes use of isochronous IN > > transfers. It works fine from my laptop (xHCI) however on an embedded > > target (vortex86dx3, EHCI) I am seeing mysterious EFBIG errors. After > > adding lots of debug to ehci-sched I discovered that the EHCI register > > "FRINDEX" which is supposed to increase monotonically, is actually > > taking a jump backwards: > > What happens if you read the register twice - do you get the same value. > It might be that the hardware is failing to synchronise the counter > to the host bus clock and generates garbage during an increment. > Such errors can be a complete mix of the old and new values, not just > a 'carry chain' error. > If the two reads give different values a third one should be correct > (even if it differs from the second one). > > David > > - > Registered Address Lakeside, Bramley Road, Mount Farm, Milton Keynes, MK1 1PT, UK > Registration No: 1397386 (Wales)