Subject: port-i386/9476: Kernel doesn't recognize some of FMV-181 EthernetCard
To: None <gnats-bugs@gnats.netbsd.org>
From: None <ishizaka@sam.hi-ho.ne.jp>
List: netbsd-bugs
Date: 02/23/2000 19:48:38
>Number:         9476
>Category:       port-i386
>Synopsis:       Kernel doesn't recognize some of FMV-181 EthernetCard
>Confidential:   no
>Severity:       serious
>Priority:       medium
>Responsible:    port-i386-maintainer (NetBSD/i386 Portmaster)
>State:          open
>Class:          sw-bug
>Submitter-Id:   net
>Arrival-Date:   Wed Feb 23 19:48:00 2000
>Last-Modified:
>Originator:     Ken'ichi Ishizaka
>Organization:
>Release:        current on Feb. 19, 2000
>Environment:
NetBSD 1.4T (ken-test6) #16: Tue Feb 22 22:44:30 JST 2000


>Description:
Kernel doesn't recognize a FMV181 NIC, because the kernel always
expects that fe_fmv1_cardid as 0 but my card returns 1.
This card may be FMV181A but FMV181 is silk-printed on it.

So I changed mask value, then it works.
Mask value 0xB0 may be better because this seems be 0xB0 on FreeBSD.

fe_simple_probe() checks the values like this after change
(I added some debug messaging.)

fe_simple_probe: 83 & 70 == 0
fe_simple_probe: 6 & 8 == 0
fe_simple_probe: d5 & 78 == 50
fe_simple_probe: 1 & f0 == 0
fe_simple_probe: 80 & 7f == 0
fe_simple_probe: 0 & ff == 0
fe_simple_probe: 0 & ff == 0
fe_simple_probe: e & ff == e
fmv0 at isa0 port 0x280-0x29f irq 10
fmv0: FMV-181 Ethernet
fmv0: supplying EUI64: 00:00:0e:ff:fe:48:76:3d
fmv0: Ethernet address 00:00:0e:48:76:3d

Thanks in advance.



>How-To-Repeat:
boot with some fmv181(a) ethernet card

>Fix:
--- src/sys/dev/isa/if_fereg.h.orig	Tue Jan 13 23:20:21 1998
+++ src/sys/dev/isa/if_fereg.h	Tue Feb 22 17:54:41 2000
@@ -60,9 +60,9 @@
 #define FE_FMV0_MODEL		0x07
 #define FE_FMV0_MODEL_FMV181	0x05
 #define FE_FMV0_MODEL_FMV182	0x03
 
 /* Card type ID?  Always 0?  */
-#define FE_FMV1_CARDID_MASK	0xFF
+#define FE_FMV1_CARDID_MASK	0xF0
 #define FE_FMV1_CARDID_ID	0x00
 
 /* I/O port address assignment.  */

>Audit-Trail:
>Unformatted: