Subject: Re: am79900.c assumes little-endian processor?
To: David Edelsohn <>
From: Thor Lancelot Simon <>
List: tech-net
Date: 11/09/1999 14:11:19
On Mon, Nov 08, 1999 at 09:41:40PM -0500, David Edelsohn wrote:
> >>>>> Michael Richardson writes:
> >  Lance *PCI* cards have not until now been very popular.
> 	Okay, that answers why this might not have been tested more
> thoroughly.  Can you confirm that this is a bug in the current
> implementation? 
> 	The cards may not be popular, but I thought that a lot of systems
> used to have Lance Ethernet chips on the planar which should exercise the
> same am79900 code.

No.  The 79c900 is NOT A LANCE.  It's an "ILACC".  The actualy 79c900 is
very similar to a LANCE but with 32-bit instead of 24-bit descriptors, etc.
but it's not the same chip.  Very few systems ever shipped ILACCs on the

Further, the PCnet-ISA (and the + and II variants) had most of the extra
registers the ILACC did, and some new ones, but it didn't (obviously!) 
have the 32-bit stuff.  It's really a 7990 with some extra registers
that also happen to be on the ILACC.

The PCnet-32 had a mode bit that toggled it between LANCE and ILACC
compatibility modes, but since it was meant for 486 "VLB" systems you
are unlikely to find a big-endian system that uses it.  The PCnet-PCI
is like a PCnet-32 with built-in PCI glue, and the sundry successors
are just more of the same.

Oddly, ISTR our original ILACC driver was the result of someone
experimenting with a VME 680x0 board with an ILACC on it, so I would
actually expect it worked on big-endian systems once.  I am not at 
all surprised that it doesn't now, however.

If you're going to fix this you might want to finish splitting out
the 79900 driver so it can DMA into mbufs instead of the abominable
dma-and-copy approach the 7990 code has to take because of the way the
onboard LANCEs on things like the pmax work.

Thor Lancelot Simon	                            
	"And where do all these highways go, now that we are free?"