We are using a Full Speed (12 Mbps) USB Device that has a problem. When the Device receives an IN token and its response is not ready, it NAKs the token. This causes the Host Controller to *immediately* (<1us later) re-send the IN packet and get another NAK. If this process repeats enough, the USB Device can reach a state where it locks up before its DATA response is built.
This is a confirmed problem in the USB Device in that the Host Controller satisfies the min Inter Packet Delay (2 bit time = 167ns) requirement of the USB spec before retrying the NAKed IN token. However, we are still looking for a workaround in the Q87 and other Intel i7 core chipsets.
Older PCs seem to have a backoff time of 1ms before NAKed packets are retried. With the introduction of USB 3.0 and the desire to maximize USB throughput, I imagine that the Host Controller backoff time was reduced close to the spec minimum to improve performance. The USB Device in question works fine in PCs where the Host Controller retry time is 1ms as it has time to build its response.
But I was wondering if this parameter -- the amount of time that the USB Host Controller waits before retrying a NAKed packet -- is somehow configurable. I am wondering if there is chipset driver, registry parameter, BIOS setting, or firmware that can be modified to affect this behavior.
Any inputs would be appreciated.
Thanks for your reply.
We have received your email.
In order to better understand this situation, we would like to address the following questions:
Could you clarify us if this situation happens with your design or with a third party motherboard? In case that it is related to a motherboard, could you please tell us the manufacturer and model of it? If it is your design, could please let us know the complete part number of the processor?
Could you please update the BIOS and drivers to the latest versions, replicate the listed circumstance, and let us know the effects of these changes? By the way, please provide us the name of the BIOS developer and versions related to the cited situation.
Could you please inform us if the problem occurs with specific or any USB high Speed device? In case that you disregard this information, please try to reproduce this problem with USB High Speed devices manufactured by different companies, also diverse characteristics, and inform us the outcomes. By the way, please give us all the information of the affected USB devices.
Please give us all the information requested through the previous questions to better understand this issue.
Thanks again for your cooperation to solve this case.
As noted in the original question, this is a confirmed problem in the Full Speed (12 Mbps) USB Device. What we are trying to to is impact the behavior of the Intel USB Host Controller to accommodate this Device. Ideally, we could get the USB Host Controller to increase the amount of time it takes to retry an IN command that is NAKed by the downstream Device.
Is there an engineer familiar with the Q87 chipset USB Host Controller that I can talk to about this issue?
Thanks for your clarification.
The information that may help you is stated in erratum 5, on page 12 of the http://www.intel.com/content/www/us/en/chipsets/8-series-chipset-pch-spec-update.html?wapkw=328905 Intel(R) 8/C220 Series Chipset Platform Controller Hub: Specification Update document # 328905.
In case that this document is inaccessible to you, an Privileged Embedded Design Center (EDC) account is needed. To learn more about the benefits of a Privileged go to /www.intel.com/content/www/us/en/embedded/embedded-design-center-support.html http://www.intel.com/content/www/us/en/embedded/embedded-design-center-support.html. Then click on "APPLY NOW" found under the heading, "Apply for extras with privileged access to the Intel EDC¹". After you submit the application, please let us know and we will expedite the review of your application.
Please let us know if this information is useful to you.