Hi Joe, I'm the xHCI driver maintainer, can you please Cc me on any future bug reports for xHCI hosts? Otherwise it gets lost in my mailing list inbox. On Sun, Sep 01, 2013 at 04:14:52PM -0500, joe M wrote: > Hello, > > I am not able to figure out how to connect a 1.11 usb full speed > device to a USB 3.0 port. > > This is the output in syslog when I rmmod xhci_hcd and modprobe > xhci-hcd: http://codepad.org/8mc0tABX > > These are the messages that seem to be causing the issue: > Sep 1 15:57:03 master kernel: [ 1182.014895] usb 6-1: device not accepting address 2, error -62 > Sep 1 15:57:03 master kernel: [ 1182.014942] xhci_hcd 0000:03:00.0: Bad Slot ID 1 > Sep 1 15:57:03 master kernel: [ 1182.014945] xhci_hcd 0000:03:00.0: Could not allocate xHCI USB device data structures > Sep 1 15:57:03 master kernel: [ 1182.014950] hub 6-0:1.0: couldn't allocate port 1 usb_device > > When I plug in the USB full speed device, these are the messages: > > Sep 1 16:00:17 master kernel: [ 1376.248867] usb usb6: usb wakeup-resume > Sep 1 16:00:17 master kernel: [ 1376.248875] usb usb6: usb auto-resume > Sep 1 16:00:17 master kernel: [ 1376.248894] hub 6-0:1.0: hub_resume > Sep 1 16:00:17 master kernel: [ 1376.248905] hub 6-0:1.0: port 1: status 0101 change 0000 > Sep 1 16:00:17 master kernel: [ 1376.248910] hub 6-0:1.0: port 2: status 0101 change 0001 > Sep 1 16:00:17 master kernel: [ 1376.349888] hub 6-0:1.0: state 7 ports 2 chg 0006 evt 0000 > Sep 1 16:00:17 master kernel: [ 1376.349898] hub 6-0:1.0: port 1, status 0101, change 0000, 12 Mb/s > Sep 1 16:00:17 master kernel: [ 1376.451953] usb 6-1: new full-speed USB device number 3 using xhci_hcd > Sep 1 16:00:22 master kernel: [ 1381.455764] xhci_hcd 0000:03:00.0: Timeout while waiting for address device command > Sep 1 16:00:27 master kernel: [ 1386.660767] xhci_hcd 0000:03:00.0: Timeout while waiting for address device command Is your device prepared to accept the Set Address control transfer before it receives an 8-byte Get Descriptor? I ask because it's fairly common for this kind of issue to be the root cause when the device isn't ready to accept a Set Address control transfer. Or perhaps your device takes a really long time to get ready to accept the Set Address command? > Sep 1 16:00:27 master kernel: [ 1386.861922] usb 6-1: device not accepting address 3, error -62 > Sep 1 16:00:27 master kernel: [ 1386.861977] xhci_hcd 0000:03:00.0: Bad Slot ID 2 > Sep 1 16:00:27 master kernel: [ 1386.861980] xhci_hcd 0000:03:00.0: Could not allocate xHCI USB device data structures Those error messages are interesting. The driver should have allocated a slot ID, even if the Set Address command failed. However, I don't think fixing this issue will help your problem, if the root cause is that your device doesn't respond to the Set Address control transfer. > Sep 1 16:00:27 master kernel: [ 1386.861985] hub 6-0:1.0: couldn't allocate port 1 usb_device > Sep 1 16:00:27 master kernel: [ 1386.862006] hub 6-0:1.0: port 2, status 0101, change 0000, 12 Mb/s > Sep 1 16:00:27 master kernel: [ 1386.964011] usb 6-2: new full-speed USB device number 4 using xhci_hcd > Sep 1 16:00:32 master kernel: [ 1391.967825] xhci_hcd 0000:03:00.0: Timeout while waiting for address device command > Sep 1 16:00:38 master kernel: [ 1397.172814] xhci_hcd 0000:03:00.0: Timeout while waiting for address device command > Sep 1 16:00:38 master kernel: [ 1397.373975] usb 6-2: device not accepting address 4, error -62 > Sep 1 16:00:38 master kernel: [ 1397.374027] xhci_hcd 0000:03:00.0: Bad Slot ID 3 > Sep 1 16:00:38 master kernel: [ 1397.374030] xhci_hcd 0000:03:00.0: Could not allocate xHCI USB device data structures > Sep 1 16:00:38 master kernel: [ 1397.374035] hub 6-0:1.0: couldn't allocate port 2 usb_device > Sep 1 16:00:38 master kernel: [ 1397.374052] hub 6-0:1.0: hub_suspend > Sep 1 16:00:38 master kernel: [ 1397.374077] usb usb6: bus > auto-suspend, wakeup 1 > > With the USB 2.0 hub, I could use usbmon to check out why the device > does not work. Using usbmon on a USB 3.0 hub does not seem to show any > valuable output. I tried both usbmon client and 'cat 6u' (where 6 is > the bus id) to check usbmon output. Did you run `lsusb -t` to find out which bus the device is actually under? The xHCI host registers two roothubs: a USB 2.0 roothub and a USB 3.0 roothub. You want to record usbmon for the USB 2.0 roothub (the bus marked with a 480 MB speed). You can also try recording all USB traffic through the 0u file. > I am the developer for this usb device and the device works fine on a > 1.11 and a 2.0 hub. Do you mean that it works fine behind an external USB 1.1 or USB 2.0 hub attached to an xHCI port, or do you mean it works under an EHCI, UHCI, or OHCI host? Please send `lsusb -t` and `sudo lsusb -v` output for both the failing and passing cases. > With the kernel xhci debugging option, there is a > lot of output, I am wondering if there is a usbmon-like debugging > mechanism for xhci. Can you send dmesg with CONFIG_USB_XHCI_HCD_DEBUGGING turned on and CONFIG_USB_DEBUG turned on? > Any thoughts, please? > > Thanks > Joe -- To unsubscribe from this list: send the line "unsubscribe linux-usb" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html