From owner-freebsd-bugs Mon Aug 18 19:40:05 1997 Return-Path: Received: (from root@localhost) by hub.freebsd.org (8.8.5/8.8.5) id TAA03604 for bugs-outgoing; Mon, 18 Aug 1997 19:40:05 -0700 (PDT) Received: (from gnats@localhost) by hub.freebsd.org (8.8.5/8.8.5) id TAA03598; Mon, 18 Aug 1997 19:40:02 -0700 (PDT) Resent-Date: Mon, 18 Aug 1997 19:40:02 -0700 (PDT) Resent-Message-Id: <199708190240.TAA03598@hub.freebsd.org> Resent-From: gnats (GNATS Management) Resent-To: freebsd-bugs Resent-Reply-To: FreeBSD-gnats@FreeBSD.ORG, sjr@home.net Received: from istari.home.net (cc158233-a.catv1.md.home.com [24.3.25.17]) by hub.freebsd.org (8.8.5/8.8.5) with ESMTP id TAA03316 for ; Mon, 18 Aug 1997 19:34:19 -0700 (PDT) Received: (from sjr@localhost) by istari.home.net (8.8.7/8.8.6) id WAA00450; Mon, 18 Aug 1997 22:34:17 -0400 (EDT) Message-Id: <199708190234.WAA00450@istari.home.net> Date: Mon, 18 Aug 1997 22:34:17 -0400 (EDT) From: sjr@home.net Reply-To: sjr@home.net To: FreeBSD-gnats-submit@FreeBSD.ORG X-Send-Pr-Version: 3.2 Subject: kern/4335: Support for EtherExpress Pro/10+ Sender: owner-freebsd-bugs@FreeBSD.ORG X-Loop: FreeBSD.org Precedence: bulk >Number: 4335 >Category: kern >Synopsis: Support for EtherExpress Pro/10+ >Confidential: no >Severity: serious >Priority: medium >Responsible: freebsd-bugs >State: open >Class: change-request >Submitter-Id: current-users >Arrival-Date: Mon Aug 18 19:40:01 PDT 1997 >Last-Modified: >Originator: Stephen J. Roznowski >Organization: >Release: FreeBSD 3.0-CURRENT i386 >Environment: N/A >Description: This patch adds support for the EtherExpress Pro/10+, as well as correcting the IRQ handling for the 82595 controller. I needed to boost the delay during the reset to get a reliable read of the Ethernet address. >How-To-Repeat: >Fix: *** sys/i386/isa/if_ex.c.orig Fri Aug 8 00:38:33 1997 --- sys/i386/isa/if_ex.c Mon Aug 18 22:18:43 1997 *************** *** 103,110 **** static struct ex_softc ex_sc[NEX]; /* XXX would it be better to malloc(3) the memory? */ ! static char irq2eemap[] = { -1, -1, 0, 1, -1, 2, -1, -1, -1, 0, 3, 4, -1, -1, -1, -1 }; ! static u_char ee2irqmap[] = { 9, 3, 5, 10, 11, 0, 0, 0 }; static int ex_probe __P((struct isa_device *)); static int ex_attach __P((struct isa_device *)); --- 103,110 ---- static struct ex_softc ex_sc[NEX]; /* XXX would it be better to malloc(3) the memory? */ ! static char irq2eemap[] = { -1, -1, -1, 0, 1, 2, -1, 3, -1, 4, 5, 6, 7, -1, -1, -1 }; ! static u_char ee2irqmap[] = { 3, 4, 5, 7, 9, 10, 11, 12 }; static int ex_probe __P((struct isa_device *)); static int ex_attach __P((struct isa_device *)); *************** *** 176,182 **** * Reset the card. */ outb(iobase + CMD_REG, Reset_CMD); ! DELAY(200); /* * Fill in several fields of the softc structure: --- 176,182 ---- * Reset the card. */ outb(iobase + CMD_REG, Reset_CMD); ! DELAY(400); /* * Fill in several fields of the softc structure: *************** *** 256,262 **** if_attach(ifp); ether_ifattach(ifp); ! printf("ex%d: Intel EtherExpress Pro/10, address %6D, connector ", dev->id_unit, sc->arpcom.ac_enaddr, ":"); switch(sc->connector) { case Conn_TPE: printf("TPE\n"); break; case Conn_BNC: printf("BNC\n"); break; --- 256,268 ---- 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) { ! 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, ":"); ! } switch(sc->connector) { case Conn_TPE: printf("TPE\n"); break; case Conn_BNC: printf("BNC\n"); break; >Audit-Trail: >Unformatted: