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.

Unwanted interaction between EDMA3 and UART on OMAP L138

Hi all,

I am working on this system that uses the OMAP L138.

We have an extremely slow device on the EMIFA (Async interface) from where data is copied into the main DDR memory, currently using a copy loop running on the ARM (which runs linux)

I have written some code to use EDMA3 (on the ARM) to do this transfer, using the kernel edma functionality (available from arch/arm/mach-davinci/dma.c, edma.h).

Everything seems to work fine except that that I am now getting Overrun Error from the UART. We have some unrelated code that periodically uses the UART and it seems that when this overlaps with the DMA transfer (which can last up to 200 millisec) the UART generates an overrun.

Note that the UART driver DOES NOT uses EDMA to read/write its FIFOs.

Has anyone seen anything similar in the past?

thanks

  • Hi claudio potenza ,

    There are two FIFO modes available in the UART configuration, FIFO interrupt mode and FIFO poll mode, please check once which mode is configured.

    How do you see this over run error through CCS register view or through CPU by checking the bits in the line status register or interrupt?

    Please check the auto flow control options to avoid over run errors.

    Regards

    Antony