[coreboot] SeaBIOS wit USB3.0 hub and USB3.0 devide behind the hub

Kevin O'Connor kevin at koconnor.net
Thu Dec 11 07:18:51 CET 2014


On Wed, Dec 10, 2014 at 09:44:06PM -0800, Julius Werner wrote:
> This is a complicated case most firmware USB stacks don't support (I
> don't have experience with SeaBIOS, but I know that both U-Boot and
> libpayload won't work with that either). A USB 3.0 hub is essentially
> two completely separate logical hubs connecting to two completely
> separate logical ports on the host. The USB 3.0 part of the hub uses a
> slightly different protocol (e.g. some bits in the port status have
> different meanings) and from a quick glance the SeaBIOS code doesn't
> seem to take that into account. I'm not sure where exactly it would
> break, but one possibility is the speed detection (in USB 2.0 the port
> status bits 9 and 10 indicate the speed, but in USB 3.0 it's implied
> to always be SuperSpeed and those two bits indicate the link state and
> the port power status instead). The speed is written in the XHCI Slot
> Context for the device and using the wrong value there might cause
> problems.

Right, SeaBIOS does not currently have USB3 hub specific code.  The
USB3 spec has close to 100 pages on hubs, but much of it resembles the
USB2 hub details and it's not immiediately clear which parts differ.

BTW, please CC the seabios mailing list on emails.

-Kevin



More information about the coreboot mailing list