Subject: kern/29612: com console on Soekris Net4501 is delayed...
To: None <kern-bug-people@netbsd.org, gnats-admin@netbsd.org,>
From: None <ignatios@beverly.kleinbus.org>
List: netbsd-bugs
Date: 03/06/2005 19:27:00
>Number:         29612
>Category:       kern
>Synopsis:       com console on Soekris Net4501 is delayed.
>Confidential:   no
>Severity:       serious
>Priority:       high
>Responsible:    kern-bug-people
>State:          open
>Class:          sw-bug
>Submitter-Id:   net
>Arrival-Date:   Sun Mar 06 19:27:00 +0000 2005
>Originator:     ignatios@beverly.kleinbus.org
>Release:        NetBSD 2.0
>Organization:
	none.
>Environment:
System: NetBSD netgw 2.0 NetBSD 2.0 (NETGW) #3: Sun Mar  6 14:02:49
UTC 2005 ignatios@sinus:/usr/local/src/2.0/oi/sys/arch/i386/compile/NETGW i386
Architecture: i386
Machine: i386
dmesg extract:
cpu0 at mainbus0: (uniprocessor)
cpu0: AMD Am5x86 W/B 133/160 (486-class), id 0x4f4
cpu0: features 1<FPU>
pci0 at mainbus0 bus 0: configuration mode 1
pci0: i/o space, memory space enabled, rd/line, rd/mult, wr/inv ok
elansc0 at pci0 dev 0 function 0: AMD Elan SC520 System Controller
elansc0: product 0 stepping 0.1, CPU clock 133MHz
...
isa0 at mainbus0
com0 at isa0 port 0x3f8-0x3ff irq 4: ns16550a, working fifo
com0: console
com1 at isa0 port 0x2f8-0x2ff irq 3: ns16550a, working fifo

Full dmesg available on request.

>Description:
	On a Soekris 4501, 2.0 kernels--- either NET4501 (with IPSec added)
	or netbsd-INSTALL.gz --- only display the next bunch of output
	(next character when typing at the command line, next couple of
	lines when a command outputs a lot of text) after sending a character
	to the machine.
>How-To-Repeat:
	boot it. Try to control it via a Transtec VT220 clone.
>Fix:
	Workaround:
	Changing dev/ic/com.c to either 1.224 (unchanged) or to
	1.224.2.2 with this patch makes com0 work again:

Index: com.c
===================================================================
RCS file: /cvsroot/src/sys/dev/ic/com.c,v
retrieving revision 1.224.2.2
diff -u -r1.224.2.2 com.c
--- com.c	5 Jul 2004 21:57:45 -0000	1.224.2.2
+++ com.c	6 Mar 2005 17:23:35 -0000
@@ -1745,7 +1745,7 @@
 		bus_space_write_1(iot, ioh, com_ier, sc->sc_ier);
 	}
 
-#if 0
+#if 1
 	/* Output the first chunk of the contiguous buffer. */
 	if (!ISSET(sc->sc_hwflags, COM_HW_NO_TXPRELOAD)) {
 		u_int n;

>Unformatted:
 		com.c 1.224.2.2