Question

In Windows XP SP3 is there a registry key or some setting, maybe even at the device level in the registry, that an EHCI USB 2.0 High Speed hub can be enumerated as a UHCI or OHCI full speed device at the host level?

I am seeing an issue where a USB 1.1 full speed device is deadlocked due to infinitely NAKd split transactions with the transaction translator buffer on a high speed hub. This only happens under certain circumstances the full speed device is connected behind a 2.0 high speed hub only in XP SP3. I have opened an issue with Microsoft and they have confirmed this is a known issue and there is no Hotfix for the issue (nor will one be developed). It has been corrected in Vista+.

If the device is connected directly to the host controller, or has a full speed hub upstream of the high speed hub the problem goes away (because there are no split transactions). So, if there is a way to force the high speed hub to enumerate as a full speed device then it may help us out.

Furthermore, the hardware design is set in stone. Systems have been developed and there is no way to insert a full speed hub chip anywhere in the design, or hook up the devices directly to the root hub. And finally, it is not an option to upgrade the OS on the systems.

Was it helpful?

Solution

After some work and research with help of Microsoft the current conclusion is that there is not a way to do this.

The workaround that we will be using is to perform a PnP reset on the bus to stop the infinite NAKs, then reopen the port to begin communication again. This is not very clean, but it will solve the problem.

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top