Hi.
We are attempting to use the EDMA with UARTs on the AM335x. This is mostly working, but we sometimes see a problem as the system starts up and data starts to flow.
The EDMA driver in the Linux kernel (arch/arm/common/edma.c) has an error interrupt handler, dma_ccerr_handler(). According to the TRM, this interrupt can be generated when there is a missed DMA event (latched in EMR or EMRH), a missed QDMA event (latched in QEMR), a threshold exceeded (latched in CCERR) or a TCC error (also latched in CCERR).
In the condition that we are experiencing, the interrupt handler checks those four error registers, but does not find any error event. All of the registers are 0. If the interrupt handler returns IRQ_NONE, the kernel masks interrupt 14 since no driver has claimed it. This causes problems with future DMA processing.
What can cause EDMAERRINT other then the sources listed TRM and indicated by the four registers?
Regards,
Steve