USB UHCI Problems on 8-Stable
Hans Petter Selasky
hselasky at c2i.net
Fri Mar 16 16:27:33 UTC 2012
On Thursday 15 March 2012 23:06:40 Holm Tiffe wrote:
> >> Hi,
> >> For some time I had problems with my Cam (Olympus FE-230), it wouldn't
> >> recognized again after unplugging it from the USB Connector.
> >> Now I have a very similar Problem while trying to get an J-Link V8
> >> compatible Jtag debugger working in conjunction with openocd.
> >> Maybe there are bugs in openocd, but the bigger ones seems to be in
> >> FreeBSDs USB drivers.
> >> In the meantime I've cvs-supped to 8.3PRERELEASE (yesterday) built world
> >> and kernel. I've commented the ?hci drivers out of the kernel config and
> >> set USB_DEBUG.
> >> At fist please Cc me, I'm not on freebsd-usb.
> >> After Loading the uhci module:
> >Could you log the USB traffic on the UHCI controller using usbdump ?
> >It would be interesting to see what is going on.
> >Have you tried using an external High-Speed HUB?
> Here is the dump: http://www.tiffe.de/other/usbus1.dump
> This is connecting the J-link, starting openocd twice, removing
> and reconnecting the J-link followed by a kldunload uhci.
> Can't provide a dump while kldloading since usbdump stops when the driver
> is unloaded.
> I have no Highspeedr-Hub so this was a direct connect. Results are the same
> regardless whcih interface is used.
The BULK transfer stops by a stall. I suspect the UHCI is receiving more data
than it can, and is hardware programmed to stop it looks like. I can't change
that behaviour. It is not a bug in the FreeBSD USB driver I think.
Try this patch to /usr/ports/devel/openocd/
make extract patch
result = jlink_usb_read(jlink, in_length);
/* must read at least one packet at a time! */
result = jlink_usb_read(jlink, in_length + ((-in_length) & 63));
Then re-compile and try again!
More information about the freebsd-usb