On 2/1/07, Alan <[EMAIL PROTECTED]> wrote:
> When I telnet my board and run the following command: > ---- root:~> stty -F /dev/ttyS0 -crtscts > > I got the following result from the console of my board: > ---- root:~>new_termios flag: 0x1cb1, old_termios flag: 0x80001cb1 > > That's correct. CRTSCTS flag is clear > > But when I type "ENTER" key on the console, I got: > ----root:~>new_termios flag: 0x80001cb1, old_termios flag: 0x1cb1What code is running on that console at the time. Most likely that user code is also saving/restoring terminal settings so overwrite yours
I implemented the serial driver by myself, :). See the attachment. I didn't save/restore terminal setting in the my_set_termios(). I trace this back till tty_tioctl(..., unsigned long arg), everytime I type "ENTER" key, the argument "arg" passed into tty_ioctl() is the address of a termios structure, which include wrong c_cflag. It seems once the flag is assigned by uart_set_options the first time, it's never changed. So even userspace application changed the flag, it will be set back soon. I'll dig into it. But I still think it's a bug. -Aubrey
bfin_5xx.c
Description: Binary data