Tool/software: Linux
Hi,
I have two customized board, both have few changes made from 'am335x-boneblack'.
I need to send data from one board to another, via one uart port, at baudrate 3686400.
According to the manual, the baudrate 3686400 is the highest one it support.
Two boards running with the same software version:
ti-processor-sdk-linux-am335x-evm-05.02.00.10, the original kernel version is 4.14.79, later I updated it to the newest one from github, which kernel version is 4.14.97.
Then, sending 2MBytes from one board to another one, via uart4 (on both sides).
If receiving without DMA, 400Bytes ~ 10KBytes will lost.
If receiving with DMA, 0 ~ 10KBytes of the 2MBytes will lost.
It looks like the DMA can't improve the reliability of uart when it working at 3686400.
By instructions "cat /proc/interrupts | grep dma" and "cat /proc/interrupts | serial", I can tell how many interrupts raised in the whole test duration.
If receiving without DMA, there are about 18000 times of serial interrupts raised, no DMA interrupt.
If receiving with DMA, there are about 35000 times of serial interrupts and 35000 times of dma interrupts raised.
It looks like am335x will get heavier load without extra repay when the uart dma is enabled.
So, do you have any test results about the uart of am335x when it working at baudrate 3686400?
Can you explain the raised interrupts load when uart dma is enabled?
Best Regards,