ucom/uftdi dropping bytes, with debug logs

Geoffrey Mainland mainland at apeiron.net
Fri Jun 16 23:22:39 UTC 2006


M. Warner Losh wrote:
> In message: <e6vcnn$um$1 at sea.gmane.org>
>             Geoffrey Mainland <mainland at apeiron.net> writes:
> : I've been trying to debug a problem with a ftdi-based serial device
> : where bytes are being dropped. The device is a Moteiv tmote sky with a
> : 8U232BM chip. Reprogramming this device always fails due to dropped
> : bytes. I eventually set up a VMWare image (under Windows) to make
> : debugging a bit easier, as I was crashing my machine often, and lo and
> : behold the problem went away! It looks like VMWare's USB interface is
> : buffering the data, so the FreeBSD driver works just fine under VMWare!
> : 
> : I turned on debugging in the ucom and uftdi drivers. Logs of the
> : transfers under both VMWare and a native environment are posted at:
> : 
> : http://www.apeiron.net/~mainland/uftdi/vmware-log.txt.gz
> : 
> : and
> : 
> : http://www.apeiron.net/~mainland/uftdi/native-log.txt.gz
> : 
> : This is under a recent 6.1 stable (for both "machines").
> : 
> : As you can see, the VMWare transfer manages to read a lot more data...
> : 
> : How do I go about finding the real problem and fixing it? I know nothing
> : about the FreeBSD USB stack...
> 
> I have similar problems with FTDI, but every time that I think I've
> found one, I discover that I have a second 'tip' running that's eating
> some characters :-(  Are you sure that this isn't happening?  I know
> it is a "rookie" mistake, but I recently wasted a day on it, and I'm
> no rookie :-).
> 
> Anyway, I've also seen other weird behavior with my ftdi dongle, but
> I've never been able to reproduce it well enough to try to fix the
> problem...
> 
> Warner

Wow, thanks for the quick response!

Yes, I'm sure no second 'tip' is running. In any case, wouldn't the
reads from the second 'tip' still be logged? :)

The fact that this runs fine under VMWare makes me strongly suspect a
timing issue that is fixed by some sort of buffering at the VMWare
level. Where should I start to look to hack something in to test this?
The ucom driver seems to be setting up the read transfers that don't
complete on time.

Geoff



More information about the freebsd-usb mailing list