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

Bin Meng bmeng.cn at gmail.com
Tue Jun 27 08:27:36 UTC 2017


Hi Stefan,

On Tue, Jun 27, 2017 at 1:23 PM, Stefan Roese <sr at denx.de> wrote:
> Hi Bin,
>
>
> On 27.06.2017 02:01, Bin Meng wrote:
>>
>> On Tue, Jun 27, 2017 at 2:07 AM, Marek Vasut <marex at denx.de> wrote:
>>>
>>> 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.
>>>
>>
>> Yep, unfortunately. But if we continue adding new features/fixes to
>> the old non-DM stuff, I am not sure how this can encourage people to
>> switch to DM.
>
>
> Correct. We definitely don't want to add new features to non-DM
> drivers / IF, if this is non-trivial.
>
>> Maybe I can check all boards that use xHCI to see if
>> they are switched to DM?
>
>
> xHCI is still quite new in U-Boot, so I would expect that all
> platforms using it, are using DM or at least not far away from using
> it. Yes, please check all xHCI "users", if they use DM. Then we
> know if and which users need some "persuasion" to switch over to
> DM soon. ;)

I checked all boards that have CONFIG_USB_XHCI_HCD defined but without
CONFIG_DM_USB. Here is the list.

configs/uniphier_v8_defconfig:36:CONFIG_USB_XHCI_HCD=y
configs/xilinx_zynqmp_zc1751_xm015_dc1_defconfig:62:CONFIG_USB_XHCI_HCD=y
configs/am57xx_evm_nodt_defconfig:53:CONFIG_USB_XHCI_HCD=y
configs/evb-rk3328_defconfig:34:CONFIG_USB_XHCI_HCD=y
configs/ls1021atwr_nor_lpuart_defconfig:43:CONFIG_USB_XHCI_HCD=y
configs/uniphier_pxs2_ld6b_defconfig:44:CONFIG_USB_XHCI_HCD=y
configs/ls1012ardb_qspi_SECURE_BOOT_defconfig:43:CONFIG_USB_XHCI_HCD=y
configs/ls1021atwr_sdcard_ifc_SECURE_BOOT_defconfig:57:CONFIG_USB_XHCI_HCD=y
configs/k2e_hs_evm_defconfig:34:CONFIG_USB_XHCI_HCD=y
configs/ls1021aqds_sdcard_qspi_defconfig:61:CONFIG_USB_XHCI_HCD=y
configs/am43xx_evm_ethboot_defconfig:48:CONFIG_USB_XHCI_HCD=y
configs/xilinx_zynqmp_ep_defconfig:70:CONFIG_USB_XHCI_HCD=y
configs/ls1021aqds_nand_defconfig:57:CONFIG_USB_XHCI_HCD=y
configs/ls1021atwr_qspi_defconfig:50:CONFIG_USB_XHCI_HCD=y
configs/k2g_evm_defconfig:45:CONFIG_USB_XHCI_HCD=y
configs/am57xx_evm_defconfig:63:CONFIG_USB_XHCI_HCD=y
configs/am43xx_hs_evm_defconfig:49:CONFIG_USB_XHCI_HCD=y
configs/am43xx_evm_defconfig:39:CONFIG_USB_XHCI_HCD=y
configs/ls1021atwr_nor_defconfig:42:CONFIG_USB_XHCI_HCD=y
configs/firefly-rk3399_defconfig:59:CONFIG_USB_XHCI_HCD=y
configs/puma-rk3399_defconfig:78:CONFIG_USB_XHCI_HCD=y
configs/cl-som-am57x_defconfig:55:CONFIG_USB_XHCI_HCD=y
configs/ls1021aqds_nor_SECURE_BOOT_defconfig:43:CONFIG_USB_XHCI_HCD=y
configs/uniphier_pro4_defconfig:43:CONFIG_USB_XHCI_HCD=y
configs/xilinx_zynqmp_zc1751_xm016_dc2_defconfig:61:CONFIG_USB_XHCI_HCD=y
configs/xilinx_zynqmp_zcu102_defconfig:63:CONFIG_USB_XHCI_HCD=y
configs/ls1021atwr_nor_SECURE_BOOT_defconfig:42:CONFIG_USB_XHCI_HCD=y
configs/cm_t43_defconfig:67:CONFIG_USB_XHCI_HCD=y
configs/k2g_hs_evm_defconfig:36:CONFIG_USB_XHCI_HCD=y
configs/am43xx_evm_qspiboot_defconfig:45:CONFIG_USB_XHCI_HCD=y
configs/ls1021aqds_qspi_defconfig:50:CONFIG_USB_XHCI_HCD=y
configs/am57xx_hs_evm_defconfig:67:CONFIG_USB_XHCI_HCD=y
configs/xilinx_zynqmp_zcu102_revB_defconfig:63:CONFIG_USB_XHCI_HCD=y
configs/ls1021aqds_sdcard_ifc_defconfig:55:CONFIG_USB_XHCI_HCD=y
configs/uniphier_ld20_defconfig:39:CONFIG_USB_XHCI_HCD=y
configs/am43xx_evm_usbhost_boot_defconfig:61:CONFIG_USB_XHCI_HCD=y
configs/ls1021atwr_sdcard_qspi_defconfig:61:CONFIG_USB_XHCI_HCD=y
configs/evb-rk3399_defconfig:60:CONFIG_USB_XHCI_HCD=y
configs/k2hk_evm_defconfig:43:CONFIG_USB_XHCI_HCD=y
configs/k2hk_hs_evm_defconfig:34:CONFIG_USB_XHCI_HCD=y
configs/k2e_evm_defconfig:43:CONFIG_USB_XHCI_HCD=y
configs/ls1021atwr_sdcard_ifc_defconfig:54:CONFIG_USB_XHCI_HCD=y
configs/k2l_evm_defconfig:43:CONFIG_USB_XHCI_HCD=y

So it looks we have lots of conversion work to be done by many board
maintainers. I am not sure how to proceed on this.

Regards,
Bin


More information about the U-Boot mailing list