Linux VF50 UART stops after receiving invalid data

Hello,

on my linux system with Toradex kernel 4.1.5-v2.5b1+gdb509ca
the serial communication using ttyLP1 RX stops working after receiving some invalid data bytes.
(LIN Bus collisions in my case)
It can be reproduced by setting the wrong baudrate and sending some bytes:

Device:

root@colibri-vf:~# stty -F /dev/ttyLP1 19200
root@colibri-vf:~# cat /dev/ttyLP1 

PC:

~$ stty -F /dev/ttyUSB1 19200
~$ echo "Hello1" > /dev/ttyUSB1 
~$ stty -F /dev/ttyUSB1 9600
~$ echo "Hello2" > /dev/ttyUSB1 
~$ stty -F /dev/ttyUSB1 19200
~$ echo "Hello3" > /dev/ttyUSB1

Only the “Hello1” is received by the device.
The other direction (device → host) still works.

Is there a known solution for this?

Thank you very much,

Sandro

Unfortunately i couldn’t reproduce this issue at my end, i used CP2102 USB to UART bridge.

root@colibri-vf:~# cat /dev/ttyLP1
Hello1

��f�����@�@�Hello3

Thank you for your reply.
The current image 2.5 and indeed it works.
After downloading an older Toradex 2.5Beta image I found the same problem.
I think this fixed the problem:
http://git.toradex.com/cgit/linux-toradex.git/commit/?h=toradex_vf_4.1&id=db6b1f8270757539d90422ee5294bc25ff13a040
I will try to get a newer kernel running in my image.

@sst, as you already figured out, the newer image should resolve this problem.

According to the version string in your initial question, you were using V2.5 Beta 1. With V2.5 Beta 2, we disabled the DMA mode by default since it suffers several issue (see also our release notes Single Board Computers (SBCs), Computer on Modules, System on Modules).

Since most changes between Beta 1 and Beta 3 are kernel related anyway, an upgrade of the kernel only should work without problems (we stayed on the same OE release for the root file system).