[U-Boot] [PATCH 10/16] usb: xhci: Program 'route string' in the input slot context

Marek Vasut marex at denx.de
Mon Jun 26 18:07:43 UTC 2017


On 06/24/2017 03:57 AM, Bin Meng wrote:
> Hi Marek,
> 
> On Sat, Jun 24, 2017 at 2:02 AM, Marek Vasut <marex at denx.de> wrote:
>> On 06/23/2017 11:54 AM, Bin Meng 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.
>>
>> Great, but I really dislike the ifdef pollution, so this needs to be
>> sorted out.
> 
> The ifdef was needed due to it calls DM APIs or access DM udevice. I
> have no intention to add a new feature to the non-DM driver.

But then this creates a massive disparity, it's like we're growing two
USB stacks.

> Eventually we can get rid of all these ifdefs when all boards are
> converted to use DM USB.
> 
>>
>>> 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
>>>
> 
> [snip]
> 
> Regards,
> Bin
> 


-- 
Best regards,
Marek Vasut


More information about the U-Boot mailing list