[vortex] Mini PCI card question

fes fes@hackthis.net
Wed, 7 Mar 2001 10:19:07 -0500 (EST)


Yes, this is definitely my fault for not being careful enough.  Now that I
am at work, I'll boot to Linux and assess the damage.

I greatly appreciate the help from everyone.  Hopefully, I'll be able to
salvage the card.

The funny thing I was thinking about when the card was still working was
that I was dumping my EEPROM and thought that I sould save it off.
Unfortunately, I didn't.  I do have the ethernet address saved off,
though.  So if anyone has a quick dump of an EEPROM from one of these
cards, it might be beneficial.

Thanks,
Frank


On Wed, 7 Mar 2001, Donald Becker wrote:

> On Thu, 8 Mar 2001, Andrew Morton wrote:
>
> > I've only used vortex-diag to write an EEPROM once, and
> > I found it quite tricky to use.  But I guess you
> > can't make things worse :)
>
> The EEPROM writing functionality of the diag programs is _supposed_ to be
> tricky to use.  It permanently changes the hardware state in a way that
> cannot be fixed by powering off the machine.
>
> You don't hose your EEPROM by accidentally trying to send too large of a
> packet, or unplugging the network cable at the wrong time.  This guy
> munged his EEPROM while trying to write a Solaris device driver.
> Adding two or three lines of code to restore valid contents shouldn't be
> a stretch.
>
> > I suggest you run `vortex-diag -p 0xNNNN -aaee' and send
> > the output here.  We'll see if we can think up a command
> > which will save this NIC.
>
> Look around line 728, where set_hwaddr is used.
> This section of code overwrites the OEM (non-3Com) station address.
>
> You can use similar code to correct on the specific EEPROM word that you
> erased.
> You should guard the modified code with the already existing '-E',
> emergency_rewrite, option.
> Think very carefully before you do this.
>
> -	if (set_hwaddr) {
> +	if (emergency_rewrite) {
> 		unsigned short sum = 0;
> 		memcpy(new_ee_contents, eeprom_contents, eesize << 1);
> -		for (i = 0; i < 3; i++)
> -			new_ee_contents[ee_tbl_offset + 10 + i] =
> -				(new_hwaddr[i*2]<<8) + new_hwaddr[i*2+1];
> +		/* Hack to fix erased word. */
> +		new_ee_contents[1] = 0x6056;
>
> Donald Becker				becker@scyld.com
> Scyld Computing Corporation		http://www.scyld.com
> 410 Severn Ave. Suite 210		Second Generation Beowulf Clusters
> Annapolis MD 21403			410-990-9993
>
>
> _______________________________________________
> vortex mailing list
> vortex@scyld.com
> http://www.scyld.com/mailman/listinfo/vortex
>