Skip site navigation (1)Skip section navigation (2)
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>