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

Stefan Roese sr at denx.de
Wed Jun 28 11:00:47 UTC 2017


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?


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?

Thanks,
Stefan


More information about the U-Boot mailing list