SGI: Hardware

Serial Mismatch Error Fix!

Before I start I'd very much like to reiterate that I am *NOT* responsible for any damages resulting from the use or misuse of any information I provide on this forum nor am I responsible if your Origin suddenly becomes sentient and decides to take over the world.

Now that that's out of the way, onto some good stuff.

This all started when I had some problems with my R brick on my O300...the l1 wouldn't start (was getting the couldn't contact L1 error on the display). I'd experienced this before when the Dallas chip had either fallen out of it's socket (usually during shipping) or failed. I borrowed a Dallas chip from a spare fuel motherboard, since they both use the same type (DS1742W-120) and it fixed my issue, but also seemed to yield some additional unexpected fruit:

Code: Select all

09/16/10 19:04:54 ** fixing invalid SSN value
09/16/10 19:04:54 ** fixing BSN mismatch
09/16/10 19:04:54 USB0: waiting on open
09/16/10 19:05:53 L1 booting 1.22.4
09/16/10 19:05:55 USB0: waiting on open
09/16/10 19:06:50 L1 booting 1.22.4
09/16/10 19:06:53 USB0: waiting on open
09/16/10 19:07:17 USB0: opened
09/16/10 19:07:17 USB0: registered as remote
09/16/10 19:07:17 USB0: registered for events
09/16/10 19:07:19 INFO: System serial number reassigned to M1000707 from attached L2.


After seeing that, I set out to determine whether or not this could be reproduced, or if my serial number was simply corrupted when my R brick went haywire. I bought another R brick off of ebay and several of the previously mentioned Dallas DS174W-120 chips from quest components ( http://www.questcomp.com ).

Here's the procedure as I followed it:
I started by powering up the R brick and making sure it already had a serial number set:

Code: Select all

001r27-L1>serial all

Data                            Location      Value
------------------------------  ------------  --------
Local System Serial Number      NVRAM         L1000362
Reference System Serial Number  Attached L2   M1000707
Local Brick Serial Number       EEPROM        LPR391
Reference Brick Serial Number   NVRAM         LPR391


As you can see, the Local system serial number and the serial from my L2 controller don't match.

After noting this, I proceeded to install one of the brand new chips in the router brick and reboot. The brick seemed to come up alright, but I wasn't sure how to address it from the L2 controller as the rack and brick numbers were now reading as ---r--- on the display. It didn't take me long to realize that the old fuel I had sitting in the corner would once again become useful. I pulled the chip out of the R brick, installed it in the fuel motherboard, attached to the fuels L1 serial port on the motherboard, and issued and did the following:

Code: Select all

---a---L1>brick rackslot 1 27
brick rack set to 001 (takes effect on next L1 reboot/power cycle)
brick slot set to  27 (takes effect on next L1 reboot/power cycle)
---a---L1>
---a---L1>reboot_l1


SGI SN1 L1 Controller
Firmware Image B: Rev. 1.22.6, Built 08/07/2003 12:56:31


001a27-L1>
001a27-L1>


This set rack and slot numbers on the chip for me, so I then reinstalled it into the R brick and powered it up again with the following results:

Code: Select all

Eos-001-L2>1.27 l1
entering L1 mode 001r27, <CTRL-T> to escape to L2

001r27-L1>log
02/07/06 06:28:15 nvram checksum error - initializing core data.
02/07/06 06:28:15 nvram checksum error - initializing extended data.
02/07/06 06:28:15 nvram checksum error - log pointers invalid, log pointers reset
02/07/06 06:28:15 L1 booting 1.20.6
02/07/06 06:28:15 ** fixing invalid SSN value
02/07/06 06:28:15 ** fixing BSN mismatch
02/07/06 06:28:15 USB0: waiting on open
02/07/06 06:28:15 L1 booting 1.20.6
01/14/18 13:42:55 ^[ZZ____Z_[_^Z_^^ZZ____Z_[_^_Z_^^Z_____[Z_ZZZ_[ZZ[_^^_[^[_^Z^_[^ZZ_____ \
^▒▒▒▒▒Z_Z[ZZZZ_ZZ_____▒▒▒Z_^Z__[[^_Z_^ZZ_____[ZZ_ZZZ[Z__^_ZZZ[^Z^[[^▒▒▒▒▒ZZ_____[▒▒▒▒ \
_[[^▒_^Z_Z_^ZZ___▒Z__^▒▒▒^^ZZ_____[ZZZZ_[[^[^▒▒1 booting 1.20.6
02/07/06 06:28:15 USB0: waiting[ZZ__^[^02/07/06 06:28:15 L1 booting 1.22.6
02/07/06 06:28:15 PSC: 0x07
02/07/06 06:28:15 Error setting speed on device 3
02/07/06 06:28:15 NVRAM doesn't match EEPROM
02/07/06 06:28:15 USB0: waiting on open
02/07/06 06:28:15 SMP unregistering events
02/07/06 06:28:15 UNREG: 300083f0 0 4
02/07/06 06:28:15 SMP-R: UART:UART_FRAMING_ERROR
02/07/06 06:28:15 L1 booting 1.22.6
02/07/06 06:28:15 PSC: 0x07
02/07/06 06:28:15 Error setting speed on device 3
02/07/06 06:28:15 USB0: waiting on open
02/07/06 06:28:15 L1 booting 1.22.6
02/07/06 06:28:15 PSC: 0x07
02/07/06 06:28:15 Error setting speed on device 3
02/07/06 06:28:15 USB0: waiting on open
02/07/06 06:28:15 L1 booting 1.20.6
02/07/06 06:28:15 USB0: waiting on open
02/07/06 06:28:15 USB0: opened
02/07/06 06:28:15 USB0: registered as remote
02/07/06 06:28:15 USB0: registered for events
02/07/06 06:28:15 INFO: System serial number reassigned to M1000707 from attached L2.
02/07/06 06:28:15 L1 booting 1.20.6
02/07/06 06:28:15 USB0: waiting on open
02/07/06 06:28:15 USB0: opened
02/07/06 06:28:15 USB0: registered as remote
02/07/06 06:28:15 USB0: registered for events
001r27-L1>


And there you have it...from start to finish. Now clearly one doesn't have to use a fuel to set those parameters on the chip, if you look at the data sheet, it's quite simple to read/write/and even clear it. The Fuel was just the quickest means to an end that I could think of. If I get bored maybe I'll build a little device to program these things...or perhaps someone else wants to pick up the torch and run some more?

One further item, you'll notice in the log that there's some uninitialized data in there...it's probably a good idea to load the defaults after you've performed this, just to make sure all of the settings start at something reasonable.

I've been meaning to do this for awhile, and I apologize thoroughly for not getting to it sooner.

Please use this knowledge responsibly.
-Jesse
:O3x06R: :ChallengeL: :Octane: :Indy: (4x Challenge S)
Just culled the herd.
死の神はりんごだけ食べる

開いた括弧は必ず閉じる -- あるプログラマー

:Tezro: :Tezro: :Onyx2R: :Onyx2RE: :Onyx2: :O3x04R: :O3x0: :O200: :Octane: :Octane2: :O2: :O2: :Indigo2IMP: :PI: :PI: :1600SW: :1600SW: :Indy: :Indy: :Indy: :Indy: :Indy:
:hpserv: J5600, 2 x Mac, 3 x SUN, Alpha DS20E, Alpha 800 5/550, 3 x RS/6000, Amiga 4000 VideoToaster, Amiga4000 -030, 733MHz Sam440 AmigaOS 4.1 update 1.

Sold: :Indy: :Indy: :Indy: :Indigo: Tandem Himalaya S-Series Nonstop S72000 ServerNet.

Twitter @PymbleSoftware
Current Apps (iOS) -> https://itunes.apple.com/au/artist/pymb ... d553990081
(Android) https://play.google.com/store/apps/deve ... +Ltd&hl=en
(Onyx2) Cortex ---> http://www.facebook.com/pages/Cortex-th ... 11?sk=info
(0300s) Minnie ---> http://www.facebook.com/pages/Minnie-th ... 02?sk=info
Github ---> https://github.com/pymblesoftware
Score. Thanks Regan!

-Jesse
:O3x06R: :ChallengeL: :Octane: :Indy: (4x Challenge S)
Just culled the herd.
holy crap, i am excited!

good work zerolapse!
:Indigo: :O2000R: :O2000E: :O2000: :O2000: :O2000: :O200: :Octane: :Octane2: :O3x0: :Fuel: :A3502L:
"its more fun to compute" -- KRAFTWERK
Thanks dude!

-Jesse
:O3x06R: :ChallengeL: :Octane: :Indy: (4x Challenge S)
Just culled the herd.
Ok, so here's a simpler way to do it and all you need is a blank/new chip.

1. Power down your router brick
2. replace the chip with a new one
3. power up the router brick and connect it to your l2 controller, making sure that all of your serial numbers are already set how you need them
4. log into the l2 controller and do a config verbose and find the unit with no rack and slot id assigned like so:

Eos-001-L2>config verbose
L2 192.168.20.15: - 001 (IR 80a8140f, C 00000000) (LOCAL)
L1 192.168.20.15:2:0 - 001c07 (b1;p2/1;d4 /dev/sgil1_2)
L1 192.168.20.15:1:0 - 001c06 (b1;p1;d2 /dev/sgil1_1)
L1 192.168.20.15:4:0 - 001c03 (b1;p2/4;d6 /dev/sgil1_4)
L1 192.168.20.15:3:0 - 001c01 (b1;p2/2;d5 /dev/sgil1_3)
L1 192.168.20.15:0:0 - ---r-- (no rack and slot ID set) (b2;p2/1;d3 /dev/sgil1_0)
L2 Clients:
127.0.0.1: (IR 8aa8140f) sgi (sgi) @ localhost running 'l2part'
127.0.0.1: (IR 86a8140f) sgi (sgi) @ localhost running 'l2gui'
127.0.0.1: (IR 88a8140f) sgi (sgi) @ localhost running 'l2flash'


5. in the output to the right of the unit with no slot id you'll notice sgil1_0, the number at the end is the port number, in this case 0
6. issue the command :portnumber:0 brick rackslot 1 27 (or whatever you want it set to) and then :portnumber:0 reboot_l1 like so:

Code: Select all

Eos-001-L2>:0:0 brick rackslot 1 27
000r00:
brick rack set to 001 (takes effect on next L1 reboot/power cycle)
brick slot set to  27 (takes effect on next L1 reboot/power cycle)
Eos-001-L2>:0:0 reboot_l1
Eos-001-L2>INFO: closed connection to 000r00
INFO: opened USB device at b2;p2/1;d4 (/dev/sgil1_5)


7. Profit!! :D

Code: Select all

Eos-001-L2>1.27 log
001r27:
02/07/06 06:28:15 checksum Error - common header initialized
02/07/06 06:28:15 nvram checksum error - initializing core data.
02/07/06 06:28:15 nvram checksum error - initializing extended data.
02/07/06 06:28:15 nvram checksum error - log pointers invalid, log pointers reset
02/07/06 06:28:15 L1 booting 1.20.6
02/07/06 06:28:15 ** fixing invalid SSN value
02/07/06 06:28:15 ** fixing BSN mismatch
02/07/06 06:28:15 USB0: waiting on open
02/07/06 06:28:15 USB0: opened
02/07/06 06:28:15 USB0: registered as remote
02/07/06 06:28:15 USB0: registered for events
02/07/06 06:28:15 INFO: System serial number reassigned to M1000707 from attached L2.
02/07/06 06:28:15 L1 booting 1.20.6
02/07/06 06:28:15 USB0: waiting on open
02/07/06 06:28:15 USB0: opened
02/07/06 06:28:15 USB0: registered as remote
02/07/06 06:28:15 USB0: registered for events
:O3x06R: :ChallengeL: :Octane: :Indy: (4x Challenge S)
Just culled the herd.
死の神はりんごだけ食べる

開いた括弧は必ず閉じる -- あるプログラマー

:Tezro: :Tezro: :Onyx2R: :Onyx2RE: :Onyx2: :O3x04R: :O3x0: :O200: :Octane: :Octane2: :O2: :O2: :Indigo2IMP: :PI: :PI: :1600SW: :1600SW: :Indy: :Indy: :Indy: :Indy: :Indy:
:hpserv: J5600, 2 x Mac, 3 x SUN, Alpha DS20E, Alpha 800 5/550, 3 x RS/6000, Amiga 4000 VideoToaster, Amiga4000 -030, 733MHz Sam440 AmigaOS 4.1 update 1.

Sold: :Indy: :Indy: :Indy: :Indigo: Tandem Himalaya S-Series Nonstop S72000 ServerNet.

Twitter @PymbleSoftware
Current Apps (iOS) -> https://itunes.apple.com/au/artist/pymb ... d553990081
(Android) https://play.google.com/store/apps/deve ... +Ltd&hl=en
(Onyx2) Cortex ---> http://www.facebook.com/pages/Cortex-th ... 11?sk=info
(0300s) Minnie ---> http://www.facebook.com/pages/Minnie-th ... 02?sk=info
Github ---> https://github.com/pymblesoftware
Time to resurrect this well aged thread...

I just confirmed that this procedure works for CX bricks with serial security enabled :-)
(tumbleweeds)
*Highfive!* Thanks for reporting on that!

-Jesse
:O3x06R: :ChallengeL: :Octane: :Indy: (4x Challenge S)
Just culled the herd.