From owner-freebsd-questions Wed May 3 22:35:31 1995 Return-Path: questions-owner Received: (from majordom@localhost) by freefall.cdrom.com (8.6.10/8.6.6) id WAA20618 for questions-outgoing; Wed, 3 May 1995 22:35:31 -0700 Received: from simon.chi.il.us (simon.chi.il.us [199.245.227.17]) by freefall.cdrom.com (8.6.10/8.6.6) with SMTP id WAA20606 for ; Wed, 3 May 1995 22:35:26 -0700 Received: by simon.chi.il.us (Smail3.1.29.1 #3) id m0s6tZe-000NAyC; Thu, 4 May 95 00:35 CDT Message-Id: Date: Thu, 4 May 95 00:35 CDT From: steve@simon.chi.il.us (Steven E. Piette) To: bens@jhbs.com.au Subject: Re: SMC8416T patches to 2.0R Cc: questions@FreeBSD.org Sender: questions-owner@FreeBSD.org Precedence: bulk > From jhbs.com.au!bens Wed May 3 01:41:27 1995 > Date: Wed, 3 May 1995 09:06:28 +1000 (EET) > From: Ben Seaman MIS > To: "Steven E. Piette" > Subject: Re: SMC8416T > > Thanks Steve, we can't go to -current here because we have a controlled > production environment. Can you send the patches over to me and some > instructions on how to apply them. > > On Tue, 2 May > 1995, Steven E. Piette wrote: > > > > > > Date: Tue, 18 Apr 1995 18:14:41 +1000 (EET) > > > From: Ben Seaman MIS > > > To: questions FreeBSD > > > Subject: SMC8416T > > > > > > > > > Hi, > > > > > > I have been trying to configure some SMC Elite cards which I am told are > > > type 8416T (thats whats written on the card). The SMC guy told me that > > > these cards are compatible with the 8216T, but only use 8K memory-mapped > > > I/O rather than the 16K used by the 8216. This is a problem on my FreeBSD2.0 > > > system as the driver thinks they are "SMC8216T" and sets memsize = 16k. > > > When the driver initialises i/o memory it fails at the 8k point. Is there > > > any support for the SMC8416T in one of the later SNAPs, or does anyone > > > out there have an update for if_ed.c to support this card? > > > > > > regards, > > > Ben > > > > I hope someone has gotten back to you before this... > > > > There is support for the SMC EtherEZ card in -current and I have patches > > to 2.0R to add support as well. Email me if you need them. > > > > Steve > > > Ben > Here's the patches to be applied to the files in /usr/src/sys/i386/isa. The easiest way to apply them is to cd there and then feed each one to patch (patch -p is790) { + outb(sc->asic_addr + ED_WD790_HWR, + inb(sc->asic_addr + ED_WD790_HWR) | ED_WD790_HWR_SWH); + + switch (inb(sc->asic_addr + ED_WD790_RAR) & ED_WD790_RAR_SZ64) { + case ED_WD790_RAR_SZ64: + memsize = 65536; + break; + case ED_WD790_RAR_SZ32: + memsize = 32768; + break; + case ED_WD790_RAR_SZ16: + memsize = 16384; + break; + case ED_WD790_RAR_SZ8: + memsize = 8192; + break; + } + outb(sc->asic_addr + ED_WD790_HWR, + inb(sc->asic_addr + ED_WD790_HWR) & ~ED_WD790_HWR_SWH); + } + #if ED_DEBUG printf("type = %x type_str=%s isa16bit=%d memsize=%d id_msize=%d\n", sc->type, sc->type_str, isa16bit, memsize, isa_dev->id_msize); *************** *** 546,556 **** sc->cr_proto = ED_CR_RD2; } else { outb(sc->asic_addr + ED_WD_MSR, ED_WD_MSR_MENB); ! outb(sc->asic_addr + 0x04, (inb(sc->asic_addr + 0x04) | 0x80)); ! outb(sc->asic_addr + 0x0b, ((kvtop(sc->mem_start) >> 13) & 0x0f) | ((kvtop(sc->mem_start) >> 11) & 0x40) | ! (inb(sc->asic_addr + 0x0b) & 0xb0)); ! outb(sc->asic_addr + 0x04, (inb(sc->asic_addr + 0x04) & ~0x80)); sc->cr_proto = 0; } --- 570,580 ---- sc->cr_proto = ED_CR_RD2; } else { outb(sc->asic_addr + ED_WD_MSR, ED_WD_MSR_MENB); ! outb(sc->asic_addr + ED_WD790_HWR, (inb(sc->asic_addr + ED_WD790_HWR) | ED_WD790_HWR_SWH)); ! outb(sc->asic_addr + ED_WD790_RAR, ((kvtop(sc->mem_start) >> 13) & 0x0f) | ((kvtop(sc->mem_start) >> 11) & 0x40) | ! (inb(sc->asic_addr + ED_WD790_RAR) & 0xb0)); ! outb(sc->asic_addr + ED_WD790_HWR, (inb(sc->asic_addr + ED_WD790_HWR) & ~ED_WD790_HWR_SWH)); sc->cr_proto = 0; } Steve Piette Applied Computer Technology steve@simon.chi.il.US. 7N852 Phar Lap Drive (708) 513-6920 St. Charles, IL 60175-6868 -------------------------------------------------------------------------------