[U-Boot] [PATCH v2 09/15] usb: xhci: Program 'route string' in the input slot context

Simon Glass sjg at chromium.org
Fri Jul 14 13:50:40 UTC 2017


On 12 July 2017 at 02:37, Bin Meng <bmeng.cn at gmail.com> wrote:
> xHCI spec says: the values of the 'route string' field shall be
> initialized by the first 'Address Device' command issued to a
> device slot, and shall not be modified by any other command.
>
> So far U-Boot does not program this field, and it does not prevent
> SS device directly attached to root port, or HS device behind an HS
> hub, from working, due to the fact that 'route string' is used by
> the xHC to target SS packets. But in order to enumerate devices
> behind an SS hub, this field must be programmed.
>
> With this commit and along with previous commits, now SS & HS devices
> attached to a USB 3.0 hub can be enumerated by U-Boot.
>
> As usual, this new feature is only available when DM is on.
>
> Signed-off-by: Bin Meng <bmeng.cn at gmail.com>
>
> ---
> Test logs: two USB 3.0 hubs (one tier2, one tier3)
> => usb tree
> USB device tree:
>   1  Hub (5 Gb/s, 0mA)
>   |  U-Boot XHCI Host Controller
>   |
>   +-2  Hub (5 Gb/s, 0mA)
>   | |  GenesysLogic USB3.0 Hub
>   | |
>   | +-4  Hub (5 Gb/s, 0mA)
>   | | |  VIA Labs, Inc.          USB3.0 Hub
>   | | |
>   | | +-7  Mass Storage (5 Gb/s, 76mA)
>   | |      JetFlash Mass Storage Device 16Q6ZPH20GF3E8UQ
>   | |
>   | +-8  Vendor specific (5 Gb/s, 36mA)
>   |      Realtek USB 10/100/1000 LAN 00E04C680977
>   |
>   +-3  Hub (480 Mb/s, 100mA)
>     |  GenesysLogic USB2.0 Hub
>     |
>     +-5  Mass Storage (480 Mb/s, 200mA)
>     |    Netac OnlyDisk FF00ECB60800FFFF1526
>     |
>     +-6  Hub (480 Mb/s, 0mA)
>          VIA Labs, Inc.          USB2.0 Hub
>
> Changes in v2:
> - handle port number is greater than 15 in route string
>
>  drivers/usb/host/xhci-mem.c | 30 +++++++++++++++++++++++++++++-
>  1 file changed, 29 insertions(+), 1 deletion(-)

Reviewed-by: Simon Glass <sjg at chromium.org>


More information about the U-Boot mailing list