[parisc-linux] 715 LAN interface

Philipp Rumpf prumpf@puffin.external.hp.com
Thu, 18 May 2000 04:40:34 -0600


> The documentation on LASI (lasi_ers.ps) seems to be specific to the
> 712.  But, AFAIK the 715 has the same ethernet (82596).  Is it safe to
> assume that the LAN section of lasi_ers.ps is equally applicable to the
> 715 interface, or is there some other documentation somewhere that I
> should consult ?

It basically is the same (we had it working.  if it doesn't now you're
probably reinventing the wheel), except that the paragraph in lasi_ers.ps
that reads

"	Even though the megacell is in CA mode, the port accesses look
	like the part is in DX mode: the data needs to be on the lower
	16 bits of the data bus for both port accesses.  This change
	should be sufficient to make the CA mode look like DX mode to
	software, maintaining software compatibility with previous 700
	implementations."

really means "we word-swap the CPU port register and didn't for previous
implementations.  This means you need to change your software or you'll
never even see the nic exists.".

translated to the wonderful language of 82596.c, the function that reads

static inline void MPU_PORT(struct net_device *dev, int c, volatile void *x)
{
#ifdef ENABLE_MVME16x_NET
        if (MACH_IS_MVME16x) {
                struct i596_reg *p = (struct i596_reg *) (dev->base_addr);
                p->porthi = ((c) | (u32) (x)) & 0xffff;
                p->portlo = ((c) | (u32) (x)) >> 16;
        }
#endif
#ifdef ENABLE_BVME6000_NET
        if (MACH_IS_BVME6000) {
                u32 v = (u32) (c) | (u32) (x);
                v = ((u32) (v) << 16) | ((u32) (v) >> 16);
                *(volatile u32 *) dev->base_addr = v;
                udelay(1);
                *(volatile u32 *) dev->base_addr = v;
        }
#endif
}

needs to do the word-swapping for 715/old, but doesn't for 715/new and 712.

(also it should use gsc_writel()).


Generally, 715/olds won't support the new dynamic PCI DMA API, while 712s
will.  My suggestion is that someone takes over the taks of maintaining
the drivers we actually need (82596, scsi, parallel if your masochistic),
using the old DMA API.  I personally will use my 715 as diskless dumb
terminal only if at all so I only care about 82596.

	Philipp Rumpf