From owner-freebsd-questions Sun Dec 15 19:38:29 1996 Return-Path: Received: (from root@localhost) by freefall.freebsd.org (8.8.4/8.8.4) id TAA04287 for questions-outgoing; Sun, 15 Dec 1996 19:38:29 -0800 (PST) Received: from root.com (implode.root.com [198.145.90.17]) by freefall.freebsd.org (8.8.4/8.8.4) with ESMTP id TAA04282 for ; Sun, 15 Dec 1996 19:38:26 -0800 (PST) Received: from localhost (localhost [127.0.0.1]) by root.com (8.7.6/8.6.5) with SMTP id TAA02233; Sun, 15 Dec 1996 19:38:20 -0800 (PST) Message-Id: <199612160338.TAA02233@root.com> X-Authentication-Warning: implode.root.com: Host localhost [127.0.0.1] didn't use HELO protocol To: Bradley Dunn cc: freebsd-questions@freebsd.org Subject: Re: SMC EtherPower 10/100 (SMC9332BDT) In-reply-to: Your message of "Sun, 15 Dec 1996 20:09:35 EST." From: David Greenman Reply-To: dg@root.com Date: Sun, 15 Dec 1996 19:38:20 -0800 Sender: owner-questions@freebsd.org X-Loop: FreeBSD.org Precedence: bulk >The yellow "READ ME FIRST" document that came with the cards has this to >say: > >"This EtherPower 10/100 network card requires the latest SMC network >drivers because of its higher performance and added feature content. It >will not operate with drivers provided with older EtherPower 10/100 >network cards." > >Uh oh. I assume the de driver is designed for these "older" cards? I >checked the CVS logs and did not see anything relevant to this. "Yup". >Anybody have any magic tips? Thanks. Apply the following patch and add options "DE_HACK" into your kernel config file. Let me know if it works. -DG David Greenman Core-team/Principal Architect, The FreeBSD Project Index: if_de.c =================================================================== RCS file: /home/ncvs/src/sys/pci/if_de.c,v retrieving revision 1.54.2.1 diff -c -r1.54.2.1 if_de.c *** if_de.c 1996/11/12 09:09:59 1.54.2.1 --- if_de.c 1996/11/16 14:06:37 *************** *** 309,314 **** --- 309,315 ---- TULIP_DC21040_GENERIC, /* Generic DC21040 (works with most any board) */ TULIP_DC21040_ZX314_MASTER, /* ZNYX ZX314 Master 21040 (it has the interrupt line) */ TULIP_DC21040_ZX314_SLAVE, /* ZNYX ZX314 Slave 21040 (its interrupt is tied to the master's */ + TULIP_DC21140_GENERIC, /* Generic DC21140 */ TULIP_DC21140_DEC_EB, /* Digital Semicondutor 21140 Evaluation Board */ TULIP_DC21140_DEC_DE500, /* Digital DE500-?? 10/100 */ TULIP_DC21140_SMC_9332, /* SMC 9332 */ *************** *** 1791,1797 **** --- 1792,1807 ---- tulip_dc21140_mii_media_preset, tulip_dc21140_mii_probe, }; + + static const tulip_boardsw_t tulip_dc21140_generic_boardsw = { + TULIP_DC21140_GENERIC, "", + tulip_dc21140_de500aa_media_probe, /* XXX Hack alert!!! */ + tulip_dc21140_de500aa_media_select, /* XXX */ + tulip_dc21140_mii_media_preset, + tulip_dc21140_mii_probe, + }; + static int tulip_dc21041_media_probe( tulip_softc_t * const sc) *************** *** 3094,3107 **** copy_name = 1; } else if (bcmp(sc->tulip_rombuf + 29, "DE450", 5) == 0) { copy_name = 1; } if (copy_name) { bcopy(sc->tulip_rombuf + 29, sc->tulip_boardidbuf, 8); sc->tulip_boardidbuf[8] = ' '; sc->tulip_boardid = sc->tulip_boardidbuf; } - if (sc->tulip_boardsw == NULL) - return -6; goto check_oui; } } --- 3104,3119 ---- copy_name = 1; } else if (bcmp(sc->tulip_rombuf + 29, "DE450", 5) == 0) { copy_name = 1; + } else { + #ifdef DE_HACK + sc->tulip_boardsw = &tulip_dc21140_generic_boardsw; + #endif } if (copy_name) { bcopy(sc->tulip_rombuf + 29, sc->tulip_boardidbuf, 8); sc->tulip_boardidbuf[8] = ' '; sc->tulip_boardid = sc->tulip_boardidbuf; } goto check_oui; } }