Subject: kern/5673: we0 and 16bit mode
To: None <gnats-bugs@gnats.netbsd.org>
From: Matthias Pfaller <leo@marco.de>
List: netbsd-bugs
Date: 06/28/1998 19:37:14
>Number:         5673
>Category:       kern
>Synopsis:       wd8003 clones with 16bit support won't work
>Confidential:   no
>Severity:       serious
>Priority:       medium
>Responsible:    kern-bug-people (Kernel Bug People)
>State:          open
>Class:          sw-bug
>Submitter-Id:   net
>Arrival-Date:   Sun Jun 28 13:05:01 1998
>Last-Modified:
>Originator:     Matthias Pfaller
>Organization:
Matthias Pfaller                            Software Entwicklung
marco Systemanalyse und Entwicklung GmbH    Tel   +49 8131 5161-41
Hans-Böckler-Str. 2, D 85221 Dachau         Fax   +49 8131 5161-66
http://www.marco.de/                        Email leo@dachau.marco.de
>Release:        250698
>Environment:
	
System: NetBSD styx 1.3F NetBSD 1.3F (STYX) #1: Sun Jun 28 15:06:45 CEST 1998     root@styx:/usr/src/sys/arch/i386/compile/STYX i386

>Description:
	Today I tried to upgrade my X-Terminal from NetBSD-1.2G to 1.3F.
	The network interface in the machine is a "Compex ENET16/V" ISA
	board. I'm using the board in the WDP mode in which it should
	be compatible to the EtharCard Plus 16. But the card seems to
	identify itself as a WD8003EP. So I forced the use of 16bit mode
	by using the following config line:

		we0	at isa? port 0x280 iomem 0xd0000 iosiz 0x4000 irq 9 flags 4

	With 1.2G and the ed driver this worked without problems. With
	1.3F and the we driver this does not work.
>How-To-Repeat:
	Try to use a "Compex ENET16/V" in 16bit mode.
>Fix:
	if_we.c switches the adapter into 16bit mode only when it is
	identified as a WD8013. The following patch works for me, but
	I'm not sure if this right way to doit.
--- if_we.c.ORIG	Mon Jun  1 22:35:17 1998
+++ if_we.c	Sun Jun 28 14:52:47 1998
@@ -424,6 +424,7 @@
 	    (wsc->sc_type == WE_TYPE_TOSHIBA1) ||
 	    (wsc->sc_type == WE_TYPE_TOSHIBA4) ||
 #endif
+	    (wsc->sc_16bitp) ||
 	    (wsc->sc_type == WE_TYPE_WD8013EBT)) {
 		wsc->sc_laar_proto = (ia->ia_maddr >> 19) & WE_LAAR_ADDRHI;
 		if (wsc->sc_16bitp)
>Audit-Trail:
>Unformatted: