
On 23/05/2018 14:03, Marek Vasut wrote:
On 05/23/2018 07:00 PM, DATACOM - Paulo.Zaneti wrote:
Hi,
Hi,
When trying to migrate a board from u-boot version 2016.09 to version 2018.03, I found a problem with a USB 2.0 device which used to work on version 2016.09.
Does it still happen in u-boot/master ?
Yes, it still happens.
I just tested it with the following commit: dca268a .travis.yml: Further optimizations
In u-boot version 2016.09 the device appears like this:
2: Mass Storage, USB Revision 2.0 - SanDisk Cruzer Blade 200443243002FB509E64 - Class: (from Interface) Mass Storage - PacketSize: 64 Configurations: 1 - Vendor: 0x0781 Product 0x5567 Version 1.38 Configuration: 1 - Interfaces: 1 Bus Powered 200mA Interface: 0 - Alternate Setting 0, Endpoints: 2 - Class Mass Storage, Transp. SCSI, Bulk only - Endpoint 1 In Bulk MaxPacket 512 - Endpoint 2 Out Bulk MaxPacket 512
But in version 2018.03 I just can't start usb. It fails with following error:
=> usb start starting USB... USB0: USB EHCI 1.00 scanning bus 0 for devices... EHCI timed out on TD - token=0x80008c80 unable to get device descriptor (error=-1) 1 USB Device(s) found USB1: USB EHCI 1.00 scanning bus 1 for devices... 1 USB Device(s) found scanning usb for storage devices... 0 Storage Device(s) found
I did a "git bisect" and found that this problem is related to the following commit:
c008faa usb: Only get 64 bytes device descriptor for full speed devices
I am not an expert on USB, so I would like to ask for help on this issue.
In u-boot v2018.03, file common/usb.c, line 973, shouldn't the comparison be like this:
if (do_read && dev->speed >= USB_SPEED_FULL) {
or, at list:
if (do_read && (dev->speed == USB_SPEED_FULL || dev->speed == USB_SPEED_HIGH)) {
I would submit a patch for this, but I lack on USB knowledge for explaining the patch.