Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 13 Jun 95 23:39 CDT
From:      steve@simon.chi.il.us (Steven E. Piette)
To:        davidg@Root.COM
Cc:        jhay@mikom.csir.co.za, hackers@freebsd.org
Subject:   Re: Possible patch for SMC 8216/8416 probe bug
Message-ID:  <m0sLkEn-000NAyC@simon.chi.il.us>

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

> From freefall.cdrom.com!owner-freebsd-hackers Tue Jun 13 16:42:07 1995
> To: John Hay <jhay@mikom.csir.co.za>
> cc: hackers@freebsd.org
> Subject: Re: Possible patch for SMC 8216/8416 probe bug 
> From: David Greenman <davidg@Root.COM>
> Reply-To: davidg@Root.COM
> Date: Tue, 13 Jun 1995 14:37:03 -0700
> Sender: hackers-owner@freebsd.org
> Content-Length: 377
> 
> >Maybe David Greenman should look at it, as he seems to do most stuff in
> >the if_ed.c driver.
> 
>    I think the detection can be done in a way that doesn't require any of the
> memory test stuff. I'll look at the documentation I have on this soon. For
> now, people can set a specific "iosiz", 16384 for instance, and use the flags
> option to force 16 bit operation (flags 0x4).
> 
> -DG
> 

What's wrong with using the probe section from ED_TYPE_SMC8216T?
It worked find here when I first put developed the 8416 patch. It doesn't
care if the card is a combo or utp only device. I did test the driver with
Elite 16, Ultra, and Ether EZ to make sure it still worked after the patch
to 2.0-RELEASE

ie: (based on 2.0.5-ALPHA /usr/src/sys/i386/isa/if_ed.c)

        case ED_TYPE_SMC8216C:
        case ED_TYPE_SMC8216T:
                if (sc->type = ED_TYPE_SMC8216C) {
                        sc->type_str = "SMC8216/SMC8216C";
                        sc->kdc.kdc_description =
                                "Ethernet adapter: SMC 8216 or 8216C";
                } else {
                        sc->type_str = "SMC8216T";
                        sc->kdc.kdc_description =
                                 "Ethernet adapter: SMC 8216T";
                }
                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:
                        /* 8216 has 16K shared mem -- 8416 has 8K */
                        if (sc->type = ED_TYPE_SMC8216C) {
                                sc->type_str = "SMC8416C/SMC8416BT";
                                sc->kdc.kdc_description =
                                        "Ethernet adapter: SMC 8416C or 8416BT";
                        } else {
                                sc->type_str = "SMC8416T";
                                sc->kdc.kdc_description =
                                        "Ethernet adapter: SMC 8416T";
                        memsize = 8192;
                        break;
                }
                outb(sc->asic_addr + ED_WD790_HWR,
                    inb(sc->asic_addr + ED_WD790_HWR) & ~ED_WD790_HWR_SWH);

                isa16bit = 1;
                sc->is790 = 1;
                break;


Or did I miss something important?

Steve Piette                                       Applied Computer Technology
steve@simon.chi.il.US.                             7N852 Phar Lap Drive 
(708) 513-6920                                     St. Charles, IL 60175-6868
-------------------------------------------------------------------------------
By sending unsolicited commercially-oriented e-mail to this address, the 
sender agrees to pay a $100 flat fee to the recipient for proofreading 
services.




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?m0sLkEn-000NAyC>