All of lore.kernel.org
 help / color / mirror / Atom feed
From: Tom Rini <trini@konsulko.com>
To: u-boot@lists.denx.de
Subject: [PATCH] usb: ehci: Fix "EHCI timed out on TD - token=XXXX" error on ehci-hcd
Date: Sun, 1 Mar 2020 18:04:56 -0500	[thread overview]
Message-ID: <20200301230456.GO18302@bill-the-cat> (raw)
In-Reply-To: <5af0dfb2-fde4-0d35-0d9b-b7158f9049a5@denx.de>

On Sat, Feb 29, 2020 at 08:20:57AM +0100, Marek Vasut wrote:
> On 2/29/20 4:20 AM, Tom Rini wrote:
> > 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
> 
> [...]
> 
> > 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 \b\b\b 0 
> > BeagleBoard # usb tree
> > USB device tree:
> >   1  Hub (480 Mb/s, 0mA)
> >   |  u-boot EHCI Host Controller 
> >   |
> >   |\b+-2  Hub (480 Mb/s, 2mA)
> >     |
> >     |\b+-3  See Interface (480 Mb/s, 0mA)
> >          \b???\b???????? \b???\b???????? \b???\b????????
> >        
> > BeagleBoard # 
> > 
> > Note that the hub and ethernet are on-SBC and not something I'm plugging
> > in.  Thanks!
> 
> The device #3 is a usb mass storage or what is it ?

It's a usb ethernet device.

> Can you try and implement usb_get_max_xfer_size for musb and make it
> report 240*512 unconditionally (*size = 240*512; return 0;) ? I think
> that would "fix" it for you on omap too.

I'll pencil in some time to try that, thanks.

-- 
Tom
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 659 bytes
Desc: not available
URL: <https://lists.denx.de/pipermail/u-boot/attachments/20200301/634f0073/attachment.sig>

  reply	other threads:[~2020-03-01 23:04 UTC|newest]

Thread overview: 22+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-02-26 11:29 [PATCH] usb: ehci: Fix "EHCI timed out on TD - token=XXXX" error on ehci-hcd Lukasz Majewski
2020-02-26 16:05 ` Tom Rini
2020-02-28 23:32 ` Marek Vasut
2020-02-29  3:20   ` Tom Rini
2020-02-29  7:20     ` Marek Vasut
2020-03-01 23:04       ` Tom Rini [this message]
2020-03-02  0:39         ` Marek Vasut
2020-03-02 17:00           ` Tom Rini
2020-03-14 18:16             ` Marek Vasut
2020-03-01 17:19   ` Lukasz Majewski
2020-03-01 17:35     ` Marek Vasut
2020-03-01 17:59       ` Lukasz Majewski
2020-03-01 18:39         ` Marek Vasut
2020-03-02 13:01           ` Lukasz Majewski
2020-03-02 19:08             ` Marek Vasut
2020-03-02 13:21 ` Lukasz Majewski
2020-03-02 19:19   ` Marek Vasut
2020-03-02 19:54     ` Tom Rini
2020-03-02 19:58       ` Marek Vasut
2020-03-02 19:59         ` Tom Rini
2020-03-02 23:25     ` Lukasz Majewski
2020-03-03 12:29       ` Marek Vasut

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20200301230456.GO18302@bill-the-cat \
    --to=trini@konsulko.com \
    --cc=u-boot@lists.denx.de \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.