USB3 XHCI crashing with USB 3 hub on Octeon

Hi all,
While backporting the latest USB support in U-Boot to support USB 3 hubs I decided to try the latest U-Boot for Octeon which should contain everything. When I start USB, however, with a USB 3 thumb drive plugged into a USB 3 hub, I am seeing a crash. I have enabled all of the debugging support for usb.c, usb_hub.c, xhci.c, xhci-ring.c and xhci_mem.c
In my backported code which is a bit hacked up due to the lack of DT support, I am seeing it fail when it attempts to set the hub depth. Note that everything works fine with a USB 2 hub. I was hoping to compare the stock U- Boot with my hacked up code to track down the issue.
-Aaron
Here are the logs:
=> usb start starting USB... Bus xhci@1680000000000: xhci_register: dev='xhci@1680000000000', ctrl=ffffffff8eea1aa0, hccr=8001680000000000, hcor=8001680000000020 // Halt the HC: 8001680000000020 // Reset the HC Register 2000140 NbrPorts 2 Starting the controller USB XHCI 1.00 Bus xhci@1690000000000: xhci_register: dev='xhci@1690000000000', ctrl=ffffffff8eeab040, hccr=8001690000000000, hcor=8001690000000020 // Halt the HC: 8001690000000020 // Reset the HC Register 2000140 NbrPorts 2 Starting the controller USB XHCI 1.00 scanning bus xhci@1680000000000 for devices... xhci_alloc_device: dev='xhci@1680000000000', udev=ffffffff8ee9c280 set address 1 usb_control_msg: request: 0x5, requesttype: 0x0, value 0x1 index 0x0 length 0x0 xhci_submit_control_msg: dev='xhci@1680000000000', udev=ffffffff8ee9c280, udev->dev='xhci@1680000000000', portnr=0 USB_REQ_SET_ADDRESS scrlen = 0 req->length = 0 Len is 0 usb_control_msg: request: 0x6, requesttype: 0x80, value 0x100 index 0x0 length 0x12 xhci_submit_control_msg: dev='xhci@1680000000000', udev=ffffffff8ee9c280, udev->dev='xhci@1680000000000', portnr=0 USB_DT_DEVICE request scrlen = 18 req->length = 18 usb_control_msg: request: 0x6, requesttype: 0x80, value 0x200 index 0x0 length 0x9 xhci_submit_control_msg: dev='xhci@1680000000000', udev=ffffffff8ee9c280, udev->dev='xhci@1680000000000', portnr=0 USB_DT_CONFIG config scrlen = 25 req->length = 9 usb_control_msg: request: 0x6, requesttype: 0x80, value 0x200 index 0x0 length 0x1F xhci_submit_control_msg: dev='xhci@1680000000000', udev=ffffffff8ee9c280, udev->dev='xhci@1680000000000', portnr=0 USB_DT_CONFIG config scrlen = 25 req->length = 31 get_conf_no 0 Result 25, wLength 31 if 0, ep 0 ##EP epmaxpacketin[1] = 2048 set configuration 1 usb_control_msg: request: 0x9, requesttype: 0x0, value 0x1 index 0x0 length 0x0 xhci_submit_control_msg: dev='xhci@1680000000000', udev=ffffffff8ee9c280, udev->dev='xhci@1680000000000', portnr=0 scrlen = 0 req->length = 0 Len is 0 new device strings: Mfr=1, Product=2, SerialNumber=0 usb_control_msg: request: 0x6, requesttype: 0x80, value 0x300 index 0x0 length 0xFF xhci_submit_control_msg: dev='xhci@1680000000000', udev=ffffffff8ee9c280, udev->dev='xhci@1680000000000', portnr=0 USB_DT_STRING config scrlen = 4 req->length = 255 USB device number 1 default language ID 0x409 usb_control_msg: request: 0x6, requesttype: 0x80, value 0x301 index 0x409 length 0xFF xhci_submit_control_msg: dev='xhci@1680000000000', udev=ffffffff8ee9c280, udev->dev='xhci@1680000000000', portnr=0 USB_DT_STRING config scrlen = 14 req->length = 255 usb_control_msg: request: 0x6, requesttype: 0x80, value 0x302 index 0x409 length 0xFF xhci_submit_control_msg: dev='xhci@1680000000000', udev=ffffffff8ee9c280, udev->dev='xhci@1680000000000', portnr=0 USB_DT_STRING config scrlen = 42 req->length = 255 Manufacturer U-Boot Product XHCI Host Controller SerialNumber usb_hub_post_probe usb_control_msg: request: 0x6, requesttype: 0xA0, value 0x2A00 index 0x0 length 0x4 xhci_submit_control_msg: dev='xhci@1680000000000', udev=ffffffff8eeae040, udev->dev='usb_hub', portnr=0 USB_DT_HUB config scrlen = 8 req->length = 4 usb_control_msg: request: 0x6, requesttype: 0xA0, value 0x2A00 index 0x0 length 0xC xhci_submit_control_msg: dev='xhci@1680000000000', udev=ffffffff8eeae040, udev->dev='usb_hub', portnr=0 USB_DT_HUB config scrlen = 8 req->length = 12 2 ports detected ganged power switching standalone hub individual port over-current protection TT requires at most 8 FS bit times (666 ns) power on to power good time: 20ms hub controller current requirement: 0mA port 1 is removable port 2 is removable usb_control_msg: request: 0x0, requesttype: 0xA0, value 0x0 index 0x0 length 0x4 xhci_submit_control_msg: dev='xhci@1680000000000', udev=ffffffff8eeae040, udev->dev='usb_hub', portnr=0 scrlen = 2 req->length = 4 get_hub_status returned status 1, change 802 local power source is lost (inactive) no over-current condition exists xhci_update_hub_device: dev='xhci@1680000000000', udev=ffffffff8eeae040 enabling power on all ports usb_control_msg: request: 0x3, requesttype: 0x23, value 0x8 index 0x1 length 0x0 xhci_submit_control_msg: dev='xhci@1680000000000', udev=ffffffff8eeae040, udev->dev='usb_hub', portnr=0 scrlen = 0 req->length = 0 Len is 0 port 1 returns 0 usb_control_msg: request: 0x3, requesttype: 0x23, value 0x8 index 0x2 length 0x0 xhci_submit_control_msg: dev='xhci@1680000000000', udev=ffffffff8eeae040, udev->dev='usb_hub', portnr=0 scrlen = 0 req->length = 0 Len is 0 port 2 returns 0 pgood_delay=20ms devnum=1 poweron: query_delay=100 connect_timeout=1100 usb_control_msg: request: 0x0, requesttype: 0xA3, value 0x0 index 0x1 length 0x4 xhci_submit_control_msg: dev='xhci@1680000000000', udev=ffffffff8eeae040, udev->dev='usb_hub', portnr=0 scrlen = 4 req->length = 4 Port 1 Status 100 Change 0 usb_control_msg: request: 0x0, requesttype: 0xA3, value 0x0 index 0x2 length 0x4 xhci_submit_control_msg: dev='xhci@1680000000000', udev=ffffffff8eeae040, udev->dev='usb_hub', portnr=0 scrlen = 4 req->length = 4 Port 2 Status 100 Change 0 usb_control_msg: request: 0x0, requesttype: 0xA3, value 0x0 index 0x1 length 0x4 xhci_submit_control_msg: dev='xhci@1680000000000', udev=ffffffff8eeae040, udev->dev='usb_hub', portnr=0 scrlen = 4 req->length = 4 Port 1 Status 100 Change 0 usb_control_msg: request: 0x0, requesttype: 0xA3, value 0x0 index 0x2 length 0x4 xhci_submit_control_msg: dev='xhci@1680000000000', udev=ffffffff8eeae040, udev->dev='usb_hub', portnr=0 scrlen = 4 req->length = 4 Port 2 Status 100 Change 0 usb_control_msg: request: 0x0, requesttype: 0xA3, value 0x0 index 0x1 length 0x4 xhci_submit_control_msg: dev='xhci@1680000000000', udev=ffffffff8eeae040, udev->dev='usb_hub', portnr=0 scrlen = 4 req->length = 4 Port 1 Status 100 Change 0 usb_control_msg: request: 0x0, requesttype: 0xA3, value 0x0 index 0x2 length 0x4 xhci_submit_control_msg: dev='xhci@1680000000000', udev=ffffffff8eeae040, udev->dev='usb_hub', portnr=0 scrlen = 4 req->length = 4 Port 2 Status 100 Change 0 usb_control_msg: request: 0x0, requesttype: 0xA3, value 0x0 index 0x1 length 0x4 xhci_submit_control_msg: dev='xhci@1680000000000', udev=ffffffff8eeae040, udev->dev='usb_hub', portnr=0 scrlen = 4 req->length = 4 Port 1 Status 100 Change 0 usb_control_msg: request: 0x0, requesttype: 0xA3, value 0x0 index 0x2 length 0x4 xhci_submit_control_msg: dev='xhci@1680000000000', udev=ffffffff8eeae040, udev->dev='usb_hub', portnr=0 scrlen = 4 req->length = 4 Port 2 Status 100 Change 0 usb_control_msg: request: 0x0, requesttype: 0xA3, value 0x0 index 0x1 length 0x4 xhci_submit_control_msg: dev='xhci@1680000000000', udev=ffffffff8eeae040, udev->dev='usb_hub', portnr=0 scrlen = 4 req->length = 4 Port 1 Status 100 Change 0 usb_control_msg: request: 0x0, requesttype: 0xA3, value 0x0 index 0x2 length 0x4 xhci_submit_control_msg: dev='xhci@1680000000000', udev=ffffffff8eeae040, udev->dev='usb_hub', portnr=0 scrlen = 4 req->length = 4 Port 2 Status 100 Change 0 usb_control_msg: request: 0x0, requesttype: 0xA3, value 0x0 index 0x1 length 0x4 xhci_submit_control_msg: dev='xhci@1680000000000', udev=ffffffff8eeae040, udev->dev='usb_hub', portnr=0 scrlen = 4 req->length = 4 Port 1 Status 100 Change 0 usb_control_msg: request: 0x0, requesttype: 0xA3, value 0x0 index 0x2 length 0x4 xhci_submit_control_msg: dev='xhci@1680000000000', udev=ffffffff8eeae040, udev->dev='usb_hub', portnr=0 scrlen = 4 req->length = 4 Port 2 Status 100 Change 0 usb_control_msg: request: 0x0, requesttype: 0xA3, value 0x0 index 0x1 length 0x4 xhci_submit_control_msg: dev='xhci@1680000000000', udev=ffffffff8eeae040, udev->dev='usb_hub', portnr=0 scrlen = 4 req->length = 4 Port 1 Status 100 Change 0 usb_control_msg: request: 0x0, requesttype: 0xA3, value 0x0 index 0x2 length 0x4 xhci_submit_control_msg: dev='xhci@1680000000000', udev=ffffffff8eeae040, udev->dev='usb_hub', portnr=0 scrlen = 4 req->length = 4 Port 2 Status 100 Change 0 usb_control_msg: request: 0x0, requesttype: 0xA3, value 0x0 index 0x1 length 0x4 xhci_submit_control_msg: dev='xhci@1680000000000', udev=ffffffff8eeae040, udev->dev='usb_hub', portnr=0 scrlen = 4 req->length = 4 Port 1 Status 100 Change 0 usb_control_msg: request: 0x0, requesttype: 0xA3, value 0x0 index 0x2 length 0x4 xhci_submit_control_msg: dev='xhci@1680000000000', udev=ffffffff8eeae040, udev->dev='usb_hub', portnr=0 scrlen = 4 req->length = 4 Port 2 Status 100 Change 0 usb_control_msg: request: 0x0, requesttype: 0xA3, value 0x0 index 0x1 length 0x4 xhci_submit_control_msg: dev='xhci@1680000000000', udev=ffffffff8eeae040, udev->dev='usb_hub', portnr=0 scrlen = 4 req->length = 4 Port 1 Status 100 Change 0 usb_control_msg: request: 0x0, requesttype: 0xA3, value 0x0 index 0x2 length 0x4 xhci_submit_control_msg: dev='xhci@1680000000000', udev=ffffffff8eeae040, udev->dev='usb_hub', portnr=0 scrlen = 4 req->length = 4 Port 2 Status 100 Change 0 usb_control_msg: request: 0x0, requesttype: 0xA3, value 0x0 index 0x1 length 0x4 xhci_submit_control_msg: dev='xhci@1680000000000', udev=ffffffff8eeae040, udev->dev='usb_hub', portnr=0 scrlen = 4 req->length = 4 Port 1 Status 100 Change 0 usb_control_msg: request: 0x0, requesttype: 0xA3, value 0x0 index 0x2 length 0x4 xhci_submit_control_msg: dev='xhci@1680000000000', udev=ffffffff8eeae040, udev->dev='usb_hub', portnr=0 scrlen = 4 req->length = 4 Port 2 Status 100 Change 0 usb_control_msg: request: 0x0, requesttype: 0xA3, value 0x0 index 0x1 length 0x4 xhci_submit_control_msg: dev='xhci@1680000000000', udev=ffffffff8eeae040, udev->dev='usb_hub', portnr=0 scrlen = 4 req->length = 4 Port 1 Status 100 Change 0 usb_control_msg: request: 0x0, requesttype: 0xA3, value 0x0 index 0x2 length 0x4 xhci_submit_control_msg: dev='xhci@1680000000000', udev=ffffffff8eeae040, udev->dev='usb_hub', portnr=0 scrlen = 4 req->length = 4 Port 2 Status 100 Change 0 usb_control_msg: request: 0x0, requesttype: 0xA3, value 0x0 index 0x1 length 0x4 xhci_submit_control_msg: dev='xhci@1680000000000', udev=ffffffff8eeae040, udev->dev='usb_hub', portnr=0 scrlen = 4 req->length = 4 Port 1 Status 100 Change 0 usb_control_msg: request: 0x0, requesttype: 0xA3, value 0x0 index 0x2 length 0x4 xhci_submit_control_msg: dev='xhci@1680000000000', udev=ffffffff8eeae040, udev->dev='usb_hub', portnr=0 scrlen = 4 req->length = 4 Port 2 Status 100 Change 0 usb_control_msg: request: 0x0, requesttype: 0xA3, value 0x0 index 0x1 length 0x4 xhci_submit_control_msg: dev='xhci@1680000000000', udev=ffffffff8eeae040, udev->dev='usb_hub', portnr=0 scrlen = 4 req->length = 4 Port 1 Status 100 Change 0 usb_control_msg: request: 0x0, requesttype: 0xA3, value 0x0 index 0x2 length 0x4 xhci_submit_control_msg: dev='xhci@1680000000000', udev=ffffffff8eeae040, udev->dev='usb_hub', portnr=0 scrlen = 4 req->length = 4 Port 2 Status 100 Change 0 usb_control_msg: request: 0x0, requesttype: 0xA3, value 0x0 index 0x1 length 0x4 xhci_submit_control_msg: dev='xhci@1680000000000', udev=ffffffff8eeae040, udev->dev='usb_hub', portnr=0 scrlen = 4 req->length = 4 Port 1 Status 100 Change 0 usb_control_msg: request: 0x0, requesttype: 0xA3, value 0x0 index 0x2 length 0x4 xhci_submit_control_msg: dev='xhci@1680000000000', udev=ffffffff8eeae040, udev->dev='usb_hub', portnr=0 scrlen = 4 req->length = 4 Port 2 Status 100 Change 0 usb_control_msg: request: 0x0, requesttype: 0xA3, value 0x0 index 0x1 length 0x4 xhci_submit_control_msg: dev='xhci@1680000000000', udev=ffffffff8eeae040, udev->dev='usb_hub', portnr=0 scrlen = 4 req->length = 4 Port 1 Status 100 Change 0 usb_control_msg: request: 0x0, requesttype: 0xA3, value 0x0 index 0x2 length 0x4 xhci_submit_control_msg: dev='xhci@1680000000000', udev=ffffffff8eeae040, udev->dev='usb_hub', portnr=0 scrlen = 4 req->length = 4 Port 2 Status 100 Change 0 usb_control_msg: request: 0x0, requesttype: 0xA3, value 0x0 index 0x1 length 0x4 xhci_submit_control_msg: dev='xhci@1680000000000', udev=ffffffff8eeae040, udev->dev='usb_hub', portnr=0 scrlen = 4 req->length = 4 Port 1 Status 100 Change 0 usb_control_msg: request: 0x0, requesttype: 0xA3, value 0x0 index 0x2 length 0x4 xhci_submit_control_msg: dev='xhci@1680000000000', udev=ffffffff8eeae040, udev->dev='usb_hub', portnr=0 scrlen = 4 req->length = 4 Port 2 Status 100 Change 0 usb_control_msg: request: 0x0, requesttype: 0xA3, value 0x0 index 0x1 length 0x4 xhci_submit_control_msg: dev='xhci@1680000000000', udev=ffffffff8eeae040, udev->dev='usb_hub', portnr=0 scrlen = 4 req->length = 4 Port 1 Status 100 Change 0 usb_control_msg: request: 0x0, requesttype: 0xA3, value 0x0 index 0x2 length 0x4 xhci_submit_control_msg: dev='xhci@1680000000000', udev=ffffffff8eeae040, udev->dev='usb_hub', portnr=0 scrlen = 4 req->length = 4 Port 2 Status 100 Change 0 usb_control_msg: request: 0x0, requesttype: 0xA3, value 0x0 index 0x1 length 0x4 xhci_submit_control_msg: dev='xhci@1680000000000', udev=ffffffff8eeae040, udev->dev='usb_hub', portnr=0 scrlen = 4 req->length = 4 Port 1 Status 100 Change 0 usb_control_msg: request: 0x0, requesttype: 0xA3, value 0x0 index 0x2 length 0x4 xhci_submit_control_msg: dev='xhci@1680000000000', udev=ffffffff8eeae040, udev->dev='usb_hub', portnr=0 scrlen = 4 req->length = 4 Port 2 Status 100 Change 0 usb_control_msg: request: 0x0, requesttype: 0xA3, value 0x0 index 0x1 length 0x4 xhci_submit_control_msg: dev='xhci@1680000000000', udev=ffffffff8eeae040, udev->dev='usb_hub', portnr=0 scrlen = 4 req->length = 4 Port 1 Status 100 Change 0 usb_control_msg: request: 0x0, requesttype: 0xA3, value 0x0 index 0x2 length 0x4 xhci_submit_control_msg: dev='xhci@1680000000000', udev=ffffffff8eeae040, udev->dev='usb_hub', portnr=0 scrlen = 4 req->length = 4 Port 2 Status 100 Change 0 usb_control_msg: request: 0x0, requesttype: 0xA3, value 0x0 index 0x1 length 0x4 xhci_submit_control_msg: dev='xhci@1680000000000', udev=ffffffff8eeae040, udev->dev='usb_hub', portnr=0 scrlen = 4 req->length = 4 Port 1 Status 100 Change 0 usb_control_msg: request: 0x0, requesttype: 0xA3, value 0x0 index 0x2 length 0x4 xhci_submit_control_msg: dev='xhci@1680000000000', udev=ffffffff8eeae040, udev->dev='usb_hub', portnr=0 scrlen = 4 req->length = 4 Port 2 Status 100 Change 0 usb_control_msg: request: 0x0, requesttype: 0xA3, value 0x0 index 0x1 length 0x4 xhci_submit_control_msg: dev='xhci@1680000000000', udev=ffffffff8eeae040, udev->dev='usb_hub', portnr=0 scrlen = 4 req->length = 4 Port 1 Status 100 Change 0 usb_control_msg: request: 0x0, requesttype: 0xA3, value 0x0 index 0x2 length 0x4 xhci_submit_control_msg: dev='xhci@1680000000000', udev=ffffffff8eeae040, udev->dev='usb_hub', portnr=0 scrlen = 4 req->length = 4 Port 2 Status 100 Change 0 usb_control_msg: request: 0x0, requesttype: 0xA3, value 0x0 index 0x1 length 0x4 xhci_submit_control_msg: dev='xhci@1680000000000', udev=ffffffff8eeae040, udev->dev='usb_hub', portnr=0 scrlen = 4 req->length = 4 Port 1 Status 100 Change 0 usb_control_msg: request: 0x0, requesttype: 0xA3, value 0x0 index 0x2 length 0x4 xhci_submit_control_msg: dev='xhci@1680000000000', udev=ffffffff8eeae040, udev->dev='usb_hub', portnr=0 scrlen = 4 req->length = 4 Port 2 Status 100 Change 0 usb_control_msg: request: 0x0, requesttype: 0xA3, value 0x0 index 0x1 length 0x4 xhci_submit_control_msg: dev='xhci@1680000000000', udev=ffffffff8eeae040, udev->dev='usb_hub', portnr=0 scrlen = 4 req->length = 4 Port 1 Status 100 Change 0 usb_control_msg: request: 0x0, requesttype: 0xA3, value 0x0 index 0x2 length 0x4 xhci_submit_control_msg: dev='xhci@1680000000000', udev=ffffffff8eeae040, udev->dev='usb_hub', portnr=0 scrlen = 4 req->length = 4 Port 2 Status 100 Change 0 usb_control_msg: request: 0x0, requesttype: 0xA3, value 0x0 index 0x1 length 0x4 xhci_submit_control_msg: dev='xhci@1680000000000', udev=ffffffff8eeae040, udev->dev='usb_hub', portnr=0 scrlen = 4 req->length = 4 Port 1 Status 100 Change 0 usb_control_msg: request: 0x0, requesttype: 0xA3, value 0x0 index 0x2 length 0x4 xhci_submit_control_msg: dev='xhci@1680000000000', udev=ffffffff8eeae040, udev->dev='usb_hub', portnr=0 scrlen = 4 req->length = 4 Port 2 Status 100 Change 0 devnum=1 port=2: timeout usb_control_msg: request: 0x0, requesttype: 0xA3, value 0x0 index 0x1 length 0x4 xhci_submit_control_msg: dev='xhci@1680000000000', udev=ffffffff8eeae040, udev->dev='usb_hub', portnr=0 scrlen = 4 req->length = 4 Port 1 Status 100 Change 0 devnum=1 port=1: timeout 1 USB Device(s) found scanning bus xhci@1690000000000 for devices... xhci_alloc_device: dev='xhci@1690000000000', udev=ffffffff8ee9c280 set address 1 usb_control_msg: request: 0x5, requesttype: 0x0, value 0x1 index 0x0 length 0x0 xhci_submit_control_msg: dev='xhci@1690000000000', udev=ffffffff8ee9c280, udev->dev='xhci@1690000000000', portnr=0 USB_REQ_SET_ADDRESS scrlen = 0 req->length = 0 Len is 0 usb_control_msg: request: 0x6, requesttype: 0x80, value 0x100 index 0x0 length 0x12 xhci_submit_control_msg: dev='xhci@1690000000000', udev=ffffffff8ee9c280, udev->dev='xhci@1690000000000', portnr=0 USB_DT_DEVICE request scrlen = 18 req->length = 18 usb_control_msg: request: 0x6, requesttype: 0x80, value 0x200 index 0x0 length 0x9 xhci_submit_control_msg: dev='xhci@1690000000000', udev=ffffffff8ee9c280, udev->dev='xhci@1690000000000', portnr=0 USB_DT_CONFIG config scrlen = 25 req->length = 9 usb_control_msg: request: 0x6, requesttype: 0x80, value 0x200 index 0x0 length 0x1F xhci_submit_control_msg: dev='xhci@1690000000000', udev=ffffffff8ee9c280, udev->dev='xhci@1690000000000', portnr=0 USB_DT_CONFIG config scrlen = 25 req->length = 31 get_conf_no 0 Result 25, wLength 31 if 0, ep 0 ##EP epmaxpacketin[1] = 2048 set configuration 1 usb_control_msg: request: 0x9, requesttype: 0x0, value 0x1 index 0x0 length 0x0 xhci_submit_control_msg: dev='xhci@1690000000000', udev=ffffffff8ee9c280, udev->dev='xhci@1690000000000', portnr=0 scrlen = 0 req->length = 0 Len is 0 new device strings: Mfr=1, Product=2, SerialNumber=0 usb_control_msg: request: 0x6, requesttype: 0x80, value 0x300 index 0x0 length 0xFF xhci_submit_control_msg: dev='xhci@1690000000000', udev=ffffffff8ee9c280, udev->dev='xhci@1690000000000', portnr=0 USB_DT_STRING config scrlen = 4 req->length = 255 USB device number 1 default language ID 0x409 usb_control_msg: request: 0x6, requesttype: 0x80, value 0x301 index 0x409 length 0xFF xhci_submit_control_msg: dev='xhci@1690000000000', udev=ffffffff8ee9c280, udev->dev='xhci@1690000000000', portnr=0 USB_DT_STRING config scrlen = 14 req->length = 255 usb_control_msg: request: 0x6, requesttype: 0x80, value 0x302 index 0x409 length 0xFF xhci_submit_control_msg: dev='xhci@1690000000000', udev=ffffffff8ee9c280, udev->dev='xhci@1690000000000', portnr=0 USB_DT_STRING config scrlen = 42 req->length = 255 Manufacturer U-Boot Product XHCI Host Controller SerialNumber usb_hub_post_probe usb_control_msg: request: 0x6, requesttype: 0xA0, value 0x2A00 index 0x0 length 0x4 xhci_submit_control_msg: dev='xhci@1690000000000', udev=ffffffff8eeae9e0, udev->dev='usb_hub', portnr=0 USB_DT_HUB config scrlen = 8 req->length = 4 usb_control_msg: request: 0x6, requesttype: 0xA0, value 0x2A00 index 0x0 length 0xC xhci_submit_control_msg: dev='xhci@1690000000000', udev=ffffffff8eeae9e0, udev->dev='usb_hub', portnr=0 USB_DT_HUB config scrlen = 8 req->length = 12 2 ports detected ganged power switching standalone hub individual port over-current protection TT requires at most 8 FS bit times (666 ns) power on to power good time: 20ms hub controller current requirement: 0mA port 1 is removable port 2 is removable usb_control_msg: request: 0x0, requesttype: 0xA0, value 0x0 index 0x0 length 0x4 xhci_submit_control_msg: dev='xhci@1690000000000', udev=ffffffff8eeae9e0, udev->dev='usb_hub', portnr=0 scrlen = 2 req->length = 4 get_hub_status returned status 1, change 802 local power source is lost (inactive) no over-current condition exists xhci_update_hub_device: dev='xhci@1690000000000', udev=ffffffff8eeae9e0 enabling power on all ports usb_control_msg: request: 0x3, requesttype: 0x23, value 0x8 index 0x1 length 0x0 xhci_submit_control_msg: dev='xhci@1690000000000', udev=ffffffff8eeae9e0, udev->dev='usb_hub', portnr=0 scrlen = 0 req->length = 0 Len is 0 port 1 returns 0 usb_control_msg: request: 0x3, requesttype: 0x23, value 0x8 index 0x2 length 0x0 xhci_submit_control_msg: dev='xhci@1690000000000', udev=ffffffff8eeae9e0, udev->dev='usb_hub', portnr=0 scrlen = 0 req->length = 0 Len is 0 port 2 returns 0 pgood_delay=20ms devnum=1 poweron: query_delay=100 connect_timeout=1100 usb_control_msg: request: 0x0, requesttype: 0xA3, value 0x0 index 0x1 length 0x4 xhci_submit_control_msg: dev='xhci@1690000000000', udev=ffffffff8eeae9e0, udev->dev='usb_hub', portnr=0 SPEED = FULLSPEED scrlen = 4 req->length = 4 Port 1 Status 101 Change 1 devnum=1 port=1: USB dev found usb_control_msg: request: 0x0, requesttype: 0xA3, value 0x0 index 0x1 length 0x4 xhci_submit_control_msg: dev='xhci@1690000000000', udev=ffffffff8eeae9e0, udev->dev='usb_hub', portnr=0 SPEED = FULLSPEED scrlen = 4 req->length = 4 portstatus 101, change 1, 12 Mb/s usb_control_msg: request: 0x1, requesttype: 0x23, value 0x10 index 0x1 length 0x0 xhci_submit_control_msg: dev='xhci@1690000000000', udev=ffffffff8eeae9e0, udev->dev='usb_hub', portnr=0 clear port connect change, actual port 1 status = 0x6e1 scrlen = 0 req->length = 0 Len is 0 usb_hub_port_reset: resetting 'usb_hub' port 1... usb_control_msg: request: 0x3, requesttype: 0x23, value 0x4 index 0x1 length 0x0 xhci_submit_control_msg: dev='xhci@1690000000000', udev=ffffffff8eeae9e0, udev->dev='usb_hub', portnr=0 scrlen = 0 req->length = 0 Len is 0 usb_control_msg: request: 0x0, requesttype: 0xA3, value 0x0 index 0x1 length 0x4 xhci_submit_control_msg: dev='xhci@1690000000000', udev=ffffffff8eeae9e0, udev->dev='usb_hub', portnr=0 SPEED = FULLSPEED scrlen = 4 req->length = 4 portstatus 111, change 0, 12 Mb/s STAT_C_CONNECTION = 0 STAT_CONNECTION = 1 USB_PORT_STAT_ENABLE 0 usb_control_msg: request: 0x3, requesttype: 0x23, value 0x4 index 0x1 length 0x0 xhci_submit_control_msg: dev='xhci@1690000000000', udev=ffffffff8eeae9e0, udev->dev='usb_hub', portnr=0 scrlen = 0 req->length = 0 Len is 0 usb_control_msg: request: 0x0, requesttype: 0xA3, value 0x0 index 0x1 length 0x4 xhci_submit_control_msg: dev='xhci@1690000000000', udev=ffffffff8eeae9e0, udev->dev='usb_hub', portnr=0 SPEED = HIGHSPEED scrlen = 4 req->length = 4 portstatus 503, change 10, 480 Mb/s STAT_C_CONNECTION = 0 STAT_CONNECTION = 1 USB_PORT_STAT_ENABLE 1 usb_control_msg: request: 0x1, requesttype: 0x23, value 0x14 index 0x1 length 0x0 xhci_submit_control_msg: dev='xhci@1690000000000', udev=ffffffff8eeae9e0, udev->dev='usb_hub', portnr=0 clear port reset change, actual port 1 status = 0xe03 scrlen = 0 req->length = 0 Len is 0 xhci_alloc_device: dev='xhci@1690000000000', udev=ffffffff8ee9b420 EP STATE RUNNING. set address 2 usb_control_msg: request: 0x5, requesttype: 0x0, value 0x2 index 0x0 length 0x0 xhci_submit_control_msg: dev='xhci@1690000000000', udev=ffffffff8ee9b420, udev->dev='usb_hub', portnr=1 Setting up addressable devices ffffffff8eeab980 route string 0 port_num = 1 SPEED = 3 Setting Packet size = 64bytes EP STATE RUNNING. Successful Address Device command xHC internal address is: 1 usb_control_msg: request: 0x6, requesttype: 0x80, value 0x100 index 0x0 length 0x12 xhci_submit_control_msg: dev='xhci@1690000000000', udev=ffffffff8ee9b420, udev->dev='usb_hub', portnr=1 req=6 (0x6), type=128 (0x80), value=256 (0x100), index=0 EP STATE RUNNING. start_trb ffffffff8eeacb80, start_cycle 1 req->requesttype = 128, req->request = 6,le16_to_cpu(req->value) = 256,le16_to_cpu(req->index) = 0,le16_to_cpu(req->length) = 18 length_field = 18, length = 18,xhci_td_remainder(length) = 0 , TRB_INTR_TARGET(0) = 0 usb_control_msg: request: 0x6, requesttype: 0x80, value 0x200 index 0x0 length 0x9 xhci_submit_control_msg: dev='xhci@1690000000000', udev=ffffffff8ee9b420, udev->dev='usb_hub', portnr=1 req=6 (0x6), type=128 (0x80), value=512 (0x200), index=0 EP STATE RUNNING. start_trb ffffffff8eeacbb0, start_cycle 1 req->requesttype = 128, req->request = 6,le16_to_cpu(req->value) = 512,le16_to_cpu(req->index) = 0,le16_to_cpu(req->length) = 9 length_field = 9, length = 9,xhci_td_remainder(length) = 0 , TRB_INTR_TARGET(0) = 0 usb_control_msg: request: 0x6, requesttype: 0x80, value 0x200 index 0x0 length 0x19 xhci_submit_control_msg: dev='xhci@1690000000000', udev=ffffffff8ee9b420, udev->dev='usb_hub', portnr=1 req=6 (0x6), type=128 (0x80), value=512 (0x200), index=0 EP STATE RUNNING. start_trb ffffffff8eeacbe0, start_cycle 1 req->requesttype = 128, req->request = 6,le16_to_cpu(req->value) = 512,le16_to_cpu(req->index) = 0,le16_to_cpu(req->length) = 25 length_field = 25, length = 25,xhci_td_remainder(length) = 0 , TRB_INTR_TARGET(0) = 0 get_conf_no 0 Result 25, wLength 25 if 0, ep 0 ##EP epmaxpacketin[1] = 1 set configuration 1 usb_control_msg: request: 0x9, requesttype: 0x0, value 0x1 index 0x0 length 0x0 xhci_submit_control_msg: dev='xhci@1690000000000', udev=ffffffff8ee9b420, udev->dev='usb_hub', portnr=1 EP STATE RUNNING. Successful Configure Endpoint command req=9 (0x9), type=0 (0x0), value=1 (0x1), index=0 EP STATE RUNNING. start_trb ffffffff8eeacc10, start_cycle 1 req->requesttype = 0, req->request = 9,le16_to_cpu(req->value) = 1,le16_to_cpu(req->index) = 0,le16_to_cpu(req->length) = 0 length_field = 0, length = 0,xhci_td_remainder(length) = 0 , TRB_INTR_TARGET(0) = 0 new device strings: Mfr=0, Product=1, SerialNumber=0 usb_control_msg: request: 0x6, requesttype: 0x80, value 0x300 index 0x0 length 0xFF xhci_submit_control_msg: dev='xhci@1690000000000', udev=ffffffff8ee9b420, udev->dev='usb_hub', portnr=1 req=6 (0x6), type=128 (0x80), value=768 (0x300), index=0 EP STATE RUNNING. start_trb ffffffff8eeacc30, start_cycle 1 req->requesttype = 128, req->request = 6,le16_to_cpu(req->value) = 768,le16_to_cpu(req->index) = 0,le16_to_cpu(req->length) = 255 length_field = 255, length = 255,xhci_td_remainder(length) = 0 , TRB_INTR_TARGET(0) = 0 USB device number 2 default language ID 0x409 usb_control_msg: request: 0x6, requesttype: 0x80, value 0x301 index 0x409 length 0xFF xhci_submit_control_msg: dev='xhci@1690000000000', udev=ffffffff8ee9b420, udev->dev='usb_hub', portnr=1 req=6 (0x6), type=128 (0x80), value=769 (0x301), index=1033 EP STATE RUNNING. start_trb ffffffff8eeacc60, start_cycle 1 req->requesttype = 128, req->request = 6,le16_to_cpu(req->value) = 769,le16_to_cpu(req->index) = 1033,le16_to_cpu(req->length) = 255 length_field = 255, length = 255,xhci_td_remainder(length) = 0 , TRB_INTR_TARGET(0) = 0 Manufacturer Product USB2.0 Hub SerialNumber usb_hub_post_probe usb_control_msg: request: 0x6, requesttype: 0xA0, value 0x2900 index 0x0 length 0x4 xhci_submit_control_msg: dev='xhci@1690000000000', udev=ffffffff8eeb0920, udev->dev='usb_hub', portnr=1 req=6 (0x6), type=160 (0xa0), value=10496 (0x2900), index=0 EP STATE RUNNING. start_trb ffffffff8eeacc90, start_cycle 1 req->requesttype = 160, req->request = 6,le16_to_cpu(req->value) = 10496,le16_to_cpu(req->index) = 0,le16_to_cpu(req->length) = 4 length_field = 4, length = 4,xhci_td_remainder(length) = 0 , TRB_INTR_TARGET(0) = 0 usb_control_msg: request: 0x6, requesttype: 0xA0, value 0x2900 index 0x0 length 0x9 xhci_submit_control_msg: dev='xhci@1690000000000', udev=ffffffff8eeb0920, udev->dev='usb_hub', portnr=1 req=6 (0x6), type=160 (0xa0), value=10496 (0x2900), index=0 EP STATE RUNNING. start_trb ffffffff8eeaccc0, start_cycle 1 req->requesttype = 160, req->request = 6,le16_to_cpu(req->value) = 10496,le16_to_cpu(req->index) = 0,le16_to_cpu(req->length) = 9 length_field = 9, length = 9,xhci_td_remainder(length) = 0 , TRB_INTR_TARGET(0) = 0 4 ports detected individual port power switching standalone hub individual port over-current protection Single TT TT requires at most 32 FS bit times (2664 ns) power on to power good time: 100ms hub controller current requirement: 100mA port 1 is removable port 2 is removable port 3 is removable port 4 is removable usb_control_msg: request: 0x0, requesttype: 0xA0, value 0x0 index 0x0 length 0x4 xhci_submit_control_msg: dev='xhci@1690000000000', udev=ffffffff8eeb0920, udev->dev='usb_hub', portnr=1 req=0 (0x0), type=160 (0xa0), value=0 (0x0), index=0 EP STATE RUNNING. start_trb ffffffff8eeaccf0, start_cycle 1 req->requesttype = 160, req->request = 0,le16_to_cpu(req->value) = 0,le16_to_cpu(req->index) = 0,le16_to_cpu(req->length) = 4 length_field = 4, length = 4,xhci_td_remainder(length) = 0 , TRB_INTR_TARGET(0) = 0 get_hub_status returned status 0, change 0 local power source is good no over-current condition exists xhci_update_hub_device: dev='xhci@1690000000000', udev=ffffffff8eeb0920 EP STATE RUNNING. Successful Configure Endpoint command enabling power on all ports usb_control_msg: request: 0x3, requesttype: 0x23, value 0x8 index 0x1 length 0x0 xhci_submit_control_msg: dev='xhci@1690000000000', udev=ffffffff8eeb0920, udev->dev='usb_hub', portnr=1 req=3 (0x3), type=35 (0x23), value=8 (0x8), index=1 EP STATE RUNNING. start_trb ffffffff8eeacd20, start_cycle 1 req->requesttype = 35, req->request = 3,le16_to_cpu(req->value) = 8,le16_to_cpu(req->index) = 1,le16_to_cpu(req->length) = 0 length_field = 0, length = 0,xhci_td_remainder(length) = 0 , TRB_INTR_TARGET(0) = 0 port 1 returns 0 usb_control_msg: request: 0x3, requesttype: 0x23, value 0x8 index 0x2 length 0x0 xhci_submit_control_msg: dev='xhci@1690000000000', udev=ffffffff8eeb0920, udev->dev='usb_hub', portnr=1 req=3 (0x3), type=35 (0x23), value=8 (0x8), index=2 EP STATE RUNNING. start_trb ffffffff8eeacd40, start_cycle 1 req->requesttype = 35, req->request = 3,le16_to_cpu(req->value) = 8,le16_to_cpu(req->index) = 2,le16_to_cpu(req->length) = 0 length_field = 0, length = 0,xhci_td_remainder(length) = 0 , TRB_INTR_TARGET(0) = 0 port 2 returns 0 usb_control_msg: request: 0x3, requesttype: 0x23, value 0x8 index 0x3 length 0x0 xhci_submit_control_msg: dev='xhci@1690000000000', udev=ffffffff8eeb0920, udev->dev='usb_hub', portnr=1 req=3 (0x3), type=35 (0x23), value=8 (0x8), index=3 EP STATE RUNNING. start_trb ffffffff8eeacd60, start_cycle 1 req->requesttype = 35, req->request = 3,le16_to_cpu(req->value) = 8,le16_to_cpu(req->index) = 3,le16_to_cpu(req->length) = 0 length_field = 0, length = 0,xhci_td_remainder(length) = 0 , TRB_INTR_TARGET(0) = 0 port 3 returns 0 usb_control_msg: request: 0x3, requesttype: 0x23, value 0x8 index 0x4 length 0x0 xhci_submit_control_msg: dev='xhci@1690000000000', udev=ffffffff8eeb0920, udev->dev='usb_hub', portnr=1 req=3 (0x3), type=35 (0x23), value=8 (0x8), index=4 EP STATE RUNNING. start_trb ffffffff8eeacd80, start_cycle 1 req->requesttype = 35, req->request = 3,le16_to_cpu(req->value) = 8,le16_to_cpu(req->index) = 4,le16_to_cpu(req->length) = 0 length_field = 0, length = 0,xhci_td_remainder(length) = 0 , TRB_INTR_TARGET(0) = 0 port 4 returns 0 pgood_delay=100ms devnum=2 poweron: query_delay=100 connect_timeout=1100 usb_control_msg: request: 0x0, requesttype: 0xA3, value 0x0 index 0x2 length 0x4 xhci_submit_control_msg: dev='xhci@1690000000000', udev=ffffffff8eeae9e0, udev->dev='usb_hub', portnr=0 SPEED = SUPERSPEED scrlen = 4 req->length = 4 Port 2 Status 703 Change 1 devnum=1 port=2: USB dev found usb_control_msg: request: 0x0, requesttype: 0xA3, value 0x0 index 0x2 length 0x4 xhci_submit_control_msg: dev='xhci@1690000000000', udev=ffffffff8eeae9e0, udev->dev='usb_hub', portnr=0 SPEED = SUPERSPEED scrlen = 4 req->length = 4 portstatus 703, change 1, 5 Gb/s usb_control_msg: request: 0x1, requesttype: 0x23, value 0x10 index 0x2 length 0x0 xhci_submit_control_msg: dev='xhci@1690000000000', udev=ffffffff8eeae9e0, udev->dev='usb_hub', portnr=0 clear port connect change, actual port 2 status = 0x1203 scrlen = 0 req->length = 0 Len is 0 usb_hub_port_reset: resetting 'usb_hub' port 2... usb_control_msg: request: 0x3, requesttype: 0x23, value 0x4 index 0x2 length 0x0 xhci_submit_control_msg: dev='xhci@1690000000000', udev=ffffffff8eeae9e0, udev->dev='usb_hub', portnr=0 scrlen = 0 req->length = 0 Len is 0 usb_control_msg: request: 0x0, requesttype: 0xA3, value 0x0 index 0x2 length 0x4 xhci_submit_control_msg: dev='xhci@1690000000000', udev=ffffffff8eeae9e0, udev->dev='usb_hub', portnr=0 SPEED = SUPERSPEED scrlen = 4 req->length = 4 portstatus 703, change 10, 5 Gb/s STAT_C_CONNECTION = 0 STAT_CONNECTION = 1 USB_PORT_STAT_ENABLE 1 usb_control_msg: request: 0x1, requesttype: 0x23, value 0x14 index 0x2 length 0x0 xhci_submit_control_msg: dev='xhci@1690000000000', udev=ffffffff8eeae9e0, udev->dev='usb_hub', portnr=0 clear port reset change, actual port 2 status = 0x1203 scrlen = 0 req->length = 0 Len is 0 xhci_alloc_device: dev='xhci@1690000000000', udev=ffffffff8ee9b420 EP STATE RUNNING. set address 3 usb_control_msg: request: 0x5, requesttype: 0x0, value 0x3 index 0x0 length 0x0 xhci_submit_control_msg: dev='xhci@1690000000000', udev=ffffffff8ee9b420, udev->dev='usb_hub', portnr=2 Setting up addressable devices ffffffff8eeab980 route string 0 port_num = 2 SPEED = 5 Setting Packet size = 512bytes EP STATE RUNNING. Successful Address Device command xHC internal address is: 2 usb_control_msg: request: 0x6, requesttype: 0x80, value 0x100 index 0x0 length 0x12 xhci_submit_control_msg: dev='xhci@1690000000000', udev=ffffffff8ee9b420, udev->dev='usb_hub', portnr=2 req=6 (0x6), type=128 (0x80), value=256 (0x100), index=0 EP STATE RUNNING. start_trb ffffffff8eeb2580, start_cycle 1 req->requesttype = 128, req->request = 6,le16_to_cpu(req->value) = 256,le16_to_cpu(req->index) = 0,le16_to_cpu(req->length) = 18 length_field = 18, length = 18,xhci_td_remainder(length) = 0 , TRB_INTR_TARGET(0) = 0 usb_control_msg: request: 0x6, requesttype: 0x80, value 0x200 index 0x0 length 0x9 xhci_submit_control_msg: dev='xhci@1690000000000', udev=ffffffff8ee9b420, udev->dev='usb_hub', portnr=2 req=6 (0x6), type=128 (0x80), value=512 (0x200), index=0 EP STATE RUNNING. start_trb ffffffff8eeb25b0, start_cycle 1 req->requesttype = 128, req->request = 6,le16_to_cpu(req->value) = 512,le16_to_cpu(req->index) = 0,le16_to_cpu(req->length) = 9 length_field = 9, length = 9,xhci_td_remainder(length) = 0 , TRB_INTR_TARGET(0) = 0 usb_control_msg: request: 0x6, requesttype: 0x80, value 0x200 index 0x0 length 0x1F xhci_submit_control_msg: dev='xhci@1690000000000', udev=ffffffff8ee9b420, udev->dev='usb_hub', portnr=2 req=6 (0x6), type=128 (0x80), value=512 (0x200), index=0 EP STATE RUNNING. start_trb ffffffff8eeb25e0, start_cycle 1 req->requesttype = 128, req->request = 6,le16_to_cpu(req->value) = 512,le16_to_cpu(req->index) = 0,le16_to_cpu(req->length) = 31 length_field = 31, length = 31,xhci_td_remainder(length) = 0 , TRB_INTR_TARGET(0) = 0 get_conf_no 0 Result 31, wLength 31 if 0, ep 0 ##EP epmaxpacketin[1] = 2 set configuration 1 usb_control_msg: request: 0x9, requesttype: 0x0, value 0x1 index 0x0 length 0x0 xhci_submit_control_msg: dev='xhci@1690000000000', udev=ffffffff8ee9b420, udev->dev='usb_hub', portnr=2 EP STATE RUNNING. Successful Configure Endpoint command req=9 (0x9), type=0 (0x0), value=1 (0x1), index=0 EP STATE RUNNING. start_trb ffffffff8eeb2610, start_cycle 1 req->requesttype = 0, req->request = 9,le16_to_cpu(req->value) = 1,le16_to_cpu(req->index) = 0,le16_to_cpu(req->length) = 0 length_field = 0, length = 0,xhci_td_remainder(length) = 0 , TRB_INTR_TARGET(0) = 0 new device strings: Mfr=1, Product=2, SerialNumber=0 usb_control_msg: request: 0x6, requesttype: 0x80, value 0x300 index 0x0 length 0xFF xhci_submit_control_msg: dev='xhci@1690000000000', udev=ffffffff8ee9b420, udev->dev='usb_hub', portnr=2 req=6 (0x6), type=128 (0x80), value=768 (0x300), index=0 EP STATE RUNNING. start_trb ffffffff8eeb2630, start_cycle 1 req->requesttype = 128, req->request = 6,le16_to_cpu(req->value) = 768,le16_to_cpu(req->index) = 0,le16_to_cpu(req->length) = 255 length_field = 255, length = 255,xhci_td_remainder(length) = 0 , TRB_INTR_TARGET(0) = 0 USB device number 3 default language ID 0x409 usb_control_msg: request: 0x6, requesttype: 0x80, value 0x301 index 0x409 length 0xFF xhci_submit_control_msg: dev='xhci@1690000000000', udev=ffffffff8ee9b420, udev->dev='usb_hub', portnr=2 req=6 (0x6), type=128 (0x80), value=769 (0x301), index=1033 EP STATE RUNNING. start_trb ffffffff8eeb2660, start_cycle 1 req->requesttype = 128, req->request = 6,le16_to_cpu(req->value) = 769,le16_to_cpu(req->index) = 1033,le16_to_cpu(req->length) = 255 length_field = 255, length = 255,xhci_td_remainder(length) = 0 , TRB_INTR_TARGET(0) = 0 usb_control_msg: request: 0x6, requesttype: 0x80, value 0x302 index 0x409 length 0xFF xhci_submit_control_msg: dev='xhci@1690000000000', udev=ffffffff8ee9b420, udev->dev='usb_hub', portnr=2 req=6 (0x6), type=128 (0x80), value=770 (0x302), index=1033 EP STATE RUNNING. start_trb ffffffff8eeb2690, start_cycle 1 req->requesttype = 128, req->request = 6,le16_to_cpu(req->value) = 770,le16_to_cpu(req->index) = 1033,le16_to_cpu(req->length) = 255 length_field = 255, length = 255,xhci_td_remainder(length) = 0 , TRB_INTR_TARGET(0) = 0 Manufacturer VIA Labs, Inc. Product 4-Port USB 3.0 Hub SerialNumber usb_hub_post_probe usb_control_msg: request: 0x6, requesttype: 0xA0, value 0x2A00 index 0x0 length 0x4 xhci_submit_control_msg: dev='xhci@1690000000000', udev=ffffffff8eeb2f40, udev->dev='usb_hub', portnr=2 req=6 (0x6), type=160 (0xa0), value=10752 (0x2a00), index=0 EP STATE RUNNING. start_trb ffffffff8eeb26c0, start_cycle 1 req->requesttype = 160, req->request = 6,le16_to_cpu(req->value) = 10752,le16_to_cpu(req->index) = 0,le16_to_cpu(req->length) = 4 length_field = 4, length = 4,xhci_td_remainder(length) = 0 , TRB_INTR_TARGET(0) = 0 usb_control_msg: request: 0x6, requesttype: 0xA0, value 0x2A00 index 0x0 length 0xC xhci_submit_control_msg: dev='xhci@1690000000000', udev=ffffffff8eeb2f40, udev->dev='usb_hub', portnr=2 req=6 (0x6), type=160 (0xa0), value=10752 (0x2a00), index=0 EP STATE RUNNING. start_trb ffffffff8eeb26f0, start_cycle 1 req->requesttype = 160, req->request = 6,le16_to_cpu(req->value) = 10752,le16_to_cpu(req->index) = 0,le16_to_cpu(req->length) = 12 length_field = 12, length = 12,xhci_td_remainder(length) = 0 , TRB_INTR_TARGET(0) = 0 4 ports detected individual port power switching standalone hub individual port over-current protection TT requires at most 8 FS bit times (666 ns) power on to power good time: 2ms hub controller current requirement: 2mA port 1 is removable port 2 is removable port 3 is removable port 4 is removable usb_control_msg: request: 0x0, requesttype: 0xA0, value 0x0 index 0x0 length 0x4 xhci_submit_control_msg: dev='xhci@1690000000000', udev=ffffffff8eeb2f40, udev->dev='usb_hub', portnr=2 req=0 (0x0), type=160 (0xa0), value=0 (0x0), index=0 EP STATE RUNNING. start_trb ffffffff8eeb2720, start_cycle 1 req->requesttype = 160, req->request = 0,le16_to_cpu(req->value) = 0,le16_to_cpu(req->index) = 0,le16_to_cpu(req->length) = 4 length_field = 4, length = 4,xhci_td_remainder(length) = 0 , TRB_INTR_TARGET(0) = 0 get_hub_status returned status 0, change 0 local power source is good no over-current condition exists xhci_update_hub_device: dev='xhci@1690000000000', udev=ffffffff8eeb2f40 EP STATE RUNNING. Successful Configure Endpoint command set hub (ffffffff8eeb2f40) depth to 0 usb_control_msg: request: 0xC, requesttype: 0x20, value 0x0 index 0x0 length 0x0 xhci_submit_control_msg: dev='xhci@1690000000000', udev=ffffffff8eeb2f40, udev->dev='usb_hub', portnr=2 req=12 (0xc), type=32 (0x20), value=0 (0x0), index=0 EP STATE RUNNING. start_trb ffffffff8eeb2750, start_cycle 1 req->requesttype = 32, req->request = 12,le16_to_cpu(req->value) = 0,le16_to_cpu(req->index) = 0,le16_to_cpu(req->length) = 0 length_field = 0, length = 0,xhci_td_remainder(length) = 0 , TRB_INTR_TARGET(0) = 0 enabling power on all ports usb_control_msg: request: 0x3, requesttype: 0x23, value 0x8 index 0x1 length 0x0 xhci_submit_control_msg: dev='xhci@1690000000000', udev=ffffffff8eeb2f40, udev->dev='usb_hub', portnr=2 req=3 (0x3), type=35 (0x23), value=8 (0x8), index=1 EP STATE RUNNING. start_trb ffffffff8eeb2770, start_cycle 1 req->requesttype = 35, req->request = 3,le16_to_cpu(req->value) = 8,le16_to_cpu(req->index) = 1,le16_to_cpu(req->length) = 0 length_field = 0, length = 0,xhci_td_remainder(length) = 0 , TRB_INTR_TARGET(0) = 0 port 1 returns 0 usb_control_msg: request: 0x3, requesttype: 0x23, value 0x8 index 0x2 length 0x0 xhci_submit_control_msg: dev='xhci@1690000000000', udev=ffffffff8eeb2f40, udev->dev='usb_hub', portnr=2 req=3 (0x3), type=35 (0x23), value=8 (0x8), index=2 EP STATE RUNNING. start_trb ffffffff8eeb2790, start_cycle 1 req->requesttype = 35, req->request = 3,le16_to_cpu(req->value) = 8,le16_to_cpu(req->index) = 2,le16_to_cpu(req->length) = 0 length_field = 0, length = 0,xhci_td_remainder(length) = 0 , TRB_INTR_TARGET(0) = 0 port 2 returns 0 usb_control_msg: request: 0x3, requesttype: 0x23, value 0x8 index 0x3 length 0x0 xhci_submit_control_msg: dev='xhci@1690000000000', udev=ffffffff8eeb2f40, udev->dev='usb_hub', portnr=2 req=3 (0x3), type=35 (0x23), value=8 (0x8), index=3 EP STATE RUNNING. start_trb ffffffff8eeb27b0, start_cycle 1 req->requesttype = 35, req->request = 3,le16_to_cpu(req->value) = 8,le16_to_cpu(req->index) = 3,le16_to_cpu(req->length) = 0 length_field = 0, length = 0,xhci_td_remainder(length) = 0 , TRB_INTR_TARGET(0) = 0 port 3 returns 0 usb_control_msg: request: 0x3, requesttype: 0x23, value 0x8 index 0x4 length 0x0 xhci_submit_control_msg: dev='xhci@1690000000000', udev=ffffffff8eeb2f40, udev->dev='usb_hub', portnr=2 req=3 (0x3), type=35 (0x23), value=8 (0x8), index=4 EP STATE RUNNING. start_trb ffffffff8eeb27d0, start_cycle 1 req->requesttype = 35, req->request = 3,le16_to_cpu(req->value) = 8,le16_to_cpu(req->index) = 4,le16_to_cpu(req->length) = 0 length_field = 0, length = 0,xhci_td_remainder(length) = 0 , TRB_INTR_TARGET(0) = 0 port 4 returns 0 pgood_delay=2ms devnum=3 poweron: query_delay=100 connect_timeout=1100 usb_control_msg: request: 0x0, requesttype: 0xA3, value 0x0 index 0x1 length 0x4 xhci_submit_control_msg: dev='xhci@1690000000000', udev=ffffffff8eeb0920, udev->dev='usb_hub', portnr=1 req=0 (0x0), type=163 (0xa3), value=0 (0x0), index=1 EP STATE RUNNING. start_trb ffffffff8eeacda0, start_cycle 1 req->requesttype = 163, req->request = 0,le16_to_cpu(req->value) = 0,le16_to_cpu(req->index) = 1,le16_to_cpu(req->length) = 4 length_field = 4, length = 4,xhci_td_remainder(length) = 0 , TRB_INTR_TARGET(0) = 0 Port 1 Status 100 Change 0 devnum=2 port=1: timeout usb_control_msg: request: 0x0, requesttype: 0xA3, value 0x0 index 0x2 length 0x4 xhci_submit_control_msg: dev='xhci@1690000000000', udev=ffffffff8eeb0920, udev->dev='usb_hub', portnr=1 req=0 (0x0), type=163 (0xa3), value=0 (0x0), index=2 EP STATE RUNNING. start_trb ffffffff8eeacdd0, start_cycle 1 req->requesttype = 163, req->request = 0,le16_to_cpu(req->value) = 0,le16_to_cpu(req->index) = 2,le16_to_cpu(req->length) = 4 length_field = 4, length = 4,xhci_td_remainder(length) = 0 , TRB_INTR_TARGET(0) = 0 Port 2 Status 100 Change 0 devnum=2 port=2: timeout usb_control_msg: request: 0x0, requesttype: 0xA3, value 0x0 index 0x3 length 0x4 xhci_submit_control_msg: dev='xhci@1690000000000', udev=ffffffff8eeb0920, udev->dev='usb_hub', portnr=1 req=0 (0x0), type=163 (0xa3), value=0 (0x0), index=3 EP STATE RUNNING. start_trb ffffffff8eeace00, start_cycle 1 req->requesttype = 163, req->request = 0,le16_to_cpu(req->value) = 0,le16_to_cpu(req->index) = 3,le16_to_cpu(req->length) = 4 length_field = 4, length = 4,xhci_td_remainder(length) = 0 , TRB_INTR_TARGET(0) = 0 Port 3 Status 100 Change 0 devnum=2 port=3: timeout usb_control_msg: request: 0x0, requesttype: 0xA3, value 0x0 index 0x4 length 0x4 xhci_submit_control_msg: dev='xhci@1690000000000', udev=ffffffff8eeb0920, udev->dev='usb_hub', portnr=1 req=0 (0x0), type=163 (0xa3), value=0 (0x0), index=4 EP STATE RUNNING. start_trb ffffffff8eeace30, start_cycle 1 req->requesttype = 163, req->request = 0,le16_to_cpu(req->value) = 0,le16_to_cpu(req->index) = 4,le16_to_cpu(req->length) = 4 length_field = 4, length = 4,xhci_td_remainder(length) = 0 , TRB_INTR_TARGET(0) = 0 Port 4 Status 100 Change 0 devnum=2 port=4: timeout usb_control_msg: request: 0x0, requesttype: 0xA3, value 0x0 index 0x1 length 0x4 xhci_submit_control_msg: dev='xhci@1690000000000', udev=ffffffff8eeb2f40, udev->dev='usb_hub', portnr=2 req=0 (0x0), type=163 (0xa3), value=0 (0x0), index=1 EP STATE RUNNING. start_trb ffffffff8eeb27f0, start_cycle 1 req->requesttype = 163, req->request = 0,le16_to_cpu(req->value) = 0,le16_to_cpu(req->index) = 1,le16_to_cpu(req->length) = 4 length_field = 4, length = 4,xhci_td_remainder(length) = 0 , TRB_INTR_TARGET(0) = 0 Port 1 Status 207 Change 31 port 1 reset change usb_control_msg: request: 0x1, requesttype: 0x23, value 0x14 index 0x1 length 0x0 xhci_submit_control_msg: dev='xhci@1690000000000', udev=ffffffff8eeb2f40, udev->dev='usb_hub', portnr=2 req=1 (0x1), type=35 (0x23), value=20 (0x14), index=1 EP STATE RUNNING. start_trb ffffffff8eeb2820, start_cycle 1 req->requesttype = 35, req->request = 1,le16_to_cpu(req->value) = 20,le16_to_cpu(req->index) = 1,le16_to_cpu(req->length) = 0 length_field = 0, length = 0,xhci_td_remainder(length) = 0 , TRB_INTR_TARGET(0) = 0 port 1 BH reset change usb_control_msg: request: 0x1, requesttype: 0x23, value 0x1D index 0x1 length 0x0 xhci_submit_control_msg: dev='xhci@1690000000000', udev=ffffffff8eeb2f40, udev->dev='usb_hub', portnr=2 req=1 (0x1), type=35 (0x23), value=29 (0x1d), index=1 EP STATE RUNNING. start_trb ffffffff8eeb2840, start_cycle 1 req->requesttype = 35, req->request = 1,le16_to_cpu(req->value) = 29,le16_to_cpu(req->index) = 1,le16_to_cpu(req->length) = 0 length_field = 0, length = 0,xhci_td_remainder(length) = 0 , TRB_INTR_TARGET(0) = 0 devnum=3 port=1: USB dev found usb_control_msg: request: 0x0, requesttype: 0xA3, value 0x0 index 0x1 length 0x4 xhci_submit_control_msg: dev='xhci@1690000000000', udev=ffffffff8eeb2f40, udev->dev='usb_hub', portnr=2 req=0 (0x0), type=163 (0xa3), value=0 (0x0), index=1 EP STATE RUNNING. start_trb ffffffff8eeb2860, start_cycle 1 req->requesttype = 163, req->request = 0,le16_to_cpu(req->value) = 0,le16_to_cpu(req->index) = 1,le16_to_cpu(req->length) = 4 length_field = 4, length = 4,xhci_td_remainder(length) = 0 , TRB_INTR_TARGET(0) = 0 portstatus 207, change 1, 1.5 Mb/s usb_control_msg: request: 0x1, requesttype: 0x23, value 0x10 index 0x1 length 0x0 xhci_submit_control_msg: dev='xhci@1690000000000', udev=ffffffff8eeb2f40, udev->dev='usb_hub', portnr=2 req=1 (0x1), type=35 (0x23), value=16 (0x10), index=1 EP STATE RUNNING. start_trb ffffffff8eeb2890, start_cycle 1 req->requesttype = 35, req->request = 1,le16_to_cpu(req->value) = 16,le16_to_cpu(req->index) = 1,le16_to_cpu(req->length) = 0 length_field = 0, length = 0,xhci_td_remainder(length) = 0 , TRB_INTR_TARGET(0) = 0 usb_hub_port_reset: resetting 'usb_hub' port 1... usb_control_msg: request: 0x3, requesttype: 0x23, value 0x4 index 0x1 length 0x0 xhci_submit_control_msg: dev='xhci@1690000000000', udev=ffffffff8eeb2f40, udev->dev='usb_hub', portnr=2 req=3 (0x3), type=35 (0x23), value=4 (0x4), index=1 EP STATE RUNNING. start_trb ffffffff8eeb28b0, start_cycle 1 req->requesttype = 35, req->request = 3,le16_to_cpu(req->value) = 4,le16_to_cpu(req->index) = 1,le16_to_cpu(req->length) = 0 length_field = 0, length = 0,xhci_td_remainder(length) = 0 , TRB_INTR_TARGET(0) = 0 usb_control_msg: request: 0x0, requesttype: 0xA3, value 0x0 index 0x1 length 0x4 xhci_submit_control_msg: dev='xhci@1690000000000', udev=ffffffff8eeb2f40, udev->dev='usb_hub', portnr=2 req=0 (0x0), type=163 (0xa3), value=0 (0x0), index=1 EP STATE RUNNING. start_trb ffffffff8eeb28d0, start_cycle 1 req->requesttype = 163, req->request = 0,le16_to_cpu(req->value) = 0,le16_to_cpu(req->index) = 1,le16_to_cpu(req->length) = 4 length_field = 4, length = 4,xhci_td_remainder(length) = 0 , TRB_INTR_TARGET(0) = 0 portstatus 207, change 10, 1.5 Mb/s STAT_C_CONNECTION = 0 STAT_CONNECTION = 1 USB_PORT_STAT_ENABLE 1 usb_control_msg: request: 0x1, requesttype: 0x23, value 0x14 index 0x1 length 0x0 xhci_submit_control_msg: dev='xhci@1690000000000', udev=ffffffff8eeb2f40, udev->dev='usb_hub', portnr=2 req=1 (0x1), type=35 (0x23), value=20 (0x14), index=1 EP STATE RUNNING. start_trb ffffffff8eeb2900, start_cycle 1 req->requesttype = 35, req->request = 1,le16_to_cpu(req->value) = 20,le16_to_cpu(req->index) = 1,le16_to_cpu(req->length) = 0 length_field = 0, length = 0,xhci_td_remainder(length) = 0 , TRB_INTR_TARGET(0) = 0 xhci_alloc_device: dev='xhci@1690000000000', udev=ffffffff8ee9b420 EP STATE RUNNING. set address 4 usb_control_msg: request: 0x5, requesttype: 0x0, value 0x4 index 0x0 length 0x0 xhci_submit_control_msg: dev='xhci@1690000000000', udev=ffffffff8ee9b420, udev->dev='usb_hub', portnr=1 Setting up addressable devices ffffffff8eeab980 route string 1 port_num = 2 SPEED = 1 Setting Packet size = 8bytes EP STATE RUNNING. Device not responding to set address.
USB device not accepting new address (error=80000000) hub: disabling port 1 usb_control_msg: request: 0x1, requesttype: 0x23, value 0x1 index 0x1 length 0x0 xhci_submit_control_msg: dev='xhci@1690000000000', udev=ffffffff8eeb2f40, udev->dev='usb_hub', portnr=2 req=1 (0x1), type=35 (0x23), value=1 (0x1), index=1 EP STATE RUNNING. start_trb ffffffff8eeb2920, start_cycle 1 req->requesttype = 35, req->request = 1,le16_to_cpu(req->value) = 1,le16_to_cpu(req->index) = 1,le16_to_cpu(req->length) = 0 length_field = 0, length = 0,xhci_td_remainder(length) = 0 , TRB_INTR_TARGET(0) = 0 port 1 suspend change usb_control_msg: request: 0x1, requesttype: 0x23, value 0x2 index 0x1 length 0x0 xhci_submit_control_msg: dev='xhci@1690000000000', udev=ffffffff8eeb2f40, udev->dev='usb_hub', portnr=2 req=1 (0x1), type=35 (0x23), value=2 (0x2), index=1 WARN halted endpoint, queueing URB anyway. EP STATE RUNNING. start_trb ffffffff8eeb2940, start_cycle 1 req->requesttype = 35, req->request = 1,le16_to_cpu(req->value) = 2,le16_to_cpu(req->index) = 1,le16_to_cpu(req->length) = 0 length_field = 0, length = 0,xhci_td_remainder(length) = 0 , TRB_INTR_TARGET(0) = 0 XHCI control transfer timed out, aborting... EP STATE RUNNING. Unexpected XHCI event TRB, skipping... (0eea9c20 00000000 13000000 02008401) BUG at drivers/usb/host/xhci-ring.c:503/abort_td()! BUG! resetting ...

I have a follow-up. USB is working on our OcteonTX boards running 2020.10. It may be something specific to the Octeon port. Note that I did see a problem where the scratchpad memory is using direct pointers instead of physical addresses (which will not work on MIPS). As far as I know, however, the Octeon XHCI controller does not use the scratchpad memory.
-Aaron
On Friday, February 19, 2021 5:57:47 AM PST Aaron Williams wrote:
External Email
Hi all,
While backporting the latest USB support in U-Boot to support USB 3 hubs I decided to try the latest U-Boot for Octeon which should contain everything. When I start USB, however, with a USB 3 thumb drive plugged into a USB 3 hub, I am seeing a crash. I have enabled all of the debugging support for usb.c, usb_hub.c, xhci.c, xhci-ring.c and xhci_mem.c
In my backported code which is a bit hacked up due to the lack of DT support, I am seeing it fail when it attempts to set the hub depth. Note that everything works fine with a USB 2 hub. I was hoping to compare the stock U- Boot with my hacked up code to track down the issue.
-Aaron
Here are the logs:
=> usb start starting USB... Bus xhci@1680000000000: xhci_register: dev='xhci@1680000000000', ctrl=ffffffff8eea1aa0, hccr=8001680000000000, hcor=8001680000000020 // Halt the HC: 8001680000000020 // Reset the HC Register 2000140 NbrPorts 2 Starting the controller USB XHCI 1.00 Bus xhci@1690000000000: xhci_register: dev='xhci@1690000000000', ctrl=ffffffff8eeab040, hccr=8001690000000000, hcor=8001690000000020 // Halt the HC: 8001690000000020 // Reset the HC Register 2000140 NbrPorts 2 Starting the controller USB XHCI 1.00 scanning bus xhci@1680000000000 for devices... xhci_alloc_device: dev='xhci@1680000000000', udev=ffffffff8ee9c280 set address 1 usb_control_msg: request: 0x5, requesttype: 0x0, value 0x1 index 0x0 length 0x0 xhci_submit_control_msg: dev='xhci@1680000000000', udev=ffffffff8ee9c280, udev->dev='xhci@1680000000000', portnr=0 USB_REQ_SET_ADDRESS scrlen = 0 req->length = 0 Len is 0 usb_control_msg: request: 0x6, requesttype: 0x80, value 0x100 index 0x0 length 0x12 xhci_submit_control_msg: dev='xhci@1680000000000', udev=ffffffff8ee9c280, udev->dev='xhci@1680000000000', portnr=0 USB_DT_DEVICE request scrlen = 18 req->length = 18 usb_control_msg: request: 0x6, requesttype: 0x80, value 0x200 index 0x0 length 0x9 xhci_submit_control_msg: dev='xhci@1680000000000', udev=ffffffff8ee9c280, udev->dev='xhci@1680000000000', portnr=0 USB_DT_CONFIG config scrlen = 25 req->length = 9 usb_control_msg: request: 0x6, requesttype: 0x80, value 0x200 index 0x0 length 0x1F xhci_submit_control_msg: dev='xhci@1680000000000', udev=ffffffff8ee9c280, udev->dev='xhci@1680000000000', portnr=0 USB_DT_CONFIG config scrlen = 25 req->length = 31 get_conf_no 0 Result 25, wLength 31 if 0, ep 0 ##EP epmaxpacketin[1] = 2048 set configuration 1 usb_control_msg: request: 0x9, requesttype: 0x0, value 0x1 index 0x0 length 0x0 xhci_submit_control_msg: dev='xhci@1680000000000', udev=ffffffff8ee9c280, udev->dev='xhci@1680000000000', portnr=0 scrlen = 0 req->length = 0 Len is 0 new device strings: Mfr=1, Product=2, SerialNumber=0 usb_control_msg: request: 0x6, requesttype: 0x80, value 0x300 index 0x0 length 0xFF xhci_submit_control_msg: dev='xhci@1680000000000', udev=ffffffff8ee9c280, udev->dev='xhci@1680000000000', portnr=0 USB_DT_STRING config scrlen = 4 req->length = 255 USB device number 1 default language ID 0x409 usb_control_msg: request: 0x6, requesttype: 0x80, value 0x301 index 0x409 length 0xFF xhci_submit_control_msg: dev='xhci@1680000000000', udev=ffffffff8ee9c280, udev->dev='xhci@1680000000000', portnr=0 USB_DT_STRING config scrlen = 14 req->length = 255 usb_control_msg: request: 0x6, requesttype: 0x80, value 0x302 index 0x409 length 0xFF xhci_submit_control_msg: dev='xhci@1680000000000', udev=ffffffff8ee9c280, udev->dev='xhci@1680000000000', portnr=0 USB_DT_STRING config scrlen = 42 req->length = 255 Manufacturer U-Boot Product XHCI Host Controller SerialNumber usb_hub_post_probe usb_control_msg: request: 0x6, requesttype: 0xA0, value 0x2A00 index 0x0 length 0x4 xhci_submit_control_msg: dev='xhci@1680000000000', udev=ffffffff8eeae040, udev->dev='usb_hub', portnr=0 USB_DT_HUB config scrlen = 8 req->length = 4 usb_control_msg: request: 0x6, requesttype: 0xA0, value 0x2A00 index 0x0 length 0xC xhci_submit_control_msg: dev='xhci@1680000000000', udev=ffffffff8eeae040, udev->dev='usb_hub', portnr=0 USB_DT_HUB config scrlen = 8 req->length = 12 2 ports detected ganged power switching standalone hub individual port over-current protection TT requires at most 8 FS bit times (666 ns) power on to power good time: 20ms hub controller current requirement: 0mA port 1 is removable port 2 is removable usb_control_msg: request: 0x0, requesttype: 0xA0, value 0x0 index 0x0 length 0x4 xhci_submit_control_msg: dev='xhci@1680000000000', udev=ffffffff8eeae040, udev->dev='usb_hub', portnr=0 scrlen = 2 req->length = 4 get_hub_status returned status 1, change 802 local power source is lost (inactive) no over-current condition exists xhci_update_hub_device: dev='xhci@1680000000000', udev=ffffffff8eeae040 enabling power on all ports usb_control_msg: request: 0x3, requesttype: 0x23, value 0x8 index 0x1 length 0x0 xhci_submit_control_msg: dev='xhci@1680000000000', udev=ffffffff8eeae040, udev->dev='usb_hub', portnr=0 scrlen = 0 req->length = 0 Len is 0 port 1 returns 0 usb_control_msg: request: 0x3, requesttype: 0x23, value 0x8 index 0x2 length 0x0 xhci_submit_control_msg: dev='xhci@1680000000000', udev=ffffffff8eeae040, udev->dev='usb_hub', portnr=0 scrlen = 0 req->length = 0 Len is 0 port 2 returns 0 pgood_delay=20ms devnum=1 poweron: query_delay=100 connect_timeout=1100 usb_control_msg: request: 0x0, requesttype: 0xA3, value 0x0 index 0x1 length 0x4 xhci_submit_control_msg: dev='xhci@1680000000000', udev=ffffffff8eeae040, udev->dev='usb_hub', portnr=0 scrlen = 4 req->length = 4 Port 1 Status 100 Change 0 usb_control_msg: request: 0x0, requesttype: 0xA3, value 0x0 index 0x2 length 0x4 xhci_submit_control_msg: dev='xhci@1680000000000', udev=ffffffff8eeae040, udev->dev='usb_hub', portnr=0 scrlen = 4 req->length = 4 Port 2 Status 100 Change 0 usb_control_msg: request: 0x0, requesttype: 0xA3, value 0x0 index 0x1 length 0x4 xhci_submit_control_msg: dev='xhci@1680000000000', udev=ffffffff8eeae040, udev->dev='usb_hub', portnr=0 scrlen = 4 req->length = 4 Port 1 Status 100 Change 0 usb_control_msg: request: 0x0, requesttype: 0xA3, value 0x0 index 0x2 length 0x4 xhci_submit_control_msg: dev='xhci@1680000000000', udev=ffffffff8eeae040, udev->dev='usb_hub', portnr=0 scrlen = 4 req->length = 4 Port 2 Status 100 Change 0 usb_control_msg: request: 0x0, requesttype: 0xA3, value 0x0 index 0x1 length 0x4 xhci_submit_control_msg: dev='xhci@1680000000000', udev=ffffffff8eeae040, udev->dev='usb_hub', portnr=0 scrlen = 4 req->length = 4 Port 1 Status 100 Change 0 usb_control_msg: request: 0x0, requesttype: 0xA3, value 0x0 index 0x2 length 0x4 xhci_submit_control_msg: dev='xhci@1680000000000', udev=ffffffff8eeae040, udev->dev='usb_hub', portnr=0 scrlen = 4 req->length = 4 Port 2 Status 100 Change 0 usb_control_msg: request: 0x0, requesttype: 0xA3, value 0x0 index 0x1 length 0x4 xhci_submit_control_msg: dev='xhci@1680000000000', udev=ffffffff8eeae040, udev->dev='usb_hub', portnr=0 scrlen = 4 req->length = 4 Port 1 Status 100 Change 0 usb_control_msg: request: 0x0, requesttype: 0xA3, value 0x0 index 0x2 length 0x4 xhci_submit_control_msg: dev='xhci@1680000000000', udev=ffffffff8eeae040, udev->dev='usb_hub', portnr=0 scrlen = 4 req->length = 4 Port 2 Status 100 Change 0 usb_control_msg: request: 0x0, requesttype: 0xA3, value 0x0 index 0x1 length 0x4 xhci_submit_control_msg: dev='xhci@1680000000000', udev=ffffffff8eeae040, udev->dev='usb_hub', portnr=0 scrlen = 4 req->length = 4 Port 1 Status 100 Change 0 usb_control_msg: request: 0x0, requesttype: 0xA3, value 0x0 index 0x2 length 0x4 xhci_submit_control_msg: dev='xhci@1680000000000', udev=ffffffff8eeae040, udev->dev='usb_hub', portnr=0 scrlen = 4 req->length = 4 Port 2 Status 100 Change 0 usb_control_msg: request: 0x0, requesttype: 0xA3, value 0x0 index 0x1 length 0x4 xhci_submit_control_msg: dev='xhci@1680000000000', udev=ffffffff8eeae040, udev->dev='usb_hub', portnr=0 scrlen = 4 req->length = 4 Port 1 Status 100 Change 0 usb_control_msg: request: 0x0, requesttype: 0xA3, value 0x0 index 0x2 length 0x4 xhci_submit_control_msg: dev='xhci@1680000000000', udev=ffffffff8eeae040, udev->dev='usb_hub', portnr=0 scrlen = 4 req->length = 4 Port 2 Status 100 Change 0 usb_control_msg: request: 0x0, requesttype: 0xA3, value 0x0 index 0x1 length 0x4 xhci_submit_control_msg: dev='xhci@1680000000000', udev=ffffffff8eeae040, udev->dev='usb_hub', portnr=0 scrlen = 4 req->length = 4 Port 1 Status 100 Change 0 usb_control_msg: request: 0x0, requesttype: 0xA3, value 0x0 index 0x2 length 0x4 xhci_submit_control_msg: dev='xhci@1680000000000', udev=ffffffff8eeae040, udev->dev='usb_hub', portnr=0 scrlen = 4 req->length = 4 Port 2 Status 100 Change 0 usb_control_msg: request: 0x0, requesttype: 0xA3, value 0x0 index 0x1 length 0x4 xhci_submit_control_msg: dev='xhci@1680000000000', udev=ffffffff8eeae040, udev->dev='usb_hub', portnr=0 scrlen = 4 req->length = 4 Port 1 Status 100 Change 0 usb_control_msg: request: 0x0, requesttype: 0xA3, value 0x0 index 0x2 length 0x4 xhci_submit_control_msg: dev='xhci@1680000000000', udev=ffffffff8eeae040, udev->dev='usb_hub', portnr=0 scrlen = 4 req->length = 4 Port 2 Status 100 Change 0 usb_control_msg: request: 0x0, requesttype: 0xA3, value 0x0 index 0x1 length 0x4 xhci_submit_control_msg: dev='xhci@1680000000000', udev=ffffffff8eeae040, udev->dev='usb_hub', portnr=0 scrlen = 4 req->length = 4 Port 1 Status 100 Change 0 usb_control_msg: request: 0x0, requesttype: 0xA3, value 0x0 index 0x2 length 0x4 xhci_submit_control_msg: dev='xhci@1680000000000', udev=ffffffff8eeae040, udev->dev='usb_hub', portnr=0 scrlen = 4 req->length = 4 Port 2 Status 100 Change 0 usb_control_msg: request: 0x0, requesttype: 0xA3, value 0x0 index 0x1 length 0x4 xhci_submit_control_msg: dev='xhci@1680000000000', udev=ffffffff8eeae040, udev->dev='usb_hub', portnr=0 scrlen = 4 req->length = 4 Port 1 Status 100 Change 0 usb_control_msg: request: 0x0, requesttype: 0xA3, value 0x0 index 0x2 length 0x4 xhci_submit_control_msg: dev='xhci@1680000000000', udev=ffffffff8eeae040, udev->dev='usb_hub', portnr=0 scrlen = 4 req->length = 4 Port 2 Status 100 Change 0 usb_control_msg: request: 0x0, requesttype: 0xA3, value 0x0 index 0x1 length 0x4 xhci_submit_control_msg: dev='xhci@1680000000000', udev=ffffffff8eeae040, udev->dev='usb_hub', portnr=0 scrlen = 4 req->length = 4 Port 1 Status 100 Change 0 usb_control_msg: request: 0x0, requesttype: 0xA3, value 0x0 index 0x2 length 0x4 xhci_submit_control_msg: dev='xhci@1680000000000', udev=ffffffff8eeae040, udev->dev='usb_hub', portnr=0 scrlen = 4 req->length = 4 Port 2 Status 100 Change 0 usb_control_msg: request: 0x0, requesttype: 0xA3, value 0x0 index 0x1 length 0x4 xhci_submit_control_msg: dev='xhci@1680000000000', udev=ffffffff8eeae040, udev->dev='usb_hub', portnr=0 scrlen = 4 req->length = 4 Port 1 Status 100 Change 0 usb_control_msg: request: 0x0, requesttype: 0xA3, value 0x0 index 0x2 length 0x4 xhci_submit_control_msg: dev='xhci@1680000000000', udev=ffffffff8eeae040, udev->dev='usb_hub', portnr=0 scrlen = 4 req->length = 4 Port 2 Status 100 Change 0 usb_control_msg: request: 0x0, requesttype: 0xA3, value 0x0 index 0x1 length 0x4 xhci_submit_control_msg: dev='xhci@1680000000000', udev=ffffffff8eeae040, udev->dev='usb_hub', portnr=0 scrlen = 4 req->length = 4 Port 1 Status 100 Change 0 usb_control_msg: request: 0x0, requesttype: 0xA3, value 0x0 index 0x2 length 0x4 xhci_submit_control_msg: dev='xhci@1680000000000', udev=ffffffff8eeae040, udev->dev='usb_hub', portnr=0 scrlen = 4 req->length = 4 Port 2 Status 100 Change 0 usb_control_msg: request: 0x0, requesttype: 0xA3, value 0x0 index 0x1 length 0x4 xhci_submit_control_msg: dev='xhci@1680000000000', udev=ffffffff8eeae040, udev->dev='usb_hub', portnr=0 scrlen = 4 req->length = 4 Port 1 Status 100 Change 0 usb_control_msg: request: 0x0, requesttype: 0xA3, value 0x0 index 0x2 length 0x4 xhci_submit_control_msg: dev='xhci@1680000000000', udev=ffffffff8eeae040, udev->dev='usb_hub', portnr=0 scrlen = 4 req->length = 4 Port 2 Status 100 Change 0 usb_control_msg: request: 0x0, requesttype: 0xA3, value 0x0 index 0x1 length 0x4 xhci_submit_control_msg: dev='xhci@1680000000000', udev=ffffffff8eeae040, udev->dev='usb_hub', portnr=0 scrlen = 4 req->length = 4 Port 1 Status 100 Change 0 usb_control_msg: request: 0x0, requesttype: 0xA3, value 0x0 index 0x2 length 0x4 xhci_submit_control_msg: dev='xhci@1680000000000', udev=ffffffff8eeae040, udev->dev='usb_hub', portnr=0 scrlen = 4 req->length = 4 Port 2 Status 100 Change 0 usb_control_msg: request: 0x0, requesttype: 0xA3, value 0x0 index 0x1 length 0x4 xhci_submit_control_msg: dev='xhci@1680000000000', udev=ffffffff8eeae040, udev->dev='usb_hub', portnr=0 scrlen = 4 req->length = 4 Port 1 Status 100 Change 0 usb_control_msg: request: 0x0, requesttype: 0xA3, value 0x0 index 0x2 length 0x4 xhci_submit_control_msg: dev='xhci@1680000000000', udev=ffffffff8eeae040, udev->dev='usb_hub', portnr=0 scrlen = 4 req->length = 4 Port 2 Status 100 Change 0 usb_control_msg: request: 0x0, requesttype: 0xA3, value 0x0 index 0x1 length 0x4 xhci_submit_control_msg: dev='xhci@1680000000000', udev=ffffffff8eeae040, udev->dev='usb_hub', portnr=0 scrlen = 4 req->length = 4 Port 1 Status 100 Change 0 usb_control_msg: request: 0x0, requesttype: 0xA3, value 0x0 index 0x2 length 0x4 xhci_submit_control_msg: dev='xhci@1680000000000', udev=ffffffff8eeae040, udev->dev='usb_hub', portnr=0 scrlen = 4 req->length = 4 Port 2 Status 100 Change 0 usb_control_msg: request: 0x0, requesttype: 0xA3, value 0x0 index 0x1 length 0x4 xhci_submit_control_msg: dev='xhci@1680000000000', udev=ffffffff8eeae040, udev->dev='usb_hub', portnr=0 scrlen = 4 req->length = 4 Port 1 Status 100 Change 0 usb_control_msg: request: 0x0, requesttype: 0xA3, value 0x0 index 0x2 length 0x4 xhci_submit_control_msg: dev='xhci@1680000000000', udev=ffffffff8eeae040, udev->dev='usb_hub', portnr=0 scrlen = 4 req->length = 4 Port 2 Status 100 Change 0 usb_control_msg: request: 0x0, requesttype: 0xA3, value 0x0 index 0x1 length 0x4 xhci_submit_control_msg: dev='xhci@1680000000000', udev=ffffffff8eeae040, udev->dev='usb_hub', portnr=0 scrlen = 4 req->length = 4 Port 1 Status 100 Change 0 usb_control_msg: request: 0x0, requesttype: 0xA3, value 0x0 index 0x2 length 0x4 xhci_submit_control_msg: dev='xhci@1680000000000', udev=ffffffff8eeae040, udev->dev='usb_hub', portnr=0 scrlen = 4 req->length = 4 Port 2 Status 100 Change 0 usb_control_msg: request: 0x0, requesttype: 0xA3, value 0x0 index 0x1 length 0x4 xhci_submit_control_msg: dev='xhci@1680000000000', udev=ffffffff8eeae040, udev->dev='usb_hub', portnr=0 scrlen = 4 req->length = 4 Port 1 Status 100 Change 0 usb_control_msg: request: 0x0, requesttype: 0xA3, value 0x0 index 0x2 length 0x4 xhci_submit_control_msg: dev='xhci@1680000000000', udev=ffffffff8eeae040, udev->dev='usb_hub', portnr=0 scrlen = 4 req->length = 4 Port 2 Status 100 Change 0 usb_control_msg: request: 0x0, requesttype: 0xA3, value 0x0 index 0x1 length 0x4 xhci_submit_control_msg: dev='xhci@1680000000000', udev=ffffffff8eeae040, udev->dev='usb_hub', portnr=0 scrlen = 4 req->length = 4 Port 1 Status 100 Change 0 usb_control_msg: request: 0x0, requesttype: 0xA3, value 0x0 index 0x2 length 0x4 xhci_submit_control_msg: dev='xhci@1680000000000', udev=ffffffff8eeae040, udev->dev='usb_hub', portnr=0 scrlen = 4 req->length = 4 Port 2 Status 100 Change 0 usb_control_msg: request: 0x0, requesttype: 0xA3, value 0x0 index 0x1 length 0x4 xhci_submit_control_msg: dev='xhci@1680000000000', udev=ffffffff8eeae040, udev->dev='usb_hub', portnr=0 scrlen = 4 req->length = 4 Port 1 Status 100 Change 0 usb_control_msg: request: 0x0, requesttype: 0xA3, value 0x0 index 0x2 length 0x4 xhci_submit_control_msg: dev='xhci@1680000000000', udev=ffffffff8eeae040, udev->dev='usb_hub', portnr=0 scrlen = 4 req->length = 4 Port 2 Status 100 Change 0 usb_control_msg: request: 0x0, requesttype: 0xA3, value 0x0 index 0x1 length 0x4 xhci_submit_control_msg: dev='xhci@1680000000000', udev=ffffffff8eeae040, udev->dev='usb_hub', portnr=0 scrlen = 4 req->length = 4 Port 1 Status 100 Change 0 usb_control_msg: request: 0x0, requesttype: 0xA3, value 0x0 index 0x2 length 0x4 xhci_submit_control_msg: dev='xhci@1680000000000', udev=ffffffff8eeae040, udev->dev='usb_hub', portnr=0 scrlen = 4 req->length = 4 Port 2 Status 100 Change 0 usb_control_msg: request: 0x0, requesttype: 0xA3, value 0x0 index 0x1 length 0x4 xhci_submit_control_msg: dev='xhci@1680000000000', udev=ffffffff8eeae040, udev->dev='usb_hub', portnr=0 scrlen = 4 req->length = 4 Port 1 Status 100 Change 0 usb_control_msg: request: 0x0, requesttype: 0xA3, value 0x0 index 0x2 length 0x4 xhci_submit_control_msg: dev='xhci@1680000000000', udev=ffffffff8eeae040, udev->dev='usb_hub', portnr=0 scrlen = 4 req->length = 4 Port 2 Status 100 Change 0 devnum=1 port=2: timeout usb_control_msg: request: 0x0, requesttype: 0xA3, value 0x0 index 0x1 length 0x4 xhci_submit_control_msg: dev='xhci@1680000000000', udev=ffffffff8eeae040, udev->dev='usb_hub', portnr=0 scrlen = 4 req->length = 4 Port 1 Status 100 Change 0 devnum=1 port=1: timeout 1 USB Device(s) found scanning bus xhci@1690000000000 for devices... xhci_alloc_device: dev='xhci@1690000000000', udev=ffffffff8ee9c280 set address 1 usb_control_msg: request: 0x5, requesttype: 0x0, value 0x1 index 0x0 length 0x0 xhci_submit_control_msg: dev='xhci@1690000000000', udev=ffffffff8ee9c280, udev->dev='xhci@1690000000000', portnr=0 USB_REQ_SET_ADDRESS scrlen = 0 req->length = 0 Len is 0 usb_control_msg: request: 0x6, requesttype: 0x80, value 0x100 index 0x0 length 0x12 xhci_submit_control_msg: dev='xhci@1690000000000', udev=ffffffff8ee9c280, udev->dev='xhci@1690000000000', portnr=0 USB_DT_DEVICE request scrlen = 18 req->length = 18 usb_control_msg: request: 0x6, requesttype: 0x80, value 0x200 index 0x0 length 0x9 xhci_submit_control_msg: dev='xhci@1690000000000', udev=ffffffff8ee9c280, udev->dev='xhci@1690000000000', portnr=0 USB_DT_CONFIG config scrlen = 25 req->length = 9 usb_control_msg: request: 0x6, requesttype: 0x80, value 0x200 index 0x0 length 0x1F xhci_submit_control_msg: dev='xhci@1690000000000', udev=ffffffff8ee9c280, udev->dev='xhci@1690000000000', portnr=0 USB_DT_CONFIG config scrlen = 25 req->length = 31 get_conf_no 0 Result 25, wLength 31 if 0, ep 0 ##EP epmaxpacketin[1] = 2048 set configuration 1 usb_control_msg: request: 0x9, requesttype: 0x0, value 0x1 index 0x0 length 0x0 xhci_submit_control_msg: dev='xhci@1690000000000', udev=ffffffff8ee9c280, udev->dev='xhci@1690000000000', portnr=0 scrlen = 0 req->length = 0 Len is 0 new device strings: Mfr=1, Product=2, SerialNumber=0 usb_control_msg: request: 0x6, requesttype: 0x80, value 0x300 index 0x0 length 0xFF xhci_submit_control_msg: dev='xhci@1690000000000', udev=ffffffff8ee9c280, udev->dev='xhci@1690000000000', portnr=0 USB_DT_STRING config scrlen = 4 req->length = 255 USB device number 1 default language ID 0x409 usb_control_msg: request: 0x6, requesttype: 0x80, value 0x301 index 0x409 length 0xFF xhci_submit_control_msg: dev='xhci@1690000000000', udev=ffffffff8ee9c280, udev->dev='xhci@1690000000000', portnr=0 USB_DT_STRING config scrlen = 14 req->length = 255 usb_control_msg: request: 0x6, requesttype: 0x80, value 0x302 index 0x409 length 0xFF xhci_submit_control_msg: dev='xhci@1690000000000', udev=ffffffff8ee9c280, udev->dev='xhci@1690000000000', portnr=0 USB_DT_STRING config scrlen = 42 req->length = 255 Manufacturer U-Boot Product XHCI Host Controller SerialNumber usb_hub_post_probe usb_control_msg: request: 0x6, requesttype: 0xA0, value 0x2A00 index 0x0 length 0x4 xhci_submit_control_msg: dev='xhci@1690000000000', udev=ffffffff8eeae9e0, udev->dev='usb_hub', portnr=0 USB_DT_HUB config scrlen = 8 req->length = 4 usb_control_msg: request: 0x6, requesttype: 0xA0, value 0x2A00 index 0x0 length 0xC xhci_submit_control_msg: dev='xhci@1690000000000', udev=ffffffff8eeae9e0, udev->dev='usb_hub', portnr=0 USB_DT_HUB config scrlen = 8 req->length = 12 2 ports detected ganged power switching standalone hub individual port over-current protection TT requires at most 8 FS bit times (666 ns) power on to power good time: 20ms hub controller current requirement: 0mA port 1 is removable port 2 is removable usb_control_msg: request: 0x0, requesttype: 0xA0, value 0x0 index 0x0 length 0x4 xhci_submit_control_msg: dev='xhci@1690000000000', udev=ffffffff8eeae9e0, udev->dev='usb_hub', portnr=0 scrlen = 2 req->length = 4 get_hub_status returned status 1, change 802 local power source is lost (inactive) no over-current condition exists xhci_update_hub_device: dev='xhci@1690000000000', udev=ffffffff8eeae9e0 enabling power on all ports usb_control_msg: request: 0x3, requesttype: 0x23, value 0x8 index 0x1 length 0x0 xhci_submit_control_msg: dev='xhci@1690000000000', udev=ffffffff8eeae9e0, udev->dev='usb_hub', portnr=0 scrlen = 0 req->length = 0 Len is 0 port 1 returns 0 usb_control_msg: request: 0x3, requesttype: 0x23, value 0x8 index 0x2 length 0x0 xhci_submit_control_msg: dev='xhci@1690000000000', udev=ffffffff8eeae9e0, udev->dev='usb_hub', portnr=0 scrlen = 0 req->length = 0 Len is 0 port 2 returns 0 pgood_delay=20ms devnum=1 poweron: query_delay=100 connect_timeout=1100 usb_control_msg: request: 0x0, requesttype: 0xA3, value 0x0 index 0x1 length 0x4 xhci_submit_control_msg: dev='xhci@1690000000000', udev=ffffffff8eeae9e0, udev->dev='usb_hub', portnr=0 SPEED = FULLSPEED scrlen = 4 req->length = 4 Port 1 Status 101 Change 1 devnum=1 port=1: USB dev found usb_control_msg: request: 0x0, requesttype: 0xA3, value 0x0 index 0x1 length 0x4 xhci_submit_control_msg: dev='xhci@1690000000000', udev=ffffffff8eeae9e0, udev->dev='usb_hub', portnr=0 SPEED = FULLSPEED scrlen = 4 req->length = 4 portstatus 101, change 1, 12 Mb/s usb_control_msg: request: 0x1, requesttype: 0x23, value 0x10 index 0x1 length 0x0 xhci_submit_control_msg: dev='xhci@1690000000000', udev=ffffffff8eeae9e0, udev->dev='usb_hub', portnr=0 clear port connect change, actual port 1 status = 0x6e1 scrlen = 0 req->length = 0 Len is 0 usb_hub_port_reset: resetting 'usb_hub' port 1... usb_control_msg: request: 0x3, requesttype: 0x23, value 0x4 index 0x1 length 0x0 xhci_submit_control_msg: dev='xhci@1690000000000', udev=ffffffff8eeae9e0, udev->dev='usb_hub', portnr=0 scrlen = 0 req->length = 0 Len is 0 usb_control_msg: request: 0x0, requesttype: 0xA3, value 0x0 index 0x1 length 0x4 xhci_submit_control_msg: dev='xhci@1690000000000', udev=ffffffff8eeae9e0, udev->dev='usb_hub', portnr=0 SPEED = FULLSPEED scrlen = 4 req->length = 4 portstatus 111, change 0, 12 Mb/s STAT_C_CONNECTION = 0 STAT_CONNECTION = 1 USB_PORT_STAT_ENABLE 0 usb_control_msg: request: 0x3, requesttype: 0x23, value 0x4 index 0x1 length 0x0 xhci_submit_control_msg: dev='xhci@1690000000000', udev=ffffffff8eeae9e0, udev->dev='usb_hub', portnr=0 scrlen = 0 req->length = 0 Len is 0 usb_control_msg: request: 0x0, requesttype: 0xA3, value 0x0 index 0x1 length 0x4 xhci_submit_control_msg: dev='xhci@1690000000000', udev=ffffffff8eeae9e0, udev->dev='usb_hub', portnr=0 SPEED = HIGHSPEED scrlen = 4 req->length = 4 portstatus 503, change 10, 480 Mb/s STAT_C_CONNECTION = 0 STAT_CONNECTION = 1 USB_PORT_STAT_ENABLE 1 usb_control_msg: request: 0x1, requesttype: 0x23, value 0x14 index 0x1 length 0x0 xhci_submit_control_msg: dev='xhci@1690000000000', udev=ffffffff8eeae9e0, udev->dev='usb_hub', portnr=0 clear port reset change, actual port 1 status = 0xe03 scrlen = 0 req->length = 0 Len is 0 xhci_alloc_device: dev='xhci@1690000000000', udev=ffffffff8ee9b420 EP STATE RUNNING. set address 2 usb_control_msg: request: 0x5, requesttype: 0x0, value 0x2 index 0x0 length 0x0 xhci_submit_control_msg: dev='xhci@1690000000000', udev=ffffffff8ee9b420, udev->dev='usb_hub', portnr=1 Setting up addressable devices ffffffff8eeab980 route string 0 port_num = 1 SPEED = 3 Setting Packet size = 64bytes EP STATE RUNNING. Successful Address Device command xHC internal address is: 1 usb_control_msg: request: 0x6, requesttype: 0x80, value 0x100 index 0x0 length 0x12 xhci_submit_control_msg: dev='xhci@1690000000000', udev=ffffffff8ee9b420, udev->dev='usb_hub', portnr=1 req=6 (0x6), type=128 (0x80), value=256 (0x100), index=0 EP STATE RUNNING. start_trb ffffffff8eeacb80, start_cycle 1 req->requesttype = 128, req->request = 6,le16_to_cpu(req->value) = 256,le16_to_cpu(req->index) = 0,le16_to_cpu(req->length) = 18 length_field = 18, length = 18,xhci_td_remainder(length) = 0 , TRB_INTR_TARGET(0) = 0 usb_control_msg: request: 0x6, requesttype: 0x80, value 0x200 index 0x0 length 0x9 xhci_submit_control_msg: dev='xhci@1690000000000', udev=ffffffff8ee9b420, udev->dev='usb_hub', portnr=1 req=6 (0x6), type=128 (0x80), value=512 (0x200), index=0 EP STATE RUNNING. start_trb ffffffff8eeacbb0, start_cycle 1 req->requesttype = 128, req->request = 6,le16_to_cpu(req->value) = 512,le16_to_cpu(req->index) = 0,le16_to_cpu(req->length) = 9 length_field = 9, length = 9,xhci_td_remainder(length) = 0 , TRB_INTR_TARGET(0) = 0 usb_control_msg: request: 0x6, requesttype: 0x80, value 0x200 index 0x0 length 0x19 xhci_submit_control_msg: dev='xhci@1690000000000', udev=ffffffff8ee9b420, udev->dev='usb_hub', portnr=1 req=6 (0x6), type=128 (0x80), value=512 (0x200), index=0 EP STATE RUNNING. start_trb ffffffff8eeacbe0, start_cycle 1 req->requesttype = 128, req->request = 6,le16_to_cpu(req->value) = 512,le16_to_cpu(req->index) = 0,le16_to_cpu(req->length) = 25 length_field = 25, length = 25,xhci_td_remainder(length) = 0 , TRB_INTR_TARGET(0) = 0 get_conf_no 0 Result 25, wLength 25 if 0, ep 0 ##EP epmaxpacketin[1] = 1 set configuration 1 usb_control_msg: request: 0x9, requesttype: 0x0, value 0x1 index 0x0 length 0x0 xhci_submit_control_msg: dev='xhci@1690000000000', udev=ffffffff8ee9b420, udev->dev='usb_hub', portnr=1 EP STATE RUNNING. Successful Configure Endpoint command req=9 (0x9), type=0 (0x0), value=1 (0x1), index=0 EP STATE RUNNING. start_trb ffffffff8eeacc10, start_cycle 1 req->requesttype = 0, req->request = 9,le16_to_cpu(req->value) = 1,le16_to_cpu(req->index) = 0,le16_to_cpu(req->length) = 0 length_field = 0, length = 0,xhci_td_remainder(length) = 0 , TRB_INTR_TARGET(0) = 0 new device strings: Mfr=0, Product=1, SerialNumber=0 usb_control_msg: request: 0x6, requesttype: 0x80, value 0x300 index 0x0 length 0xFF xhci_submit_control_msg: dev='xhci@1690000000000', udev=ffffffff8ee9b420, udev->dev='usb_hub', portnr=1 req=6 (0x6), type=128 (0x80), value=768 (0x300), index=0 EP STATE RUNNING. start_trb ffffffff8eeacc30, start_cycle 1 req->requesttype = 128, req->request = 6,le16_to_cpu(req->value) = 768,le16_to_cpu(req->index) = 0,le16_to_cpu(req->length) = 255 length_field = 255, length = 255,xhci_td_remainder(length) = 0 , TRB_INTR_TARGET(0) = 0 USB device number 2 default language ID 0x409 usb_control_msg: request: 0x6, requesttype: 0x80, value 0x301 index 0x409 length 0xFF xhci_submit_control_msg: dev='xhci@1690000000000', udev=ffffffff8ee9b420, udev->dev='usb_hub', portnr=1 req=6 (0x6), type=128 (0x80), value=769 (0x301), index=1033 EP STATE RUNNING. start_trb ffffffff8eeacc60, start_cycle 1 req->requesttype = 128, req->request = 6,le16_to_cpu(req->value) = 769,le16_to_cpu(req->index) = 1033,le16_to_cpu(req->length) = 255 length_field = 255, length = 255,xhci_td_remainder(length) = 0 , TRB_INTR_TARGET(0) = 0 Manufacturer Product USB2.0 Hub SerialNumber usb_hub_post_probe usb_control_msg: request: 0x6, requesttype: 0xA0, value 0x2900 index 0x0 length 0x4 xhci_submit_control_msg: dev='xhci@1690000000000', udev=ffffffff8eeb0920, udev->dev='usb_hub', portnr=1 req=6 (0x6), type=160 (0xa0), value=10496 (0x2900), index=0 EP STATE RUNNING. start_trb ffffffff8eeacc90, start_cycle 1 req->requesttype = 160, req->request = 6,le16_to_cpu(req->value) = 10496,le16_to_cpu(req->index) = 0,le16_to_cpu(req->length) = 4 length_field = 4, length = 4,xhci_td_remainder(length) = 0 , TRB_INTR_TARGET(0) = 0 usb_control_msg: request: 0x6, requesttype: 0xA0, value 0x2900 index 0x0 length 0x9 xhci_submit_control_msg: dev='xhci@1690000000000', udev=ffffffff8eeb0920, udev->dev='usb_hub', portnr=1 req=6 (0x6), type=160 (0xa0), value=10496 (0x2900), index=0 EP STATE RUNNING. start_trb ffffffff8eeaccc0, start_cycle 1 req->requesttype = 160, req->request = 6,le16_to_cpu(req->value) = 10496,le16_to_cpu(req->index) = 0,le16_to_cpu(req->length) = 9 length_field = 9, length = 9,xhci_td_remainder(length) = 0 , TRB_INTR_TARGET(0) = 0 4 ports detected individual port power switching standalone hub individual port over-current protection Single TT TT requires at most 32 FS bit times (2664 ns) power on to power good time: 100ms hub controller current requirement: 100mA port 1 is removable port 2 is removable port 3 is removable port 4 is removable usb_control_msg: request: 0x0, requesttype: 0xA0, value 0x0 index 0x0 length 0x4 xhci_submit_control_msg: dev='xhci@1690000000000', udev=ffffffff8eeb0920, udev->dev='usb_hub', portnr=1 req=0 (0x0), type=160 (0xa0), value=0 (0x0), index=0 EP STATE RUNNING. start_trb ffffffff8eeaccf0, start_cycle 1 req->requesttype = 160, req->request = 0,le16_to_cpu(req->value) = 0,le16_to_cpu(req->index) = 0,le16_to_cpu(req->length) = 4 length_field = 4, length = 4,xhci_td_remainder(length) = 0 , TRB_INTR_TARGET(0) = 0 get_hub_status returned status 0, change 0 local power source is good no over-current condition exists xhci_update_hub_device: dev='xhci@1690000000000', udev=ffffffff8eeb0920 EP STATE RUNNING. Successful Configure Endpoint command enabling power on all ports usb_control_msg: request: 0x3, requesttype: 0x23, value 0x8 index 0x1 length 0x0 xhci_submit_control_msg: dev='xhci@1690000000000', udev=ffffffff8eeb0920, udev->dev='usb_hub', portnr=1 req=3 (0x3), type=35 (0x23), value=8 (0x8), index=1 EP STATE RUNNING. start_trb ffffffff8eeacd20, start_cycle 1 req->requesttype = 35, req->request = 3,le16_to_cpu(req->value) = 8,le16_to_cpu(req->index) = 1,le16_to_cpu(req->length) = 0 length_field = 0, length = 0,xhci_td_remainder(length) = 0 , TRB_INTR_TARGET(0) = 0 port 1 returns 0 usb_control_msg: request: 0x3, requesttype: 0x23, value 0x8 index 0x2 length 0x0 xhci_submit_control_msg: dev='xhci@1690000000000', udev=ffffffff8eeb0920, udev->dev='usb_hub', portnr=1 req=3 (0x3), type=35 (0x23), value=8 (0x8), index=2 EP STATE RUNNING. start_trb ffffffff8eeacd40, start_cycle 1 req->requesttype = 35, req->request = 3,le16_to_cpu(req->value) = 8,le16_to_cpu(req->index) = 2,le16_to_cpu(req->length) = 0 length_field = 0, length = 0,xhci_td_remainder(length) = 0 , TRB_INTR_TARGET(0) = 0 port 2 returns 0 usb_control_msg: request: 0x3, requesttype: 0x23, value 0x8 index 0x3 length 0x0 xhci_submit_control_msg: dev='xhci@1690000000000', udev=ffffffff8eeb0920, udev->dev='usb_hub', portnr=1 req=3 (0x3), type=35 (0x23), value=8 (0x8), index=3 EP STATE RUNNING. start_trb ffffffff8eeacd60, start_cycle 1 req->requesttype = 35, req->request = 3,le16_to_cpu(req->value) = 8,le16_to_cpu(req->index) = 3,le16_to_cpu(req->length) = 0 length_field = 0, length = 0,xhci_td_remainder(length) = 0 , TRB_INTR_TARGET(0) = 0 port 3 returns 0 usb_control_msg: request: 0x3, requesttype: 0x23, value 0x8 index 0x4 length 0x0 xhci_submit_control_msg: dev='xhci@1690000000000', udev=ffffffff8eeb0920, udev->dev='usb_hub', portnr=1 req=3 (0x3), type=35 (0x23), value=8 (0x8), index=4 EP STATE RUNNING. start_trb ffffffff8eeacd80, start_cycle 1 req->requesttype = 35, req->request = 3,le16_to_cpu(req->value) = 8,le16_to_cpu(req->index) = 4,le16_to_cpu(req->length) = 0 length_field = 0, length = 0,xhci_td_remainder(length) = 0 , TRB_INTR_TARGET(0) = 0 port 4 returns 0 pgood_delay=100ms devnum=2 poweron: query_delay=100 connect_timeout=1100 usb_control_msg: request: 0x0, requesttype: 0xA3, value 0x0 index 0x2 length 0x4 xhci_submit_control_msg: dev='xhci@1690000000000', udev=ffffffff8eeae9e0, udev->dev='usb_hub', portnr=0 SPEED = SUPERSPEED scrlen = 4 req->length = 4 Port 2 Status 703 Change 1 devnum=1 port=2: USB dev found usb_control_msg: request: 0x0, requesttype: 0xA3, value 0x0 index 0x2 length 0x4 xhci_submit_control_msg: dev='xhci@1690000000000', udev=ffffffff8eeae9e0, udev->dev='usb_hub', portnr=0 SPEED = SUPERSPEED scrlen = 4 req->length = 4 portstatus 703, change 1, 5 Gb/s usb_control_msg: request: 0x1, requesttype: 0x23, value 0x10 index 0x2 length 0x0 xhci_submit_control_msg: dev='xhci@1690000000000', udev=ffffffff8eeae9e0, udev->dev='usb_hub', portnr=0 clear port connect change, actual port 2 status = 0x1203 scrlen = 0 req->length = 0 Len is 0 usb_hub_port_reset: resetting 'usb_hub' port 2... usb_control_msg: request: 0x3, requesttype: 0x23, value 0x4 index 0x2 length 0x0 xhci_submit_control_msg: dev='xhci@1690000000000', udev=ffffffff8eeae9e0, udev->dev='usb_hub', portnr=0 scrlen = 0 req->length = 0 Len is 0 usb_control_msg: request: 0x0, requesttype: 0xA3, value 0x0 index 0x2 length 0x4 xhci_submit_control_msg: dev='xhci@1690000000000', udev=ffffffff8eeae9e0, udev->dev='usb_hub', portnr=0 SPEED = SUPERSPEED scrlen = 4 req->length = 4 portstatus 703, change 10, 5 Gb/s STAT_C_CONNECTION = 0 STAT_CONNECTION = 1 USB_PORT_STAT_ENABLE 1 usb_control_msg: request: 0x1, requesttype: 0x23, value 0x14 index 0x2 length 0x0 xhci_submit_control_msg: dev='xhci@1690000000000', udev=ffffffff8eeae9e0, udev->dev='usb_hub', portnr=0 clear port reset change, actual port 2 status = 0x1203 scrlen = 0 req->length = 0 Len is 0 xhci_alloc_device: dev='xhci@1690000000000', udev=ffffffff8ee9b420 EP STATE RUNNING. set address 3 usb_control_msg: request: 0x5, requesttype: 0x0, value 0x3 index 0x0 length 0x0 xhci_submit_control_msg: dev='xhci@1690000000000', udev=ffffffff8ee9b420, udev->dev='usb_hub', portnr=2 Setting up addressable devices ffffffff8eeab980 route string 0 port_num = 2 SPEED = 5 Setting Packet size = 512bytes EP STATE RUNNING. Successful Address Device command xHC internal address is: 2 usb_control_msg: request: 0x6, requesttype: 0x80, value 0x100 index 0x0 length 0x12 xhci_submit_control_msg: dev='xhci@1690000000000', udev=ffffffff8ee9b420, udev->dev='usb_hub', portnr=2 req=6 (0x6), type=128 (0x80), value=256 (0x100), index=0 EP STATE RUNNING. start_trb ffffffff8eeb2580, start_cycle 1 req->requesttype = 128, req->request = 6,le16_to_cpu(req->value) = 256,le16_to_cpu(req->index) = 0,le16_to_cpu(req->length) = 18 length_field = 18, length = 18,xhci_td_remainder(length) = 0 , TRB_INTR_TARGET(0) = 0 usb_control_msg: request: 0x6, requesttype: 0x80, value 0x200 index 0x0 length 0x9 xhci_submit_control_msg: dev='xhci@1690000000000', udev=ffffffff8ee9b420, udev->dev='usb_hub', portnr=2 req=6 (0x6), type=128 (0x80), value=512 (0x200), index=0 EP STATE RUNNING. start_trb ffffffff8eeb25b0, start_cycle 1 req->requesttype = 128, req->request = 6,le16_to_cpu(req->value) = 512,le16_to_cpu(req->index) = 0,le16_to_cpu(req->length) = 9 length_field = 9, length = 9,xhci_td_remainder(length) = 0 , TRB_INTR_TARGET(0) = 0 usb_control_msg: request: 0x6, requesttype: 0x80, value 0x200 index 0x0 length 0x1F xhci_submit_control_msg: dev='xhci@1690000000000', udev=ffffffff8ee9b420, udev->dev='usb_hub', portnr=2 req=6 (0x6), type=128 (0x80), value=512 (0x200), index=0 EP STATE RUNNING. start_trb ffffffff8eeb25e0, start_cycle 1 req->requesttype = 128, req->request = 6,le16_to_cpu(req->value) = 512,le16_to_cpu(req->index) = 0,le16_to_cpu(req->length) = 31 length_field = 31, length = 31,xhci_td_remainder(length) = 0 , TRB_INTR_TARGET(0) = 0 get_conf_no 0 Result 31, wLength 31 if 0, ep 0 ##EP epmaxpacketin[1] = 2 set configuration 1 usb_control_msg: request: 0x9, requesttype: 0x0, value 0x1 index 0x0 length 0x0 xhci_submit_control_msg: dev='xhci@1690000000000', udev=ffffffff8ee9b420, udev->dev='usb_hub', portnr=2 EP STATE RUNNING. Successful Configure Endpoint command req=9 (0x9), type=0 (0x0), value=1 (0x1), index=0 EP STATE RUNNING. start_trb ffffffff8eeb2610, start_cycle 1 req->requesttype = 0, req->request = 9,le16_to_cpu(req->value) = 1,le16_to_cpu(req->index) = 0,le16_to_cpu(req->length) = 0 length_field = 0, length = 0,xhci_td_remainder(length) = 0 , TRB_INTR_TARGET(0) = 0 new device strings: Mfr=1, Product=2, SerialNumber=0 usb_control_msg: request: 0x6, requesttype: 0x80, value 0x300 index 0x0 length 0xFF xhci_submit_control_msg: dev='xhci@1690000000000', udev=ffffffff8ee9b420, udev->dev='usb_hub', portnr=2 req=6 (0x6), type=128 (0x80), value=768 (0x300), index=0 EP STATE RUNNING. start_trb ffffffff8eeb2630, start_cycle 1 req->requesttype = 128, req->request = 6,le16_to_cpu(req->value) = 768,le16_to_cpu(req->index) = 0,le16_to_cpu(req->length) = 255 length_field = 255, length = 255,xhci_td_remainder(length) = 0 , TRB_INTR_TARGET(0) = 0 USB device number 3 default language ID 0x409 usb_control_msg: request: 0x6, requesttype: 0x80, value 0x301 index 0x409 length 0xFF xhci_submit_control_msg: dev='xhci@1690000000000', udev=ffffffff8ee9b420, udev->dev='usb_hub', portnr=2 req=6 (0x6), type=128 (0x80), value=769 (0x301), index=1033 EP STATE RUNNING. start_trb ffffffff8eeb2660, start_cycle 1 req->requesttype = 128, req->request = 6,le16_to_cpu(req->value) = 769,le16_to_cpu(req->index) = 1033,le16_to_cpu(req->length) = 255 length_field = 255, length = 255,xhci_td_remainder(length) = 0 , TRB_INTR_TARGET(0) = 0 usb_control_msg: request: 0x6, requesttype: 0x80, value 0x302 index 0x409 length 0xFF xhci_submit_control_msg: dev='xhci@1690000000000', udev=ffffffff8ee9b420, udev->dev='usb_hub', portnr=2 req=6 (0x6), type=128 (0x80), value=770 (0x302), index=1033 EP STATE RUNNING. start_trb ffffffff8eeb2690, start_cycle 1 req->requesttype = 128, req->request = 6,le16_to_cpu(req->value) = 770,le16_to_cpu(req->index) = 1033,le16_to_cpu(req->length) = 255 length_field = 255, length = 255,xhci_td_remainder(length) = 0 , TRB_INTR_TARGET(0) = 0 Manufacturer VIA Labs, Inc. Product 4-Port USB 3.0 Hub SerialNumber usb_hub_post_probe usb_control_msg: request: 0x6, requesttype: 0xA0, value 0x2A00 index 0x0 length 0x4 xhci_submit_control_msg: dev='xhci@1690000000000', udev=ffffffff8eeb2f40, udev->dev='usb_hub', portnr=2 req=6 (0x6), type=160 (0xa0), value=10752 (0x2a00), index=0 EP STATE RUNNING. start_trb ffffffff8eeb26c0, start_cycle 1 req->requesttype = 160, req->request = 6,le16_to_cpu(req->value) = 10752,le16_to_cpu(req->index) = 0,le16_to_cpu(req->length) = 4 length_field = 4, length = 4,xhci_td_remainder(length) = 0 , TRB_INTR_TARGET(0) = 0 usb_control_msg: request: 0x6, requesttype: 0xA0, value 0x2A00 index 0x0 length 0xC xhci_submit_control_msg: dev='xhci@1690000000000', udev=ffffffff8eeb2f40, udev->dev='usb_hub', portnr=2 req=6 (0x6), type=160 (0xa0), value=10752 (0x2a00), index=0 EP STATE RUNNING. start_trb ffffffff8eeb26f0, start_cycle 1 req->requesttype = 160, req->request = 6,le16_to_cpu(req->value) = 10752,le16_to_cpu(req->index) = 0,le16_to_cpu(req->length) = 12 length_field = 12, length = 12,xhci_td_remainder(length) = 0 , TRB_INTR_TARGET(0) = 0 4 ports detected individual port power switching standalone hub individual port over-current protection TT requires at most 8 FS bit times (666 ns) power on to power good time: 2ms hub controller current requirement: 2mA port 1 is removable port 2 is removable port 3 is removable port 4 is removable usb_control_msg: request: 0x0, requesttype: 0xA0, value 0x0 index 0x0 length 0x4 xhci_submit_control_msg: dev='xhci@1690000000000', udev=ffffffff8eeb2f40, udev->dev='usb_hub', portnr=2 req=0 (0x0), type=160 (0xa0), value=0 (0x0), index=0 EP STATE RUNNING. start_trb ffffffff8eeb2720, start_cycle 1 req->requesttype = 160, req->request = 0,le16_to_cpu(req->value) = 0,le16_to_cpu(req->index) = 0,le16_to_cpu(req->length) = 4 length_field = 4, length = 4,xhci_td_remainder(length) = 0 , TRB_INTR_TARGET(0) = 0 get_hub_status returned status 0, change 0 local power source is good no over-current condition exists xhci_update_hub_device: dev='xhci@1690000000000', udev=ffffffff8eeb2f40 EP STATE RUNNING. Successful Configure Endpoint command set hub (ffffffff8eeb2f40) depth to 0 usb_control_msg: request: 0xC, requesttype: 0x20, value 0x0 index 0x0 length 0x0 xhci_submit_control_msg: dev='xhci@1690000000000', udev=ffffffff8eeb2f40, udev->dev='usb_hub', portnr=2 req=12 (0xc), type=32 (0x20), value=0 (0x0), index=0 EP STATE RUNNING. start_trb ffffffff8eeb2750, start_cycle 1 req->requesttype = 32, req->request = 12,le16_to_cpu(req->value) = 0,le16_to_cpu(req->index) = 0,le16_to_cpu(req->length) = 0 length_field = 0, length = 0,xhci_td_remainder(length) = 0 , TRB_INTR_TARGET(0) = 0 enabling power on all ports usb_control_msg: request: 0x3, requesttype: 0x23, value 0x8 index 0x1 length 0x0 xhci_submit_control_msg: dev='xhci@1690000000000', udev=ffffffff8eeb2f40, udev->dev='usb_hub', portnr=2 req=3 (0x3), type=35 (0x23), value=8 (0x8), index=1 EP STATE RUNNING. start_trb ffffffff8eeb2770, start_cycle 1 req->requesttype = 35, req->request = 3,le16_to_cpu(req->value) = 8,le16_to_cpu(req->index) = 1,le16_to_cpu(req->length) = 0 length_field = 0, length = 0,xhci_td_remainder(length) = 0 , TRB_INTR_TARGET(0) = 0 port 1 returns 0 usb_control_msg: request: 0x3, requesttype: 0x23, value 0x8 index 0x2 length 0x0 xhci_submit_control_msg: dev='xhci@1690000000000', udev=ffffffff8eeb2f40, udev->dev='usb_hub', portnr=2 req=3 (0x3), type=35 (0x23), value=8 (0x8), index=2 EP STATE RUNNING. start_trb ffffffff8eeb2790, start_cycle 1 req->requesttype = 35, req->request = 3,le16_to_cpu(req->value) = 8,le16_to_cpu(req->index) = 2,le16_to_cpu(req->length) = 0 length_field = 0, length = 0,xhci_td_remainder(length) = 0 , TRB_INTR_TARGET(0) = 0 port 2 returns 0 usb_control_msg: request: 0x3, requesttype: 0x23, value 0x8 index 0x3 length 0x0 xhci_submit_control_msg: dev='xhci@1690000000000', udev=ffffffff8eeb2f40, udev->dev='usb_hub', portnr=2 req=3 (0x3), type=35 (0x23), value=8 (0x8), index=3 EP STATE RUNNING. start_trb ffffffff8eeb27b0, start_cycle 1 req->requesttype = 35, req->request = 3,le16_to_cpu(req->value) = 8,le16_to_cpu(req->index) = 3,le16_to_cpu(req->length) = 0 length_field = 0, length = 0,xhci_td_remainder(length) = 0 , TRB_INTR_TARGET(0) = 0 port 3 returns 0 usb_control_msg: request: 0x3, requesttype: 0x23, value 0x8 index 0x4 length 0x0 xhci_submit_control_msg: dev='xhci@1690000000000', udev=ffffffff8eeb2f40, udev->dev='usb_hub', portnr=2 req=3 (0x3), type=35 (0x23), value=8 (0x8), index=4 EP STATE RUNNING. start_trb ffffffff8eeb27d0, start_cycle 1 req->requesttype = 35, req->request = 3,le16_to_cpu(req->value) = 8,le16_to_cpu(req->index) = 4,le16_to_cpu(req->length) = 0 length_field = 0, length = 0,xhci_td_remainder(length) = 0 , TRB_INTR_TARGET(0) = 0 port 4 returns 0 pgood_delay=2ms devnum=3 poweron: query_delay=100 connect_timeout=1100 usb_control_msg: request: 0x0, requesttype: 0xA3, value 0x0 index 0x1 length 0x4 xhci_submit_control_msg: dev='xhci@1690000000000', udev=ffffffff8eeb0920, udev->dev='usb_hub', portnr=1 req=0 (0x0), type=163 (0xa3), value=0 (0x0), index=1 EP STATE RUNNING. start_trb ffffffff8eeacda0, start_cycle 1 req->requesttype = 163, req->request = 0,le16_to_cpu(req->value) = 0,le16_to_cpu(req->index) = 1,le16_to_cpu(req->length) = 4 length_field = 4, length = 4,xhci_td_remainder(length) = 0 , TRB_INTR_TARGET(0) = 0 Port 1 Status 100 Change 0 devnum=2 port=1: timeout usb_control_msg: request: 0x0, requesttype: 0xA3, value 0x0 index 0x2 length 0x4 xhci_submit_control_msg: dev='xhci@1690000000000', udev=ffffffff8eeb0920, udev->dev='usb_hub', portnr=1 req=0 (0x0), type=163 (0xa3), value=0 (0x0), index=2 EP STATE RUNNING. start_trb ffffffff8eeacdd0, start_cycle 1 req->requesttype = 163, req->request = 0,le16_to_cpu(req->value) = 0,le16_to_cpu(req->index) = 2,le16_to_cpu(req->length) = 4 length_field = 4, length = 4,xhci_td_remainder(length) = 0 , TRB_INTR_TARGET(0) = 0 Port 2 Status 100 Change 0 devnum=2 port=2: timeout usb_control_msg: request: 0x0, requesttype: 0xA3, value 0x0 index 0x3 length 0x4 xhci_submit_control_msg: dev='xhci@1690000000000', udev=ffffffff8eeb0920, udev->dev='usb_hub', portnr=1 req=0 (0x0), type=163 (0xa3), value=0 (0x0), index=3 EP STATE RUNNING. start_trb ffffffff8eeace00, start_cycle 1 req->requesttype = 163, req->request = 0,le16_to_cpu(req->value) = 0,le16_to_cpu(req->index) = 3,le16_to_cpu(req->length) = 4 length_field = 4, length = 4,xhci_td_remainder(length) = 0 , TRB_INTR_TARGET(0) = 0 Port 3 Status 100 Change 0 devnum=2 port=3: timeout usb_control_msg: request: 0x0, requesttype: 0xA3, value 0x0 index 0x4 length 0x4 xhci_submit_control_msg: dev='xhci@1690000000000', udev=ffffffff8eeb0920, udev->dev='usb_hub', portnr=1 req=0 (0x0), type=163 (0xa3), value=0 (0x0), index=4 EP STATE RUNNING. start_trb ffffffff8eeace30, start_cycle 1 req->requesttype = 163, req->request = 0,le16_to_cpu(req->value) = 0,le16_to_cpu(req->index) = 4,le16_to_cpu(req->length) = 4 length_field = 4, length = 4,xhci_td_remainder(length) = 0 , TRB_INTR_TARGET(0) = 0 Port 4 Status 100 Change 0 devnum=2 port=4: timeout usb_control_msg: request: 0x0, requesttype: 0xA3, value 0x0 index 0x1 length 0x4 xhci_submit_control_msg: dev='xhci@1690000000000', udev=ffffffff8eeb2f40, udev->dev='usb_hub', portnr=2 req=0 (0x0), type=163 (0xa3), value=0 (0x0), index=1 EP STATE RUNNING. start_trb ffffffff8eeb27f0, start_cycle 1 req->requesttype = 163, req->request = 0,le16_to_cpu(req->value) = 0,le16_to_cpu(req->index) = 1,le16_to_cpu(req->length) = 4 length_field = 4, length = 4,xhci_td_remainder(length) = 0 , TRB_INTR_TARGET(0) = 0 Port 1 Status 207 Change 31 port 1 reset change usb_control_msg: request: 0x1, requesttype: 0x23, value 0x14 index 0x1 length 0x0 xhci_submit_control_msg: dev='xhci@1690000000000', udev=ffffffff8eeb2f40, udev->dev='usb_hub', portnr=2 req=1 (0x1), type=35 (0x23), value=20 (0x14), index=1 EP STATE RUNNING. start_trb ffffffff8eeb2820, start_cycle 1 req->requesttype = 35, req->request = 1,le16_to_cpu(req->value) = 20,le16_to_cpu(req->index) = 1,le16_to_cpu(req->length) = 0 length_field = 0, length = 0,xhci_td_remainder(length) = 0 , TRB_INTR_TARGET(0) = 0 port 1 BH reset change usb_control_msg: request: 0x1, requesttype: 0x23, value 0x1D index 0x1 length 0x0 xhci_submit_control_msg: dev='xhci@1690000000000', udev=ffffffff8eeb2f40, udev->dev='usb_hub', portnr=2 req=1 (0x1), type=35 (0x23), value=29 (0x1d), index=1 EP STATE RUNNING. start_trb ffffffff8eeb2840, start_cycle 1 req->requesttype = 35, req->request = 1,le16_to_cpu(req->value) = 29,le16_to_cpu(req->index) = 1,le16_to_cpu(req->length) = 0 length_field = 0, length = 0,xhci_td_remainder(length) = 0 , TRB_INTR_TARGET(0) = 0 devnum=3 port=1: USB dev found usb_control_msg: request: 0x0, requesttype: 0xA3, value 0x0 index 0x1 length 0x4 xhci_submit_control_msg: dev='xhci@1690000000000', udev=ffffffff8eeb2f40, udev->dev='usb_hub', portnr=2 req=0 (0x0), type=163 (0xa3), value=0 (0x0), index=1 EP STATE RUNNING. start_trb ffffffff8eeb2860, start_cycle 1 req->requesttype = 163, req->request = 0,le16_to_cpu(req->value) = 0,le16_to_cpu(req->index) = 1,le16_to_cpu(req->length) = 4 length_field = 4, length = 4,xhci_td_remainder(length) = 0 , TRB_INTR_TARGET(0) = 0 portstatus 207, change 1, 1.5 Mb/s usb_control_msg: request: 0x1, requesttype: 0x23, value 0x10 index 0x1 length 0x0 xhci_submit_control_msg: dev='xhci@1690000000000', udev=ffffffff8eeb2f40, udev->dev='usb_hub', portnr=2 req=1 (0x1), type=35 (0x23), value=16 (0x10), index=1 EP STATE RUNNING. start_trb ffffffff8eeb2890, start_cycle 1 req->requesttype = 35, req->request = 1,le16_to_cpu(req->value) = 16,le16_to_cpu(req->index) = 1,le16_to_cpu(req->length) = 0 length_field = 0, length = 0,xhci_td_remainder(length) = 0 , TRB_INTR_TARGET(0) = 0 usb_hub_port_reset: resetting 'usb_hub' port 1... usb_control_msg: request: 0x3, requesttype: 0x23, value 0x4 index 0x1 length 0x0 xhci_submit_control_msg: dev='xhci@1690000000000', udev=ffffffff8eeb2f40, udev->dev='usb_hub', portnr=2 req=3 (0x3), type=35 (0x23), value=4 (0x4), index=1 EP STATE RUNNING. start_trb ffffffff8eeb28b0, start_cycle 1 req->requesttype = 35, req->request = 3,le16_to_cpu(req->value) = 4,le16_to_cpu(req->index) = 1,le16_to_cpu(req->length) = 0 length_field = 0, length = 0,xhci_td_remainder(length) = 0 , TRB_INTR_TARGET(0) = 0 usb_control_msg: request: 0x0, requesttype: 0xA3, value 0x0 index 0x1 length 0x4 xhci_submit_control_msg: dev='xhci@1690000000000', udev=ffffffff8eeb2f40, udev->dev='usb_hub', portnr=2 req=0 (0x0), type=163 (0xa3), value=0 (0x0), index=1 EP STATE RUNNING. start_trb ffffffff8eeb28d0, start_cycle 1 req->requesttype = 163, req->request = 0,le16_to_cpu(req->value) = 0,le16_to_cpu(req->index) = 1,le16_to_cpu(req->length) = 4 length_field = 4, length = 4,xhci_td_remainder(length) = 0 , TRB_INTR_TARGET(0) = 0 portstatus 207, change 10, 1.5 Mb/s STAT_C_CONNECTION = 0 STAT_CONNECTION = 1 USB_PORT_STAT_ENABLE 1 usb_control_msg: request: 0x1, requesttype: 0x23, value 0x14 index 0x1 length 0x0 xhci_submit_control_msg: dev='xhci@1690000000000', udev=ffffffff8eeb2f40, udev->dev='usb_hub', portnr=2 req=1 (0x1), type=35 (0x23), value=20 (0x14), index=1 EP STATE RUNNING. start_trb ffffffff8eeb2900, start_cycle 1 req->requesttype = 35, req->request = 1,le16_to_cpu(req->value) = 20,le16_to_cpu(req->index) = 1,le16_to_cpu(req->length) = 0 length_field = 0, length = 0,xhci_td_remainder(length) = 0 , TRB_INTR_TARGET(0) = 0 xhci_alloc_device: dev='xhci@1690000000000', udev=ffffffff8ee9b420 EP STATE RUNNING. set address 4 usb_control_msg: request: 0x5, requesttype: 0x0, value 0x4 index 0x0 length 0x0 xhci_submit_control_msg: dev='xhci@1690000000000', udev=ffffffff8ee9b420, udev->dev='usb_hub', portnr=1 Setting up addressable devices ffffffff8eeab980 route string 1 port_num = 2 SPEED = 1 Setting Packet size = 8bytes EP STATE RUNNING. Device not responding to set address.
USB device not accepting new address (error=80000000)
hub: disabling port 1 usb_control_msg: request: 0x1, requesttype: 0x23, value 0x1 index 0x1 length 0x0 xhci_submit_control_msg: dev='xhci@1690000000000', udev=ffffffff8eeb2f40, udev->dev='usb_hub', portnr=2 req=1 (0x1), type=35 (0x23), value=1 (0x1), index=1 EP STATE RUNNING. start_trb ffffffff8eeb2920, start_cycle 1 req->requesttype = 35, req->request = 1,le16_to_cpu(req->value) = 1,le16_to_cpu(req->index) = 1,le16_to_cpu(req->length) = 0 length_field = 0, length = 0,xhci_td_remainder(length) = 0 , TRB_INTR_TARGET(0) = 0 port 1 suspend change usb_control_msg: request: 0x1, requesttype: 0x23, value 0x2 index 0x1 length 0x0 xhci_submit_control_msg: dev='xhci@1690000000000', udev=ffffffff8eeb2f40, udev->dev='usb_hub', portnr=2 req=1 (0x1), type=35 (0x23), value=2 (0x2), index=1 WARN halted endpoint, queueing URB anyway. EP STATE RUNNING. start_trb ffffffff8eeb2940, start_cycle 1 req->requesttype = 35, req->request = 1,le16_to_cpu(req->value) = 2,le16_to_cpu(req->index) = 1,le16_to_cpu(req->length) = 0 length_field = 0, length = 0,xhci_td_remainder(length) = 0 , TRB_INTR_TARGET(0) = 0 XHCI control transfer timed out, aborting... EP STATE RUNNING. Unexpected XHCI event TRB, skipping... (0eea9c20 00000000 13000000 02008401) BUG at drivers/usb/host/xhci-ring.c:503/abort_td()! BUG! resetting ...

Hi Aaron,
On Tue, Feb 23, 2021 at 3:31 PM Aaron Williams awilliams@marvell.com wrote:
I have a follow-up. USB is working on our OcteonTX boards running 2020.10. It may be something specific to the Octeon port. Note that I did see a problem where the scratchpad memory is using direct pointers instead of physical addresses (which will not work on MIPS). As far as I know, however, the Octeon XHCI controller does not use the scratchpad memory.
Do you plan to send a patch to convert the scratchpad pointer to physical address?
Regards, Bin

Hi Bin, Hi Aaron,
I've added Nicolas to Cc, as he also recently did some work on the physical vs virtual addresses in the xHCI driver.
On 23.02.21 09:07, Bin Meng wrote:
Hi Aaron,
On Tue, Feb 23, 2021 at 3:31 PM Aaron Williams awilliams@marvell.com wrote:
I have a follow-up. USB is working on our OcteonTX boards running 2020.10. It may be something specific to the Octeon port. Note that I did see a problem where the scratchpad memory is using direct pointers instead of physical addresses (which will not work on MIPS). As far as I know, however, the Octeon XHCI controller does not use the scratchpad memory.
Do you plan to send a patch to convert the scratchpad pointer to physical address?
Nicolas, did your patch also address the scratchpad area (sorry for not looking myself).
Thanks, Stefan

On Tue, 2021-02-23 at 09:15 +0100, Stefan Roese wrote:
Hi Bin, Hi Aaron,
I've added Nicolas to Cc, as he also recently did some work on the physical vs virtual addresses in the xHCI driver.
On 23.02.21 09:07, Bin Meng wrote:
Hi Aaron,
On Tue, Feb 23, 2021 at 3:31 PM Aaron Williams awilliams@marvell.com wrote:
I have a follow-up. USB is working on our OcteonTX boards running 2020.10. It may be something specific to the Octeon port. Note that I did see a problem where the scratchpad memory is using direct pointers instead of physical addresses (which will not work on MIPS). As far as I know, however, the Octeon XHCI controller does not use the scratchpad memory.
Do you plan to send a patch to convert the scratchpad pointer to physical address?
Nicolas, did your patch also address the scratchpad area (sorry for not looking myself).
Yes, my patch took care of that :).
Regards, Nicolas

Hi Nicolas,
On 23.02.21 10:23, Nicolas Saenz Julienne wrote:
On Tue, 2021-02-23 at 09:15 +0100, Stefan Roese wrote:
Hi Bin, Hi Aaron,
I've added Nicolas to Cc, as he also recently did some work on the physical vs virtual addresses in the xHCI driver.
On 23.02.21 09:07, Bin Meng wrote:
Hi Aaron,
On Tue, Feb 23, 2021 at 3:31 PM Aaron Williams awilliams@marvell.com wrote:
I have a follow-up. USB is working on our OcteonTX boards running 2020.10. It may be something specific to the Octeon port. Note that I did see a problem where the scratchpad memory is using direct pointers instead of physical addresses (which will not work on MIPS). As far as I know, however, the Octeon XHCI controller does not use the scratchpad memory.
Do you plan to send a patch to convert the scratchpad pointer to physical address?
Nicolas, did your patch also address the scratchpad area (sorry for not looking myself).
Yes, my patch took care of that :).
Great. IIRC, your patchset may need a rebase on top of current mainline because of a recent xHCI patch of mine. If this is the case, could you please rebase the patchset and send the new version soon?
Thanks, Stefan

On Tue, 2021-02-23 at 10:25 +0100, Stefan Roese wrote:
Hi Nicolas,
On 23.02.21 10:23, Nicolas Saenz Julienne wrote:
On Tue, 2021-02-23 at 09:15 +0100, Stefan Roese wrote:
Hi Bin, Hi Aaron,
I've added Nicolas to Cc, as he also recently did some work on the physical vs virtual addresses in the xHCI driver.
On 23.02.21 09:07, Bin Meng wrote:
Hi Aaron,
On Tue, Feb 23, 2021 at 3:31 PM Aaron Williams awilliams@marvell.com wrote:
I have a follow-up. USB is working on our OcteonTX boards running 2020.10. It may be something specific to the Octeon port. Note that I did see a problem where the scratchpad memory is using direct pointers instead of physical addresses (which will not work on MIPS). As far as I know, however, the Octeon XHCI controller does not use the scratchpad memory.
Do you plan to send a patch to convert the scratchpad pointer to physical address?
Nicolas, did your patch also address the scratchpad area (sorry for not looking myself).
Yes, my patch took care of that :).
Great. IIRC, your patchset may need a rebase on top of current mainline because of a recent xHCI patch of mine. If this is the case, could you please rebase the patchset and send the new version soon?
My series was merged upstream some days ago. Nothing to worry though, I added your patch as a fixup to mine (see 1a474559d90a) in master.
Regards, Nicolas

From: Nicolas Saenz Julienne nsaenzjulienne@suse.de Date: Tue, 23 Feb 2021 10:23:04 +0100
On Tue, 2021-02-23 at 09:15 +0100, Stefan Roese wrote:
Hi Bin, Hi Aaron,
I've added Nicolas to Cc, as he also recently did some work on the physical vs virtual addresses in the xHCI driver.
On 23.02.21 09:07, Bin Meng wrote:
Hi Aaron,
On Tue, Feb 23, 2021 at 3:31 PM Aaron Williams awilliams@marvell.com wrote:
I have a follow-up. USB is working on our OcteonTX boards running 2020.10. It may be something specific to the Octeon port. Note that I did see a problem where the scratchpad memory is using direct pointers instead of physical addresses (which will not work on MIPS). As far as I know, however, the Octeon XHCI controller does not use the scratchpad memory.
Do you plan to send a patch to convert the scratchpad pointer to physical address?
Nicolas, did your patch also address the scratchpad area (sorry for not looking myself).
Yes, my patch took care of that :).
Ah cool. I missed that patch. Looks like this is exactly what I need to cater for the translation done by the IOMMU on the Apple M1.
Won't be sending that patch then ;)

On 23.02.21 11:36, Mark Kettenis wrote:
From: Nicolas Saenz Julienne nsaenzjulienne@suse.de Date: Tue, 23 Feb 2021 10:23:04 +0100
On Tue, 2021-02-23 at 09:15 +0100, Stefan Roese wrote:
Hi Bin, Hi Aaron,
I've added Nicolas to Cc, as he also recently did some work on the physical vs virtual addresses in the xHCI driver.
On 23.02.21 09:07, Bin Meng wrote:
Hi Aaron,
On Tue, Feb 23, 2021 at 3:31 PM Aaron Williams awilliams@marvell.com wrote:
I have a follow-up. USB is working on our OcteonTX boards running 2020.10. It may be something specific to the Octeon port. Note that I did see a problem where the scratchpad memory is using direct pointers instead of physical addresses (which will not work on MIPS). As far as I know, however, the Octeon XHCI controller does not use the scratchpad memory.
Do you plan to send a patch to convert the scratchpad pointer to physical address?
Nicolas, did your patch also address the scratchpad area (sorry for not looking myself).
Yes, my patch took care of that :).
Ah cool. I missed that patch. Looks like this is exactly what I need to cater for the translation done by the IOMMU on the Apple M1.
Won't be sending that patch then ;)
Nice.
Aaron, it might be that you missed this patch series with your latest mainline xHCI tests a few days ago. Could you please try again with current mainline and report back, if this changes the behavior on Octeon MIPS with USB3 hubs?
Thanks, Stefan

I am using the latest pull and it's still crashing.
-Aaron
On Tuesday, February 23, 2021 2:39:41 AM PST Stefan Roese wrote:
On 23.02.21 11:36, Mark Kettenis wrote:
From: Nicolas Saenz Julienne nsaenzjulienne@suse.de Date: Tue, 23 Feb 2021 10:23:04 +0100
On Tue, 2021-02-23 at 09:15 +0100, Stefan Roese wrote:
Hi Bin, Hi Aaron,
I've added Nicolas to Cc, as he also recently did some work on the physical vs virtual addresses in the xHCI driver.
On 23.02.21 09:07, Bin Meng wrote:
Hi Aaron,
On Tue, Feb 23, 2021 at 3:31 PM Aaron Williams awilliams@marvell.com
wrote:
I have a follow-up. USB is working on our OcteonTX boards running 2020.10. It may be something specific to the Octeon port. Note that I did see a problem where the scratchpad memory is using direct pointers instead of physical addresses (which will not work on MIPS). As far as I know, however, the Octeon XHCI controller does not use the scratchpad memory.
Do you plan to send a patch to convert the scratchpad pointer to physical address?
Nicolas, did your patch also address the scratchpad area (sorry for not looking myself).
Yes, my patch took care of that :).
Ah cool. I missed that patch. Looks like this is exactly what I need to cater for the translation done by the IOMMU on the Apple M1.
Won't be sending that patch then ;)
Nice.
Aaron, it might be that you missed this patch series with your latest mainline xHCI tests a few days ago. Could you please try again with current mainline and report back, if this changes the behavior on Octeon MIPS with USB3 hubs?
Thanks, Stefan

On 23.02.21 14:57, Aaron Williams wrote:
I am using the latest pull and it's still crashing.
Now that I have a (free) USB 3 hub I can reproduce this issue. With latest TOT I get this:
=> usb start starting USB... Bus xhci@1680000000000: Register 2000140 NbrPorts 2 Starting the controller USB XHCI 1.00 Bus xhci@1690000000000: Register 2000140 NbrPorts 2 Starting the controller USB XHCI 1.00 scanning bus xhci@1680000000000 for devices... Warning: asix_eth MAC addresses don't match: Address in ROM is 00:0e:c6:b2:7e:cb Address in environment is 02:3f:73:97:d1:00 2 USB Device(s) found scanning bus xhci@1690000000000 for devices... Device not responding to set address.
USB device not accepting new address (error=80000000) WARN halted endpoint, queueing URB anyway. Unexpected XHCI event TRB, skipping... (0eebc260 00000000 13000000 01008401) BUG at drivers/usb/host/xhci-ring.c:503/abort_td()! BUG! resetting ...
As Aaron already mentioned, this only happens when an USB 3 hub is present in the setup. I'll try to dig into this tomorrow but perhaps someone else has some quick ideas?
Thanks, Stefan
-Aaron
On Tuesday, February 23, 2021 2:39:41 AM PST Stefan Roese wrote:
On 23.02.21 11:36, Mark Kettenis wrote:
From: Nicolas Saenz Julienne nsaenzjulienne@suse.de Date: Tue, 23 Feb 2021 10:23:04 +0100
On Tue, 2021-02-23 at 09:15 +0100, Stefan Roese wrote:
Hi Bin, Hi Aaron,
I've added Nicolas to Cc, as he also recently did some work on the physical vs virtual addresses in the xHCI driver.
On 23.02.21 09:07, Bin Meng wrote:
Hi Aaron,
On Tue, Feb 23, 2021 at 3:31 PM Aaron Williams awilliams@marvell.com
wrote:
> I have a follow-up. USB is working on our OcteonTX boards running > 2020.10. It may be something specific to the Octeon port. Note that I > did see a problem where the scratchpad memory is using direct > pointers instead of physical addresses (which will not work on MIPS). > As far as I know, however, the Octeon XHCI controller does not use > the scratchpad memory.
Do you plan to send a patch to convert the scratchpad pointer to physical address?
Nicolas, did your patch also address the scratchpad area (sorry for not looking myself).
Yes, my patch took care of that :).
Ah cool. I missed that patch. Looks like this is exactly what I need to cater for the translation done by the IOMMU on the Apple M1.
Won't be sending that patch then ;)
Nice.
Aaron, it might be that you missed this patch series with your latest mainline xHCI tests a few days ago. Could you please try again with current mainline and report back, if this changes the behavior on Octeon MIPS with USB3 hubs?
Thanks, Stefan
Viele Grüße, Stefan

From: Bin Meng bmeng.cn@gmail.com Date: Tue, 23 Feb 2021 16:07:57 +0800
Hi Aaron,
On Tue, Feb 23, 2021 at 3:31 PM Aaron Williams awilliams@marvell.com wrote:
I have a follow-up. USB is working on our OcteonTX boards running 2020.10. It may be something specific to the Octeon port. Note that I did see a problem where the scratchpad memory is using direct pointers instead of physical addresses (which will not work on MIPS). As far as I know, however, the Octeon XHCI controller does not use the scratchpad memory.
Do you plan to send a patch to convert the scratchpad pointer to physical address?
I actually ran into that issue while working on my port of U-Boot to the Apple M1 machines. Probably makes sense to do that as a separate patch. Will see if I can do so later today.

Hi Bin,
I can do that later. Right now I'm under the gun to get my backport working with a USB 3 hub. It is failing when trying to set the hub depth.
-Aaron
On Tuesday, February 23, 2021 12:07:57 AM PST Bin Meng wrote:
Hi Aaron,
On Tue, Feb 23, 2021 at 3:31 PM Aaron Williams awilliams@marvell.com
wrote:
I have a follow-up. USB is working on our OcteonTX boards running 2020.10. It may be something specific to the Octeon port. Note that I did see a problem where the scratchpad memory is using direct pointers instead of physical addresses (which will not work on MIPS). As far as I know, however, the Octeon XHCI controller does not use the scratchpad memory.
Do you plan to send a patch to convert the scratchpad pointer to physical address?
Regards, Bin
participants (5)
-
Aaron Williams
-
Bin Meng
-
Mark Kettenis
-
Nicolas Saenz Julienne
-
Stefan Roese