[U-Boot] [PATCH 0/3] usb: xhci: Add interrupt transfer support

Bin Meng bmeng.cn at gmail.com
Wed Jun 28 12:11:32 UTC 2017


Hi Stefan,

On Wed, Jun 28, 2017 at 7:00 PM, Stefan Roese <sr at denx.de> wrote:
> Hi Bin,
>
> On 26.06.2017 13:05, Bin Meng wrote:
>> This series is the final series of the xHCI driver update.
>>
>> This adds the missing interrupt transfer support to xHCI driver, so
>> that devices like USB keyboard that uses interrupt transfer when
>> CONFIG_SYS_USB_EVENT_POLL is defined can work.
>>
>> Previous two series:
>> [1]: usb: xhci: Fix USB xHCI support on Intel platform
>> https://lists.denx.de/pipermail/u-boot/2017-June/296166.html
>> [2]: usb: hub: Support USB 3.0 hubs
>> https://lists.denx.de/pipermail/u-boot/2017-June/296284.html
>>
>> This series is available at u-boot-x86/xhci-working3 for testing.
>
> I'm using this git branch to test all your xHCI related patches
> now. On my BayTrail platform I get these messages upon "usb reset"
> scanning:
>
> => usb reset
> resetting USB...
> USB0:   Register 7000820 NbrPorts 7
> Starting the controller
> USB XHCI 1.00
> scanning bus 0 for devices... cannot reset port 1!?
> USB device descriptor short read (expected 18, got 8)
> 5 USB Device(s) found
>        scanning usb for storage devices... 1 Storage Device(s) found
>
> On the 2nd scan, the "cannot reset port 1" line is gone:
>
> => usb reset
> resetting USB...
> USB0:   Register 7000820 NbrPorts 7
> Starting the controller
> USB XHCI 1.00
> scanning bus 0 for devices... USB device descriptor short read (expected 18, got 8)
> 5 USB Device(s) found
>        scanning usb for storage devices... 1 Storage Device(s) found
>
> All USB devices seem to be detected correctly though. Here the
> logs:
>
> => usb tree
> USB device tree:
>   1  Hub (5 Gb/s, 0mA)
>   |  U-Boot XHCI Host Controller
>   |
>   +-2  Hub (480 Mb/s, 100mA)
>   |
>   +-3  Hub (480 Mb/s, 2mA)
>   | |
>   | +-5  Mass Storage (480 Mb/s, 200mA)
>   |      JetFlash Mass Storage Device 3281440601
>   |
>   +-4  Vendor specific (5 Gb/s, 64mA)
>        Realtek USB 10/100/1000 LAN 000002000000
>
> => usb info
> 1: Hub,  USB Revision 3.0
>  - U-Boot XHCI Host Controller
>  - Class: Hub
>  - PacketSize: 512  Configurations: 1
>  - Vendor: 0x0000  Product 0x0000 Version 1.0
>    Configuration: 1
>    - Interfaces: 1 Self Powered 0mA
>      Interface: 0
>      - Alternate Setting 0, Endpoints: 1
>      - Class Hub
>      - Endpoint 1 In Interrupt MaxPacket 8 Interval 255ms
>
> 2: Hub,  USB Revision 2.0
>  - Class: Hub
>  - PacketSize: 64  Configurations: 1
>  - Vendor: 0x0409  Product 0x005a Version 1.0
>    Configuration: 1
>    - Interfaces: 1 Self Powered Remote Wakeup 100mA
>      Interface: 0
>      - Alternate Setting 0, Endpoints: 1
>      - Class Hub
>      - Endpoint 1 In Interrupt MaxPacket 1 Interval 12ms
>
> 3: Hub,  USB Revision 2.1
>  - Class: Hub
>  - PacketSize: 64  Configurations: 1
>  - Vendor: 0x0424  Product 0x4604 Version 1.131
>    Configuration: 1
>    - Interfaces: 1 Self Powered Remote Wakeup 2mA
>      Interface: 0
>      - Alternate Setting 0, Endpoints: 1
>      - Class Hub
>      - Endpoint 1 In Interrupt MaxPacket 1 Interval 12ms
>      - Endpoint 1 In Interrupt MaxPacket 1 Interval 12ms
>
> 5: Mass Storage,  USB Revision 2.10
>  - JetFlash Mass Storage Device 3281440601
>  - Class: (from Interface) Mass Storage
>  - PacketSize: 64  Configurations: 1
>  - Vendor: 0x8564  Product 0x1000 Version 16.117
>    Configuration: 1
>    - Interfaces: 1 Bus Powered 200mA
>      Interface: 0
>      - Alternate Setting 0, Endpoints: 2
>      - Class Mass Storage, Transp. SCSI, Bulk only
>      - Endpoint 2 Out Bulk MaxPacket 512
>      - Endpoint 1 In Bulk MaxPacket 512
>
> 4: Vendor specific,  USB Revision 3.0
>  - Realtek USB 10/100/1000 LAN 000002000000
>  - Class: (from Interface) Vendor specific
>  - PacketSize: 512  Configurations: 2
>  - Vendor: 0x0bda  Product 0x8153 Version 48.0
>    Configuration: 1
>    - Interfaces: 1 Bus Powered Remote Wakeup 64mA
>      Interface: 0
>      - Alternate Setting 0, Endpoints: 3
>      - Class Vendor specific
>      - Endpoint 1 In Bulk MaxPacket 1024
>      - Endpoint 2 Out Bulk MaxPacket 1024
>      - Endpoint 3 In Interrupt MaxPacket 2 Interval 8ms
>
> Do you have any ideas about the scanning logs that I've noticed
> above? Would it help if I provided some debug logs (-DDEBUG)
> for this?

"cannot reset port 1" message is annoying, but that may happen
sometimes due to unstable power supply. I will see if we can mute it
if it's not the final round of reset try. I am more concerned about
the "USB device descriptor short read (expected 18, got 8)". This
message indicates U-Boot cannot get the device descriptor during set
configuration process. So did you manage to get all USB devices that
are connected on your board enumerated?

>
> BTW: I need to re-add the SYS_USB_EVENT_POLL* options back to
> the whilelist file. Otherwise compiling fails with this
> message:
>
> $ make minnowmax_defconfig
> $ make -s -j10
> Error: You must add new CONFIG options using Kconfig
> The following new ad-hoc CONFIG options were detected:
> CONFIG_SYS_USB_EVENT_POLL
>
> Please add these via Kconfig instead. Find a suitable Kconfig
> file and add a 'config' or 'menuconfig' option.
> Makefile:862: recipe for target 'all' failed
>
> Don't you see this error? Any idea whats going wrong here?

This is strange. I did not see this error when I sent the patch series
before. I rebased xhci-working3 branch to u-boot/master this afternoon
for the v2 patch rework, and now am seeing the same issue.

Regards,
Bin


More information about the U-Boot mailing list