Greetings !

I'm trying to use xeno_16550A driver to read a stream of high-frequency data
(~50 byte packet each 20 msec at 57600 baud) with low latencies.

After successful installation of xeno_16550A.ko driver module and 
initialization of rtser0 device, an attempt to read from the device fails :
rt_dev_read returns -5 (Input/output error),
and subsequent ioctl RTSER_RTIOC_GET_STATUS shows the value of 
LSR=0x62 and MSR=0x5.

The data from rtser0 device can be read successfully after following sequence :
 - rmmod xeno_16550A
 - init /dev/ttyS0 to use standard Linux 8250 driver with setserial
 - start and stop reading from /dev/ttyS0
 - insmod xeno_16550A with valid parameters

Naturally, /dev/ttyS0 and rtser0 point to the same built-in serial port 
at 0x3F8.

The problem doesn't appear when I send to the port ocassional bursts of data
(sized around 20-30 bytes), i.e. rtser0 can be read from consistently after 
each restart of the utility (i use modified cross-link with truncated write 
functionality).

It seems like that xeno_16550A is unable to handle overflow of UART Rx buffer,
which is flushed on initialization by 8250 driver.

Could anybody suggest where in sources (of both 16550A and 8250) to look for 
the solution ?

Thanks, Eugene


Evgeny Zemskov, Transas Ltd
[email protected]
Office phone # +7 812 3253131 add. 274-03
Cell phone # +7 952 3943129
_______________________________________________
Xenomai mailing list
[email protected]
http://www.xenomai.org/mailman/listinfo/xenomai

Reply via email to