Andrew, On Sat, Jun 15, 2002 at 12:38:16AM -0700, Andrew Morton wrote: > Where on earth did that 0x3138 come from? > > Could you send the kernel output from a successful probe? It > would help to set the debug level higher. Change `DEBUGGING' > to 7 at line 107 of the driver. tonight I had some time to investigate this further. I can easily fix the problem with this patch: ----------8<---------- --- /home/robert/embedded/linux-2.4.18/drivers/net/cs89x0.c Mon Feb 25 20:37:59 2002 +++ cs89x0.c Sat Jun 22 00:53:55 2002 @@ -411,7 +411,8 @@ ioaddr &= ~3; outw(PP_ChipID, ioaddr + ADD_PORT); } -printk("PP_addr=0x%x\n", inw(ioaddr + ADD_PORT)); + + outw(PP_ChipID, ioaddr + ADD_PORT); if (inw(ioaddr + DATA_PORT) != CHIP_EISA_ID_SIG) { printk(KERN_ERR "%s: incorrect signature 0x%x\n", ---------->8---------- This simply accesses the ChipID register directly. But I assume I don't understand the magic directly before the replaced line. What's the intention behind this odd-baseaddress stuff? I have the impression that the code assumes that on startup the ADD_PORT is preinitialized to zero, which might not be the case after a soft reboot. What do you think, is there a better way to fix the problem? Robert -- +--------------------------------------------------------+ | Dipl.-Ing. Robert Schwebel | http://www.pengutronix.de | | Pengutronix - Linux Solutions for Science and Industry | | Braunschweiger Str. 79, 31134 Hildesheim, Germany | | Phone: +49-5121-28619-0 | Fax: +49-5121-28619-4 | +--------------------------------------------------------+ - : send the line "unsubscribe linux-net" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html