Subject: EISA network card problems - Fixed!?
To: None <port-i386@netbsd.org>
From: Christian Groessler <cpg@aladdin.de>
List: port-i386
Date: 09/05/2001 11:57:13
I had problems with 2 3com network cards in a EISA machine, a 3c579
EISA card and a 3c509 ISA card configured as EISA.

While comparing the NetBSD ep driver with Linux' 3c509 driver, I found
the reason the NetBSD doesn't work:

-----------
Index: if_ep_eisa.c
===================================================================
RCS file: /net/swamp/zeug/netbsd-rsync/main/syssrc/sys/dev/eisa/if_ep_eisa.c,v
retrieving revision 1.22
diff -u -4 -r1.22 if_ep_eisa.c
--- if_ep_eisa.c	2000/05/07 13:57:16	1.22
+++ if_ep_eisa.c	2001/09/05 08:52:10
@@ -238,15 +238,19 @@
 
 	sc->sc_ioh = ioh;
 	sc->sc_iot = iot;
 
+#if 0	/* cpg: my 3c579 card does not work, if this is done */
 	/* Reset card. */
 	bus_space_write_1(iot, ioh_cfg, EP_EISA_CFG_CONTROL, 
 	    EISA_ENABLE | EISA_RESET);
 	delay(10);
 	bus_space_write_1(iot, ioh_cfg, EP_EISA_CFG_CONTROL, EISA_ENABLE);
 	/* Wait for reset? */
 	delay(1000);
+#endif
+
+	GO_WINDOW(0);
 
 	/* Read the IRQ from the card. */
 	irq = bus_space_read_2(iot, ioh_cfg, EP_EISA_CFG_RESOURCE) >> 12;
 
-----------

With this change both cards work fine. I haven't looked whether the
reset or the setting of EISA_ENABLE is the problem, but the Linux
driver doesn't seem to do any of them.

I'd like to get this integrated, but I'm a bit concerned about the
consequences. Are there people for which the current driver did work?
Can they try this patch and verify that the driver still works?

I don't have docs for the 3com cards, maybe can the original autor of
this code (thorpej?) shed some light onto this issue?

regards,
chris