[U-Boot] Failing USB devices

Benoît Thébaudeau benoit.thebaudeau at advansee.com
Fri Aug 23 12:54:19 CEST 2013


Dear Marek, Andrew,

On Friday, August 23, 2013 5:23:14 AM, Marek Vasut wrote:
> Dear Andrew Murray,
> 
> > Hello,
> > 
> > I'm unable to use some mass storage devices with the current git version
> > (6612ab33956ae09c5ba2fde9c1540b519625ba37) of UBoot on a TI Davinci custom
> > board. I have 7 pen drives, and 2 of them fail.
> > 
> > I-O DATA USB Flash Disk (0x04bb/0x0c43)
> > 
> > ...
> > 2 USB Device(s) found
> > scan end
> >        scanning usb for storage devices... i=0
> > i=1
> > 
> > 
> > USB Mass Storage device detected
> > Transport: Bulk/Bulk/Bulk
> > Endpoints In 1 Out 2 Int 0
> > usb_control_msg: request: 0xFE, requesttype: 0xA1, value 0x0 index 0x0
> > length 0x1
> > Get Max LUN -> len = 1, result = 0
> >  address 2
> > COMMAND phase
> > DATA phase
> > STATUS phase
> > !CSWSIGNATURE
> > BBB_reset
> > usb_control_msg: request: 0xFF, requesttype: 0x21, value 0x0 index 0x0
> > length 0x0
> > RESET:stall
> > inquiry returns -1
> > COMMAND phase
> > DATA phase
> > STATUS phase
> > !CSWSIGNATURE
> > BBB_reset
> > usb_control_msg: request: 0xFF, requesttype: 0x21, value 0x0 index 0x0
> > length 0x0
> > RESET:stall
> > inquiry returns -1
> > COMMAND phase
> > DATA phase
> > STATUS phase
> > !CSWSIGNATURE
> > BBB_reset
> > usb_control_msg: request: 0xFF, requesttype: 0x21, value 0x0 index 0x0
> > length 0x0
> > RESET:stall
> > inquiry returns -1
> > COMMAND phase
> > DATA phase
> > STATUS phase
> > !CSWSIGNATURE
> > BBB_reset
> > usb_control_msg: request: 0xFF, requesttype: 0x21, value 0x0 index 0x0
> > length 0x0
> > RESET:stall
> > inquiry returns -1
> > COMMAND phase
> > DATA phase
> > STATUS phase
> > !CSWSIGNATURE
> > BBB_reset
> > usb_control_msg: request: 0xFF, requesttype: 0x21, value 0x0 index 0x0
> > length 0x0
> > RESET:stall
> > inquiry returns -1
> > error in inquiry
> > i=2
> > 0 Storage Device(s) found
> > 
> > In this case putting a delay of 1000ms in usb_stor_BBB_transport between
> > the COMMAND and DATA phase, (in place of the conditional 5ms USB_READY
> > delay), overcomes this issue. It seems this 1000ms delay is only required
> > for the first COMMAND, subsequent COMMAND phases seem happy with the 5ms
> > delay.
> > 
> > Lexar JumpDrive 32GB (0x0424/0x2507):
> > 
> 
> So the device takes too long to init itself after powering up the port. It
> would
> be nice if you could check the spec and see if there is a way to query the
> device for ready condition. Although I remember we already do that.

This is the kind of issue that made me create this (discarded) patch at some
point:
http://patchwork.ozlabs.org/patch/176527/

Can you try it? I'm not sure that it will be helpful for your specific case.

I also have this issue with some devices and mainline U-Boot. I can confirm that
this is a device initialization delay issue because subsequent USB commands on
the device succeed (only the single automatic U-Boot USB command that I use at
boot time fails).

Best regards,
Benoît


More information about the U-Boot mailing list