[vortex] 3Com 3c556B

Louis Gerbarg gerbal@rpi.edu
Fri, 22 Sep 2000 10:50:12 -0400 (EDT)


On Sat, 23 Sep 2000, Andrew Morton wrote:

> "Jesse P. Robbins" wrote:
> > 
> > Andrew Morton wrote:
> > >
> > > "Jesse P. Robbins" wrote:
> > > >
> > > > Hi I have a Thinkpad T20 with the above mentioned ethernet adapter.  I
> > > > am trying to get it working however when I load the patched module the
> > > > card gets a hardware address of either ff:ff:ff:ff:ff:ff or
> > > > 00:40:00:40:00:40 and in either case doesn't work. I am running a fresh
> > > > install of RedHat 6.2 with kernel 2.2.14.  ANy help you can provide
> > > > would be greatly appreciated.  Thanks.
> > >
> > > Jesse,
> > >
> > > precisely which driver and patch are you using?  I'm not sure what you
> > > mean by "patched module".
> > 
> > Sorry about that.  I am using Donald Becker's newest 3c59x driver
> > patched with the patch posted by Andrew Morton in this message:
> > http://www.scyld.com/pipermail/vortex/2000-September/000595.html
> > 
> 
> Well, unless Louis or Donald have some ideas, I'm stumped.
> 
> All I can do is chase 3com for a datasheet.  :(
> 

I can tell you that I got both of those address when I was initially
trying to patch it and hit the wrong address. Wait one sec...

I just looked at again, and I think I found the bug.

The flag EEPROM_8BIT should not be set for this card. Specificly when that
happens it goes to the line:

drv_flags & EEPROM_8BIT ? 0x230 : (drv_flags & EEPROM_OFFSET ? EEPROM_Read
+ 0x30 : EEPROM_Read)

And never gets to the EEPROM_OFFSET case. As far as I can tell that are
two eeprom sizes, and two eeprom addresses. Until now they have always
been directly correlated, but not anymore. If this continues to be the
case it might be best to alter the flags to reflect that, if it is just
this once, then it is a fudge for one card. Either way that compound ?: is
not easy to read. I did it simply to make alterations as simple is
pssible, but perhaps it should be altered in to an if { } else if { } else
{} structure.

Louis