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>
