We are developing USB devices with DWC3 USB 3.0 Controller.
The USB device operates in the high speed AUDIO class.
The AUDIO class uses isochronous transfer.
Isochronous transfer works with circular buffer in "4 TRBs".
"4 TRBs" consist of "3 Normal-TRBs" and "1 Link-TRB".
When the isochronous transfer starts, the firmware requests the first TRB with the start transfer command.
When the USB host makes an isochronous transfer and the transfer is complete, the DWC3 USB 3.0 Controller will generate an XferInProgress Event.
At the XferInProgress Event, the firmware updates the completed Normal-TRB HWO bit and buffer address and processes the UpdateTransfer command.
After that, the same process (TRB update and UpdateTransfer command) is repeated every time an XferInProgress Event occurs.
Isochronous transfer is operating normally by repeating this process.
However, AM5708 does not have a description of DWC3 USB 3.0 Controller.
Therefore, please let me know if the above Update Transfer command is used correctly.
There is a specification that the UpdateTransfer command is not required if the HWO bit is updated to 1 by the time DWC3 fetches TRB.
But I don't care about fetching and always process the UpdateTransfer command.
Is it correct to always process this UpdateTransfer command?
Also, does the DWC3 specification that the Update Transfer command is not required apply to DWC3 of AM5708?