Subject: Re: any details available on DECchip 21041 (updated PCI ethernet
To: None <matt@lkg.dec.com>
From: John Kohl <jtk@atria.com>
List: port-i386
Date: 07/22/1995 12:11:16
>>>>> "Matt" == Matt Thomas <matt@lkg.dec.com> writes:
Matt> Actually, those are the SMC8432EBT which have the new chip.
It must be a slightly different package that you have--the box my card
came in clearly says SMC8432BT.
Anyway, I needed one more tweak to the driver to get my card working.
The ethernet address on this card wasn't in the place expected by the
driver. I did see it in the debug output, so I was able to add this
kludge. Matt, I'm sure there's a better way? I can send driver output
pre-change if you need/want it.
I also added changes to differentiate the error return codes to make it
easier to tell what's crocked.
Is there a good way to force a particular media port? I know what port
I have hooked to my home ethernet, and I'd rather not have to wait for
it to (slowly) figure out to use the thinwire/BNC port.
==John
===================================================================
RCS file: RCS/if_de.c,v
retrieving revision 1.2
diff -c -r1.2 if_de.c
*** if_de.c 1995/07/21 22:39:09 1.2
--- if_de.c 1995/07/22 02:48:48
***************
*** 1541,1559 ****
* of the rom and let the rest be all 0xffs. (Can we say
* ZNYX???)
*/
for (idx = 6; idx < 32; idx++) {
if (sc->tulip_rombuf[idx] != 0xFF)
! return -4;
}
/*
* Make sure the address is not multicast or locally assigned
* that the OUI is not 00-00-00.
*/
if ((sc->tulip_rombuf[0] & 3) != 0)
! return -4;
if (sc->tulip_rombuf[0] == 0 && sc->tulip_rombuf[1] == 0
&& sc->tulip_rombuf[2] == 0)
! return -4;
bcopy(sc->tulip_rombuf, sc->tulip_hwaddr, 6);
return 0;
}
--- 1541,1563 ----
* of the rom and let the rest be all 0xffs. (Can we say
* ZNYX???)
*/
+ #if defined(KOLVIR) || defined(PATTERN)
+ bcopy(&sc->tulip_rombuf[20], sc->tulip_rombuf, 6); /* XXX */
+ #else
for (idx = 6; idx < 32; idx++) {
if (sc->tulip_rombuf[idx] != 0xFF)
! return -5;
}
+ #endif
/*
* Make sure the address is not multicast or locally assigned
* that the OUI is not 00-00-00.
*/
if ((sc->tulip_rombuf[0] & 3) != 0)
! return -7;
if (sc->tulip_rombuf[0] == 0 && sc->tulip_rombuf[1] == 0
&& sc->tulip_rombuf[2] == 0)
! return -8;
bcopy(sc->tulip_rombuf, sc->tulip_hwaddr, 6);
return 0;
}