Subject: port-i386/2043: comprobeESP() marks non-ESP boards as ESP.
To: None <gnats-bugs@NetBSD.ORG>
From: Simon J. Gerraty <sjg@zen.void.oz.au>
List: netbsd-bugs
Date: 02/07/1996 23:26:15
>Number: 2043
>Category: port-i386
>Synopsis: comprobeESP() marks non-ESP boards as ESP.
>Confidential: no
>Severity: serious
>Priority: high
>Responsible: gnats-admin (GNATS administrator)
>State: open
>Class: sw-bug
>Submitter-Id: net
>Arrival-Date: Wed Feb 7 10:20:05 1996
>Last-Modified:
>Originator: Simon J. Gerraty
>Organization:
Zen Programming...
>Release: Feb 03
>Environment:
System: NetBSD zen.void.oz.au 1.1A-1996.02.03 NetBSD 1.1A-1996.02.03 (ZEN) #1: Wed Feb 7 22:48:27 EST 1996 root@zen.void.oz.au:/f1/usr.src/sys/arch/i386/compile/ZEN i386
>Description:
dev/isa/com.c: comprobeESP() probes my non-ESP tty02 port as a full
blown ESP when it is not.
Treating the port as an ESP one effectively disabled transmission on
the port - which happened to be the one for my Internet feed.
>How-To-Repeat:
Have a cheap I/O card configured at port 0x2e8 with a 16550a uart:
/netbsd: com0 at isa0 port 0x3f8-0x3ff irq 4: ns8250 or ns16
/netbsd: com1 at isa0 port 0x2f8-0x2ff irq 3: ns8250 or ns16
/netbsd: com2 at isa0 port 0x2e8-0x2ef irq 9: ESP: ns16550a, working fifo
I simply made comprobeESP() return imediately to get back on the net,
but that is not a fix.
Perhaps there should be a flag in the kernel config to enable the ESP
probe.
>Fix:
The following got me going again.
RCS file: /local/src/master/usr.src/sys/dev/isa/com.c,v
retrieving revision 1.3
diff -c -b -r1.3 com.c
*** com.c 1996/01/30 06:02:55 1.3
--- com.c 1996/02/07 12:24:13
***************
*** 255,260 ****
--- 255,261 ----
int com_iobase;
struct com_softc *sc;
{
+ #ifndef HAVE_COM_ESP
char val;
char dips;
int combaselist[] = { 0x3f8, 0x2f8, 0x3e8, 0x2e8 };
***************
*** 311,316 ****
--- 312,318 ----
*/
SET(sc->sc_hwflags, COM_HW_ESP);
+ #endif
}
>Audit-Trail:
>Unformatted: