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.

OMAP L-137, UART driver using the EDMA3

Other Parts Discussed in Thread: OMAP-L137

I'm writing a Linux UART driver for the OMAP-L137 which takes advantage of the EDMA3 controller present on the chip.

Basically, for each byte of a buffer to transmit, the EDMA3 copies a byte to the UART, the UART sends it and rises an event which trigger the EDMA3 controller to copy the next byte to the UART. At the end of the buffer, the DMA interrupt reloads the DMA PaRAM if more data has to be sent.

In the current situation, I cannot avoid to have an error in the Event Missed Register at the end of the DMA transfer (ACnt/BCnt/CCnt = 0 and last event form UART received).

I tried to clean/set back the Event Enable Register in the DMA interruption or link the DMA channel to a dummy transfer but, honestly, those solutions seems clunky and, they do not solve the problem especially if a transfer of 1 byte is requested.

Does somebody has some recommendations to solve this problem?