[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
>