Date: Mon, 18 Aug 1997 22:34:17 -0400 (EDT) From: sjr@home.net To: FreeBSD-gnats-submit@FreeBSD.ORG Subject: kern/4335: Support for EtherExpress Pro/10+ Message-ID: <199708190234.WAA00450@istari.home.net> Resent-Message-ID: <199708190240.TAA03598@hub.freebsd.org>
next in thread | raw e-mail | index | archive | help
>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:
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?199708190234.WAA00450>
