[U-Boot] Problems with USB 3 hubs

Marek Vasut
2015-12-17T15:06:14Z

On Thursday, December 17, 2015 at 10:12:08 AM, Aaron Williams wrote:
> Hi all,

Hi Aaron,

> 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?

Not to my knowledge, sorry.

> 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.

I see, I suspect the code was mostly tested on ARMv7 which is why those
issues went undetected.

> 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).

Is it possible for you to boot latest mainline U-Boot on octeon, fix the
issues, submit the fixes and then backport them?

> 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.

Patches are welcome :)

> -Aaron

Best regards,
Marek Vasut