[U-Boot] [PATCH] Fix to make U-Boot work with more USB sticks

Aaron Williams Aaron.Williams at caviumnetworks.com
Thu Feb 3 01:25:28 CET 2011


We have our cache enabled since we're a cache coherent architecture so the 
performance is not due to cache (otherwise FAT would also be slow).

The hub that's failing has a transaction translator built in whereas the ones 
that work do not. For some reason it fails trying to reset this hub.

Granted, this hub is getting a lot of poor reviews, though I suspect the hub 
draws a lot more power than advertized due to all of its insanely bright LEDs. 
At least from within Linux it seems to work fine, both the embedded board and 
my desktop.

http://terminus-tech.com/images/FE2.1%20Product%20Brief%20(Rev.%201.0).pdf

http://www.amazon.com/Hi-Speed-Port-USB-Power-
Adapter/dp/B000Y8EXSS/ref=sr_1_16?s=electronics&ie=UTF8&qid=1296691437&sr=1-16

# lsusb -v -s 1:12

Bus 001 Device 012: ID 1a40:0201 TERMINUS TECHNOLOGY INC. 
Device Descriptor:
  bLength                18
  bDescriptorType         1
  bcdUSB               2.00
  bDeviceClass            9 Hub
  bDeviceSubClass         0 Unused
  bDeviceProtocol         2 TT per port
  bMaxPacketSize0        64
  idVendor           0x1a40 TERMINUS TECHNOLOGY INC.
  idProduct          0x0201 
  bcdDevice            1.00
  iManufacturer           0 
  iProduct                1 USB 2.0 Hub [MTT]
  iSerial                 0 
  bNumConfigurations      1
  Configuration Descriptor:
    bLength                 9
    bDescriptorType         2
    wTotalLength           41
    bNumInterfaces          1
    bConfigurationValue     1
    iConfiguration          0 
    bmAttributes         0xe0
      Self Powered
      Remote Wakeup
    MaxPower              100mA
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        0
      bAlternateSetting       0
      bNumEndpoints           1
      bInterfaceClass         9 Hub
      bInterfaceSubClass      0 Unused
      bInterfaceProtocol      1 Single TT
      iInterface              0 
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x81  EP 1 IN
        bmAttributes            3
          Transfer Type            Interrupt
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0001  1x 1 bytes
        bInterval              12
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        0
      bAlternateSetting       1
      bNumEndpoints           1
      bInterfaceClass         9 Hub
      bInterfaceSubClass      0 Unused
      bInterfaceProtocol      2 TT per port
      iInterface              0 
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x81  EP 1 IN
        bmAttributes            3
          Transfer Type            Interrupt
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0001  1x 1 bytes
        bInterval              12
Hub Descriptor:
  bLength               9
  bDescriptorType      41
  nNbrPorts             7
  wHubCharacteristic 0x0088
    Ganged power switching
    Per-port overcurrent protection
    TT think time 8 FS bits
    Port indicators
  bPwrOn2PwrGood       50 * 2 milli seconds
  bHubContrCurrent    100 milli Ampere
  DeviceRemovable    0x00
  PortPwrCtrlMask    0xff
 Hub Port Status:
   Port 1: 0000.0100 power
   Port 2: 0000.0100 power
   Port 3: 0000.0100 power
   Port 4: 0000.0100 power
   Port 5: 0000.0100 power
   Port 6: 0000.0100 power
   Port 7: 0000.0100 power
Device Qualifier (for other device speed):
  bLength                10
  bDescriptorType         6
  bcdUSB               2.00
  bDeviceClass            9 Hub
  bDeviceSubClass         0 Unused
  bDeviceProtocol         0 Full speed (or root) hub
  bMaxPacketSize0        64
  bNumConfigurations      1
Device Status:     0x0001
  Self Powered


On Tuesday, February 01, 2011 05:46:51 pm Simon Glass wrote:
> Hi Aaron,
> 
> OK good. Yes I notice ext2 is slow also, but the dcache is still off so I
> assumed that was it.
> 
> I have had no hub problems, but have only tried two types. I do recall a
> LUN patch floating around. I was going to try with an uSD card to see if
> it is needed there.
> 
> Regards,
> Simon
> 
> On Tue, Feb 1, 2011 at 4:03 PM, Aaron Williams <
> 
> Aaron.Williams at caviumnetworks.com> wrote:
> > I too am interested in this. I am running EHCI and have had problems with
> > a number of USB storage devices, one of which (the SanDisk Cruzer)
> > causes a crash due to it reporting the maximum LUN as 1.  I'm also
> > seeing some interesting performance issues with ext2 being extremely
> > slow compared to FAT.
> > 
> > Additionally, I have been trying various USB hubs with EHCI and have
> > found that a large percentage fail to work.  Hopefully I'll look into it
> > more soon
> > when I get ahold of our USB analyzer again.
> > 
> > -Aaron
> > 
> > On Tuesday, February 01, 2011 11:34:00 am Remy Bohmer wrote:
> > > Hi,
> > > 
> > > 2011/2/1 Simon Glass <sjg at chromium.org>:
> > > > Hi Remy,
> > > > Still waiting on some boards to try, unfortunately. I expect it will
> > > > happen in the next 2 weeks though (ARM9 and OMAP4 platforms). Once I
> > 
> > get
> > 
> > > > to the bottom of it I will split the patches as requested. I have not
> > > > seen reports from other users of U-Boot. Also working on USB host
> > > > Ethernet.
> > > > Regards,
> > > > Simon
> > > 
> > > FWIW: I tested it on Atmel at91 and it does not seem to break OHCI, it
> > > does not seem to fix some troubles USB sticks I have here either...
> > > 
> > > Kind regards,
> > > 
> > > Remy


More information about the U-Boot mailing list