LinuxBSP (linux-2.6.10) and Serial Driver Problem

Mar 06, 2007 0 Replies

We are using LinuxBSP (linux-2.6.10) with a ColdFire MCF5474. The second internal UART is used to communicate with a ColdFire MCF5232 using RTS/CTS flow control.



The problem we have is RTS gets turned off by the MCF5474 and does not get turned back on. Here is the initialization code:



int sfd; struct termios new_settings;



sfd = open( "/dev/tts/1", ( O_RDWR | O_NOCTTY ) );



if ( 0 flip.count >= TTY_FLIPBUF_SIZE). This will cause the UART fifo to fill up, which eventually turns RTS off. If (tty->real_raw) in n_tty_receive_buf (in n_tty.c) is set, then (tty->driver->flush_chars(tty)) does not get called. If (tty->driver->flush_chars(tty)) does get called, then receive interrupts will get enabled, which will read the fifo and cause RTS to be turned ON. However, I do not see how receive interrupts get enabled when (tty->real_raw) is set.



Has anyone seen this problem? Was (tty->driver->flush_chars(tty)) also suppose to be called in RAW mode (in n_tty_receive_buf)? What is the correct solution?



Thanks, Bill


Join the Discussion

Have something to add? Share your thoughts — no account required.

Didn't find your answer?

Ask the community — no account required