Not to say that you aren't the MAN when it comes to ethernet drivers (you are), but I think I've found a problem that might be resolved with a few modifications to the source of the 3c509.c driver.
Attached to this email are applicable files from my Debian Linux 2.0.29 installation. I have compiled 3c509.c with #define EL3_DEBUG 9 to ensure that I get enough error output to show what's going on. I hope this is enough information for you to get some idea of what is going wrong. (I know you're a busy man, so I hate to impose on what free time you may have, but this is really bugging me now). I'm not new to Linux at all, I've been using it for the better part of 5 years, however I have finally met my match when it comes to problems. (Normally I can resolve even the worst problem in a matter of hours.. or at least get an understanding of what the EXACT problem is.. this however has taken days.. and as I really have no experience with ethernet cards, I'm at a loss). The 3c509 card in my present system is identical to those we use at work. The boxes at work are Compaq Deskpro P100's running Debian Linux as well. The 3c509 driver has no problem working on those. My home machine (and current problem child), is running Debian 2.0.29 (as I mentioned) and is an AMD 5x86 133 w/ True Green 486 main board (pretty generic board.. has the ability to run most any 486 class chip.. which the 5x86 is technically). Now I've tried compiling the driver into the kernel and as a module. I've even downloaded the 1.14 version driver and put that in place of the 1.07 driver. I've remembered to use the ether= and reserve= on the lilo boot prompt and the io= and irq= (except in the case of the newest version where io is not an option). The card is not in PnP mode, and I remembered to do a power off after kicking PnP mode off on the card. (The card incidentally runs fine in both PnP mode and ISA mode under Win95). I have stripped the machine down to bare essentials in my adventure so far. The last tested configuration was thus: Cirrus Logic 5426 SVGA video card CMD VLB IDE controller (I disabled the secondary port to make sure that was minimalist, and I also disabled the com ports that it supports and removed my modem.) 3c509b TPO Etherlink III ISA card. (I chucked the PnP sound card that was in it as well...) Even with this small scale configuration it would not detect the card, however the ethernet diagnostic utilties el3-diag and 3c5x9 that you have made available both detect the card at the right settings as you will see in the attached files. I'm really at wits end here, and the only thing I can think of after watching the diagnostic output and stepping through the source of the driver is that the driver is not reading the values for the card from the right address.. the 6b50 value that your driver is testing is in the output from el3-diag right where it should be, however if you notice the dmesg output, when it tries to get that value it find some random word lying around, nothing even close to 6b50. I am thinking that perhaps whatever method is being used to determine the settings in el3-diag could be applied to the 3c509 driver, and perhaps things would work correctly. However, seeing as the main code in el3.c and 3c509.c is almost identical I don't know why 3c509 wouldn't work in the first place. One more note: I have no PCI Bios in my computer, no PnP other than the 3c509 and the Soundscape PnP 16 (which is removed as I told you), could this have something to do with it? Another thought that I had was that perhaps the auto probing for the card in the PnP section was somehow throwing off the rest of the ISA detection code. Well, that's all I have to say... if I've left anything out, or ommitted something, please don't hesitate to ask... I am always in proximity to my mailbox and you can reach me at either [EMAIL PROTECTED] or [EMAIL PROTECTED] Thanks in advance for ANYTHING you can come up with to help the situation, and many MORE thanks if you can find a way to solve the problem. (Perhaps a solution could be producing a version of the driver that experienced users could hand edit to force the correct values per the output of el3-diag and 3c5x9 programs). Anyways, I wait expectantly for your reply, Wintermute
3c5x9setup.c:v0.04 12/11/96 Donald Becker ([EMAIL PROTECTED]) 3c5x9 found at 0x300. EEPROM index 0: 0060. EEPROM index 1: 97cf. EEPROM index 2: dbb2. EEPROM index 3: 9550. EEPROM index 4: bc4e. EEPROM index 5: 0036. EEPROM index 6: 4441. EEPROM index 7: 6d50. EEPROM index 8: 0090. EEPROM index 9: af00. EEPROM index 10: 0060. EEPROM index 11: 97cf. EEPROM index 12: dbb2. EEPROM index 13: 1310. EEPROM index 14: 0000. EEPROM index 15: 393c. Model number 3c509 version 5, base I/O 0x300, IRQ 10, 10baseT port. Primary physical address is 00:60:97:cf:db:b2 Alternate physical address is 00:60:97:cf:db:b2
Character devices: 1 mem 2 pty 3 ttyp 4 ttyS 5 cua 7 vcs 10 misc 36 netlink Block devices: 3 ide0 9 md 22 ide1
el3diag.c:v0.11 3/16/97 Donald Becker ([EMAIL PROTECTED]) Looking for card 1. Generating the activation sequence on port 0x100 for card 1. eth0: ID sequence ended with 0x51ff. Activating the card at I/O address 300. EEPROM contents: 0060 97cf dbb2 9550 bc4e 0036 4441 6d50 0090 af00 0060 97cf dbb2 1310 0000 393c An ISA EtherLink III board was activated at I/O 0x300, IRQ 10. eth0: 3c509 found at 0x300. Window 0: 6d50 9550 cf01 0090 a000 018f ffff 0003. Window 1: 2700 2700 00fe 2003 8000 00ff 0bfc 2003. Window 2: 2000 0eaf c23b 4003 00fe 00fe 00fe 4003. Window 3: 0000 0004 0000 6003 cf80 13ff 0bff 6003. Window 4: 1300 00ce 2011 0884 0002 a8c0 00fe 8003. Window 5: 0010 07fc 00fe 0000 0000 00fe 00fe a003. Window 6: 0000 0000 0000 0000 0000 0000 0000 c003. Window 7: 00fe 00fe 00fe e003 00fe 00fe 00fe e003. Done card 1. Looking for card 2. Generating the activation sequence on port 0x100 for card 2. eth0: ID sequence ended with 0x51ff. Activating the card at I/O address 3f0.
0: 74049 timer 1: 2470 keyboard 2: 0 cascade 4: 1519 + serial 8: 1 + rtc 13: 1 math error 14: 21545 + ide0 15: 0 + ide1
0000-001f : dma1 0020-003f : pic1 0040-005f : timer 0060-006f : keyboard 0070-007f : rtc 0080-008f : dma page reg 00a0-00bf : pic2 00c0-00df : dma2 00f0-00ff : npu 0170-0177 : ide1 01f0-01f7 : ide0 02f8-02ff : serial(set) 0376-0376 : ide1 03c0-03df : vga+ 03e8-03ef : serial(auto) 03f6-03f6 : ide0 03f8-03ff : serial(set)
serial 7 1 (autoclean) vfat 3 1 (autoclean) fat 6 [vfat] 1 (autoclean)