Indigo nvram blues

SGI hardware problems, solutions, tips, hacks, etc.
Forum rules
Any posts concerning pirated software or offering to buy/sell/trade commercial software are subject to removal.
User avatar
dexter1
Moderator
Moderator
Posts: 2743
Joined: Thu Feb 20, 2003 6:57 am
Location: Zoetermeer, The Netherlands

Indigo nvram blues

Unread postby dexter1 » Wed Aug 20, 2003 1:29 pm

Hi all,

This is supposed to be a nice readup for all of you Indigo lovers, panting away in this summer heat, wondering why your R3K motherboard won't work in an R4K chassis. Or vice versa... Or you just want to change your MAC address ;>
Or you don't have a bootdisk handy and want to get rid of that PROM password :(

The short answer to this is that the R3K and R4K Indigo uses the same backplane chassis, but the 93CS56 EEPROM on it, used as the nvram in these systems, has a different memory layout. There actually is a pretty good posting on usenet two years ago, which discusses this over here

There is also a tricky catch with this flash eeprom. It has 128 words of memory it can store, but also has a byte register where it keeps the address of the byte from which there is no programming possible anymore. So if this byte is at 0x7a (it is in the case of an eeprom in an R3K system case #CMNB003) and looking at a dump of the EEPROM:

Code: Select all

00000  63 56 31 39 32 2e 30 2e 32 2e 31 00 00 00 00 00 cV192.0.2.1.....
00010  00 00 39 36 30 30 00 31 32 30 30 00 67 00 00 00 ..9600.1200.g...
00020  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ff ................
00030  ff 41 30 00 64 6b 73 63 28 30 2c 31 2c 38 29 73 .A0.dksc(0,1,8)s
00040  61 73 68 00 00 00 00 00 00 00 00 00 00 00 00 00 ash.............
00050  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
00060  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
00070  00 00 00 00 00 00 00 31 32 38 08 00 69 06 91 77 .......128..i..w
00080  ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ................
00090  ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ................
000a0  ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ................
000b0  ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ................
000c0  ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ................
000d0  ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ................
000e0  ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ................
000f0  ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ................

R3KMAC_Indigo.zip
(496 Bytes) Downloaded 10 times

You quickly see that it prevents you from overwriting the MAC address located at 0x7a-0x7f and anything beyond that.

Which is a pity because a dump of an eeprom in an R4K system case #CMNB003B :

Code: Select all

00000  be 06 67 00 00 00 00 00 00 00 10 00 18 00 1c 00 ..g.............
00010  1e 00 1f 00 1f 80 1f c0 1f e0 1f 00 1b 00 11 80 ................
00020  01 80 00 c0 00 c0 00 00 30 00 28 00 24 00 22 00 ........0.(.$.".
00030  21 00 20 80 00 00 00 00 00 00 10 00 18 00 1c 00 !. .............
00040  1e 00 1f 00 1f 80 00 00 00 00 00 00 10 00 18 00 ................
00050  1c 00 1e 00 1f 00 1f 80 1f c0 1f e0 1f 00 1b 00 ................
00060  11 80 00 00 00 00 00 00 10 00 18 00 1c 00 00 00 ................
00070  00 00 00 00 39 36 30 30 00 30 ff ff ff ff ff ff ....9600.0......
00080  50 53 54 38 50 44 54 00 00 00 00 00 00 00 10 00 PST8PDT.........
00090  18 00 1c 00 1e 00 1f 00 1f 80 1f c0 1f e0 1f 00 ................
000a0  1b 00 11 80 01 80 00 c0 00 c0 00 00 30 00 28 00 ............0.(.
000b0  24 00 22 00 21 00 20 80 59 00 00 83 ea 50 4c 31 $.".!. .Y....PL1
000c0  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
000d0  00 00 00 bf c4 96 94 bf c4 96 b8 bf 00 00 00 00 ................
000e0  bf c4 96 94 bf c4 96 b8 bf c4 96 dc bf 00 30 00 ..............0.
000f0  00 00 79 00 00 18 ff ff ff ff 08 00 69 06 a4 0d ..y.........i...

R4KMAC_Indigo.zip
(594 Bytes) Downloaded 8 times

the mac address is located all the way back at 0xfa-0xff.
Hence, when an R4K HP2 mainboard is presented with an R3K eeprom, which is locked in the above manner, networking is disabled because it sees 0xffffffffffff as its MAC address.


To add my two cents to this discussion, it is actually very easy to change the
EEPROM contents without buying an expensive EEPROM tool. You just need eight wires, a male db25 connector, an 8 pin DIL socket where the 93CS56 fits in, and a free power connector in your (linux) PC which can deliver 5 V

The connections are as follows (the "u" in the picture is a halfcircle cutout on
your EEPROM):

Code: Select all

   cs   1=u=8   vcc
   sk   2   7   pre
   di   3   6   pe
   do   4===5   gnd
   
   Parallel port pins:
   cs connects to pin 2
   sk connects to pin 3
   di connects to pin 4
   pe connects to pin 5
   pre connects to pin 6
   do connects to pin 12
   vcc is +5v
   gnd is pin 18-15 or shielding
   

I'll try to present a nice photo of my EEPROM burner in a few days.

Furthermore you need my program called 93cs56.c available here:
93cs56.c
(26.38 KiB) Downloaded 9 times

Edit: i also include the original program
93c56.c
(12.26 KiB) Downloaded 12 times


Compile this program on a PC linux system: cc -o 93cs56 93cs56.c
and you're ready to go (as root though):

Code: Select all

Usage:
93cs56 r pos          read from pos
93cs56 w pos hb lb    write to pos
93cs56 l filename     load all from filename
93cs56 s filename     save all to filename
93cs56 p              read from Protection Register
93cs56 c              clear Protection Register
93cs56 x b            write to Protection Register

First save the original contents to a file (do it twice to verify that the data
is stored correctly):
93cs56 s dump
Also note the protection register:
93cs56 p

Then clear the protection register:
93cs56 c
And start loading that eeprom image:
93cs56 l R4000nvram


I think you can even meddle with a different MAC address as the eeprom contents doesn't appear to be crc checksummed. My R3K eeprom image was identical to the above dump except for the MAC address (obviously):

Code: Select all

00070  00 00 00 00 00 00 00 31 32 38 08 00 69 06 2D 22 .......128..i.-"

and one byte over here (the A5):

Code: Select all

00030  FF A5 30 00 64 6B 73 63 28 30 2C 31 2C 38 29 73 ..0.dksc(0,1,8)s


If that really is checksummed, it can't be hard can it?
I have no idea about the R4K, will test this someday...

Enjoy playing with that. I have more to say on the 93cs56, because it also sits on Indy/indigo modules, holding the multiplier for the R4k CPU's. I'm still
working on that one, but sofar no indy has died yet :)

I welcome any comments/suggestions on this...
Last edited by dexter1 on Mon Oct 25, 2004 6:08 am, edited 1 time in total.

User avatar
nekonoko
Site Admin
Site Admin
Posts: 8145
Joined: Thu Jan 23, 2003 1:31 am
Location: Pleasanton, California
Contact:

Unread postby nekonoko » Wed Aug 20, 2003 2:53 pm

I've upgraded an R3K->R4K Indigo by plugging an R4K motherboard and power supply into an R3K chassis and it worked great, networking and all. I've heard going the other way again is difficult since the PROM contents are shuffled after the swap. So color me puzzled unless we're talking about something else here :)

Edit: Ah. looks like we're talking primarily about plugging an R3K board into an R4K "tainted" backplane, which indeed does have problems :)
Twitter: @neko_no_ko
IRIX Release 4.0.5 IP12 Version 06151813 System V
Copyright 1987-1992 Silicon Graphics, Inc.
All Rights Reserved.

User avatar
dexter1
Moderator
Moderator
Posts: 2743
Joined: Thu Feb 20, 2003 6:57 am
Location: Zoetermeer, The Netherlands

Unread postby dexter1 » Wed Aug 20, 2003 11:36 pm

Indeed neko, it seems that R4K motherboards are smart and can reinitialise the R3K EEPROM even if there is a protect-register set. They must have included the instruction for clearing the protect register before moving or copying the R3K MAC address to the correct R4K position.

Even so i've heard that this upgrade does not always succeed, and some manual tinkering may be necessary. Well, atleast now you know how to do it :)

User avatar
whiter
Posts: 975
Joined: Tue Apr 29, 2003 2:02 pm
Location: Melbourne, Australia
Contact:

Unread postby whiter » Thu Aug 21, 2003 1:04 am

uhm.
This means that I could upgrade my r3k Indigo to an r4k by just swapping the cpu-boards? Nice thing to know.

And ehm.... if dexter1's program breaks anything.... do we get waranty from you? :-P
Shall I describe it to you? Or do you want me to get you a box?

User avatar
dexter1
Moderator
Moderator
Posts: 2743
Joined: Thu Feb 20, 2003 6:57 am
Location: Zoetermeer, The Netherlands

Unread postby dexter1 » Thu Aug 21, 2003 1:28 am

Warranty? Does it say "Dell" or "Microsoft" on my forehead?

:D

But you're right, i should add a "Standard Disclaimer" to the program code

User avatar
dexter1
Moderator
Moderator
Posts: 2743
Joined: Thu Feb 20, 2003 6:57 am
Location: Zoetermeer, The Netherlands

Re: Indigo nvram blues

Unread postby dexter1 » Fri Aug 26, 2016 4:36 am

I've edited my post to provide a copy of the program, because i received a request for the source code but my old webserver got repurposed a long time ago.

And i realized i didn't put the 93cs56.c online but the one without the s (=secure bit) support. Not sure if this is required for reading and writing a 93cs56 (i forgot) but it should work, as long as people read the proper datasheets and make sure they do not lock the eeprom by setting the secure bit.

PS: 13 year necro thread
:Crimson: :PI: :Indigo: :O2: :Indy: :Indigo2: :Indigo2IMP:

User avatar
jan-jaap
Donor
Donor
Posts: 4940
Joined: Thu Jun 17, 2004 11:35 am
Location: Wijchen, The Netherlands
Contact:

Re: Indigo nvram blues

Unread postby jan-jaap » Fri Aug 26, 2016 5:39 am

dexter1 wrote:Hi all,

This is supposed to be a nice readup for all of you Indigo lovers, panting away in this summer heat [...]

dexter1 wrote:PS: 13 year necro thread

Still panting away in the summer heat ;) Outside it's 31c, thank god for air conditioning.
:PI: :Indigo: :Indigo: :Indy: :Indy: :Indy: :Indigo2: :Indigo2: :Indigo2IMP: :Octane: :Octane2: :O2: :O2+: Image :Fuel: :Tezro: :4D70G: :Skywriter: :PWRSeries: :Crimson: :ChallengeL: :Onyx: :O200: :Onyx2: :O3x02L:
To accentuate the special identity of the IRIS 4D/70, Silicon Graphics' designers selected a new color palette. The machine's coating blends dark grey, raspberry and beige colors into a pleasing harmony. (IRIS 4D/70 Superworkstation Technical Report)

User avatar
dexter1
Moderator
Moderator
Posts: 2743
Joined: Thu Feb 20, 2003 6:57 am
Location: Zoetermeer, The Netherlands

Re: Indigo nvram blues

Unread postby dexter1 » Fri Aug 26, 2016 6:28 am

jan-jaap wrote:
dexter1 wrote:Hi all,

This is supposed to be a nice readup for all of you Indigo lovers, panting away in this summer heat [...]

dexter1 wrote:PS: 13 year necro thread

Still panting away in the summer heat ;) Outside it's 31c, thank god for air conditioning.

You lucky guy! Mine broke years ago and am tempted to relocate me and my laptop to a cooler location for now.
Also, note that the previous thread started August 21st :) I'm tempted to say we have heatwaves 13 years apart at virtually the same date. Must be El Nino...
:Crimson: :PI: :Indigo: :O2: :Indy: :Indigo2: :Indigo2IMP:


Return to “SGI: Hardware”

Who is online

Users browsing this forum: Bing [Bot] and 2 guests