USB gadget unreliable on software reboot (BeagleBoard xM)
Hi,
On my BeagleBoard xM, configuring the MUSB controller in Linux to peripheral mode (i.e. not OTG mode) and using a built-in gadget driver, the gadget device sometimes does not appear after a software reboot.
I've seen this with both 2.6.32 and 2.6.39 (Angstrom 2008.1 and 2010.x distros, respectively).
Our own board exhibits the same behaviour. However: configuring the MUSB controller in u-boot as a device and only booting as far as u-boot before a software reset, the device always appears. To me this suggests a MUSB driver issue in Linux (as opposed to, say, PHY initialization).
I checked with a USB analyzer what happens on the bus: when it doesn't show up there is a reset on the bus when we reboot, but it doesn't re-enter full speed mode. No SOFs are sent either.
I did a rudimentary check of the OTG registers in the TPS chip (over i2c) but saw nothing out of the ordinary.
I set musb_debug = 5 in musb_core.c, but no errors are reported.
I haven't looked at the MUSB controller registers yet; that's next.
Any ideas?
Thanks,
Orjan
Signature · 2 lines
Orjan Friberg FlatFrog Laboratories AB