
+Simon
On Wed, Jun 28, 2017 at 7:00 PM, Stefan Roese sr@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?
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?
Simon,
Do you know why this error was generated? CONFIG_SYS_USB_EVENT_POLL was already a Kconfig option.
Regards, Bin