serial console

Mark Hahn hahn at physics.mcmaster.ca
Tue Aug 20 08:24:55 PDT 2002


> console=ttyS0,9600n8r to my kernel parameters and nothing is connected to the 

from a quick look at drivers/char/serial.c, 'r' results in the
ASYNC_CONS_FLOW tells it to wait for CTS:

static inline void wait_for_xmitr(struct async_struct *info)
{
        unsigned int status, tmout = 1000000;

        do {
                status = serial_in(info, UART_LSR);

                if (status & UART_LSR_BI)
                        lsr_break_flag = UART_LSR_BI;
                
                if (--tmout == 0)
                        break;
        } while((status & BOTH_EMPTY) != BOTH_EMPTY);

        /* Wait for flow control if necessary */
        if (info->flags & ASYNC_CONS_FLOW) {
                tmout = 1000000;
                while (--tmout &&
                       ((serial_in(info, UART_MSR) & UART_MSR_CTS) == 0));
        }       
}

since one serial_in would take O(1us), I think each byte transmitted would
take about a second, rather than 1ms, which matches your symptoms...




More information about the Beowulf mailing list