Date: Mon, 31 Jul 95 08:59:55 EDT From: jleppek@suw2k.ess.harris.com (James Leppek) To: freebsd-hardware@freebsd.org, schwarz@alpharel.com Subject: Re: 3c589 card CAN be made to work BNC Message-ID: <9507311259.AA00242@borg.ess.harris.com>
next in thread | raw e-mail | index | archive | help
Steve,
Good work, "look in the linux sources" why didn't I think of that :-)
I foolishly tried to get info from 3com...
I tried your patch and it works, thanks.
My motif arrived today as well so it looks like FreeBSD will
be "taking a bow" at the security technology transfer conference next week :-)
Thanks again,
Jim Leppek
> From schwarz@optigfx.COM Mon Jul 31 01:17:23 1995
> Date: Sun, 30 Jul 95 22:15:38 PDT
> From: schwarz@alpharel.com (Steve Schwarz)
> To: freebsd-bugs@freebsd.org, freebsd-hackers@freebsd.org,
> freebsd-hardware@freebsd.org, hosokawa@mt.cs.keio.ac.jp,
> jleppek@suw2k.ess.harris.com
> Subject: 3c589 card CAN be made to work BNC
>
> Ok. It's been a long weekend (note the time) but trial and error is
> always like that. I >finally< have wrestled my 3c589 into working BNC.
>
> I went over to the Linux 3c589_cs.c driver and read it (line by line)
> against FreeBSD's /usr/src/sys/i386/isa/if_zp.c. In doing so, I
> discovered some things Linux was doing that FreeBSD was not. This
> leads to the following patch to FreeBSD's
> /usr/src/sys/i386/isa/if_zp.c. My original of that source file came
> from the 2.0.5 cdrom. Here is the single diff-section patch:
>
> ########################################################################
> *** if_zp.c Mon Jul 31 00:47:22 1995
> --- if_zp.c.orig Sun Jul 30 17:42:19 1995
> ***************
> *** 1069,1082 ****
> if (!(ifp->if_flags & IFF_ALTPHYS) && (sc->ep_connectors & BNC))
> {
> #endif
> #ifdef ZP_DEBUG
> ! printf("START TRANSCEIVER");
> #endif /* ZP_DEBUG */
> - GO_WINDOW(0);
> - /* Set the xcvr */
> - outw(BASE + EP_W0_ADDRESS_CFG, 3 << 14);
> - GO_WINDOW(2);
> outw(BASE + EP_COMMAND, START_TRANSCEIVER);
> - GO_WINDOW(1);
> DELAY(1000);
> }
> #if defined(__NetBSD__) || defined(__FreeBSD__)
> --- 1069,1077 ----
> if (!(ifp->if_flags & IFF_ALTPHYS) && (sc->ep_connectors & BNC))
> {
> #endif
> #ifdef ZP_DEBUG
> ! printf("START TRANCEIVER");
> #endif /* ZP_DEBUG */
> outw(BASE + EP_COMMAND, START_TRANSCEIVER);
> DELAY(1000);
> }
> #if defined(__NetBSD__) || defined(__FreeBSD__)
> ########################################################################
>
> This patch is not elegant but it is enough to make BNC work without
> affecting UTP.
>
> I confess to being a total novice as far as the procedure for
> submitting bug fixes. If I have not given enough information for
> someone to handle getting this fix in, please just let me know.
>
> I can't resist quoting the comment from the Linux source file that
> made me first think I had found the answer:
>
> /* This is vital: the transceiver used must be set in the resource
> configuration register. It took me many hours to discover this. */
>
> I know the feeling.
>
> sts
>
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?9507311259.AA00242>
