Subject: Data in the FIFO (sys/dev/isa/com.c) causing a hard hang
To: None <tech-kern@NetBSD.ORG>
From: Scott Reynolds <scottr@plexus.com>
List: tech-kern
Date: 05/03/1995 10:09:29
I've been looking into a problem that I have with booting NetBSD/i386
when a Logitech MouseMan CR-32 3-button mouse is plugged into the serial
port. As it turns out, I tracked it to the first time comopen() is
called on that particular port; subsequent opens run just fine, and if
you unplug the mouse before you cold boot it will work just fine if you
plug it in after 'ttyflags -a' is run.
In comopen() I further traced the problem to a hang on the splx() at the
end of the function. This hang occurs if there is data in the receive
buffer (LSR_RXRDY is set in the line status). Can someone suggest the
canonical method to flush the receive FIFO, if such a method exists? I'd
like to do this in comopen(), ideally, but I'm open to suggestion.
--scott