[U-Boot] [PATCH v2 00/18] usb: xhci: Fix USB xHCI support on Intel platform

Stefan Roese sr at denx.de
Tue Jul 18 09:59:10 UTC 2017


Hi Marek,
Hi Bin,

On 18.07.2017 11:04, Marek Vasut wrote:
> On 07/18/2017 11:03 AM, Bin Meng wrote:
>> Hi Marek,
>>
>> On Mon, Jul 10, 2017 at 10:46 PM, Bin Meng <bmeng.cn at gmail.com> wrote:
>>> Hi Marek,
>>>
>>> On Thu, Jun 22, 2017 at 3:13 PM, Bin Meng <bmeng.cn at gmail.com> wrote:
>>>> Currently U-Boot xHCI driver does not work on Intel BayTrail SoC based
>>>> boards that have USB 3.0 ports. Trying to do a 'usb start' simply hangs
>>>> the board. This series fixes a bunch of xHCI driver issues to make it
>>>> work on Intel's platform.
>>>>
>>>> Issues identified in the U-Boot xHCI driver are really spec violations,
>>>> but apparently other xHCI IPs found on ARM SoCs (mainly Synopsis IP?)
>>>> are quite tolerant with these spec violations, or IOW those IPs don't
>>>> respect the xHCI spec. While it comes to Intel platform, it just breaks.
>>>>
>>>> Note xHCI interrupt transfer is still not supported in this series, as
>>>> it has been there since the original commit of xHCI support for years.
>>>>
>>>> Tested on Intel MinnowMax board with the following USB devices:
>>>> - Dell USB 1.1 keyboard
>>>> - Dell USB 2.0 mouse
>>>> - Netac USB 2.0 flash disk
>>>> - JetFlash USB 3.0 flash disk
>>>> - GenesysLogic 4-port USB 3.0 hub, with an integrated Realtek USB
>>>>    ethernet chipset connected to one of its downstream port
>>>>
>>>> Testing were performed on both ports (2.0 port and 3.0 port), and both
>>>> ports are connected to xHCI (configure MinnowMax to enable xHCI).
>>>>
>>>> Testing results:
>>>> - DELL USB 1.1 keyboard and 2.0 mouse can be enumerated on both ports
>>>> - USB 2.0 and 3.0 flash disks work fine (enumerated, read/write) on
>>>>    both ports
>>>> - GenesysLogic USB 3.0 hub can be enumerated on 2.0 port as a 2.0
>>>>    hub, and the integrated Realtek USB ethernet chipset enumerated as
>>>>    well. USB 2.0 and 3.0 flash disks connected via the hub can be
>>>>    enumerated, but DELL USB 1.1 keyboard and 2.0 mouse cannot.
>>>> - GenesysLogic USB 3.0 hub can be enumerated on 3.0 port as a 3.0 hub,
>>>>    but the integrated Realtek USB ethernet chipset cannot be enumerated.
>>>>    None of devices connected via the hub can be enumerated. U-Boot xHCI
>>>>    driver just throws BUG_ON() on the event TRB handling.
>>>>
>>>> This indicates that USB 3.0 hub support in U-Boot is seriously broken.
>>>> So far this series tries to fix some of the issues identified, but the
>>>> USB 3.0 hub is still not working. This will be left as future work.
>>>>
>>>> The USB 3.0 hub work includes: port status translation, USB 3.0 newly
>>>> added "Set Hub Depth" request support, xHCI codes update to fill in
>>>> hub description fields in the input slot context when issuing commands
>>>> to xHC, etc.
>>>>
>>>> This series is available at u-boot-x86/xhci-working for testing.
>>>>
>>>> Changes in v2:
>>>> - Change to use uint and also 'normal' variable name packet_size.
>>>> - Update description to use "PCI-based"
>>>> - Remove CONFIG_USB_XHCI_PCI from config_whitelist.txt
>>>> - Drop two x86 patches that were already applied to u-boot-x86
>>>
>>> Do you have any comments regarding to this first series for xHCI? If
>>> not, I will rebase my series and send out for you to apply soon.
>>
>> Do you have any comments to all the 3 xHCI series? If not, I will
>> rebase again soon for you to apply.
> 
> I have none ; if SR has no comments either, works for me.

I've tested the latest version of these patches with Bin's
other xHCI / hub patches and things look really good now for
xHCI support in general. So from me (perhaps again):

Reviewed-by: Stefan Roese <sr at denx.de>
Tested-by: Stefan Roese <sr at denx.de>

Thanks,
Stefan


More information about the U-Boot mailing list