Normal 0 false false false EN-US X-NONE X-NONE MicrosoftInternetExplorer4
Hello,
We are seeing a condition in which 2 QDMA transfers are submitted to the EDMA controller, they both transfer all of their data, but only one of them interrupts the DSP indicating it is finished. These transfers are submitted such that the second is submitted while the first transfer is still in process. The first transfer to complete always interrupts the DSP to indicate it is finished, but the second transfer to complete never interrupts the DSP. When these two transfers happen independently (not overlapping in time), they both finish and interrupt the DSP as programmed, but we've found this race condition where if the two transfers line up over top of each other, the second one to finish does not interrupt the DSP.
Both transfers are to/from the EMIF bus. We have verified that the transfers complete by looking at the EMIF signals on a logic analyzer.
To reproduce:
Case 1
Submit transfer 'A' to the EDMA controller. While it is transferring data, submit transfer 'B' at a equal or lower priority. Transfer A finishes and interrupts the DSP, then transfer B starts and finishes, but does not interrupt the DSP.
Case 2
Submit transfer 'B' to the EDMA controller. While it is transferring data, submit transfer 'A' at a higher priority. Transfer B starts, then transfer A takes over because it has higher priority. Transfer A then finishes and interrupts the DSP. Transfer B finishes, but never interrupts the DSP.
Any thoughts on what might cause this?
Thanks for your help!
Jeff