Subject: Re: Lance Rev C ethernet bug
To: David Alan Gilbert <gilbertd@cs.man.ac.uk>
From: Jason Thorpe <thorpej@nas.nasa.gov>
List: port-sun3
Date: 10/26/1995 11:01:04
On Thu, 26 Oct 95 15:55:33 GMT
David Alan Gilbert <gilbertd@cs.man.ac.uk> wrote:
> Now I'm trying to run 'rbootd' to boot an HP 9000/340 into NetBSD; it has
> to do some fairly low level stuff using /dev/bpf. When I start 'rbootd'
> up we get hundreds of warnings in the log about 'le0: Lance revision C
> ehternet bug' and seems to indicate it lost a packet. Anyway, rbootd isn't
> working (the HP doesn't see our system as providing a system for it).
Basically, rbootd sets the multicast address filter of the interface if
possible, or places it in promiscuous mode, because the HP bootrom uses
ethernet multicast rather than ethernet broadcast. If you look around line
681 of sys/arch/sun3/dev/if_le.c, you'll see that packets that aren't
sent to a) "our" ethernet addr or b) the broadcast addr, are blamed on a
bug that existed in the LANCE chip Rev C, and thrown away. If you don't
have a Rev C LANCE in your system, it's safe to not do this check. To
make rbootd work on my Sun 3 at home, I had to undef the LANCE_REVC_BUG
macro in if_le.c. I've always thought that this definition should be
moved out to the kernel config file, and better documented.
--------------------------------------------------------------------------
Jason R. Thorpe thorpej@nas.nasa.gov
NASA Ames Research Center Home: 408.866.1912
NAS: M/S 258-6 Work: 415.604.0935
Moffett Field, CA 94035 Pager: 415.428.6939