[U-Boot] RFC [PATCH 3/5] usb: Some EHCI chipsets are slow to respond.

Jason u-boot at lakedaemon.net
Fri Jul 29 16:31:04 CEST 2011


On Thu, Jul 28, 2011 at 12:16:00PM -0700, Prafulla Wadaskar wrote:
> > -----Original Message-----
> > From: Jason [mailto:u-boot at lakedaemon.net]
> > Sent: Thursday, July 28, 2011 7:07 AM
> > To: Prafulla Wadaskar
> > Cc: clint at debian.org; wd at denx.de; u-boot at lists.denx.de; Prabhanjan
> > Sarnaik; Ashish Karkare; Siddarth Gore; bdale at gag.com
> > Subject: Re: RFC [PATCH 3/5] usb: Some EHCI chipsets are slow to
> > respond.
> > 
> > On Wed, Jul 27, 2011 at 11:23:50AM -0700, Prafulla Wadaskar wrote:
> > > > -----Original Message-----
> > > > From: Jason Cooper [mailto:u-boot at lakedaemon.net]
> > > > Sent: Wednesday, July 27, 2011 2:49 AM
> > > > To: clint at debian.org; wd at denx.de; Prafulla Wadaskar
> > > > Cc: u-boot at lists.denx.de; Prabhanjan Sarnaik; Ashish Karkare;
> > Siddarth
> > > > Gore; bdale at gag.com; Jason Cooper
> > > > Subject: RFC [PATCH 3/5] usb: Some EHCI chipsets are slow to
> > respond.
> > > >
> > > > This fixes 'EHCI timed out on TD...' on the dreamplug board.
> > > >
> > > > Signed-off-by: Jason Cooper <u-boot at lakedaemon.net>
> > > > ---
> > > >  include/usb.h |    2 +-
> > > >  1 files changed, 1 insertions(+), 1 deletions(-)
> > > >
> > > > diff --git a/include/usb.h b/include/usb.h
> > > > index 53603a5..168e2b2 100644
> > > > --- a/include/usb.h
> > > > +++ b/include/usb.h
> > > > @@ -46,7 +46,7 @@
> > > >   * This is the timeout to allow for submitting an urb in ms. We
> > allow
> > > > more
> > > >   * time for a BULK device to react - some are slow.
> > > >   */
> > > > -#define USB_TIMEOUT_MS(pipe) (usb_pipebulk(pipe) ? 5000 : 100)
> > > > +#define USB_TIMEOUT_MS(pipe) (usb_pipebulk(pipe) ? 5000 : 500)
> > >
> > > This looks global change, how will it affect other implementations?
> > 
> > I dunno, that's why it's RFC. ;-)  It's a timeout, so it *shouldn't*
> > adversely affect other systems with well behaved usb chipsets.  And
> > boards will ill-tempered usb chipsets should work better.  But I'm
> > not familiar enough with the usb code to say that definitively.
> > 
> > I could try doing a dreamplug-specific hack to make it work, but if
> > there's no adverse affect to other systems, then this is a cleaner
> > approach.
> 
> You can post this standalone patch, remove from this patch series
> since it will be acked/applied by other custodian.

Based on new info (the OpenRD-ultimate is experiencing the same bug), a
git bisect has revealed the following patch as the culprit:

commit c2dd0d45540397704de9b13287417d21049d34c6
Author: Aneesh V <aneesh at ti.com>
Date:   Thu Jun 16 23:30:49 2011 +0000

    armv7: integrate cache maintenance support
    
    - Enable I-cache on bootup
    - Enable MMU and D-cache immediately after relocation
        - Do necessary initialization before enabling d-cache and MMU
    - Changes to cleanup_before_linux()
        - Make changes according to the new framework
    
    Signed-off-by: Aneesh V <aneesh at ti.com>


The reporter was also able to verify that reverting this patch fixed
reading from the internal usb attached microsd card.  I'd be lying if I
said I understood how.

I think the problem is in one of two areas.  Either the patch is
incorrect, or it's fix highlighted a bug in the marvell EHCI code.  I'll
add some folks to the CC who can add more intelligent thoughts.  :-)

You can see his error report here [1] which is the exact same error
messages I was trying to fix after giving the command 'usb start'.

thx,

Jason.

[1] http://lists.denx.de/pipermail/u-boot/2011-July/097333.html


More information about the U-Boot mailing list