IMX6Q uart FIFO overrun

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

IMX6Q uart FIFO overrun

1,119 Views
mostion
Contributor II

Hi,

   We use the IMX6 processor for some time now. But recently, we need use one uart port at 460800 baud, and then, we found some system error message said Rx FIFO overrun. We check the drivers code repeatedly, and make some test for it, but we have no idea for this issue. Anyway, if the baud is larger than 115200, like 230400, the Rx FIFO always overrun. We attempt to disable all function unused, just remain some necessities about uart, but it not worked.

   By the way, we have a platform used the IMX535 processor run same baud on uart, but it seemed everything is OK.

   On the other side, we update some later driver code, it also can not fix this. Our Linux kernel is 3.10.17.

   Please, if some guys have any ideas about this, give some suggestions.

   Thanks!

0 Kudos
3 Replies

694 Views
weidong_sun
NXP TechSupport
NXP TechSupport

Hello Mostion,

    The issue you encountered should be the reason why processor can't read RX FIFO in time, so you had better use SDMA for UART communications. This is can be set in device tree.


Have a great day,
TIC  weidong

-----------------------------------------------------------------------------------------------------------------------
Note: If this post answers your question, please click the Correct Answer button. Thank you!
-----------------------------------------------------------------------------------------------------------------------

0 Kudos

694 Views
mostion
Contributor II

Hi weidong.sun,

   I update the driver code drivers/tty/serial/imx.c to 3.18.30 kernel, and modified it to enable SDMA on UART whether flow control enabled or disabled. I set the CPU scaling governor to performance incidentally. However, it seems just better than before. The RX FIFO still overrun random. Is it necessary to add some hardware flow control like CTS/RTS to ensure enough baud rate on UART?

0 Kudos

694 Views
mostion
Contributor II

Hi Wigros,

   I hope we can enable SDMA for UART, but the UART design just have RX/TX line connected to TTL which means we could not enable any flow control functions. I have checked the driver code, if we want to enable the SDMA for UART, the flow control need to enabled. Is it possible that I modify the code to enable SDMA at this platform? If as you said, do you means that this processor can't support such large baud rate for UART communication without flow control? 

   And why our other platform which used IMX535 seems everything is OK? That platform design is same as this one, just the processor is different. If IMX6Q can't support this baud rate, the IMX535 ought to be same more.

   Looking forward to your reply.

   

Best Regards.

0 Kudos