Possible bug or flaw detected.
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
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
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
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,
3c5x9setup.c:v0.04 12/11/96 Donald Becker (firstname.lastname@example.org)
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
el3diag.c:v0.11 3/16/97 Donald Becker (email@example.com)
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.
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)