3.6 USBHost_t36 USB Hub examples?

Status
Not open for further replies.

bwhitman

Member
I am successfully using the USBHost_t36 on a 3.6 to have keyboard input.

I want to add a hub, but I cannot seem to find any examples or documentation of the hub functionality of USBHost_t36.

I tried simply

Code:
USBHost myusb;
USBHub hub1(myusb);
KeyboardController keyboard1(myusb);

As show in the test.ino of the github, but the keyboard does not receive any events (it does when connected directly.) Any way to debug to dig further?
 
The Hub more or less takes care of itself...

About the only thing I have done in test apps with it is to see if it is in use or not...

That is in your case you can do something like: if (hub1) {// A hub is in use... }

You can try to ask it for any of the standard USB Driver values like the id of the vendor and product and the like string values (product, vendor, serial), but my guess is most of them do not support this...

If you wish to see more debug information, you can update the main header file(USBHost_t36.h) for the library and UN-comment out the line: //#define USBHOST_PRINT_DEBUG
And then rebuild. This shows a lot of debug information. Also in hub.cpp, not sure how many debug lines that have been commented out. I will sometimes un-comment some of these if I am trying to debug something in here. Likewise in enumeration.cpp and maybe a few others depending on what I am debugging.

Edit: Forgot to mention, that I have one keyboard with built in HUB, which is (or at least was) working with the main test programs...
 
Last edited:
USBHost_t36 comes with 7 examples. All of them show using the hub object.

There currently isn't any written documentation for this library, beyond the examples and comments in USBHost_t36.h.

Your code doesn't actually need to do anything with the hub objects. You just put them in the program and they automatically manage your hubs... pretty much the same as hubs work with Mac, Windows and Linux. Well, except those systems dynamically load more instance of their driver. With USBHost_t36 you create all the possible driver instances and the devices get assigned to them. There's no dynamic memory allocation within USBHost_t36.

If your hub has more than 4 ports, it's very likely a 2-tier network of 4 port hub chips. Some 7 port chips do exist but they're not very common. Almost all hubs use the 4 port chips. You'd need to have more than 1 hub object instance in your code to support that sort of hub. If you have a 10 port hub and only a single instance, 2 of the 10 ports should work. The other 8 which are actually 2 more 4-port hubs would not work until you add 2 more hub instances in your code.

A bug in the library is also quite possible. It's been tested with about half a dozen hubs I have here, at least 2 different Multi-TT ones and several Single-TT types. Other people have used the library successfully with hubs too, but there still might be something really special that the code doesn't handle.
 
Thanks for the responses!
I am just using the Test example (with the MIDI stuff commented out) with a keyboard plugged into a hub.

Here's the output of the debug when I run it. (With the keyboard plugged in directly I see the key events, but not when it's through a hub.)

The hub is just this: https://www.amazon.com/gp/product/B00FJG5T4W
Code:
USB Host Testing
sizeof Device = 36
sizeof Pipe = 96
sizeof Transfer = 64
power up USBHS PHY
port change: 10001803
    connect
  begin reset
port change: 18001205
  port enabled
  end recovery
new_Device: 480 Mbit/sec
new_Pipe
enumeration:
enumeration:
enumeration:
enumeration:
Config data length = 41
enumeration:
bNumInterfaces = 1
bConfigurationValue = 1
enumeration:
USBHub memory usage = 960
USBHub claim_device this=1FFF22A0
  polling interval = 12
7
5
81
1
bDeviceClass = 9
bDeviceSubClass = 0
bDeviceProtocol = 2
USBHub control callback
09 29 02 09 00 32 01 00 FF 00 00 00 00 00 00 00 
Hub ports = 2
USBHub control callback
USBHub control callback
power turned on to all ports
device addr = 1
new_Pipe
allocate_interrupt_pipe_bandwidth
  ep interval = 12
  interval = 256
 best_bandwidth = 2, at offset = 0
pipe cap1 = F0012101
HUB Callback (member)
status = 2
getstatus, port = 1
USBHub control callback
01 01 01 00 
New Port Status
  status=10101  port=1
  state=0
  Device is present: 
  Has Power
USBHub control callback
Port Status Cleared, port=1
timer event (19999 us): Debounce Timer, this = 1FFF22A0, timer = 1FFF25B8
ports in use bitmask = 2
getstatus, port = 1
USBHub control callback
01 01 00 00 
New Port Status
  status=101  port=1
  state=2
  Device is present: 
  Has Power
timer event (19999 us): Debounce Timer, this = 1FFF22A0, timer = 1FFF25B8
ports in use bitmask = 2
getstatus, port = 1
USBHub control callback
01 01 00 00 
New Port Status
  status=101  port=1
  state=3
  Device is present: 
  Has Power
timer event (19999 us): Debounce Timer, this = 1FFF22A0, timer = 1FFF25B8
ports in use bitmask = 2
getstatus, port = 1
USBHub control callback
01 01 00 00 
New Port Status
  status=101  port=1
  state=4
  Device is present: 
  Has Power
timer event (19999 us): Debounce Timer, this = 1FFF22A0, timer = 1FFF25B8
ports in use bitmask = 2
getstatus, port = 1
USBHub control callback
01 01 00 00 
New Port Status
  status=101  port=1
  state=5
  Device is present: 
  Has Power
timer event (20000 us): Debounce Timer, this = 1FFF22A0, timer = 1FFF25B8
ports in use bitmask = 2
getstatus, port = 1
USBHub control callback
01 01 00 00 
New Port Status
  status=101  port=1
  state=6
  Device is present: 
  Has Power
sending reset
send_setreset
USBHub control callback
unhandled setup, message = 40323
timer event (20000 us): Debounce Timer, this = 1FFF22A0, timer = 1FFF25B8
ports in use bitmask = 0
HUB Callback (member)
status = 2
getstatus, port = 1
USBHub control callback
03 01 10 00 
New Port Status
  status=100103  port=1
  state=7
  Device is present: 
  Enabled, speed = 12 Mbit/sec
  Has Power
USBHub control callback
unhandled setup, message = 140123
timer event (25000 us): Hello, I'm resettimer, this = 1FFF22A0, timer = 1FFF25D4
port_doing_reset = 1
PORT_RECOVERY
new_Device: 12 Mbit/sec
new_Pipe
enumeration:
 
The 2 port hub looks sort of cute... So ordered a blue one that should arrive Tuesday, will try to see if I notice anything obvious when I can run it, versus some of the other hubs I have played with. Note: Paul has done almost all of the HUB stuff, I maybe located and fixed an issue or two, so will see. But I may end up using this with another board (UP) ..

Also which keyboard are you using? does it have it's own USB hub on it? For the fun of it, you might add second hub object to see if it makes any difference. Probably not, unless you see USB ports on the edges of the keyboard (I have one like that, which we fixed)
 
Mine arrived yesterday, I started playing some.

Looks like the enumeration code is not starting up the Keyboard from the hub:

That is USBHost::enumeration is only called once when the keyboard is plugged in (dev->enum_state == 0)
I have turned on debug, added a few more prints statements:
Code:
	while (1) {
		println("  enum state:", dev->enum_state);
		// Within this large switch/case, "break" means we've done
		// some work, but more remains to be done in a different
		// state.  Generally break is used after parsing received
		// data, but what happens next could be different states.
		// When completed, return is used.  Generally, return happens
		// only after a new control transfer is queued, or when
		// enumeration is complete and no more communication is needed.
		switch (dev->enum_state) {
		case 0: // read 8 bytes of device desc, set max packet, and send set address
			pipe_set_maxlen(dev->control_pipe, enumbuf[7]);
			mk_setup(enumsetup, 0, 5, assign_address(), 0, 0); // 5=SET_ADDRESS
			print("  mk_setup ", enumsetup.word1, HEX);
			println(" ", enumsetup.word2, HEX);
			queue_Control_Transfer(dev, &enumsetup, NULL, NULL);
			println("  enum after assign_address");
			dev->enum_state = 1;
			return;
...

Code:
status = 4
getstatus, port = 2
new_Control_Transfer
setup address 1FFF4570
USBHub control callback
03 03 10 00 
New Port Status
  status=100303  port=2
  state=7
  Device is present: 
  Enabled, speed = 1.5 Mbit/sec
  Has Power
new_Control_Transfer
setup address 1FFF4570
USBHub control callback
unhandled setup, message = 140123
timer event (24999 us): Hello, I'm resettimer, this = 1FFF4220, timer = 1FFF4554
port_doing_reset = 2
PORT_RECOVERY
new_Device: 1.5 Mbit/sec
new_Pipe
new_Control_Transfer
setup address 1FFF53B0
enumeration:
12 01 10 01 00 00 00 08 
Transfer @ 1FFF5540
   next:  1FFF46C0
   anext: 1
   token: 8000
   bufs:  0,1000,2000,3000,4000
  enum state:0
  mk_setup 20500 0
new_Control_Transfer
setup address 1FFF53B0
  enum after assign_address
I have verified that most of the messages up to this point are the same as when I plug the keyboard into a 4 port hub, that works...
I have plugged this new HUB into linux machine and it does appear to enumerate properly:
Code:
kurt@kurt-UP-CHT01:~$ lsusb
Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 001 Device 006: ID 0424:2530 Standard Microsystems Corp.
Bus 001 Device 005: ID 0424:4603 Standard Microsystems Corp.
Bus 001 Device 003: ID 0bda:8178 Realtek Semiconductor Corp. RTL8192CU 802.11n WLAN Adapter
Bus 001 Device 004: ID 04ca:0027 Lite-On Technology Corp.
Bus 001 Device 002: ID 0424:2512 Standard Microsystems Corp. USB 2.0 Hub
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
kurt@kurt-UP-CHT01:~$ lsusb -v -d  0424:2512

Bus 001 Device 002: ID 0424:2512 Standard Microsystems Corp. USB 2.0 Hub
Couldn't open device, some information will be missing
Device Descriptor:
  bLength                18
  bDescriptorType         1
  bcdUSB               2.00
  bDeviceClass            9 Hub
  bDeviceSubClass         0 Unused
  bDeviceProtocol         2 TT per port
  bMaxPacketSize0        64
  idVendor           0x0424 Standard Microsystems Corp.
  idProduct          0x2512 USB 2.0 Hub
  bcdDevice            b.b3
  iManufacturer           0
  iProduct                0
  iSerial                 0
  bNumConfigurations      1
  Configuration Descriptor:
    bLength                 9
    bDescriptorType         2
    wTotalLength           41
    bNumInterfaces          1
    bConfigurationValue     1
    iConfiguration          0
    bmAttributes         0xe0
      Self Powered
      Remote Wakeup
    MaxPower                2mA
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        0
      bAlternateSetting       0
      bNumEndpoints           1
      bInterfaceClass         9 Hub
      bInterfaceSubClass      0 Unused
      bInterfaceProtocol      1 Single TT
      iInterface              0
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x81  EP 1 IN
        bmAttributes            3
          Transfer Type            Interrupt
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0001  1x 1 bytes
        bInterval              12
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        0
      bAlternateSetting       1
      bNumEndpoints           1
      bInterfaceClass         9 Hub
      bInterfaceSubClass      0 Unused
      bInterfaceProtocol      2 TT per port
      iInterface              0
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x81  EP 1 IN
        bmAttributes            3
          Transfer Type            Interrupt
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0001  1x 1 bytes
        bInterval              12
kurt@kurt-UP-CHT01:~$
Note: I did notice that the configuration data is bigger than on the other hubs...
Config Data length = 41 on this new one on the 4 port one that works it is 25.
The Linux data for the one that works:
Code:
kurt@kurt-UP-CHT01:~$ lsusb
Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 001 Device 006: ID 0424:2530 Standard Microsystems Corp.
Bus 001 Device 005: ID 0424:4603 Standard Microsystems Corp.
Bus 001 Device 003: ID 0bda:8178 Realtek Semiconductor Corp. RTL8192CU 802.11n WLAN Adapter
Bus 001 Device 008: ID 04ca:0027 Lite-On Technology Corp.
Bus 001 Device 007: ID 0409:0059 NEC Corp. HighSpeed Hub
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
kurt@kurt-UP-CHT01:~$ lsusb ^C
kurt@kurt-UP-CHT01:~$ lsusb -v -d  0409:0059

Bus 001 Device 007: ID 0409:0059 NEC Corp. HighSpeed Hub
Couldn't open device, some information will be missing
Device Descriptor:
  bLength                18
  bDescriptorType         1
  bcdUSB               2.00
  bDeviceClass            9 Hub
  bDeviceSubClass         0 Unused
  bDeviceProtocol         1 Single TT
  bMaxPacketSize0        64
  idVendor           0x0409 NEC Corp.
  idProduct          0x0059 HighSpeed Hub
  bcdDevice            1.00
  iManufacturer           0
  iProduct                0
  iSerial                 0
  bNumConfigurations      1
  Configuration Descriptor:
    bLength                 9
    bDescriptorType         2
    wTotalLength           25
    bNumInterfaces          1
    bConfigurationValue     1
    iConfiguration          0
    bmAttributes         0xe0
      Self Powered
      Remote Wakeup
    MaxPower              100mA
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        0
      bAlternateSetting       0
      bNumEndpoints           1
      bInterfaceClass         9 Hub
      bInterfaceSubClass      0 Unused
      bInterfaceProtocol      0 Full speed (or root) hub
      iInterface              0
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x81  EP 1 IN
        bmAttributes            3
          Transfer Type            Interrupt
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0001  1x 1 bytes
        bInterval              12
kurt@kurt-UP-CHT01:~$
It is interesting the one that works only has One Interface Descriptor and the one that does not has two... Will compare
 
Follow on: The "Cute" hub can be a multi TT (multiple transaction translator) That is what the two Inteface Descriptors show
Single TT vs TT per Port...

Wonder if we need to tell system to use Alternate setting 0...
 
@Paul - One thing (of many) that somewhat confuses me with setting USB configuration SET_CONFIGURATION)
case 13 in USBHost:enumeration (enumeration.cpp)

Is if we look at the configuration of this new hub, it has two configurations:
Code:
Bus 001 Device 002: ID 0424:2512 Standard Microsystems Corp. USB 2.0 Hub
Couldn't open device, some information will be missing
Device Descriptor:
  bLength                18
  bDescriptorType         1
  bcdUSB               2.00
  bDeviceClass            9 Hub
  bDeviceSubClass         0 Unused
  bDeviceProtocol         2 TT per port
  bMaxPacketSize0        64
  idVendor           0x0424 Standard Microsystems Corp.
  idProduct          0x2512 USB 2.0 Hub
  bcdDevice            b.b3
  iManufacturer           0
  iProduct                0
  iSerial                 0
  [COLOR="#FF0000"]bNumConfigurations      1[/COLOR]
  Configuration Descriptor:
    bLength                 9
    bDescriptorType         2
    wTotalLength           41
    bNumInterfaces          1
    bConfigurationValue     1
    iConfiguration          0
    bmAttributes         0xe0
      Self Powered
      Remote Wakeup
    MaxPower                2mA
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        0
      [COLOR="#FF0000"]bAlternateSetting       0[/COLOR]
      bNumEndpoints           1
      bInterfaceClass         9 Hub
      bInterfaceSubClass      0 Unused
      bInterfaceProtocol      1 Single TT
      iInterface              0
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x81  EP 1 IN
        bmAttributes            3
          Transfer Type            Interrupt
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0001  1x 1 bytes
        bInterval              12
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        0
     [COLOR="#FF0000"] bAlternateSetting       1[/COLOR]
      bNumEndpoints           1
      bInterfaceClass         9 Hub
      bInterfaceSubClass      0 Unused
      bInterfaceProtocol      2 TT per port
      iInterface              0
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x81  EP 1 IN
        bmAttributes            3
          Transfer Type            Interrupt
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0001  1x 1 bytes

In that step we set to configuration #1...
Code:
mk_setup(enumsetup, 0, 9, enumbuf[5], 0, 0);

The Enum buff:
Code:
09 02 29 00 01[COLOR="#FF0000"] 01[/COLOR] 00 E0 01 09 04 00 00 01 09 00 01 00 07 05 81 03 01 00 0C 09 04 00 01 01 09 00 02 00 07 05 81 03 01 00 0C

What confuses me here is the wValue for the configuration... From the USB document:
Code:
The lower byte of the wValue field specifies the desired configuration. This configuration value must be
zero or match a configuration value from a configuration descriptor. If the configuration value is zero, the
device is placed in its Address state. The upper byte of the wValue field is reserved.
If wIndex, wLength, or the upper byte of wValue is non-zero, then the behavior of this request is notThe lower byte of the wValue field specifies the desired configuration. This configuration value must be
zero or match a configuration value from a configuration descriptor. If the configuration value is zero, the
device is placed in its Address state. The upper byte of the wValue field is reserved.

So we pass in #1 - Does that imply it is choosing the option for TT per port? If so, how do you choose the option of single TT? as passing in 0 would imply something else?

Again this may be barking up wrong tree, but...
 
Oh, this might be the first device we've seen needed alt settings. Mine just arrived. Dunno if I'll get to it this week, since Robin is out of town at this moment so I'm here doing both our normal jobs.
 
Will try to understand more what is going on... But not sure if it now has to do with at setting or not...

I tried with another HUB yesterday that is I believe a USB3 with multi-tt support and it sort of worked (at least some of the times)...

USB info from Linux:
Code:
kurt@kurt-UP-CHT01:~$ lsusb
Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 001 Device 004: ID 0424:2530 Standard Microsystems Corp.
Bus 001 Device 003: ID 0424:4603 Standard Microsystems Corp.
Bus 001 Device 002: ID 0bda:8178 Realtek Semiconductor Corp. RTL8192CU 802.11n WLAN Adapter
Bus 001 Device 007: ID 04ca:0027 Lite-On Technology Corp.
Bus 001 Device 005: ID 05e3:0610 Genesys Logic, Inc. 4-port hub
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
kurt@kurt-UP-CHT01:~$ lsusb -v -d 05e3:0610

Bus 001 Device 005: ID 05e3:0610 Genesys Logic, Inc. 4-port hub
Couldn't open device, some information will be missing
Device Descriptor:
  bLength                18
  bDescriptorType         1
  bcdUSB               2.00
  bDeviceClass            9 Hub
  bDeviceSubClass         0 Unused
  bDeviceProtocol         2 TT per port
  bMaxPacketSize0        64
  idVendor           0x05e3 Genesys Logic, Inc.
  idProduct          0x0610 4-port hub
  bcdDevice           92.24
  iManufacturer           1
  iProduct                2
  iSerial                 0
  bNumConfigurations      1
  Configuration Descriptor:
    bLength                 9
    bDescriptorType         2
    wTotalLength           41
    bNumInterfaces          1
    bConfigurationValue     1
    iConfiguration          0
    bmAttributes         0xe0
      Self Powered
      Remote Wakeup
    MaxPower              100mA
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        0
      bAlternateSetting       0
      bNumEndpoints           1
      bInterfaceClass         9 Hub
      bInterfaceSubClass      0 Unused
      bInterfaceProtocol      1 Single TT
      iInterface              0
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x81  EP 1 IN
        bmAttributes            3
          Transfer Type            Interrupt
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0001  1x 1 bytes
        bInterval              12
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        0
      bAlternateSetting       1
      bNumEndpoints           1
      bInterfaceClass         9 Hub
      bInterfaceSubClass      0 Unused
      bInterfaceProtocol      2 TT per port
      iInterface              0
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x81  EP 1 IN
        bmAttributes            3
          Transfer Type            Interrupt
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0001  1x 1 bytes
        bInterval              12
kurt@kurt-UP-CHT01:~$
Note: at least when it is plugged into USB2 port on UB board shows up as a TT per port...

When I try it on Teensy 3.6 with lots of debug stuff turned on:
Code:
USB Host Testing
960
sizeof Device = 36
sizeof Pipe = 96
sizeof Transfer = 64
power up USBHS PHY
port change: 10001803
    connect
  begin reset
port change: 18001205
  port enabled
  end recovery
new_Device: 480 Mbit/sec
new_Pipe
new_Control_Transfer
setup address 1FFF53B0
enumeration:
12 01 00 02 09 00 02 40 
Transfer @ 1FFF54C0
   next:  1FFF5500
   anext: 1
   token: 8000
   bufs:  0,1000,2000,3000,4000
  enum state:0
  mk_setup 10500 0
new_Control_Transfer
setup address 1FFF53B0
  enum after assign_address
enumeration:
Transfer @ 1FFF5540
   next:  1FFF5480
   anext: 1
   token: 8100
   bufs:  0,1000,2000,3000,4000
  enum state:1
new_Control_Transfer
setup address 1FFF53B0
enumeration:
12 01 00 02 09 00 02 40 E3 05 10 06 24 92 01 02 00 01 
Transfer @ 1FFF54C0
   next:  1FFF5500
   anext: 1
   token: 8000
   bufs:  0,1000,2000,3000,4000
  enum state:2
  enum state:3
new_Control_Transfer
setup address 1FFF53B0
enumeration:
04 03 09 04 E3 05 10 06 24 92 01 02 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
Transfer @ 1FFF5480
   next:  1FFF4700
   anext: 1
   token: 8000
   bufs:  0,1000,2000,3000,4000
  enum state:4
  enum state:5
new_Control_Transfer
setup address 1FFF53B0
enumeration:
1A 03 47 00 65 00 6E 00 65 00 73 00 79 00 73 00 4C 00 6F 00 67 00 69 00 63 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
Transfer @ 1FFF5500
   next:  1FFF5540
   anext: 1

   token: 8000
   bufs:  0,1000,2000,3000,4000
  enum state:6
  enum state:7
new_Control_Transfer
setup address 1FFF53B0
enumeration:
16 03 55 00 53 00 42 00 32 00 2E 00 30 00 20 00 48 00 75 00 62 00 69 00 63 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
Transfer @ 1FFF4700
   next:  1FFF54C0
   anext: 1
   token: 8000
   bufs:  0,1000,2000,3000,4000
  enum state:8
  enum state:11
new_Control_Transfer
setup address 1FFF53B0
enumeration:
09 02 29 00 01 01 00 E0 32 
Transfer @ 1FFF5540
   next:  1FFF5480
   anext: 1
   token: 8000
   bufs:  0,1000,2000,3000,4000
  enum state:12
Config data length = 41
new_Control_Transfer
setup address 1FFF53B0
enumeration:
09 02 29 00 01 01 00 E0 32 09 04 00 00 01 09 00 01 00 07 05 81 03 01 00 0C 09 04 00 01 01 09 00 02 00 07 05 81 03 01 00 0C 
Transfer @ 1FFF54C0
   next:  1FFF5500
   anext: 1
   token: 8000
   bufs:  0,1000,2000,3000,4000
  enum state:13
bNumInterfaces = 1
bConfigurationValue = 1
new_Control_Transfer
setup address 1FFF53B0
enumeration:
Transfer @ 1FFF5480
   next:  1FFF4700
   anext: 1
   token: 8100
   bufs:  0,1000,2000,3000,4000
  enum state:14
USBHub memory usage = 960
USBHub claim_device this=1FFF4220
  polling interval = 12
7
5
81
1
bDeviceClass = 9
bDeviceSubClass = 0
bDeviceProtocol = 2
new_Control_Transfer
setup address 1FFF4570
*** Device Hub1 5e3:610 - connected ***
  manufacturer: GenesysLogic
  product: USB2.0 Hub
USBHub control callback
09 29 04 E0 00 32 64 00 FF 00 00 00 00 00 00 00 
Hub ports = 4
new_Control_Transfer
setup address 1FFF4570
USBHub control callback
new_Control_Transfer
setup address 1FFF4570
USBHub control callback
new_Control_Transfer
setup address 1FFF4570
USBHub control callback
new_Control_Transfer
setup address 1FFF4570
USBHub control callback
power turned on to all ports
device addr = 1
new_Pipe
allocate_interrupt_pipe_bandwidth
  ep interval = 12
  interval = 256
 best_bandwidth = 2, at offset = 0
pipe cap1 = F0012101
HUB Callback (member)
status = 0
HUB Callback (member)
status = 0
HUB Callback (member)
status = 0
HUB Callback (member)
status = 0
HUB Callback (member)
status = 0
HUB Callback (member)
status = 0
HUB Callback (member)
status = 0
HUB Callback (member)
status = 0
HUB Callback (member)
status = 0
HUB Callback (member)
status = 0
HUB Callback (member)
status = 0
HUB Callback (member)
status = 0
HUB Callback (member)
status = 0
HUB Callback (member)
status = 0
HUB Callback (member)
status = 0
HUB Callback (member)
status = 0
HUB Callback (member)
status = 0
HUB Callback (member)
status = 0
HUB Callback (member)
status = 0
HUB Callback (member)
status = 0
HUB Callback (member)
status = 0
HUB Callback (member)
status = 0
HUB Callback (member)
status = 0
HUB Callback (member)
status = 0
HUB Callback (member)
status = 0
HUB Callback (member)
status = 0
HUB Callback (member)
status = 0
HUB Callback (member)
status = 0
HUB Callback (member)
status = 0
HUB Callback (member)
status = 0
HUB Callback (member)
status = 0
HUB Callback (member)
status = 0
HUB Callback (member)
status = 0
HUB Callback (member)
status = 0
HUB Callback (member)
status = 0
HUB Callback (member)
status = 0
HUB Callback (member)
status = 0
HUB Callback (member)
status = 0
HUB Callback (member)
status = 0
HUB Callback (member)
status = 0
HUB Callback (member)
status = 0
HUB Callback (member)
status = 0
HUB Callback (member)
status = 0
HUB Callback (member)
status = 0
HUB Callback (member)
status = 0
HUB Callback (member)
status = 0
HUB Callback (member)
status = 0
HUB Callback (member)
status = 0
HUB Callback (member)
status = 0
HUB Callback (member)
status = 0
HUB Callback (member)
status = 0
HUB Callback (member)
status = 0
HUB Callback (member)
status = 0
HUB Callback (member)
status = 0
HUB Callback (member)
status = 0
HUB Callback (member)
status = 0
HUB Callback (member)
status = 0
HUB Callback (member)
status = 0
HUB Callback (member)
status = 0
HUB Callback (member)
status = 0
HUB Callback (member)
status = 0
HUB Callback (member)
status = 1E
getstatus, port = 1
new_Control_Transfer
setup address 1FFF4570
deferred getstatus, port = 2
deferred getstatus, port = 3
deferred getstatus, port = 4
USBHub control callback
00 01 01 00 
New Port Status
  status=10100  port=1
  state=0
  Has Power
getstatus, port = 2
new_Control_Transfer
setup address 1FFF4570
USBHub control callback
01 03 01 00 
New Port Status
  status=10301  port=2
  state=0
  Device is present: 
  Has Power
new_Control_Transfer
setup address 1FFF4570
USBHub control callback
Port Status Cleared, port=2
getstatus, port = 3
new_Control_Transfer
setup address 1FFF4570
USBHub control callback
00 01 01 00 
New Port Status
  status=10100  port=3
  state=0
  Has Power
getstatus, port = 4
new_Control_Transfer
setup address 1FFF4570
USBHub control callback
00 01 01 00 
New Port Status
  status=10100  port=4
  state=0
  Has Power
timer event (20001 us): Debounce Timer, this = 1FFF4220, timer = 1FFF4538
ports in use bitmask = 4
getstatus, port = 2
new_Control_Transfer
setup address 1FFF4570
USBHub control callback
01 03 00 00 
New Port Status
  status=301  port=2
  state=2
  Device is present: 
  Has Power
HUB Callback (member)
status = 1A
getstatus, port = 1
new_Control_Transfer
setup address 1FFF4570
deferred getstatus, port = 3
deferred getstatus, port = 4
USBHub control callback
00 01 01 00 
New Port Status
  status=10100  port=1
  state=0
  Has Power
getstatus, port = 3
new_Control_Transfer
setup address 1FFF4570
USBHub control callback
00 01 01 00 
New Port Status
  status=10100  port=3
  state=0
  Has Power
getstatus, port = 4
new_Control_Transfer
setup address 1FFF4570
USBHub control callback
00 01 01 00 
New Port Status
  status=10100  port=4
  state=0
  Has Power
timer event (20000 us): Debounce Timer, this = 1FFF4220, timer = 1FFF4538
ports in use bitmask = 4
getstatus, port = 2
new_Control_Transfer
setup address 1FFF4570
USBHub control callback
01 03 00 00 
New Port Status
  status=301  port=2
  state=3
  Device is present: 
  Has Power
timer event (20000 us): Debounce Timer, this = 1FFF4220, timer = 1FFF4538
ports in use bitmask = 4
getstatus, port = 2
new_Control_Transfer
setup address 1FFF4570
USBHub control callback
01 03 00 00 
New Port Status
  status=301  port=2
  state=4
  Device is present: 
  Has Power
HUB Callback (member)
status = 1A
getstatus, port = 1
new_Control_Transfer
setup address 1FFF4570
deferred getstatus, port = 3
deferred getstatus, port = 4
USBHub control callback
00 01 01 00 
New Port Status
  status=10100  port=1
  state=0
  Has Power
getstatus, port = 3
new_Control_Transfer
setup address 1FFF4570
USBHub control callback
00 01 01 00 
New Port Status
  status=10100  port=3
  state=0
  Has Power
getstatus, port = 4
new_Control_Transfer
setup address 1FFF4570
USBHub control callback
00 01 01 00 
New Port Status
  status=10100  port=4
  state=0
  Has Power
timer event (20000 us): Debounce Timer, this = 1FFF4220, timer = 1FFF4538
ports in use bitmask = 4
getstatus, port = 2
new_Control_Transfer
setup address 1FFF4570
USBHub control callback
01 03 00 00 
New Port Status
  status=301  port=2
  state=5
  Device is present: 
  Has Power
HUB Callback (member)
status = 1E
getstatus, port = 1
new_Control_Transfer
setup address 1FFF4570
deferred getstatus, port = 2
deferred getstatus, port = 3
deferred getstatus, port = 4
USBHub control callback
00 01 01 00 
New Port Status
  status=10100  port=1
  state=0
  Has Power
getstatus, port = 2
new_Control_Transfer
setup address 1FFF4570
port change: 1C00100A
    disconnect
disconnect_Device:
USBDriver (available_drivers) list: 1FFF2520 -> 1FFF2020 -> 1FFF22A0 -> 1FFF2900 -> 1FFF2E00 -> 1FFF3300 -> 1FFF3800 -> 1FFF3D00 -> 1FFF4760
USBDriver (dev->drivers) list: 1FFF4220
disconnect driver 1FFF4220
USBDriver (available_drivers) list: 1FFF4220 -> 1FFF2520 -> 1FFF2020 -> 1FFF22A0 -> 1FFF2900 -> 1FFF2E00 -> 1FFF3300 -> 1FFF3800 -> 1FFF3D00 -> 1FFF4760
delete_Pipe 1FFF4980
  Free transfers
    * 536823552 * remove * defer free until QH
  Free transfers attached to QH
    * 536823552
    * 536823488
* Delete Pipe completed
delete_Pipe 1FFF5400
  shut down async schedule
  Free transfers
    * 536827008 * remove * free
  Free transfers attached to QH
    * 536823392
* Delete Pipe completed
removed Device_t from devlist
  disable
*** Device Hub1 - disconnected ***
timer event (20000 us): Debounce Timer, this = 1FFF4220, timer = 1FFF4538
ports in use bitmask = 0
port change: 10001803
    connect
  begin reset
port change: 18001205
  port enabled
  end recovery
new_Device: 480 Mbit/sec
new_Pipe
new_Control_Transfer
setup address 1FFF53B0
enumeration:
12 01 00 02 09 00 02 40 
Transfer @ 1FFF46C0
   next:  1FFF5480
   anext: 1
   token: 8000
   bufs:  0,1000,2000,3000,4000
  enum state:0
  mk_setup 20500 0
new_Control_Transfer
setup address 1FFF53B0
  enum after assign_address
enumeration:
Transfer @ 1FFF4660
   next:  1FFF4700
   anext: 1
   token: 8100
   bufs:  0,1000,2000,3000,4000
  enum state:1
new_Control_Transfer
setup address 1FFF53B0
enumeration:
12 01 00 02 09 00 02 40 E3 05 10 06 24 92 01 02 00 01 
Transfer @ 1FFF46C0
   next:  1FFF5480
   anext: 1
   token: 8000
   bufs:  0,1000,2000,3000,4000
  enum state:2
  enum state:3
new_Control_Transfer
setup address 1FFF53B0
enumeration:
04 03 09 04 E3 05 10 06 24 92 01 02 00 01 07 05 81 03 01 00 0C 09 04 00 01 01 09 00 02 00 07 05 81 03 01 00 0C 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
Transfer @ 1FFF4700
   next:  1FFF5500
   anext: 1
   token: 8000
   bufs:  0,1000,2000,3000,4000
  enum state:4
  enum state:5
new_Control_Transfer
setup address 1FFF53B0
enumeration:
1A 03 47 00 65 00 6E 00 65 00 73 00 79 00 73 00 4C 00 6F 00 67 00 69 00 63 00 09 00 02 00 07 05 81 03 01 00 0C 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
Transfer @ 1FFF5480
   next:  1FFF4660
   anext: 1

   token: 8000
   bufs:  0,1000,2000,3000,4000
  enum state:6
  enum state:7
new_Control_Transfer
setup address 1FFF53B0
enumeration:
16 03 55 00 53 00 42 00 32 00 2E 00 30 00 20 00 48 00 75 00 62 00 69 00 63 00 09 00 02 00 07 05 81 03 01 00 0C 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
Transfer @ 1FFF5500
   next:  1FFF46C0
   anext: 1
   token: 8000
   bufs:  0,1000,2000,3000,4000
  enum state:8
  enum state:11
new_Control_Transfer
setup address 1FFF53B0
enumeration:
09 02 29 00 01 01 00 E0 32 
Transfer @ 1FFF4660
   next:  1FFF4700
   anext: 1
   token: 8000
   bufs:  0,1000,2000,3000,4000
  enum state:12
Config data length = 41
new_Control_Transfer
setup address 1FFF53B0
enumeration:
09 02 29 00 01 01 00 E0 32 09 04 00 00 01 09 00 01 00 07 05 81 03 01 00 0C 09 04 00 01 01 09 00 02 00 07 05 81 03 01 00 0C 
Transfer @ 1FFF46C0
   next:  1FFF5480
   anext: 1
   token: 8000
   bufs:  0,1000,2000,3000,4000
  enum state:13
bNumInterfaces = 1
bConfigurationValue = 1
new_Control_Transfer
setup address 1FFF53B0
enumeration:
Transfer @ 1FFF4700
   next:  1FFF5500
   anext: 1
   token: 8100
   bufs:  0,1000,2000,3000,4000
  enum state:14
USBHub memory usage = 960
USBHub claim_device this=1FFF4220
  polling interval = 12
7
5
81
1
bDeviceClass = 9
bDeviceSubClass = 0
bDeviceProtocol = 2
new_Control_Transfer
setup address 1FFF4570
*** Device Hub1 5e3:610 - connected ***
  manufacturer: GenesysLogic
  product: USB2.0 Hub
USBHub control callback
09 29 04 E0 00 32 64 00 FF 00 00 00 00 00 00 00 
Hub ports = 4
new_Control_Transfer
setup address 1FFF4570
USBHub control callback
new_Control_Transfer
setup address 1FFF4570
USBHub control callback
new_Control_Transfer
setup address 1FFF4570
USBHub control callback
new_Control_Transfer
setup address 1FFF4570
USBHub control callback
power turned on to all ports
device addr = 2
new_Pipe
allocate_interrupt_pipe_bandwidth
  ep interval = 12
  interval = 256
 best_bandwidth = 2, at offset = 0
pipe cap1 = F0012102
HUB Callback (member)
status = 0
HUB Callback (member)
status = 0
HUB Callback (member)
status = 0
HUB Callback (member)
status = 0
HUB Callback (member)
status = 0
HUB Callback (member)
status = 0
HUB Callback (member)
status = 0
HUB Callback (member)
status = 0
HUB Callback (member)
status = 0
HUB Callback (member)
status = 0
HUB Callback (member)
status = 0
HUB Callback (member)
status = 0
HUB Callback (member)
status = 0
HUB Callback (member)
status = 0
HUB Callback (member)
status = 0
HUB Callback (member)
status = 0
HUB Callback (member)
status = 0
HUB Callback (member)
status = 0
HUB Callback (member)
status = 0
HUB Callback (member)
status = 0
HUB Callback (member)
status = 0
HUB Callback (member)
status = 0
HUB Callback (member)
status = 0
HUB Callback (member)
status = 0
HUB Callback (member)
status = 0
HUB Callback (member)
status = 0
HUB Callback (member)
status = 0
HUB Callback (member)
status = 0
HUB Callback (member)
status = 0
HUB Callback (member)
status = 0
HUB Callback (member)
status = 0
HUB Callback (member)
status = 0
HUB Callback (member)
status = 0
HUB Callback (member)
status = 0
HUB Callback (member)
status = 0
HUB Callback (member)
status = 0
HUB Callback (member)
status = 0
HUB Callback (member)
status = 0
HUB Callback (member)
status = 0
HUB Callback (member)
status = 0
HUB Callback (member)
status = 0
HUB Callback (member)
status = 0
HUB Callback (member)
status = 0
HUB Callback (member)
status = 0
HUB Callback (member)
status = 0
HUB Callback (member)
status = 0
HUB Callback (member)
status = 0
HUB Callback (member)
status = 0
HUB Callback (member)
status = 0
HUB Callback (member)
status = 0
HUB Callback (member)
status = 0
HUB Callback (member)
status = 0
HUB Callback (member)
status = 0
HUB Callback (member)
status = 0
HUB Callback (member)
status = 0
HUB Callback (member)
status = 0
HUB Callback (member)
status = 0
HUB Callback (member)
status = 0
HUB Callback (member)
status = 0
HUB Callback (member)
status = 0
HUB Callback (member)
status = 0
HUB Callback (member)
status = 1E
getstatus, port = 1
new_Control_Transfer
setup address 1FFF4570
deferred getstatus, port = 2
deferred getstatus, port = 3
deferred getstatus, port = 4
USBHub control callback
00 01 01 00 
New Port Status
  status=10100  port=1
  state=0
  Has Power
getstatus, port = 2
new_Control_Transfer
setup address 1FFF4570
USBHub control callback
01 03 01 00 
New Port Status
  status=10301  port=2
  state=0
  Device is present: 
  Has Power
new_Control_Transfer
setup address 1FFF4570
USBHub control callback
Port Status Cleared, port=2
getstatus, port = 3
new_Control_Transfer
setup address 1FFF4570
USBHub control callback
00 01 01 00 
New Port Status
  status=10100  port=3
  state=0
  Has Power
getstatus, port = 4
new_Control_Transfer
setup address 1FFF4570
USBHub control callback
00 01 01 00 
New Port Status
  status=10100  port=4
  state=0
  Has Power
timer event (20000 us): Debounce Timer, this = 1FFF4220, timer = 1FFF4538
ports in use bitmask = 4
getstatus, port = 2
new_Control_Transfer
setup address 1FFF4570
USBHub control callback
01 03 00 00 
New Port Status
  status=301  port=2
  state=2
  Device is present: 
  Has Power
HUB Callback (member)
status = 1A
getstatus, port = 1
new_Control_Transfer
setup address 1FFF4570
deferred getstatus, port = 3
deferred getstatus, port = 4
USBHub control callback
00 01 01 00 
New Port Status
  status=10100  port=1
  state=0
  Has Power
getstatus, port = 3
new_Control_Transfer
setup address 1FFF4570
USBHub control callback
00 01 01 00 
New Port Status
  status=10100  port=3
  state=0
  Has Power
getstatus, port = 4
new_Control_Transfer
setup address 1FFF4570
USBHub control callback
00 01 01 00 
New Port Status
  status=10100  port=4
  state=0
  Has Power
timer event (20000 us): Debounce Timer, this = 1FFF4220, timer = 1FFF4538
ports in use bitmask = 4
getstatus, port = 2
new_Control_Transfer
setup address 1FFF4570
USBHub control callback
01 03 00 00 
New Port Status
  status=301  port=2
  state=3
  Device is present: 
  Has Power
timer event (20000 us): Debounce Timer, this = 1FFF4220, timer = 1FFF4538
ports in use bitmask = 4
getstatus, port = 2
new_Control_Transfer
setup address 1FFF4570
USBHub control callback
01 03 00 00 
New Port Status
  status=301  port=2
  state=4
  Device is present: 
  Has Power
HUB Callback (member)
status = 1A
getstatus, port = 1
new_Control_Transfer
setup address 1FFF4570
deferred getstatus, port = 3
deferred getstatus, port = 4
USBHub control callback
00 01 01 00 
New Port Status
  status=10100  port=1
  state=0
  Has Power
getstatus, port = 3
new_Control_Transfer
setup address 1FFF4570
USBHub control callback
00 01 01 00 
New Port Status
  status=10100  port=3
  state=0
  Has Power
getstatus, port = 4
new_Control_Transfer
setup address 1FFF4570
USBHub control callback
00 01 01 00 
New Port Status
  status=10100  port=4
  state=0
  Has Power
timer event (20000 us): Debounce Timer, this = 1FFF4220, timer = 1FFF4538
ports in use bitmask = 4
getstatus, port = 2
new_Control_Transfer
setup address 1FFF4570
USBHub control callback
01 03 00 00 
New Port Status
  status=301  port=2
  state=5
  Device is present: 
  Has Power
HUB Callback (member)
status = 1A
getstatus, port = 1
new_Control_Transfer
setup address 1FFF4570
deferred getstatus, port = 3
deferred getstatus, port = 4
USBHub control callback
00 01 01 00 
New Port Status
  status=10100  port=1
  state=0
  Has Power
getstatus, port = 3
new_Control_Transfer
setup address 1FFF4570
USBHub control callback
00 01 01 00 
New Port Status
  status=10100  port=3
  state=0
  Has Power
getstatus, port = 4
new_Control_Transfer
setup address 1FFF4570
USBHub control callback
00 01 01 00 
New Port Status
  status=10100  port=4
  state=0
  Has Power
timer event (20000 us): Debounce Timer, this = 1FFF4220, timer = 1FFF4538
ports in use bitmask = 4
getstatus, port = 2
new_Control_Transfer
setup address 1FFF4570
USBHub control callback
01 03 00 00 
New Port Status
  status=301  port=2
  state=6
  Device is present: 
  Has Power
sending reset
send_setreset
new_Control_Transfer
setup address 1FFF4570
USBHub control callback
unhandled setup, message = 40323
timer event (20000 us): Debounce Timer, this = 1FFF4220, timer = 1FFF4538
ports in use bitmask = 0
HUB Callback (member)
status = 1E
getstatus, port = 1
new_Control_Transfer
setup address 1FFF4570
deferred getstatus, port = 2
deferred getstatus, port = 3
deferred getstatus, port = 4
USBHub control callback
00 01 01 00 
New Port Status
  status=10100  port=1
  state=0
  Has Power
getstatus, port = 2
new_Control_Transfer
setup address 1FFF4570
USBHub control callback
03 03 10 00 
New Port Status
  status=100303  port=2
  state=7
  Device is present: 
  Enabled, speed = 1.5 Mbit/sec
  Has Power
new_Control_Transfer
setup address 1FFF4570
USBHub control callback
unhandled setup, message = 140123
getstatus, port = 3
new_Control_Transfer
setup address 1FFF4570
USBHub control callback
00 01 01 00 
New Port Status
  status=10100  port=3
  state=0
  Has Power
getstatus, port = 4
new_Control_Transfer
setup address 1FFF4570
USBHub control callback
00 01 01 00 
New Port Status
  status=10100  port=4
  state=0
  Has Power
timer event (25000 us): Hello, I'm resettimer, this = 1FFF4220, timer = 1FFF4554
port_doing_reset = 2
PORT_RECOVERY
new_Device: 1.5 Mbit/sec
new_Pipe
new_Control_Transfer
setup address 1FFF53B0
enumeration:
12 01 10 01 00 00 00 08 
Transfer @ 1FFF4660
   next:  1FFF5480
   anext: 1
   token: 8000
   bufs:  0,1000,2000,3000,4000
  enum state:0
  mk_setup 30500 0
new_Control_Transfer
setup address 1FFF53B0
  enum after assign_address
enumeration:
Transfer @ 1FFF5500
   next:  1FFF5540
   anext: 1
   token: 8100
   bufs:  0,1000,2000,3000,4000
  enum state:1
new_Control_Transfer
setup address 1FFF53B0
enumeration:
12 01 10 01 00 00 00 08 CA 04 27 00 18 01 01 02 00 01 
Transfer @ 1FFF4660
   next:  1FFF5480
   anext: 1
   token: 8000
   bufs:  0,1000,2000,3000,4000
  enum state:2
  enum state:3
new_Control_Transfer
setup address 1FFF53B0
enumeration:
04 03 09 04 CA 04 27 00 18 01 01 02 00 01 07 05 81 03 01 00 0C 09 04 00 01 01 09 00 02 00 07 05 81 03 01 00 0C 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
Transfer @ 1FFF5540
   next:  1FFF4620
   anext: 1
   token: 8000
   bufs:  0,1000,2000,3000,4000
  enum state:4
  enum state:5
new_Control_Transfer
setup address 1FFF53B0
HUB Callback (member)
status = 1A
getstatus, port = 1
new_Control_Transfer
setup address 1FFF4570
deferred getstatus, port = 3
deferred getstatus, port = 4
USBHub control callback
00 01 01 00 
New Port Status
  status=10100  port=1
  state=0
  Has Power
getstatus, port = 3
new_Control_Transfer
setup address 1FFF4570
enumeration:
32 03 4C 00 69 00 74 00 65 00 2D 00 4F 00 6E 00 20 00 54 00 65 00 63 00 68 00 6E 00 6F 00 6C 00 6F 00 67 00 79 00 20 00 43 00 6F 00 72 00 70 00 2E 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
Transfer @ 1FFF5480
   next:  1FFF5500
   anext: 1
   token: 8000
   bufs:  0,1000,2000,3000,4000
  enum state:6
  enum state:7
new_Control_Transfer
setup address 1FFF53B0
USBHub control callback
00 01 01 00 
New Port Status
  status=10100  port=3
  state=0
  Has Power
getstatus, port = 4
new_Control_Transfer
setup address 1FFF4570
USBHub control callback
00 01 01 00 
New Port Status
  status=10100  port=4
  state=0
  Has Power
enumeration:
30 03 55 00 53 00 42 00 20 00 4D 00 75 00 6C 00 74 00 69 00 6D 00 65 00 64 00 69 00 61 00 20 00 4B 00 65 00 79 00 62 00 6F 00 61 00 72 00 64 00 2E 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
Transfer @ 1FFF4B60
   next:  1FFF4660
   anext: 1
   token: 8000
   bufs:  0,1000,2000,3000,4000
  enum state:8
  enum state:11
new_Control_Transfer
setup address 1FFF53B0
enumeration:
09 02 3B 00 02 01 00 A0 32 
Transfer @ 1FFF5540
   next:  1FFF54C0
   anext: 1
   token: 8000
   bufs:  0,1000,2000,3000,4000
  enum state:12
Config data length = 59
new_Control_Transfer
setup address 1FFF53B0
enumeration:
09 02 3B 00 02 01 00 A0 32 09 04 00 00 01 03 01 01 00 09 21 10 01 00 01 22 41 00 07 05 81 03 08 00 18 09 04 01 00 01 03 00 00 00 09 21 10 01 00 01 22 9F 00 07 05 82 03 08 00 0A 
Transfer @ 1FFF4660
   next:  1FFF5480
   anext: 1
   token: 8000
   bufs:  0,1000,2000,3000,4000
  enum state:13
bNumInterfaces = 2
bConfigurationValue = 1
new_Control_Transfer
setup address 1FFF53B0
enumeration:
Transfer @ 1FFF54C0
   next:  1FFF4B60
   anext: 1
   token: 8100
   bufs:  0,1000,2000,3000,4000
  enum state:14
USBHub memory usage = 960
USBHub claim_device this=1FFF2520
KeyboardController claim this=1FFF2020
KeyboardController claim this=1FFF22A0
HIDParser claim this=1FFF2900
HIDParser claim this=1FFF2E00
HIDParser claim this=1FFF3300
HIDParser claim this=1FFF3800
HIDParser claim this=1FFF3D00
JoystickController claim this=1FFF4760
Descriptor 4 = INTERFACE
KeyboardController claim this=1FFF2020
ep = 81
packet size = 8
polling interval = 24
new_Pipe
allocate_interrupt_pipe_bandwidth
 best_bandwidth = 3, at offset = 0, shift= 1
new_Control_Transfer
setup address 1FFF2044
Descriptor 33 = HID
Descriptor 5 = ENDPOINT
Descriptor 4 = INTERFACE
KeyboardController claim this=1FFF22A0
HIDParser claim this=1FFF2900
 bInterfaceClass =    3
 bInterfaceSubClass = 0
 bInterfaceProtocol = 0
HID Parser Claim: 09 04 01 00 01 03 00 00 00 09 21 10 01 00 01 22 9F 00 07 05 82 03 08 00 0A 
report descriptor size = 159
Single endpoint HID:
  endpoint = 82
   size = 8
   interval = 10
new_Pipe
allocate_interrupt_pipe_bandwidth
 best_bandwidth = 3, at offset = 8, shift= 0
new_Control_Transfer
setup address 1FFF2928
Descriptor 33 = HID
Descriptor 5 = ENDPOINT
*** Device KB1 4ca:27 - connected ***
  manufacturer: Lite-On Technology Corp.
  product: USB Multimedia Keyboard
*** Device HID1 4ca:27 - connected ***
  manufacturer: Lite-On Technology Corp.
  product: USB Multimedia Keyboard
control callback (hid)
05 01 09 80 A1 01 85 01 05 01 19 81 29 88 15 00 25 01 95 08 75 01 81 02 C0 05 0C 09 01 A1 01 85 02 15 00 25 01 0A 83 01 0A CD 00 0A B7 00 0A E9 00 0A EA 00 0A E2 00 0A B6 00 0A B5 00 0A 8A 01 0A 92 01 0A 94 01 0A 21 02 0A 23 02 0A 24 02 0A 25 02 0A 26 02 0A 27 02 0A 2A 02 95 12 75 01 81 02 95 01 75 06 81 01 C0 05 09 09 01 A1 01 85 03 15 00 25 01 0A 2C 00 0A 18 00 0A 20 00 0A 1F 00 0A 1C 00 0A 3D 00 0A 41 00 0A 42 00 0A 43 00 0A 46 00 95 0A 75 01 81 02 95 01 75 06 81 01 C0 
  mesg = 22000681
  got report descriptor
Found top level collection 10080
find_driver
  driver 1FFF202C
Found top level collection C0001
find_driver
  driver 1FFF202C
Found top level collection 90001
find_driver
  driver 1FFF202C
  driver 1FFF22AC
  driver 1FFF4200
  driver 1FFF476C
  driver 1FFF4600
Rawhid Claim: 4ca:27 usage: 90001
  driver 1FFF46A0
Rawhid Claim: 4ca:27 usage: 90001
HUB Callback (member)
status = 1A
getstatus, port = 1
new_Control_Transfer
setup address 1FFF4570
deferred getstatus, port = 3
deferred getstatus, port = 4
USBHub control callback
00 01 01 00 
New Port Status
  status=10100  port=1
  state=0
  Has Power
getstatus, port = 3
new_Control_Transfer
setup address 1FFF4570
USBHub control callback
00 01 01 00 
New Port Status
  status=10100  port=3
  state=0
  Has Power
getstatus, port = 4
new_Control_Transfer
setup address 1FFF4570
USBHub control callback
00 01 01 00 
New Port Status
  status=10100  port=4
  state=0
  Has Power
HUB Callback (member)
status = 1A
getstatus, port = 1
new_Control_Transfer
setup address 1FFF4570
deferred getstatus, port = 3
deferred getstatus, port = 4
USBHub control callback
00 01 01 00 
New Port Status
  status=10100  port=1
  state=0
  Has Power
getstatus, port = 3
new_Control_Transfer
setup address 1FFF4570
USBHub control callback
00 01 01 00 
New Port Status
  status=10100  port=3
  state=0
  Has Power
getstatus, port = 4
new_Control_Transfer
setup address 1FFF4570
USBHub control callback
00 01 01 00 
New Port Status
  status=10100  port=4
  state=0
  Has Power
HUB Callback (member)
status = 1A
getstatus, port = 1
new_Control_Transfer
setup address 1FFF4570
deferred getstatus, port = 3
deferred getstatus, port = 4
USBHub control callback
00 01 01 00 
New Port Status
  status=10100  port=1
  state=0
  Has Power
getstatus, port = 3
new_Control_Transfer
setup address 1FFF4570
USBHub control callback
00 01 01 00 
New Port Status
  status=10100  port=3
  state=0
  Has Power
getstatus, port = 4
new_Control_Transfer
setup address 1FFF4570
USBHub control callback
00 01 01 00 
New Port Status
  status=10100  port=4
  state=0
  Has Power
HUB Callback (member)
status = 1A
getstatus, port = 1
new_Control_Transfer
setup address 1FFF4570
deferred getstatus, port = 3
deferred getstatus, port = 4
USBHub control callback
00 01 01 00 
New Port Status
  status=10100  port=1
  state=0
  Has Power
getstatus, port = 3
new_Control_Transfer
setup address 1FFF4570
USBHub control callback
00 01 01 00 
New Port Status
  status=10100  port=3
  state=0
  Has Power
getstatus, port = 4
new_Control_Transfer
setup address 1FFF4570
USBHub control callback
00 01 01 00 
New Port Status
  status=10100  port=4
  state=0
  Has Power
HUB Callback (member)
status = 1A
getstatus, port = 1
new_Control_Transfer
setup address 1FFF4570
deferred getstatus, port = 3
deferred getstatus, port = 4
USBHub control callback
00 01 01 00 
New Port Status
  status=10100  port=1
  state=0
  Has Power
getstatus, port = 3
new_Control_Transfer
setup address 1FFF4570
USBHub control callback
00 01 01 00 
New Port Status
  status=10100  port=3
  state=0
  Has Power
getstatus, port = 4
new_Control_Transfer
setup address 1FFF4570
USBHub control callback
00 01 01 00 
New Port Status
  status=10100  port=4
  state=0
  Has Power
HUB Callback (member)
status = 1A
getstatus, port = 1
new_Control_Transfer
setup address 1FFF4570
deferred getstatus, port = 3
deferred getstatus, port = 4
USBHub control callback
00 01 01 00 
New Port Status
  status=10100  port=1
  state=0
  Has Power
getstatus, port = 3
new_Control_Transfer
setup address 1FFF4570
USBHub control callback
00 01 01 00 
New Port Status
  status=10100  port=3
  state=0
  Has Power
getstatus, port = 4
new_Control_Transfer
setup address 1FFF4570
USBHub control callback
00 01 01 00 
New Port Status
  status=10100  port=4
  state=0
  Has Power
HUB Callback (member)
status = 1A
getstatus, port = 1
new_Control_Transfer
setup address 1FFF4570
deferred getstatus, port = 3
deferred getstatus, port = 4
USBHub control callback
00 01 01 00 
New Port Status
  status=10100  port=1
  state=0
  Has Power
getstatus, port = 3
new_Control_Transfer
setup address 1FFF4570
USBHub control callback
00 01 01 00 
New Port Status
  status=10100  port=3
  state=0
  Has Power
getstatus, port = 4
new_Control_Transfer
setup address 1FFF4570
USBHub control callback
00 01 01 00 
New Port Status
  status=10100  port=4
  state=0
  Has Power
HUB Callback (member)
status = 1A
getstatus, port = 1
new_Control_Transfer
setup address 1FFF4570
deferred getstatus, port = 3
deferred getstatus, port = 4
USBHub control callback
00 01 01 00 
New Port Status
  status=10100  port=1
  state=0
  Has Power
getstatus, port = 3
new_Control_Transfer
setup address 1FFF4570
USBHub control callback
00 01 01 00 
New Port Status
  status=10100  port=3
  state=0
  Has Power
getstatus, port = 4
new_Control_Transfer
setup address 1FFF4570
USBHub control callback
00 01 01 00 
New Port Status
  status=10100  port=4
  state=0
  Has Power
HUB Callback (member)
status = 1A
getstatus, port = 1
new_Control_Transfer
setup address 1FFF4570
deferred getstatus, port = 3
deferred getstatus, port = 4
USBHub control callback
00 01 01 00 
New Port Status
  status=10100  port=1
  state=0
  Has Power
getstatus, port = 3
new_Control_Transfer
setup address 1FFF4570
USBHub control callback
00 01 01 00 
New Port Status
  status=10100  port=3
  state=0
  Has Power
getstatus, port = 4
new_Control_Transfer
setup address 1FFF4570
USBHub control callback
00 01 01 00 
New Port Status
  status=10100  port=4
  state=0
  Has Power
HUB Callback (member)
status = 1A
getstatus, port = 1
new_Control_Transfer
setup address 1FFF4570
deferred getstatus, port = 3
deferred getstatus, port = 4
USBHub control callback
00 01 01 00 
New Port Status
  status=10100  port=1
  state=0
  Has Power
getstatus, port = 3
new_Control_Transfer
setup address 1FFF4570
USBHub control callback
...
Note: it keeps outputting lots of stuff, like maybe it gets unhappy and then happy again and...
Will look more but got to run

Kurt
 
I'm working on troubleshooting this hub. So far, I've mostly just added better printing of the descriptors. Better descriptor info is something I wanted to get into the code before 1.42, so we'll have an easier time when people find devices that don't work.

This hub definitely has only 1 configuration, with 2 interfaces. The 2 other Multi-TT hubs I own gives almost identical device, config, interface and endpoint descriptors.

That info from the USB spec seems to say writing 0 unconfigures the device. I've never known a case where any host actually does that. We certainly don't. I'd be amazed if it actually worked on most USB devices. Regardless of what the spec says, as far as I know that's not in any of the conformance tests and I've never seen any example code to actually handle it. For all practical purposes, hosts only write whatever number is in the config descriptor.

There's definitely something different about this hub. The place where they seem to differ is the hub capability descriptors. That format is documented on pages 417-418 of the USB 2.0 spec.

Here's the data I have from these 3 hubs:

Code:
2 port (not working)
    VendorID = 0424, ProductID = 2512, Version = 0BB3
    Class/Subclass/Protocol = 9(Hub) / 0 / 2(Multi-TT)
capability
09 29 02 09 00 32 01 00 FF 00 00 00 00 00 00 00


4 port, ioGear, GUH274 (works)
    VendorID = 04B4, ProductID = 6560, Version = 0008
    Class/Subclass/Protocol = 9(Hub) / 0 / 2(Multi-TT)
09 29 04 89 00 32 64 00 FF 00 00 00 00 00 00 00


4 port, no-name blue color, UH-BSC4-US (works)
    VendorID = 05E3, ProductID = 0610, Version = 3298
    Class/Subclass/Protocol = 9(Hub) / 0 / 2(Multi-TT)
09 29 04 E0 00 32 64 00 FF 00 00 00 00 00 00 00
 
A little more testing shows I can get 480 MBit/sec devices to work (at least fully enumerate), but not 12 or 1.5 MBit/sec ones. Very strange.

Running out of time for the moment... will look at this later today or over the weekend.
 
Yes - I took a look earlier as well, at it was acting strange. Was not sure what to look at next on it. Need to try again to see if some of the other hubs I have also act strange.
At one point I had a USB 3 hub appear not to want to work either...

Side question: I keep meaning to get or make some easy USB adapter to easily be able to tap into the signals. Any decent ones out there? I have hacked up a cable to get to it, but it tends to get unwieldy, also with some USB connections, I can setup test probes to back of USB port... But maybe there is an easier way, of having some type of Type A? Male to female connector with test points...
 
I'm continuing to work on it today. Looks like Teensy 3.6 is sending a flood of setup start-split requests. It causes Total Phase's software to completely lock up, which is making troubleshooting much harder.

sc.png
 
Best guess so far is we're not sending a set interface control transfer. I grabbed several packet logs without any device plugged into the hub. That's the one thing Linux seems to be significantly different. Well, also remote wakeup, which we're a *long* way from ever properly supporting.

I added code to walk through all the possible interfaces, rather than only looking at the first one.

https://github.com/PaulStoffregen/USBHost_t36/commit/62fbf401d22baa1d2a4a47ce9d45ee9519906ec9

Later today I'll try adding the set interface command when we see more than 1 choice. I still don't know if that's really going to solve this problem, but at this moment it's the only plausible guess I have, and it's definitely something we should be doing (even though the language in the USB spec seems to say the first interface is supposed to be the default if nothing is set).
 
Well, looks like the set interface control transfer wasn't the answer.

I put in the code to send, and as far as I can tell in the packet log it's correct. But the problem remains. :(
 
Been working on this all day. Really stuck.

At least I did manage to put a little code right before the enumeration is started to have an IntervalTimer forcibly shut off the USB port's power after 1 ms. It's pretty amazing how many packets the host controller can spew in just 1 millisecond when running at 480 Mbit. At least this lets me get a packet capture without crashing the analyzer's software.

sc.png

Trouble is, I just don't see what we're doing wrong. In this screenshot, you can see at the highlighted line this 2-port hub does complete the first control transfer to read 8 bytes of the device descriptor, using split transactions. Then ~1 millisecond later when we set the set address setup packet (split start), the hub's transaction translator seems to have vanished. No ACK response. Then the host controller keeps trying in an infinite loop.

It's easy to see we're sending split-start setups and the hub isn't answering, but why? I'm really stumped on this one...
 
For comparison, here's what Linux does as it initializes this hub and then successfully enumerates the low speed keyboard on port 2.

This first capture is the enumeration of the hub.

sc1.png

The highlighted line at the bottom is the first setup packet sent to the keyboard using split transactions.

Here's the enumeration of the keyboard, with that same line highlighted. I expanded the first descriptor read and the set address setup which is failing when we try on Teensy 3.6.

sc2.png

The only differences I'm seeing is Linux resets the USB port twice, once only to read the first descriptor, then again before setting the address. Apparently this is done for some very old devices that don't work properly. But we know this keyboard works with a single reset when directly connected and when used with all the other hubs I own.

Maybe there's something obvious I'm just not seeing?
 
*Still* working on this. Somehow it's taken all day to realize this byte is (very likely) the problem.

sc3.png

That's all day of re-reading chapters 8 (protocol layer) and 11 (hubs) of the USB 2.0 spec. The key info is section 8.4.2.2 "Start-Split Transaction Token" on pages 202-204.

Code:
Good: 78 01 82 10

split PID = 78
hub addr = 1 
SC = 0 (start)
port = 2
S = 1 (low speed)
E = 0 (???)
ET = 00 (control)


Bad: 78 01 82 B4

E = 0 (???)
ET = 10 (bulk)

Somehow bit 2 in the last byte is getting set. Bits 3-7 are a 5 bit CRC check, so they all change too, but that's expected when any of the bits in the middle 2 bytes or any of the 3 low bits in that last byte change.


But how is this happening? And why with only this particular 2 port hub, but not at any of the 6 other hubs I own (admittedly one is a USB 1.1 hub without a transaction translator, so it doesn't count), nor with any of Kurt's hubs or anyone else's?

Here's the embarrassing part... turns out I've had this wrong the whole time, but somehow almost all USB 2.0 hubs manage to roll with it. And until now, only after 2 solid days of head scratching, have I for the (apparently) first time really looked at the Teensy 3.6 to USB communication when enumerating a low speed device. It's not pretty!

sc4.png

Lots of mistaken B4s (bit 2 set), yet the hub manages to do send the packet to the 1.5 Mbit keyboard and reply back with a correct split-complete packet. Of course, Total Phase's software recognizes the packets aren't correct and shows them in angry red. There's no way I could have missed this, other than it all just seemed to work when I wrote the code, so I didn't bother to set up the analyzer to really inspect the packets.

Now that I (hopefully) really understand what's wrong and I'm past "but it works on all other hubs" I hope to finally have this solved soon. It's certainly a mistake I made somewhere deep in ehci.cpp. Now to just find it...
 
Side question: I keep meaning to get or make some easy USB adapter to easily be able to tap into the signals. Any decent ones out there?

Yes, but they're expensive. Very expensive. The one I use is the Beagle 480 from Total Phase. It's $1200.

They make a cheaper one that only goes up to 12 Mbit speed. So to other companies. But 12 Mbit would be useless for troubleshooting USB 2.0 split transactions, which are only done at 480 Mbit.

I might write a blog article about how this works and the lengthy winding-road process of actually using it to track down this problem....
 
:D - Glad you found it! As I mentioned earlier, I had taken a look, but nothing made sense to me. Things like it looked like Linux was doing lots of stuff...

I will sync up and retry with what hubs I have. There was another one I had that worked some of the time, but at times I thought it didn't work...

Yes the Beagle 480 looks great if I were to do this on a full time basis. I can do pretty well with the Saleae Logic Analyzer again only up 12MBS... Works pretty well for the lower speed stuff.

For now just trying to make it easier to tap into the signals. I had an USB extension cable that I took apart to the get the signals... But the wires finally broke inside the connector... Could probably fix. But may try to make a simpler connection, I am guessing with the Beagle, you simply plug the USB into your computer and plug the USB you wish to analyze directly into it, which would be nice and simple!
 
I did some quick testing, and that one appears to be working :D


I also tested with another one that was problematic that I mentioned above:

It appears to work if it is the first hub I plug in....
Code:
USB Host Testing
960
sizeof Device = 36
sizeof Pipe = 96
sizeof Transfer = 64
power up USBHS PHY
port change: 10001803
    connect
  begin reset
port change: 18001205
  port enabled
  end recovery
new_Device: 480 Mbit/sec
new_Pipe
enumeration:
enumeration:
enumeration:
Device Descriptor:
  12 01 00 02 09 00 02 40 E3 05 10 06 24 92 01 02 00 01 
    VendorID = 05E3, ProductID = 0610, Version = 9224
    Class/Subclass/Protocol = 9(Hub) / 0 / 2(Multi-TT)
    Number of Configurations = 1
enumeration:
enumeration:
Manufacturer: GenesysLogic
enumeration:
Product: USB2.0 Hub
enumeration:
Config data length = 41
enumeration:
Configuration Descriptor:
  09 02 29 00 01 01 00 E0 32 
    NumInterfaces = 1
    ConfigurationValue = 1
  09 04 00 00 01 09 00 01 00 
    Interface = 0
    Number of endpoints = 1
    Class/Subclass/Protocol = 9(Hub) / 0 / 1(Single-TT)
  07 05 81 03 01 00 0C 
    Endpoint = 1 IN
    Type = Interrupt
    Max Size = 1
    Polling Interval = 12
  09 04 00 01 01 09 00 02 00 
    Interface = 0
    Number of endpoints = 1
    Class/Subclass/Protocol = 9(Hub) / 0 / 2(Multi-TT)
  07 05 81 03 01 00 0C 
    Endpoint = 1 IN
    Type = Interrupt
    Max Size = 1
    Polling Interval = 12
enumeration:
USBHub memory usage = 960
USBHub claim_device this=1FFF4220
found possible interface, altsetting=0
found possible interface, altsetting=1
number of interfaces found = 2
best interface is 0 using altsetting 1
*** Device Hub1 5e3:610 - connected ***
  manufacturer: GenesysLogic
  product: USB2.0 Hub
USBHub control callback
09 29 04 E0 00 32 64 00 FF 00 00 00 00 00 00 00 
Hub ports = 4
USBHub control callback
unhandled setup, message = 10B01
USBHub control callback
USBHub control callback
USBHub control callback
USBHub control callback
power turned on to all ports
device addr = 1
new_Pipe
allocate_interrupt_pipe_bandwidth
  ep interval = 12
  interval = 256
 best_bandwidth = 2, at offset = 0
pipe cap1 = F0012101
HUB Callback (member)
status = 2
getstatus, port = 1
USBHub control callback
01 03 01 00 
New Port Status
  status=10301  port=1
  state=0
  Device is present: 
  Has Power
USBHub control callback
Port Status Cleared, port=1
timer event (20000 us): Debounce Timer, this = 1FFF4220, timer = 1FFF4538
ports in use bitmask = 2
getstatus, port = 1
USBHub control callback
01 03 00 00 
New Port Status
  status=301  port=1
  state=2
  Device is present: 
  Has Power
timer event (20000 us): Debounce Timer, this = 1FFF4220, timer = 1FFF4538
ports in use bitmask = 2
getstatus, port = 1
USBHub control callback
01 03 00 00 
New Port Status
  status=301  port=1
  state=3
  Device is present: 
  Has Power
timer event (20000 us): Debounce Timer, this = 1FFF4220, timer = 1FFF4538
ports in use bitmask = 2
getstatus, port = 1
USBHub control callback
01 03 00 00 
New Port Status
  status=301  port=1
  state=4
  Device is present: 
  Has Power
timer event (20000 us): Debounce Timer, this = 1FFF4220, timer = 1FFF4538
ports in use bitmask = 2
getstatus, port = 1
USBHub control callback
01 03 00 00 
New Port Status
  status=301  port=1
  state=5
  Device is present: 
  Has Power
timer event (20000 us): Debounce Timer, this = 1FFF4220, timer = 1FFF4538
ports in use bitmask = 2
getstatus, port = 1
USBHub control callback
01 03 00 00 
New Port Status
  status=301  port=1
  state=6
  Device is present: 
  Has Power
sending reset
send_setreset
USBHub control callback
unhandled setup, message = 40323
timer event (20000 us): Debounce Timer, this = 1FFF4220, timer = 1FFF4538
ports in use bitmask = 0
HUB Callback (member)
status = 2
getstatus, port = 1
USBHub control callback
03 03 10 00 
New Port Status
  status=100303  port=1
  state=7
  Device is present: 
  Enabled, speed = 1.5 Mbit/sec
  Has Power
USBHub control callback
unhandled setup, message = 140123
timer event (25000 us): Hello, I'm resettimer, this = 1FFF4220, timer = 1FFF4554
port_doing_reset = 1
PORT_RECOVERY
new_Device: 1.5 Mbit/sec
new_Pipe
enumeration:
enumeration:
enumeration:
Device Descriptor:
  12 01 10 01 00 00 00 08 CA 04 27 00 18 01 01 02 00 01 
    VendorID = 04CA, ProductID = 0027, Version = 0118
    Class/Subclass/Protocol = 0 / 0 / 0
    Number of Configurations = 1
enumeration:
enumeration:
Manufacturer: Lite-On Technology Corp.
enumeration:
Product: USB Multimedia Keyboard
enumeration:
Config data length = 59
enumeration:
Configuration Descriptor:
  09 02 3B 00 02 01 00 A0 32 
    NumInterfaces = 2
    ConfigurationValue = 1
  09 04 00 00 01 03 01 01 00 
    Interface = 0
    Number of endpoints = 1
    Class/Subclass/Protocol = 3(HID) / 1(Boot) / 1(Keyboard)
  09 21 10 01 00 01 22 41 00 
    HID, 1 report descriptor
  07 05 81 03 08 00 18 
    Endpoint = 1 IN
    Type = Interrupt
    Max Size = 8
    Polling Interval = 24
  09 04 01 00 01 03 00 00 00 
    Interface = 1
    Number of endpoints = 1
    Class/Subclass/Protocol = 3(HID) / 0 / 0
  09 21 10 01 00 01 22 9F 00 
    HID, 1 report descriptor
  07 05 82 03 08 00 0A 
    Endpoint = 2 IN
    Type = Interrupt
    Max Size = 8
    Polling Interval = 10
enumeration:
USBHub memory usage = 960
USBHub claim_device this=1FFF2520
KeyboardController claim this=1FFF2020
KeyboardController claim this=1FFF22A0
HIDParser claim this=1FFF2900
HIDParser claim this=1FFF2E00
HIDParser claim this=1FFF3300
HIDParser claim this=1FFF3800
HIDParser claim this=1FFF3D00
JoystickController claim this=1FFF4760
Descriptor 4 = INTERFACE
KeyboardController claim this=1FFF2020
ep = 81
packet size = 8
polling interval = 24
new_Pipe
allocate_interrupt_pipe_bandwidth
 best_bandwidth = 3, at offset = 0, shift= 1
Descriptor 33 = HID
Descriptor 5 = ENDPOINT
Descriptor 4 = INTERFACE
KeyboardController claim this=1FFF22A0
HIDParser claim this=1FFF2900
 bInterfaceClass =    3
 bInterfaceSubClass = 0
 bInterfaceProtocol = 0
HID Parser Claim: 09 04 01 00 01 03 00 00 00 09 21 10 01 00 01 22 9F 00 07 05 82 03 08 00 0A 
report descriptor size = 159
Single endpoint HID:
  endpoint = 82
   size = 8
   interval = 10
new_Pipe
allocate_interrupt_pipe_bandwidth
 best_bandwidth = 3, at offset = 8, shift= 0
Descriptor 33 = HID
Descriptor 5 = ENDPOINT
*** Device KB1 4ca:27 - connected ***
  manufacturer: Lite-On Technology Corp.
  product: USB Multimedia Keyboard
*** Device HID1 4ca:27 - connected ***
  manufacturer: Lite-On Technology Corp.
  product: USB Multimedia Keyboard
control callback (hid)
05 01 09 80 A1 01 85 01 05 01 19 81 29 88 15 00 25 01 95 08 75 01 81 02 C0 05 0C 09 01 A1 01 85 02 15 00 25 01 0A 83 01 0A CD 00 0A B7 00 0A E9 00 0A EA 00 0A E2 00 0A B6 00 0A B5 00 0A 8A 01 0A 92 01 0A 94 01 0A 21 02 0A 23 02 0A 24 02 0A 25 02 0A 26 02 0A 27 02 0A 2A 02 95 12 75 01 81 02 95 01 75 06 81 01 C0 05 09 09 01 A1 01 85 03 15 00 25 01 0A 2C 00 0A 18 00 0A 20 00 0A 1F 00 0A 1C 00 0A 3D 00 0A 41 00 0A 42 00 0A 43 00 0A 46 00 95 0A 75 01 81 02 95 01 75 06 81 01 C0 
  mesg = 22000681
  got report descriptor
Found top level collection 10080
find_driver
  driver 1FFF202C
Found top level collection C0001
find_driver
  driver 1FFF202C
Found top level collection 90001
find_driver
  driver 1FFF202C
  driver 1FFF22AC
  driver 1FFF4200
  driver 1FFF476C
  driver 1FFF4600
Rawhid Claim: 4ca:27 usage: 90001
  driver 1FFF46A0
Rawhid Claim: 4ca:27 usage: 90001
KeyboardController Callback (member)
  KB Data: 00 00 04 00 00 00 00 00 
  press, key=4
  unicode = 97
key 'a'  97 MOD: 0 OEM: 4 LEDS: 0
KeyboardController Callback (member)
  KB Data: 00 00 00 00 00 00 00 00 
  release, key=4
KeyboardController Callback (member)
  KB Data: 00 00 05 00 00 00 00 00 
  press, key=5
  unicode = 98
key 'b'  98 MOD: 0 OEM: 5 LEDS: 0
KeyboardController Callback (member)
  KB Data: 00 00 00 00 00 00 00 00 
  release, key=5
KeyboardController Callback (member)
  KB Data: 00 00 06 00 00 00 00 00 
  press, key=6
  unicode = 99
key 'c'  99 MOD: 0 OEM: 6 LEDS: 0
KeyboardController Callback (member)
  KB Data: 00 00 00 00 00 00 00 00 
  release, key=6
KeyboardController Callback (member)
  KB Data: 00 00 07 00 00 00 00 00 
  press, key=7
  unicode = 100
key 'd'  100 MOD: 0 OEM: 7 LEDS: 0
KeyboardController Callback (member)
  KB Data: 00 00 00 00 00 00 00 00 
  release, key=7

But if I unplug it and plug it back in, the debug data goes nuts:
Code:
port change: 1C00100A
    disconnect
disconnect_Device:
USBDriver (available_drivers) list: 1FFF2520 -> 1FFF22A0 -> 1FFF2E00 -> 1FFF3300 -> 1FFF3800 -> 1FFF3D00 -> 1FFF4760
USBDriver (dev->drivers) list: 1FFF4220
disconnect driver 1FFF4220
disconnect_Device:
USBDriver (available_drivers) list: 1FFF2520 -> 1FFF22A0 -> 1FFF2E00 -> 1FFF3300 -> 1FFF3800 -> 1FFF3D00 -> 1FFF4760
USBDriver (dev->drivers) list: 1FFF2900 -> 1FFF2020
disconnect driver 1FFF2900
disconnect driver 1FFF2020
USBDriver (available_drivers) list: 1FFF2020 -> 1FFF2900 -> 1FFF2520 -> 1FFF22A0 -> 1FFF2E00 -> 1FFF3300 -> 1FFF3800 -> 1FFF3D00 -> 1FFF4760
delete_Pipe 1FFF48C0
  Free transfers
    * 536823392
    * 536824608
    * 536824480 * remove * free
  Free transfers attached to QH
    * 536823488
* Delete Pipe completed
delete_Pipe 1FFF4040
  Free transfers
    * 536823392
    * 536824608 * remove * free
  Free transfers attached to QH
    * 536824416
* Delete Pipe completed
delete_Pipe 1FFF4920
  remove QH from async schedule
  Free transfers
  Free transfers attached to QH
    * 536824544
* Delete Pipe completed
removed Device_t from devlist
USBDriver (available_drivers) list: 1FFF4220 -> 1FFF2020 -> 1FFF2900 -> 1FFF2520 -> 1FFF22A0 -> 1FFF2E00 -> 1FFF3300 -> 1FFF3800 -> 1FFF3D00 -> 1FFF4760
delete_Pipe 1FFF4980
  Free transfers
    * 536823392 * remove * free
  Free transfers attached to QH
    * 536827136
* Delete Pipe completed
delete_Pipe 1FFF5400
  shut down async schedule
  Free transfers
  Free transfers attached to QH
    * 536823552
* Delete Pipe completed
removed Device_t from devlist
  disable
*** Device Hub1 - disconnected ***
*** Device KB1 - disconnected ***
*** Device HID1 - disconnected ***
port change: 10001803
    connect
  begin reset
port change: 18001205
  port enabled
  end recovery
new_Device: 480 Mbit/sec
new_Pipe
enumeration:
enumeration:
enumeration:
Device Descriptor:
  12 01 00 02 09 00 02 40 E3 05 10 06 24 92 01 02 00 01 
    VendorID = 05E3, ProductID = 0610, Version = 9224
    Class/Subclass/Protocol = 9(Hub) / 0 / 2(Multi-TT)
    Number of Configurations = 1
enumeration:
enumeration:
Manufacturer: GenesysLogic
enumeration:
Product: USB2.0 Hub
enumeration:
Config data length = 41
enumeration:
Configuration Descriptor:
  09 02 29 00 01 01 00 E0 32 
    NumInterfaces = 1
    ConfigurationValue = 1
  09 04 00 00 01 09 00 01 00 
    Interface = 0
    Number of endpoints = 1
    Class/Subclass/Protocol = 9(Hub) / 0 / 1(Single-TT)
  07 05 81 03 01 00 0C 
    Endpoint = 1 IN
    Type = Interrupt
    Max Size = 1
    Polling Interval = 12
  09 04 00 01 01 09 00 02 00 
    Interface = 0
    Number of endpoints = 1
    Class/Subclass/Protocol = 9(Hub) / 0 / 2(Multi-TT)
  07 05 81 03 01 00 0C 
    Endpoint = 1 IN
    Type = Interrupt
    Max Size = 1
    Polling Interval = 12
enumeration:
USBHub memory usage = 960
USBHub claim_device this=1FFF4220
found possible interface, altsetting=0
found possible interface, altsetting=1
number of interfaces found = 2
best interface is 0 using altsetting 1
*** Device Hub1 5e3:610 - connected ***
  manufacturer: GenesysLogic
  product: USB2.0 Hub
USBHub control callback
09 29 04 E0 00 32 64 00 FF 00 00 00 00 00 00 00 
Hub ports = 4
USBHub control callback
unhandled setup, message = 10B01
USBHub control callback
USBHub control callback
USBHub control callback
USBHub control callback
power turned on to all ports
device addr = 3
new_Pipe
allocate_interrupt_pipe_bandwidth
  ep interval = 12
  interval = 256
 best_bandwidth = 2, at offset = 0
pipe cap1 = F0012103
HUB Callback (member)
status = 0
HUB Callback (member)
status = 0
HUB Callback (member)
status = 0
HUB Callback (member)
status = 0
HUB Callback (member)
status = 0
HUB Callback (member)
status = 0
HUB Callback (member)
status = 0
HUB Callback (member)
status = 0
HUB Callback (member)
status = 0
HUB Callback (member)
status = 0
HUB Callback (member)
status = 0
HUB Callback (member)
status = 0
HUB Callback (member)
status = 0
HUB Callback (member)
status = 0
HUB Callback (member)
status = 0
HUB Callback (member)
status = 0
HUB Callback (member)
status = 0
HUB Callback (member)
status = 0
HUB Callback (member)
status = 0
HUB Callback (member)
status = 0
HUB Callback (member)
status = 0
HUB Callback (member)
status = 0
HUB Callback (member)
status = 0
HUB Callback (member)
status = 0
HUB Callback (member)
status = 0
HUB Callback (member)
status = 0
HUB Callback (member)
status = 0
HUB Callback (member)
status = 0
HUB Callback (member)
status = 0
HUB Callback (member)
status = 0
HUB Callback (member)
status = 0
HUB Callback (member)
status = 0
HUB Callback (member)
status = 0
HUB Callback (member)
status = 0
HUB Callback (member)
status = 0
HUB Callback (member)
status = 0
HUB Callback (member)
status = 0
HUB Callback (member)
status = 0
HUB Callback (member)
status = 0
HUB Callback (member)
status = 0
HUB Callback (member)
status = 0
HUB Callback (member)
status = 0
HUB Callback (member)
status = 0
HUB Callback (member)
status = 0
HUB Callback (member)
status = 0
HUB Callback (member)
status = 0
HUB Callback (member)
status = 0
HUB Callback (member)
status = 0
HUB Callback (member)
status = 0
HUB Callback (member)
status = 0
HUB Callback (member)
status = 0
HUB Callback (member)
status = 0
HUB Callback (member)
status = 0
HUB Callback (member)
status = 0
HUB Callback (member)
status = 0
HUB Callback (member)
status = 0
HUB Callback (member)
status = 0
HUB Callback (member)
status = 0
HUB Callback (member)
status = 0
HUB Callback (member)
status = 0
HUB Callback (member)
status = 0
HUB Callback (member)
status = 0
HUB Callback (member)
status = 1E
getstatus, port = 1
deferred getstatus, port = 2
deferred getstatus, port = 3
deferred getstatus, port = 4
USBHub control callback
01 03 01 00 
New Port Status
  status=10301  port=1
  state=0
  Device is present: 
  Has Power
USBHub control callback
Port Status Cleared, port=1
getstatus, port = 2
USBHub control callback
00 01 01 00 
New Port Status
  status=10100  port=2
  state=0
  Has Power
getstatus, port = 3
USBHub control callback
00 01 01 00 
New Port Status
  status=10100  port=3
  state=0
  Has Power
getstatus, port = 4
USBHub control callback
00 01 01 00 
New Port Status
  status=10100  port=4
  state=0
  Has Power
timer event (20000 us): Debounce Timer, this = 1FFF4220, timer = 1FFF4538
ports in use bitmask = 2
getstatus, port = 1
USBHub control callback
01 03 00 00 
New Port Status
  status=301  port=1
  state=2
  Device is present: 
  Has Power
HUB Callback (member)
status = 1C
getstatus, port = 2
deferred getstatus, port = 3
deferred getstatus, port = 4
USBHub control callback
00 01 01 00 
New Port Status
  status=10100  port=2
  state=0
  Has Power
getstatus, port = 3
USBHub control callback
00 01 01 00 
New Port Status
  status=10100  port=3
  state=0
  Has Power
getstatus, port = 4
USBHub control callback
00 01 01 00 
New Port Status
  status=10100  port=4
  state=0
  Has Power
timer event (19999 us): Debounce Timer, this = 1FFF4220, timer = 1FFF4538
ports in use bitmask = 2
getstatus, port = 1
USBHub control callback
01 03 00 00 
New Port Status
  status=301  port=1
  state=3
  Device is present: 
  Has Power
timer event (20000 us): Debounce Timer, this = 1FFF4220, timer = 1FFF4538
ports in use bitmask = 2
getstatus, port = 1
USBHub control callback
01 03 00 00 
New Port Status
  status=301  port=1
  state=4
  Device is present: 
  Has Power
HUB Callback (member)
status = 1C
getstatus, port = 2
deferred getstatus, port = 3
deferred getstatus, port = 4
USBHub control callback
00 01 01 00 
New Port Status
  status=10100  port=2
  state=0
  Has Power
getstatus, port = 3
USBHub control callback
00 01 01 00 
New Port Status
  status=10100  port=3
  state=0
  Has Power
getstatus, port = 4
USBHub control callback
00 01 01 00 
New Port Status
  status=10100  port=4
  state=0
  Has Power
timer event (20000 us): Debounce Timer, this = 1FFF4220, timer = 1FFF4538
ports in use bitmask = 2
getstatus, port = 1
USBHub control callback
01 03 00 00 
New Port Status
  status=301  port=1
  state=5
  Device is present: 
  Has Power
HUB Callback (member)
status = 1C
getstatus, port = 2
deferred getstatus, port = 3
deferred getstatus, port = 4
USBHub control callback
00 01 01 00 
New Port Status
  status=10100  port=2
  state=0
  Has Power
getstatus, port = 3
USBHub control callback
00 01 01 00 
New Port Status
  status=10100  port=3
  state=0
  Has Power
getstatus, port = 4
USBHub control callback
00 01 01 00 
New Port Status
  status=10100  port=4
  state=0
  Has Power
timer event (20000 us): Debounce Timer, this = 1FFF4220, timer = 1FFF4538
ports in use bitmask = 2
getstatus, port = 1
USBHub control callback
01 03 00 00 
New Port Status
  status=301  port=1
  state=6
  Device is present: 
  Has Power
sending reset
send_setreset
USBHub control callback
unhandled setup, message = 40323
timer event (20000 us): Debounce Timer, this = 1FFF4220, timer = 1FFF4538
ports in use bitmask = 0
HUB Callback (member)
status = 1E
getstatus, port = 1
deferred getstatus, port = 2
deferred getstatus, port = 3
deferred getstatus, port = 4
USBHub control callback
03 03 10 00 
New Port Status
  status=100303  port=1
  state=7
  Device is present: 
  Enabled, speed = 1.5 Mbit/sec
  Has Power
USBHub control callback
unhandled setup, message = 140123
getstatus, port = 2
USBHub control callback
00 01 01 00 
New Port Status
  status=10100  port=2
  state=0
  Has Power
getstatus, port = 3
USBHub control callback
00 01 01 00 
New Port Status
  status=10100  port=3
  state=0
  Has Power
getstatus, port = 4
USBHub control callback
00 01 01 00 
New Port Status
  status=10100  port=4
  state=0
  Has Power
timer event (25000 us): Hello, I'm resettimer, this = 1FFF4220, timer = 1FFF4554
port_doing_reset = 1
PORT_RECOVERY
new_Device: 1.5 Mbit/sec
new_Pipe
enumeration:
enumeration:
enumeration:
Device Descriptor:
  12 01 10 01 00 00 00 08 CA 04 27 00 18 01 01 02 00 01 
    VendorID = 04CA, ProductID = 0027, Version = 0118
    Class/Subclass/Protocol = 0 / 0 / 0
    Number of Configurations = 1
enumeration:
HUB Callback (member)
status = 1C
getstatus, port = 2
deferred getstatus, port = 3
deferred getstatus, port = 4
enumeration:
Manufacturer: Lite-On Technology Corp.
USBHub control callback
00 01 01 00 
New Port Status
  status=10100  port=2
  state=0
  Has Power
getstatus, port = 3
USBHub control callback
00 01 01 00 
New Port Status
  status=10100  port=3
  state=0
  Has Power
getstatus, port = 4
enumeration:
Product: USB Multimedia Keyboard
USBHub control callback
00 01 01 00 
New Port Status
  status=10100  port=4
  state=0
  Has Power
enumeration:
Config data length = 59
enumeration:
Configuration Descriptor:
  09 02 3B 00 02 01 00 A0 32 
    NumInterfaces = 2
    ConfigurationValue = 1
  09 04 00 00 01 03 01 01 00 
    Interface = 0
    Number of endpoints = 1
    Class/Subclass/Protocol = 3(HID) / 1(Boot) / 1(Keyboard)
  09 21 10 01 00 01 22 41 00 
    HID, 1 report descriptor
  07 05 81 03 08 00 18 
    Endpoint = 1 IN
    Type = Interrupt
    Max Size = 8
    Polling Interval = 24
  09 04 01 00 01 03 00 00 00 
    Interface = 1
    Number of endpoints = 1
    Class/Subclass/Protocol = 3(HID) / 0 / 0
  09 21 10 01 00 01 22 9F 00 
    HID, 1 report descriptor
  07 05 82 03 08 00 0A 
    Endpoint = 2 IN
    Type = Interrupt
    Max Size = 8
    Polling Interval = 10
enumeration:
KeyboardController claim this=1FFF2020
HIDParser claim this=1FFF2900
USBHub memory usage = 960
USBHub claim_device this=1FFF2520
KeyboardController claim this=1FFF22A0
HIDParser claim this=1FFF2E00
HIDParser claim this=1FFF3300
HIDParser claim this=1FFF3800
HIDParser claim this=1FFF3D00
JoystickController claim this=1FFF4760
Descriptor 4 = INTERFACE
KeyboardController claim this=1FFF2020
ep = 81
packet size = 8
polling interval = 24
new_Pipe
allocate_interrupt_pipe_bandwidth
 best_bandwidth = 3, at offset = 0, shift= 1
Descriptor 33 = HID
Descriptor 5 = ENDPOINT
Descriptor 4 = INTERFACE
HIDParser claim this=1FFF2900
 bInterfaceClass =    3
 bInterfaceSubClass = 0
 bInterfaceProtocol = 0
HID Parser Claim: 09 04 01 00 01 03 00 00 00 09 21 10 01 00 01 22 9F 00 07 05 82 03 08 00 0A 
report descriptor size = 159
Single endpoint HID:
  endpoint = 82
   size = 8
   interval = 10
new_Pipe
allocate_interrupt_pipe_bandwidth
 best_bandwidth = 3, at offset = 8, shift= 0
Descriptor 33 = HID
Descriptor 5 = ENDPOINT
*** Device KB1 4ca:27 - connected ***
  manufacturer: Lite-On Technology Corp.
  product: USB Multimedia Keyboard
*** Device HID1 4ca:27 - connected ***
  manufacturer: Lite-On Technology Corp.
  product: USB Multimedia Keyboard
control callback (hid)
05 01 09 80 A1 01 85 01 05 01 19 81 29 88 15 00 25 01 95 08 75 01 81 02 C0 05 0C 09 01 A1 01 85 02 15 00 25 01 0A 83 01 0A CD 00 0A B7 00 0A E9 00 0A EA 00 0A E2 00 0A B6 00 0A B5 00 0A 8A 01 0A 92 01 0A 94 01 0A 21 02 0A 23 02 0A 24 02 0A 25 02 0A 26 02 0A 27 02 0A 2A 02 95 12 75 01 81 02 95 01 75 06 81 01 C0 05 09 09 01 A1 01 85 03 15 00 25 01 0A 2C 00 0A 18 00 0A 20 00 0A 1F 00 0A 1C 00 0A 3D 00 0A 41 00 0A 42 00 0A 43 00 0A 46 00 95 0A 75 01 81 02 95 01 75 06 81 01 C0 
  mesg = 22000681
  got report descriptor
Found top level collection 10080
find_driver
  driver 1FFF202C
Found top level collection C0001
find_driver
  driver 1FFF202C
Found top level collection 90001
find_driver
  driver 1FFF202C
  driver 1FFF22AC
  driver 1FFF4200
  driver 1FFF476C
  driver 1FFF4600
Rawhid Claim: 4ca:27 usage: 90001
  driver 1FFF46A0
Rawhid Claim: 4ca:27 usage: 90001
HUB Callback (member)
status = 1C
getstatus, port = 2
deferred getstatus, port = 3
deferred getstatus, port = 4
USBHub control callback
00 01 01 00 
New Port Status
  status=10100  port=2
  state=0
  Has Power
getstatus, port = 3
USBHub control callback
00 01 01 00 
New Port Status
  status=10100  port=3
  state=0
  Has Power
getstatus, port = 4
USBHub control callback
00 01 01 00 
New Port Status
  status=10100  port=4
  state=0
  Has Power
HUB Callback (member)
status = 1C
getstatus, port = 2
deferred getstatus, port = 3
deferred getstatus, port = 4
USBHub control callback
00 01 01 00 
New Port Status
  status=10100  port=2
  state=0
  Has Power
getstatus, port = 3
USBHub control callback
00 01 01 00 
New Port Status
  status=10100  port=3
  state=0
  Has Power
getstatus, port = 4
USBHub control callback
00 01 01 00 
New Port Status
  status=10100  port=4
  state=0
  Has Power
HUB Callback (member)
status = 1C
getstatus, port = 2
deferred getstatus, port = 3
deferred getstatus, port = 4
USBHub control callback
00 01 01 00 
New Port Status
  status=10100  port=2
  state=0
  Has Power
getstatus, port = 3
USBHub control callback
00 01 01 00 
New Port Status
  status=10100  port=3
  state=0
  Has Power
getstatus, port = 4
USBHub control callback
00 01 01 00 
New Port Status
  status=10100  port=4
  state=0
  Has Power
HUB Callback (member)
status = 1C
getstatus, port = 2
deferred getstatus, port = 3
deferred getstatus, port = 4
USBHub control callback
00 01 01 00 
New Port Status
  status=10100  port=2
  state=0
  Has Power
getstatus, port = 3
USBHub control callback
00 01 01 00 
New Port Status
  status=10100  port=3
  state=0
  Has Power
getstatus, port = 4
USBHub control callback
00 01 01 00 
New Port Status
  status=10100  port=4
  state=0
  Has Power
HUB Callback (member)
status = 1C
getstatus, port = 2
deferred getstatus, port = 3
deferred getstatus, port = 4
USBHub control callback
00 01 01 00 
New Port Status
  status=10100  port=2
  state=0
  Has Power
getstatus, port = 3
USBHub control callback
00 01 01 00 
New Port Status
  status=10100  port=3
  state=0
  Has Power
getstatus, port = 4
USBHub control callback
00 01 01 00 
New Port Status
  status=10100  port=4
  state=0
  Has Power
HUB Callback (member)
status = 1C
getstatus, port = 2
deferred getstatus, port = 3
deferred getstatus, port = 4
USBHub control callback
00 01 01 00 
New Port Status
  status=10100  port=2
  state=0
  Has Power
getstatus, port = 3
USBHub control callback
00 01 01 00 
New Port Status
  status=10100  port=3
  state=0
  Has Power
getstatus, port = 4
USBHub control callback
00 01 01 00 
New Port Status
  status=10100  port=4
  state=0
  Has Power
HUB Callback (member)
status = 1C
getstatus, port = 2
deferred getstatus, port = 3
deferred getstatus, port = 4
USBHub control callback
00 01 01 00 
New Port Status
  status=10100  port=2
  state=0
  Has Power
getstatus, port = 3
USBHub control callback
00 01 01 00 
New Port Status
  status=10100  port=3
  state=0
  Has Power
getstatus, port = 4
USBHub control callback
00 01 01 00 
New Port Status
  status=10100  port=4
  state=0
  Has Power
HUB Callback (member)
status = 1C
getstatus, port = 2
deferred getstatus, port = 3
deferred getstatus, port = 4
USBHub control callback
00 01 01 00 
New Port Status
  status=10100  port=2
  state=0
  Has Power
getstatus, port = 3
USBHub control callback
00 01 01 00 
New Port Status
  status=10100  port=3
  state=0
  Has Power
getstatus, port = 4
USBHub control callback
00 01 01 00 
New Port Status
  status=10100  port=4
  state=0
  Has Power
HUB Callback (member)
status = 1C
getstatus, port = 2
deferred getstatus, port = 3
deferred getstatus, port = 4
USBHub control callback
00 01 01 00 
New Port Status
  status=10100  port=2
  state=0
  Has Power
getstatus, port = 3
USBHub control callback
00 01 01 00 
New Port Status
  status=10100  port=3
  state=0
  Has Power
getstatus, port = 4
USBHub control callback
00 01 01 00 
New Port Status
  status=10100  port=4
  state=0
  Has Power
HUB Callback (member)
status = 1C
getstatus, port = 2
deferred getstatus, port = 3
deferred getstatus, port = 4
USBHub control callback
00 01 01 00 
New Port Status
  status=10100  port=2
  state=0
  Has Power
getstatus, port = 3
USBHub control callback
00 01 01 00 
New Port Status
  status=10100  port=3
  state=0
  Has Power
getstatus, port = 4
USBHub control callback
00 01 01 00 
New Port Status
  status=10100  port=4
  state=0
  Has Power
HUB Callback (member)
status = 1C
getstatus, port = 2
deferred getstatus, port = 3
deferred getstatus, port = 4
USBHub control callback
00 01 01 00 
New Port Status
  status=10100  port=2
  state=0
  Has Power
getstatus, port = 3
USBHub control callback
00 01 01 00 
New Port Status
  status=10100  port=3
  state=0
  Has Power
getstatus, port = 4
USBHub control callback
00 01 01 00 
New Port Status
  status=10100  port=4
  state=0
  Has Power
HUB Callback (member)
status = 1C
getstatus, port = 2
deferred getstatus, port = 3
deferred getstatus, port = 4
USBHub control callback
00 01 01 00 
New Port Status
  status=10100  port=2
  state=0
  Has Power
getstatus, port = 3
USBHub control callback
00 01 01 00 
New Port Status
  status=10100  port=3
  state=0
  Has Power
getstatus, port = 4
USBHub control callback
00 01 01 00 
New Port Status
  status=10100  port=4
  state=0
  Has Power
HUB Callback (member)
status = 1C
getstatus, port = 2
deferred getstatus, port = 3
deferred getstatus, port = 4
USBHub control callback
00 01 01 00 
New Port Status
  status=10100  port=2
  state=0
  Has Power
getstatus, port = 3
USBHub control callback
00 01 01 00 
New Port Status
  status=10100  port=3
  state=0
  Has Power
getstatus, port = 4
USBHub control callback
00 01 01 00 
New Port Status
  status=10100  port=4
  state=0
  Has Power
HUB Callback (member)
status = 1C
getstatus, port = 2
deferred getstatus, port = 3
deferred getstatus, port = 4
USBHub control callback
00 01 01 00 
New Port Status
  status=10100  port=2
  state=0
  Has Power
getstatus, port = 3
USBHub control callback
00 01 01 00 
New Port Status
  status=10100  port=3
  state=0
  Has Power
getstatus, port = 4
USBHub control callback
00 01 01 00 
New Port Status
  status=10100  port=4
  state=0
  Has Power
HUB Callback (member)
status = 1C
getstatus, port = 2
deferred getstatus, port = 3
deferred getstatus, port = 4
USBHub control callback
00 01 01 00 
New Port Status
  status=10100  port=2
  state=0
  Has Power
getstatus, port = 3
USBHub control callback
00 01 01 00 
New Port Status
  status=10100  port=3
  state=0
  Has Power
getstatus, port = 4
USBHub control callback
00 01 01 00 
New Port Status
  status=10100  port=4
  state=0
  Has Power
HUB Callback (member)
status = 1C
getstatus, port = 2
deferred getstatus, port = 3
deferred getstatus, port = 4
USBHub control callback
00 01 01 00 
New Port Status
  status=10100  port=2
  state=0
  Has Power
getstatus, port = 3
USBHub control callback
00 01 01 00 
New Port Status
  status=10100  port=3
  state=0
  Has Power
getstatus, port = 4
USBHub control callback
00 01 01 00 
New Port Status
  status=10100  port=4
  state=0
  Has Power
HUB Callback (member)
status = 1C
getstatus, port = 2
deferred getstatus, port = 3
deferred getstatus, port = 4
USBHub control callback
00 01 01 00 
New Port Status
  status=10100  port=2
  state=0
  Has Power
getstatus, port = 3
USBHub control callback
00 01 01 00 
New Port Status
  status=10100  port=3
  state=0
  Has Power
getstatus, port = 4
USBHub control callback
00 01 01 00 
New Port Status
  status=10100  port=4
  state=0
  Has Power
HUB Callback (member)
status = 1C
getstatus, port = 2
deferred getstatus, port = 3
deferred getstatus, port = 4
USBHub control callback
00 01 01 00 
New Port Status
  status=10100  port=2
  state=0
  Has Power
getstatus, port = 3
USBHub control callback
00 01 01 00 
New Port Status
  status=10100  port=3
  state=0
  Has Power
getstatus, port = 4
USBHub control callback
00 01 01 00 
New Port Status
  status=10100  port=4
  state=0
  Has Power
HUB Callback (member)
status = 1C
getstatus, port = 2
deferred getstatus, port = 3
deferred getstatus, port = 4
USBHub control callback
00 01 01 00 
New Port Status
  status=10100  port=2
  state=0
  Has Power
getstatus, port = 3
USBHub control callback
00 01 01 00 
New Port Status
  status=10100  port=3
  state=0
  Has Power
getstatus, port = 4
USBHub control callback
00 01 01 00 
New Port Status
  status=10100  port=4
  state=0
  Has Power
HUB Callback (member)
status = 1C
getstatus, port = 2
deferred getstatus, port = 3
deferred getstatus, port = 4
USBHub control callback
00 01 01 00 
New Port Status
  status=10100  port=2
  state=0
  Has Power
getstatus, port = 3
USBHub control callback
00 01 01 00 
New Port Status
  status=10100  port=3
  state=0
  Has Power
getstatus, port = 4
USBHub control callback
00 01 01 00 
New Port Status
  status=10100  port=4
  state=0
  Has Power
HUB Callback (member)
status = 1C
getstatus, port = 2
deferred getstatus, port = 3
deferred getstatus, port = 4
USBHub control callback
00 01 01 00 
New Port Status
  status=10100  port=2
  state=0
  Has Power
getstatus, port = 3
USBHub control callback
00 01 01 00 
New Port Status
  status=10100  port=3
  state=0
  Has Power
getstatus, port = 4
USBHub control callback
00 01 01 00 
New Port Status
  status=10100  port=4
  state=0
  Has Power
HUB Callback (member)
status = 1C
getstatus, port = 2
deferred getstatus, port = 3
deferred getstatus, port = 4
USBHub control callback
00 01 01 00 
New Port Status
  status=10100  port=2
  state=0
  Has Power
getstatus, port = 3
USBHub control callback
00 01 01 00 
New Port Status
  status=10100  port=3
  state=0
  Has Power
getstatus, port = 4
USBHub control callback
00 01 01 00 
New Port Status
  status=10100  port=4
  state=0
  Has Power
HUB Callback (member)
status = 1C
getstatus, port = 2
deferred getstatus, port = 3
deferred getstatus, port = 4
USBHub control callback
00 01 01 00 
New Port Status
  status=10100  port=2
  state=0
  Has Power
getstatus, port = 3
USBHub control callback
00 01 01 00 
New Port Status
  status=10100  port=3
  state=0
  Has Power
getstatus, port = 4
USBHub control callback
00 01 01 00 
New Port Status
  status=10100  port=4
  state=0
  Has Power
HUB Callback (member)
status = 1C
getstatus, port = 2
deferred getstatus, port = 3
deferred getstatus, port = 4
USBHub control callback
00 01 01 00 
New Port Status
  status=10100  port=2
  state=0
  Has Power
getstatus, port = 3
USBHub control callback
00 01 01 00 
New Port Status
  status=10100  port=3
  state=0
  Has Power
getstatus, port = 4
USBHub control callback
00 01 01 00 
New Port Status
  status=10100  port=4
  state=0
  Has Power
HUB Callback (member)
status = 1C
getstatus, port = 2
deferred getstatus, port = 3
deferred getstatus, port = 4
USBHub control callback
00 01 01 00 
New Port Status
  status=10100  port=2
  state=0
  Has Power
getstatus, port = 3
USBHub control callback
00 01 01 00 
New Port Status
  status=10100  port=3
  state=0
  Has Power
getstatus, port = 4
USBHub control callback
00 01 01 00 
New Port Status
  status=10100  port=4
  state=0
  Has Power
HUB Callback (member)
status = 1C
getstatus, port = 2
deferred getstatus, port = 3
deferred getstatus, port = 4
USBHub control callback
00 01 01 00 
New Port Status
  status=10100  port=2
  state=0
  Has Power
getstatus, port = 3
USBHub control callback
00 01 01 00 
New Port Status
  status=10100  port=3
  state=0
  Has Power
getstatus, port = 4
USBHub control callback
00 01 01 00 
New Port Status
  status=10100  port=4
  state=0
  Has Power
HUB Callback (member)
status = 1C
getstatus, port = 2
deferred getstatus, port = 3
deferred getstatus, port = 4
USBHub control callback
00 01 01 00 
New Port Status
  status=10100  port=2
  state=0
  Has Power
getstatus, port = 3
USBHub control callback
00 01 01 00 
New Port Status
  status=10100  port=3
  state=0
  Has Power
getstatus, port = 4
USBHub control callback
00 01 01 00 
New Port Status
  status=10100  port=4
  state=0
  Has Power
HUB Callback (member)
status = 1C
getstatus, port = 2
deferred getstatus, port = 3
deferred getstatus, port = 4
USBHub control callback
00 01 01 00 
New Port Status
  status=10100  port=2
  state=0
  Has Power
getstatus, port = 3
USBHub control callback
00 01 01 00 
New Port Status
  status=10100  port=3
  state=0
  Has Power
getstatus, port = 4
USBHub control callback
00 01 01 00 
New Port Status
  status=10100  port=4
  state=0
  Has Power
HUB Callback (member)
status = 1C
getstatus, port = 2
deferred getstatus, port = 3
deferred getstatus, port = 4
USBHub control callback
00 01 01 00 
New Port Status
  status=10100  port=2
  state=0
  Has Power
getstatus, port = 3
USBHub control callback
00 01 01 00 
New Port Status
  status=10100  port=3
  state=0
  Has Power
getstatus, port = 4
USBHub control callback
00 01 01 00 
New Port Status
  status=10100  port=4
  state=0
  Has Power
port change: 1C00100A
    disconnect
disconnect_Device:
USBDriver (available_drivers) list: 1FFF2520 -> 1FFF22A0 -> 1FFF2E00 -> 1FFF3300 -> 1FFF3800 -> 1FFF3D00 -> 1FFF4760
USBDriver (dev->drivers) list: 1FFF4220
disconnect driver 1FFF4220
disconnect_Device:
USBDriver (available_drivers) list: 1FFF2520 -> 1FFF22A0 -> 1FFF2E00 -> 1FFF3300 -> 1FFF3800 -> 1FFF3D00 -> 1FFF4760
USBDriver (dev->drivers) list: 1FFF2900 -> 1FFF2020
disconnect driver 1FFF2900
disconnect driver 1FFF2020
USBDriver (available_drivers) list: 1FFF2020 -> 1FFF2900 -> 1FFF2520 -> 1FFF22A0 -> 1FFF2E00 -> 1FFF3300 -> 1FFF3800 -> 1FFF3D00 -> 1FFF4760
delete_Pipe 1FFF4040
  Free transfers
    * 536827200 * remove * free
    * 536827008
    * 536824672
  Free transfers attached to QH
    * 536823392
* Delete Pipe completed
delete_Pipe 1FFF48C0
  Free transfers
    * 536827008 * remove * free
    * 536824672
  Free transfers attached to QH
    * 536827072
* Delete Pipe completed
delete_Pipe 1FFF4920
  remove QH from async schedule
  Free transfers
  Free transfers attached to QH
    * 536824480
* Delete Pipe completed
removed Device_t from devlist
USBDriver (available_drivers) list: 1FFF4220 -> 1FFF2020 -> 1FFF2900 -> 1FFF2520 -> 1FFF22A0 -> 1FFF2E00 -> 1FFF3300 -> 1FFF3800 -> 1FFF3D00 -> 1FFF4760
delete_Pipe 1FFF4980
  Free transfers
    * 536824672 * remove * defer free until QH
  Free transfers attached to QH
    * 536824672
    * 536824544
* Delete Pipe completed
delete_Pipe 1FFF5400
  shut down async schedule
  Free transfers
  Free transfers attached to QH
    * 536823552
* Delete Pipe completed
removed Device_t from devlist
  disable
*** Device Hub1 - disconnected ***
*** Device KB1 - disconnected ***
*** Device HID1 - disconnected ***

I disconnected it quickly as it would continue to spewing...

I purchased this one from Amazon: https://smile.amazon.com/gp/product/B00Q2ONMI0/ref=oh_aui_search_detailpage?ie=UTF8&psc=1
 
Status
Not open for further replies.
Back
Top