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
> 
> get
> 
> >> 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:
> >Hi,
> >
> >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?
> >
> >--HPS
> 
> 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.

Hi,

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

ee ./work/openocd-0.5.0/src/jtag/drivers/jlink.c

Change:

result = jlink_usb_read(jlink, in_length);

Into:

/* 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!

--HPS


More information about the freebsd-usb mailing list