[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