Skip site navigation (1)Skip section navigation (2)
Date:      06 Nov 1999 18:29:22 -0600
From:      rand@meridian-enviro.com (Douglas K. Rand)
To:        Warner Losh <imp@village.org>
Cc:        freebsd-stable@FreeBSD.ORG
Subject:   Re: Intel EtherExpress Pro/10+ on -stable
Message-ID:  <87d7tni1p9.fsf@deneb.meridian-enviro.com>
In-Reply-To: Warner Losh's message of "Tue, 2 Nov 1999 23:19:06 -0700 (MST)"
References:  <199911030619.XAA18084@harmony.village.org>

next in thread | previous in thread | raw e-mail | index | archive | help

--=-=-=

** Warner Losh <imp@village.org> on Tue, 2 Nov 1999 23:19:06 -0700 (MST)
** in [Intel EtherExpress Pro/10+ on -stable] writes:

Warner> I've had 0 luck getting my Intel EtherExpress PRO/10+ working
Warner> on my 3.3-stable system.  It never seems to get interrupts.
Warner> I've disabled plug and play, and have tried it at two
Warner> differend IRQs, which I set with the softset2 program that
Warner> came with my etherpro 10+ (version 3.5).  Has anybody managed
Warner> to make one of these work in a -stable system?

I ran into a problem with the ISA Intel EtherExpress Pro/10+ in that
the ex driver used the hardware address to determine if the card is a
Pro/10 or a Pro/10+. If you have a Pro/10+ and the ethernet address
doesn't start with 00:A0:C9 then you need to patch if_ex.c to
recognize the new hardware address prefix as a Pro/10+.

Here is the diff I did to if_ex.c to get it to work for me:


--=-=-=
Content-Type: text/plain;
 name=diff
Content-Disposition: attachment;
 filename=diff
Content-Description: if_ex.c-patch

--- if_ex.c-orig	Tue Sep 28 04:57:33 1999
+++ if_ex.c	Tue Sep 28 04:59:29 1999
@@ -207,9 +207,9 @@
 	tmp = eeprom_read(iobase, EE_IRQ_No) & IRQ_No_Mask;
 
 	/* work out which set of irq <-> internal tables to use */
-	if (sc->arpcom.ac_enaddr[0] == 0x00 &&
-	    sc->arpcom.ac_enaddr[1] == 0xA0 &&
-	    sc->arpcom.ac_enaddr[2] == 0xC9) {    /* it's a 10+ */
+	if ((sc->arpcom.ac_enaddr[0] == 0x00 && sc->arpcom.ac_enaddr[1] == 0xA0 && sc->arpcom.ac_enaddr[2] == 0xC9) ||
+	    (sc->arpcom.ac_enaddr[0] == 0x00 && sc->arpcom.ac_enaddr[1] == 0x90 && sc->arpcom.ac_enaddr[2] == 0x27)) {
+		/* it's a 10+ */
 		sc->irq2ee = plus_irq2eemap;
 		sc->ee2irq = plus_ee2irqmap;
 	} else {                                  /* it's an ordinary 10 */
@@ -277,9 +277,8 @@
 	if_attach(ifp);
 	ether_ifattach(ifp);
 
-	if (sc->arpcom.ac_enaddr[0] == 0x00 &&
-	    sc->arpcom.ac_enaddr[1] == 0xA0 &&
-	    sc->arpcom.ac_enaddr[2] == 0xC9) {
+	if ((sc->arpcom.ac_enaddr[0] == 0x00 && sc->arpcom.ac_enaddr[1] == 0xA0 && sc->arpcom.ac_enaddr[2] == 0xC9) ||
+	    (sc->arpcom.ac_enaddr[0] == 0x00 && sc->arpcom.ac_enaddr[1] == 0x90 && sc->arpcom.ac_enaddr[2] == 0x27)) {
 		printf("ex%d: Intel EtherExpress Pro/10+, address %6D, connector ", dev->id_unit, sc->arpcom.ac_enaddr, ":");
 	} else {
 		printf("ex%d: Intel EtherExpress Pro/10, address %6D, connector ", dev->id_unit, sc->arpcom.ac_enaddr, ":");

--=-=-=



--=-=-=--


To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-stable" in the body of the message




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?87d7tni1p9.fsf>