[U-Boot] Problems with USB 3 hubs

Aaron Williams Aaron.Williams at caviumnetworks.com
Thu Dec 17 10:12:08 CET 2015


Hi all,

I maintain U-Boot for the Cavium Octeon series of 64-bit MIPS processors 
and have been experiencing problems with USB 3 hubs with XHCI.

If I plug in a USB 3 thumb drive into a USB 3 hub it is not seen. After 
fixing numerous endian issues USB 3 thumb drives are fully supported via 
XHCI as long as there is no USB hub in the path.

Delving into the XHCI and USB hub code it appears that there is no 
proper support for USB 3 hubs which have a number of differences from 
USB 2. Is any work going on in this area?

For example, the hub descriptor format has changed as well as the BOS 
descriptor. I'm looking at the Linux XHCI and hub code and see a lot of 
USB 3 changes not present in U-Boot.

I have been backporting a lot of the support to our current bootloader 
code base which is based on the 7/2013 release.

I might add that I found a lot of issues in the USB code, especially 
XHCI that are endian related since our Octeon processors are running in 
big endian mode, plus the fact that DMA addresses are not the same as 
pointer addresses, plus the USB code is not 64-bit friendly.

While I can gladly share my code and changes, we currently are not using 
the latest release, nor will I have time to upgrade to it for at least 
several months due to too many other projects on my plate (it doesn't 
help matters that we don't use git internally for U-Boot).

At some point I would love to get our code base merged in but this will 
be a significant effort due to the sheer amount of code involved.

-Aaron

-- 
Aaron Williams
Software Engineer
Cavium, Inc.
(408) 943-7198  (510) 789-8988 (cell)



More information about the U-Boot mailing list