Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 24 Apr 2002 13:34:20 -0600
From:      "John Nielsen" <oniblerz@attbi.com>
To:        <freebsd-stable@freebsd.org>, "Karl Heller" <kheller2@mac.com>
Subject:   Re: EtherExpress 16 not probed at boot on 4.5R
Message-ID:  <02be01c1ebc7$07fee890$0900a8c0@max>
References:  <5.1.0.14.2.20020422121910.03571c18@pop1.ins.com>

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

[-- Attachment #1 --]
----- Original Message -----
From: "Karl Heller" <kheller2@mac.com>
To: <freebsd-stable@freebsd.org>
Sent: Wednesday, April 24, 2002 10:39 AM
Subject: EtherExpress 16 not probed at boot on 4.5R
>   Hello,
>
>   I posted a bug report about this but haven't heard anything back.  I'll
> post here instead. =)
>
> http://www.freebsd.org/cgi/query-pr.cgi?pr=37240
>
>   I have a Intel EtherExpress 16 that will not probe on boot, or with a
> custom kernel.  However, under 3.4R it does find it.  I'm just switching
> boot floppies and notice this.  I've since installed 4.5R using CDRom,
> however, I'd like to get it working.  Any thoughts or anyone want to help
> debug this one.  There was a previous bug report for another version with
> similar problems but the issue was dropped.
>
> Please respond via email as I'm having some problems getting on the stable
> email list.

There was a thread about this a while ago on the newsgroup (the subject was
"Ether16 NIC" if you want to look it up on google).  Martin Birgmeier posted
a patch which I successfully applied to a -stable machine and got my card
working.  I'm attaching a copy of Martin's patch so you can use it.

To the list: PR kern/16937 is marked as closed even though this is an issue
with -stable.  There may be other PR's on this issue as well, but I don't
know if any of them have patches included.  If one of you wants to
submit/test/commit this I think that would be great.

JN

[-- Attachment #2 --]
*** sys/dev/ie/if_ie.c.ORIG	Fri Jul 21 20:34:23 2000
--- sys/dev/ie/if_ie.c	Sat Sep  9 07:22:28 2000
***************
*** 148,154 ****
  #define IED_RNR		0x04
  #define IED_CNA		0x08
  #define IED_READFRAME	0x10
! static int	ie_debug = IED_RNR;
  
  #endif
  
--- 148,154 ----
  #define IED_RNR		0x04
  #define IED_CNA		0x08
  #define IED_READFRAME	0x10
! static int	ie_debug = IED_RINT | IED_READFRAME | IED_RNR;
  
  #endif
  
***************
*** 722,728 ****
  			printf("ie%d: WARNING: board configured "
  			       "at irq %u, using %u\n",
  			       dvp->id_unit, dvp->id_irq, irq);
! 			irq = dvp->id_unit;
  		}
  	} else {
  		dvp->id_irq = irq;
--- 722,728 ----
  			printf("ie%d: WARNING: board configured "
  			       "at irq %u, using %u\n",
  			       dvp->id_unit, dvp->id_irq, irq);
! 			irq = dvp->id_irq;
  		}
  	} else {
  		dvp->id_irq = irq;
***************
*** 859,864 ****
--- 859,867 ----
  	/* Don't ack interrupts which we didn't receive */
  	ie_ack(ie->scb, IE_ST_WHENCE & status, unit, ie->ie_chan_attn);
  
+ 	if (ie->hard_type == IE_EE16)	/* XXX Heavy traffic sometimes hangs an*/
+ 		DELAY(15);		/* XXX EE16. This delay seems to cure. */
+ 
  	if (status & (IE_ST_RECV | IE_ST_RNR)) {
  #ifdef DEBUG
  		in_ierint++;
***************
*** 2105,2110 ****
--- 2108,2114 ----
  		outb(PORT + IEE16_CONFIG, bart_config);
  		ee16_interrupt_enable(ie);
  		ee16_chan_attn(unit);
+ 		DELAY(15);
  	}
  	ie->arpcom.ac_if.if_flags |= IFF_RUNNING;	/* tell higher levels
  							 * we're here */
*** sys/dev/ie/if_iee16.h.ORIG	Sun Aug  6 18:10:50 2000
--- sys/dev/ie/if_iee16.h	Sat Sep  9 07:22:28 2000
***************
*** 71,80 ****
--- 71,84 ----
  
  /* Locations in the EEPROM */
  #define IEE16_EEPROM_CONFIG1	0x00	/* Configuration register 1 */
+ #define	 IEE16_CONNECT_BNCTPE	0x1000	/* 0 = AUI, 1 = BNC/TPE */
  #define  IEE16_EEPROM_IRQ	0xE000	/* Encoded IRQ */
  #define  IEE16_EEPROM_IRQ_SHIFT	13	/* To shift IRQ to lower bits */
  #define IEE16_EEPROM_LOCK_ADDR	0x01	/* contains the lock bit */
  #define  IEE16_EEPROM_LOCKED	0x01	/* means that it is locked */
+ 
+ #define IEE16_EEPROM_CONFIG2	0x05	/* Configuration register 2 */
+ #define	 IEE16_CONNECT_TPE	0x0001	/* 0 = BNC, 1 = TPE */
  
  #define IEE16_EEPROM_ENET_LOW	0x02	/* Ethernet address, low word */
  #define IEE16_EEPROM_ENET_MID	0x03	/* Ethernet address, middle word */
*** sys/i386/isa/isa_compat.h.ORIG	Sun Sep 23 21:58:01 2001
--- sys/i386/isa/isa_compat.h	Fri Feb  1 12:02:05 2002
***************
*** 31,36 ****
--- 31,37 ----
  #include "ar.h"
  #include "cx.h"
  #include "el.h"
+ #include "ie.h"
  #include "le.h"
  #include "lnc.h"
  #include "rdp.h"
***************
*** 80,85 ****
--- 81,87 ----
  extern struct isa_driver  ardriver;
  extern struct isa_driver  cxdriver;
  extern struct isa_driver  eldriver;
+ extern struct isa_driver  iedriver;
  extern struct isa_driver  ledriver;
  extern struct isa_driver lncdriver;
  extern struct isa_driver rdpdriver;
***************
*** 194,199 ****
--- 196,204 ----
  
  /* NET */
  
+ #if NIE > 0
+ 	{ INTR_TYPE_NET, &iedriver },
+ #endif
  #if NLE > 0
  	{ INTR_TYPE_NET, &ledriver },
  #endif

Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?02be01c1ebc7$07fee890$0900a8c0>