Author Topic: EHCI and using PING  (Read 4639 times)

erdmann

  • Member
  • ***
  • Posts: 43
EHCI and using PING
« on: October 10, 2016, 11:14:51 am »
The EHCI spec says that for high speed devices you can specify the "PING" bit (as the lowest bit in the status word) for an OUT transaction in order to generate a PING packet instead of an OUT packet (for bulk and control requests) and that eventually an OUT transaction will be performed (if device indicates it has room to receive data).

1) It's unclear to me if the HW will transparently reissue a PING without finishing up with the TD that is currently worked on or if I need to somehow add additional TDs in SW whenever a PING is needed (because device responds with NYET) instead of an OUT transaction.

2) for a control request, there is a mix of SETUP, IN and OUT packets where OUT packets can either be data (for data phase out transfer) or status (for data phase in transfer): am I only allowed to set the "PING" bit for the TDs for which I set PID=OUT ?

Jan Axelson

  • Administrator
  • Frequent Contributor
  • *****
  • Posts: 3033
    • Lakeview Research
Re: EHCI and using PING
« Reply #1 on: October 10, 2016, 08:31:55 pm »
Are you developing an EHCI controller?

From 8.5.1, NAK Limiting via Ping Flow Control, in the USB 2.0 spec:

Control endpoints must support this protocol for an OUT transaction in the data and status
stages. The control Setup stage must not support the PING protocol.