Subject: RE: How to fix a broken SMC card (Was: still probs with this machine)
To: None <port-i386@netbsd.org>
From: Martin Husemann <martin@rumolt.teuto.de>
List: port-i386
Date: 05/10/1999 08:44:40
This is a multi-part message in MIME format.

------=_NextPart_000_0005_01BE9AC1.578210E0
Content-Type: text/plain;
	charset="iso-8859-1"
Content-Transfer-Encoding: 7bit

Sorry, due to not checking the appropriate boxes the attachment was in
propietary Windows format; I'm resending it as plain text...

> In a previous message I said I still had the "tools" needed to
> fix that broken cards around. I've been asked for copies and for
> the archive am posting it here too.
>
> Actually, I never needed to know the ethernet number, as it never
> got corrupted on my cards, only type code and checksum were
> wrong. You can find the type codes in the NetBSD kernel source ;-)
>
>
> Martin

--8<--

    Here's the routine I was given, that fixed both my card and the card
messed up by Warp:

(Hopefully you know the card's 6 byte hardware address)

Assuming your card is still at base 300 (don't jumper it anywhere else yet),
0x308 - 0x30d contain the hardware address.  0x30e is a board type
identifier.  0x30f is a checksum for the other information.  If the SMC
utilities don't see the correct checksum byte, they seem to
automatically assume it's not an SMC ethernet card at the port.

Using DOS "debug", check the values between 308 and 30f.  For example,
to view the byte at 308, use the command "i 308".  To write the byte 0F
to 308, use the command "o 308 0F".

Verify that the contents of 308 - 30d ARE your hardware address.  I
don't know what the correct board type for your card is.  For the two I
fixed, they were EtherCard PLUS Elite16T, and the identifier was 0x28.
Hopefully you have another (non-corrupt) card, or somebody else could
tell you what the correct identifier is, as at least for my friend and I
it was one of the bytes that had been changed by the probe.

Once you're sure all these bytes are correct, you get to calculate the
value for the 8th byte... =)  The sum of all 8 bytes (mod 256) should be
0xFF.  So add the first 7 bytes, and calculate what the 8th one should
be to get a sum (mod 256) of 0xFF.

Now you're ready to commit these settings to the NVRAM.  To do this,
read the byte at 0x301.  Add 0x80 to it, and write that value to 0x301.
Now write the original value back in.  Now the settings are saved.  The
SMC utilities should see the card, hopefully they will still show it's
the correct type of card...  =)

    BTW, be sure to move your card to somewhere other than 0x300...  =)

    Hope that helps, if you have any more questions feel free to email
me.  Good luck!

                                                          Will Ferry

------=_NextPart_000_0005_01BE9AC1.578210E0
Content-Type: application/ms-tnef;
	name="winmail.dat"
Content-Transfer-Encoding: base64
Content-Disposition: attachment;
	filename="winmail.dat"

eJ8+IigGAQaQCAAEAAAAAAABAAEAAQeQBgAIAAAA5AQAAAAAAADoAAEIgAcAGAAAAElQTS5NaWNy
b3NvZnQgTWFpbC5Ob3RlADEIAQ2ABAACAAAAAgACAAEGgAMADgAAAM8HBQAKAAgALAAAAAEAGgEB
A5AGAHgEAAApAAAACwACAAEAAAALACMAAAAAAAMAJgAAAAAACwApAAAAAAALACsAAAAAAAMALgAA
AAAAAwA2AAAAAAAeAHAAAQAAAEIAAABIb3cgdG8gZml4IGEgYnJva2VuIFNNQyBjYXJkIChXYXM6
IHN0aWxsIHByb2JzIHdpdGggdGhpcyBtYWNoaW5lKQAAAAIBcQABAAAAGwAAAAG+mfgWNF4oXdMF
1xHTrfIAoMklE4QALgcQIAACAR0MAQAAABwAAABTTVRQOk1BUlRJTkBSVU1PTFQuVEVVVE8uREUA
CwABDgAAAABAAAYOALgafLCavgECAQoOAQAAABgAAAAAAAAA05zpSE680hGs8wCgySUThMKAAAAL
AB8OAQAAAAMABhAAAAAAAwAHEAAAAAAeAAgQAQAAAAoAAAD49/0B9Pf9AQEAAAADABAQTQAAAAMA
ERCYgNMAHgBCEAEAAAABAAAAAAAAAAsAAYAIIAYAAAAAAMAAAAAAAABGAAAAAAOFAAAAAAAAAwAD
gAggBgAAAAAAwAAAAAAAAEYAAAAAEIUAAAAAAAADAAeACCAGAAAAAADAAAAAAAAARgAAAABShQAA
8BMAAB4ACIAIIAYAAAAAAMAAAAAAAABGAAAAAFSFAAABAAAABAAAADguNQALAAyACCAGAAAAAADA
AAAAAAAARgAAAAAGhQAAAAAAAAMADYAIIAYAAAAAAMAAAAAAAABGAAAAAAGFAAAAAAAACwAWgAgg
BgAAAAAAwAAAAAAAAEYAAAAADoUAAAAAAAADABeACCAGAAAAAADAAAAAAAAARgAAAAARhQAAAAAA
AAMAGYAIIAYAAAAAAMAAAAAAAABGAAAAABiFAAAAAAAAHgAogAggBgAAAAAAwAAAAAAAAEYAAAAA
NoUAAAEAAAABAAAAAAAAAB4AKYAIIAYAAAAAAMAAAAAAAABGAAAAADeFAAABAAAAAQAAAAAAAAAe
ACqACCAGAAAAAADAAAAAAAAARgAAAAA4hQAAAQAAAAEAAAAAAAAACwAygAggBgAAAAAAwAAAAAAA
AEYAAAAAgoUAAAEAAAALADSACyAGAAAAAADAAAAAAAAARgAAAAAAiAAAAAAAAAsANoALIAYAAAAA
AMAAAAAAAABGAAAAAAWIAAAAAAAAAgH4DwEAAAAQAAAA05zpSE680hGs8wCgySUThAIB+g8BAAAA
EAAAANOc6UhOvNIRrPMAoMklE4QCAfsPAQAAAIAAAAAAAAAAOKG7EAXlEBqhuwgAKypWwgAAUFNU
UFJYLkRMTAAAAAAAAAAATklUQfm/uAEAqgA32W4AAABEOlxXSU5OVFxQcm9maWxlc1xNYXJ0aW5c
QW53ZW5kdW5nc2RhdGVuXE1pY3Jvc29mdFxPdXRsb29rXG91dGxvb2sucHN0AAMA/g8FAAAAAwAN
NP03AAACAX8AAQAAADEAAAAwMDAwMDAwMEQzOUNFOTQ4NEVCQ0QyMTFBQ0YzMDBBMEM5MjUxMzg0
MDQzOTI0MDAAAAAABrY=

------=_NextPart_000_0005_01BE9AC1.578210E0--