You need this patch to make ether working for Osprey. The hack is too ugly to put into the main stream code. The fundamental problem is that we cannot generally use ISA driver for 32-bit address memory-mapped driver, unless we change ifmap structure. Jun diff -Nru linux/drivers/net/ne.c.orig linux/drivers/net/ne.c --- linux/drivers/net/ne.c.orig Thu Aug 23 15:24:33 2001 +++ linux/drivers/net/ne.c Mon Oct 1 13:51:59 2001 @@ -165,6 +165,22 @@ SET_MODULE_OWNER(dev); +#if defined(CONFIG_NEC_OSPREY) + /* [jsun] Okay, this is a total hack. NE2k on NEC Osprey is + * at 0x03fe0300 (+ VR4181_PORT_BASE). However, the stupid + * include/linux/if.h:ifmap structure cannot handle u32 base value. + * We get the address chopped off. + * + * The real fix is to change ifmap structure. However, + * There are some concerns (from David Miller) as to binary + * compatibility. So I just hack this file for mvista tree only. + */ + if (dev->base_addr == 0x0300) { + base_addr = dev->base_addr = 0x03fe0300; + printk(KERN_WARNING "nec.c : Modify NE2K base addr from 0x300 to 0x03fe0300 for NEC Osprey board!\n"); + } +#endif + /* First check any supplied i/o locations. User knows best. */ if (base_addr > 0x1ff) /* Check a single specified location. */ return ne_probe1(dev, base_addr);