Date: Tue, 29 Aug 1995 17:11:43 -0500 From: "Andrew Webster" <awebster@dataradio.com> To: rogerp@xnet.com (Roger Plichta) Cc: freebsd-questions@freebsd.org Subject: Re: SMC EtherEZ Message-ID: <199508292112.RAA25208@vhf.dataradio.com>
next in thread | raw e-mail | index | archive | help
> Date sent: Fri, 25 Aug 1995 18:49:56 -0500 > To: questions@FreeBSD.ORG > From: rogerp@xnet.com (Roger Plichta) > Subject: SMC EtherEZ > Sorry 'bout this mail, thanks for the help. > > I've a SMC EtherEZ isa 10baseT card installed in my Pentium. I > attempted to configure the card using the SMC 8216 protocols (ed) driver, > but when I finish the network configuration I get a message telling > me that > the interface can not be configured, error. My question is: does FreeBSD > support the EtherEZ card which supposedly emulates (???) the 8216 in > certain instances? > I had originally send the following message to this mailing list on July 17th, but I didn't get any replies. Perhaps the EtherEZ was new enough that no one had started using it. As you will note, this is not a solution to the problem, but it might help you find one! ------------ Hi, I've been trying to get FreeBSD 2.0.5-RELEASE to work using an SMC8416BT (Ether EZ) card, but with no luck so far. My first attempt uncovered a problem in the ed_probe routine which incorrectly tries to determine what type of card it is (8216C or 8416C/BT). The card is now correctly detected, but upon frame transmission, I get a kernel panic. I'd like to get this driver working for this card. Any help would be appreciated. I've included the necessary patch to make this work properly. On many clone PC buses, a read on memory locations with no RAM will return the the address, IE: A read at 0xD2000 will return 0. This was confusing the probe code to think that the card was an 8216. Patch for if_ed.c for correct 8216C/8416C determination: *** if_ed.c.old Mon Jul 17 11:15:41 1995 --- if_ed.c Mon Jul 17 15:47:10 1995 *************** *** 279,284 **** --- 279,285 ---- int i; u_int memsize; u_char iptr, isa16bit, sum; + unsigned int aw_smc_test; sc->asic_addr = isa_dev->id_iobase; sc->nic_addr = sc->asic_addr + ED_WD_NIC_OFFSET; *************** *** 390,397 **** isa16bit = 1; break; case ED_TYPE_SMC8216C: /* 8216 has 16K shared mem -- 8416 has 8K */ ! (unsigned int) *(isa_dev->id_maddr+8192) = (unsigned int)0; ! if ((unsigned int) *(isa_dev->id_maddr+8192)) { sc->type_str = "SMC8416C/SMC8416BT"; sc->kdc.kdc_description = "Ethernet adapter: SMC 8416C or 8416BT"; --- 391,406 ---- isa16bit = 1; break; case ED_TYPE_SMC8216C: /* 8216 has 16K shared mem -- 8416 has 8K */ ! /* ! * A proper test is to take whatever value is at that memory ! * location, negate it, and write it back. Then check and ! * see if the values read back negated corresponds to the ! * original value. If it does, there is definately RAM there! ! */ ! aw_smc_test = (unsigned int) *(isa_dev->id_maddr+8192); ! (unsigned int) *(isa_dev->id_maddr+8192) = aw_smc_test ^ 0xffff; ! if ((unsigned int) *(isa_dev->id_maddr+8192) ^ 0xffff != ! aw_smc_test) { sc->type_str = "SMC8416C/SMC8416BT"; sc->kdc.kdc_description = "Ethernet adapter: SMC 8416C or 8416BT"; ----------------------------------------------------------------------- Andrew Webster Network Manager / Special Projects Dataradio Inc. 200-5500 Royalmount Ave. TEL: +1 514 737 0020 Town of Mount Royal, QC, CANADA H4P 1H7 FAX: +1 514 737 7883 http://www.dataradio.com Email: awebster@dataradio.com
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?199508292112.RAA25208>