This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

eDMA + GPMC timeout detection



We are using 'wait-on-read' functionality of GPMC to communicate with external FPGA . We have enabled the time-out feature of the GPMC to prevent the system from hanging if FPGA becomes unresponsive. When we use ARM MPU to read over GPMC, a timeout generates a segfault. However,  when we use eDMA to read a buffer of data over GPMC and time-out occurs, the eDMA transaction completes like normal, and the read buffer is filled with '0'.  The "edma_error" interrupt does not fire, and there does not seem to be any other indication of the error having occurred. We are looking for a way to detect the GPMC time-out while using eDMA. 

Any ideas?


Thanks.

P.S. Platform is AM335. Linux OS version 3.8.13. Using GPMC and eDMA drivers  bundled with the OS

  • Hi Mikhail,

    According to section 7.1.3.3.8.4 in the AM335X TRM Rev. K:

    "The GPMC does not generate interrupts on these errors. True abort to the MPU or interrupt generation is handled at the interconnect level."

    I will ask someone from the factory team to explain if what you need is possible.