4 Replies Latest reply on Apr 19, 2016 10:08 AM by MikeW

    Intel® 6300ESB I/O Controller, USB UHCI Retry timing

    MikeW Green Belt

      This question is regarding Table 95, Queue Advance Criteria, in Section 5.17.3.4 of the 6300ESB I/O Controller datasheet:

       

      http://www.intel.com/content/dam/doc/datasheet/6300esb-io-controller-hub-datasheet.pdf

       

      This table shows that on a Function-to-Host (IN) operation that receives a NAK response, the 6300ESB with "Retry Q Element", meaning it will retransmit the same IN packet to the USB Device that NAKed the previous attempt.  This behavior is specified by the Transfer Descriptor (TD) for the current Queue Element.

       

      My question is, what controls the timing of this re-tried operation in the event of a NAK for an Asynchronous TD (Bulk transfer)?  What happens when the Device needs time to prepare a response and NAKs several times?

       

      The TDs in the Asynchronous list are supposed to be tried after the Timed (Isochronous) and Control transfers, using the time remaining in the 1ms Frame.  For simplicity, assume there are no Timed transfers and only 1 Asynchronous TD (IN) that is repeatedly NAKed.

       

      1) Does the "Retry Q Element" decision mean that the 6300 will retry the NAKed IN operation immediately, within the same Frame, using the min Inter Packet Delay from the USB spec (or something close to that) to determine when to resend the next IN packet to the USB Device?

       

      2) Is there some way to program the 6300ESB or a Queue Head or Transfer Descriptor setting that would cause the next "Retry Q Element" IN packet to be sent in the next Frame, about 1ms later?  This would give the USB Device more time to build its response before having to service the IN packet again.

       

      Thank you,

      Mike