On Sat, Feb 29, 2020 at 12:32:57AM +0100, Marek Vasut wrote: > On 2/26/20 12:29 PM, Lukasz Majewski wrote: > > This patch aims to improve robustness of 'usb' command operation on the > > ehci-hcd IP block as it ports to contemporary U-Boot the patch described > > and provided in [1] (originally applicable to U-Boot 2016.05). > > > > According to the fix author - "rayvt" (from [1]): > > [...] > > > diff --git a/common/usb_storage.c b/common/usb_storage.c > > index 097b6729c1..48c8c2ae64 100644 > > --- a/common/usb_storage.c > > +++ b/common/usb_storage.c > > @@ -111,6 +111,18 @@ int usb_stor_get_info(struct usb_device *dev, struct > > us_data *us, > > struct blk_desc *dev_desc); > > int usb_storage_probe(struct usb_device *dev, unsigned int ifnum, > > struct us_data *ss); > > + > > +#ifdef CONFIG_USB_EHCI_HCD > > + /* > > + * The U-Boot EHCI driver can handle any transfer length as long as > > + * there is enough free heap space left, but the SCSI READ(10) and > > + * WRITE(10) commands are limited to 65535 blocks. > > + */ > > +int usb_max_xfer_blk = 4096; > > +#else > > +int usb_max_xfer_blk = 20; > > +#endif > > This all looks horribly wrong and exactly what > 7d6fd7f0ba71cd93d94079132f958d9630f27a89 and > 02b0e1a36c5bc20174299312556ec4e266872bd6 fixed properly. > > All those "dynamic reduction of transfer size" attempts are nonsensical, > the real solution (sadly) is to reduce the transfer size to cater for > the most limited devices and profile/fix the remaining delays in the USB > stack (which should have already been done, see the commits above). This > is also what the Linux USB stack does. > > What is the problem you are trying to solve here ?
Things like the following (omap3_beagle_defconfig): U-Boot SPL 2020.04-rc3-00009-g9e1d65f36b83 (Feb 28 2020 - 19:08:53 -0500) Trying to boot from MMC1 U-Boot 2020.04-rc3-00009-g9e1d65f36b83 (Feb 28 2020 - 19:08:53 -0500) OMAP3630/3730-GP ES1.1, CPU-OPP2, L3-200MHz, Max CPU Clock 800 MHz Model: TI OMAP3 BeagleBoard OMAP3 Beagle board + LPDDR/NAND I2C: ready DRAM: 256 MiB NAND: 0 MiB MMC: OMAP SD/MMC: 0 Loading Environment from NAND... *** Warning - readenv() failed, using default environment Beagle xM Rev A/B No EEPROM on expansion board OMAP die ID: 6e5e00211ff00000015739eb08031024 Net: usb_ether starting USB... USB0: USB EHCI 1.00 scanning bus 0 for devices... EHCI timed out on TD - token=0x80008d80 EHCI timed out on TD - token=0x80008c80 EHCI timed out on TD - token=0x80008c80 EHCI timed out on TD - token=0x80008c80 ERROR: NOT USB_CONFIG_DESC b8 EHCI timed out on TD - token=0x80008d80 EHCI timed out on TD - token=0x80008c80 EHCI timed out on TD - token=0x80008c80 EHCI timed out on TD - token=0x80008c80 EHCI timed out on TD - token=0x80008c80 EHCI timed out on TD - token=0x80008c80 EHCI timed out on TD - token=0x80008c80 EHCI timed out on TD - token=0x80008d80 EHCI timed out on TD - token=0x80008c80 EHCI timed out on TD - token=0x80008c80 EHCI timed out on TD - token=0x80008d80 EHCI timed out on TD - token=0x80008c80 EHCI timed out on TD - token=0x80008c80 EHCI timed out on TD - token=0x80008d80 EHCI timed out on TD - token=0x80008c80 EHCI timed out on TD - token=0x80008c80 EHCI timed out on TD - token=0x80008d80 3 USB Device(s) found scanning usb for ethernet devices... 0 Ethernet Device(s) found Hit any key to stop autoboot: 2 0 BeagleBoard # usb tree USB device tree: 1 Hub (480 Mb/s, 0mA) | u-boot EHCI Host Controller | |+-2 Hub (480 Mb/s, 2mA) | |+-3 See Interface (480 Mb/s, 0mA) ??????????? ??????????? ??????????? BeagleBoard # Note that the hub and ethernet are on-SBC and not something I'm plugging in. Thanks! -- Tom
signature.asc
Description: PGP signature