I'm working on some custom hardware and I'm getting garbled console
output.

I noticed that siocntxwait looks like this:

static void
siocntxwait(iobase)
        Port_t  iobase;
{
        int     timo;

        /*
         * Wait for any pending transmission to finish.  Required to avoid
         * the UART lockup bug when the speed is changed, and for normal
         * transmits.
         */
        timo = 100000;
        while ((inb(iobase + com_lsr) & (LSR_TSRE | LSR_TXRDY))
               != (LSR_TSRE | LSR_TXRDY) && --timo != 0)
                ;
}

Shouldn't there be some sort of DELAY in there?

My platform has an emulated serial device in hardware, so it
may be that the loop could run a LOT faster than transmit can
happen...

any ideas of what the DELAY should be?


-- 
- Alfred Perlstein
_______________________________________________
freebsd-hackers@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-hackers
To unsubscribe, send any mail to "[EMAIL PROTECTED]"

Reply via email to