[U-Boot] Raspberry Pi USB storage broken after 64 byte device descriptor patch

I have a recent problem with USB storage on the Raspberry Pi 3 with U-Boot. Take a look at the output from v2017.01:
------ USB0: Core Release: 2.80a scanning bus 0 for devices... 4 USB Device(s) found scanning usb for storage devices... 1 Storage Device(s) found scanning usb for ethernet devices... 1 Ethernet Device(s) found Hit any key to stop autoboot: 0 U-Boot> ------
which is the correct output. And compare to v2018.01:
------ USB0: Core Release: 2.80a scanning bus 0 for devices... unable to get device descriptor(error=-110) 3 USB Device(s) found scanning usb for storage devices... 0 Storage Device(s) found Hit any key to stop autoboot: 0 U-Boot> ------
I'm unable to use USB storage afterwards, such as "ls usb 0".
I have bisected the commits and found that the problem was introduced in the commit below. I am not familiar enough with USB internals to comment on the correctness of the commit, but apparently it's not working entirely as expected. Maybe the original author can comment?
------ commit c008faa77358bb5b313696dd1d5bb8afa03a6ca2 Author: Bin Meng bmeng.cn@gmail.com Date: Mon Sep 18 15:40:42 2017
usb: Only get 64 bytes device descriptor for full speed devices
Full speed device endpoint 0 can have 8/16/32/64 bMaxPacketSize0. Other speed devices report fixed value per USB spec. So it only makes sense if we send a get device descriptor with 64 bytes to full speed devices.
While we are here, update the comment block to be within 80 cols.
Signed-off-by: Bin Meng bmeng.cn@gmail.com ------
participants (1)
-
Kristian Amlie