Re: Error detecting netcards in 2.0.34pre16

Paul Gortmaker (linux@rasty.ph.unimelb.edu.au)
Fri, 29 May 1998 00:22:59 +1000 (EST)


> I think I_ve found some error in pre16, but I_m not a kernel-hacker so I
> dont know how to find out whats going on.
>
> I have 2 netcards in my machine a tulip, and a ne2k both PCI. When using
> pre16 I cant seem to make tulip eth0 (I_ve tried a dusin lilo-confs), but

[...]

> When using some kind of 2.0.34 I get this: (this is wrong)
>
> ne2k-pci.c:v0.99L 2/7/98 D. Becker/P. Gortmaker

[...]

>
> When using <=2.0.33 I get this (same lilo.conf) (this is ok)

[...]

> ne.c:v1.10 9/23/94 Donald Becker (becker@cesdis.gsfc.nasa.gov)
> NE*000 ethercard probe at 0x6600: 00 c0 0c b0 82 97
> eth1: NE2000 found at 0x6600, using IRQ 9.

You have switched from using the original ISA/PCI ne2000 driver
to the PCI-only driver when you upgraded. If you kept the same
configuration (i.e. same ".config" file) and continued to use the
ISA/PCI driver then things would continue to behave exactly as
they did before. So, in that respect, pre16 isn't broken.

[ The ne2k-pci driver gets the i/o address from querying the PCI
BIOS and ignores any user supplied values, hence the difference]

Since the tulip probe comes before either of the ne driver probes,
a simple "ether=0,0,eth1" should work and put the tulip as eth0
and the ne2k as eth1.

In regards to ordering your cards the way you want, you have
several options.

1) use modular drivers & "alias ethN drivername"
2) re-order the probe sequence in drivers/net/Space.c
3) add code to the probe in pci drivers that looks like:

if (dev && dev->base_addr && dev->base_addr != pci_ioaddr) {
printk("foo.c: skipping foo card at %#x, i/o doesn't "
"match user supplied value of %#x\n",
pci_ioaddr, dev->base_addr);
return -EAGAIN;
}

so that your "ether=..." arguments have effect even on PCI cards.

Paul.

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.rutgers.edu