Sun MicrosystemsのSun386iは、機器構成のパラメータと時刻情報をNon-volatile Random Access Memory (NVRAM)に持っている。 Sunで使われているNVRAMは、SRAMと時計、電池を一つのDual In-line Package (DIP)に封入したもので、電池部分が消耗してしまうと、時計が止まるだけでなく構成情報も失われ、正常に動作しなくなってしまう。 この作りはSun3やSun4と同じである一方、電池交換後の復帰方法が他の68000系またはSPARC系のSunと異なっていて手間取ったので、このページではいくつかの情報源をまたいで集めた情報から導き出した、実際動いた手順を紹介する。
電池切れになると何が起きるのか
ふつうのSunでは、NVRAMが電池切れになるとEthernet MACアドレスが ff:ff:ff:ff:ff:ff になってしまうのをしばしば見るが、Sun386i ではMACアドレスはNVRAMには持っていないので、起動時の表示でここは影響を受けない。 一方、Diagnosticsディスクを入れてCPU Testを実施すると以下のメッセージが出る。
*** CPU Test FAILED *** Most likely replaceable unit is CPU board Check for loose cables and try reseating the option boards
そのままSunOSのインストールを強行しようとしても、手元ではインストーラのramdiskの展開に失敗してしまいシェルまで到達できなかった。
電池交換
NVRAMの電池交換自体は通常のSunと同じで、[obsolyte.com]に記述がある感じでMK48T02を削って電池をつなぐだけだ。
豆知識で、この電池の接続の+・−を逆につなぐと、チップ内の保護用のダイオードを電流が通り、電池はすぐになくなるがチップが壊れることはない。 なぜこんな記述があるかはお察しください。
初期化手順
先述の通り、Sun386iではhostid/MACアドレスはNVRAMにはいないので、通常のSunのNVRAMの手順とは大幅に異なる。 大まかなステップは以下の4つ。
- まず時計が動いている状態にする [sun3arc.org]
- PCBのリビジョンを書き込む [1]
- 必要に応じてコンソールのデバイス指定などの追加の調整をする [1]
- Diagnosticsディスクで起動し、チェックを通すと各パラメータが書き込まれる [sunhelp.org]
以下では実際の出力のなかでそれぞれのステップを説明する。
9: Mouse/Keyboard failed. Breakを送る Abort at ffff71f4 >q 7f8 時計の状態を確認 NVRAM 7f8: ff? NVRAM 7f9: 80? NVRAM 7fa: ff? NVRAM 7fb: ff? NVRAM 7fc: ff? 止まっている NVRAM 7fd: ff? NVRAM 7fe: ff? NVRAM 7ff: ff? >q 7f8 ここから時計を動かす手順 NVRAM 7f8: ff? 80 NVRAM 7f9: 80? 09 NVRAM 7fa: ff? NVRAM 7fb: ff? 80 NVRAM 7fc: ff? q >q 7f8 NVRAM 7f8: 80? 80 NVRAM 7f9: 00? NVRAM 7fa: ff? NVRAM 7fb: 80? 0 NVRAM 7fc: ff? q >q 7f9 NVRAM 7f9: 00? 0 NVRAM 7fa: ff? 0 NVRAM 7fb: 00? 0 NVRAM 7fc: ff? 4 NVRAM 7fd: ff? 11 NVRAM 7fe: ff? 1 NVRAM 7ff: ff? 96 >q 7f8 NVRAM 7f8: 80? 0 NVRAM 7f9: 00? q ここまでで時計が動いたはず >q 7f8 NVRAM 7f8: 00? NVRAM 7f9: 08? 秒針が動いてるか確認 NVRAM 7fa: 00? NVRAM 7fb: 00? NVRAM 7fc: 04? NVRAM 7fd: 11? NVRAM 7fe: 01? NVRAM 7ff: 96? >q 7f8 NVRAM 7f8: 00? NVRAM 7f9: 17? 秒針が動いてるので成功 NVRAM 7fa: 00? NVRAM 7fb: 00? NVRAM 7fc: 04? NVRAM 7fd: 11? NVRAM 7fe: 01? NVRAM 7ff: 96? >q 111 マザーボードのリビジョンを設定 NVRAM 111: 00? 3 501-1413-xx and 501-1414-xx CPU Boards NVRAM 112: 00? q >q 492 diagnostic bootに設定 NVRAM 492: ff? 6 NVRAM 493: ff? q >q 494 Auto config message flagをSun-3 (UNIX expert type messages)に設定 NVRAM 494: ff? 2 NVRAM 495: ff? q >q 1f Primary TerminalをSerial Port Aに設定 NVRAM 01f: 00? 10 NVRAM 020: 00? q >k 2 再起動 LED Register Test... Boot PROM Checksum Test... Serial Port A Internal Loopback Test... NVRAM Diagnostic Area Test... Verify Interrupt Vector Registers... MUSCI Diagnostic Register Test... Refresh Timer (1) downcount... Start Refresh Timer, Wait State, Refresh regs... Timer (0) downcount... Speaker Timer (2) downcount... Clock Tick Timer (3) downcount... RAM Bus Access Test... RAM Bus Data Path Test... RAM Address Test... RAM Data Test... Sizing System Bus... Slot 4 (82) => Graphics board. Slot 3 (64) => SIMM board. Slot 2 (ff) => empty or no ID returned. Slot 1 (ff) => empty or no ID returned. Slot AT(ff) => empty or no ID returned. Slot AT(ff) => empty or no ID returned. Video RAM Address Test... Video RAM Data Test... Keyboard/Mouse Internal Loopback Test... Keyboard Reset Test... 9: Keyboard Reset Test failed. No Keyboard Found. Breakを送る Abort at ffff71f4 >b fd () Boot: fd(0,0,0) SunOSのDiagnosticsフロッピーを起動 root on fd0a fstype 4.2 Boot: vmunix Size: 30630+167080+413688 bytes HARDWARE DIAGNOSTICS Rev. 2.5 Built: 09/13/88 13:36:32 メニューが出るので適当に項目を選ぶ Testing CPU, Takes 1.5 Minutes... Testing Floating Point, Takes 1 Second... Testing Ethernet, Takes 2 Seconds... Testing Memory, Takes 45 Seconds... Testing Complete... --- Remove diskette and press <Return> to restart your system --- 言われるまま再起動する LED Register Test... Boot PROM Checksum Test... Serial Port A Internal Loopback Test... NVRAM Diagnostic Area Test... Verify Interrupt Vector Registers... MUSCI Diagnostic Register Test... Refresh Timer (1) downcount... Start Refresh Timer, Wait State, Refresh regs... Timer (0) downcount... Speaker Timer (2) downcount... Clock Tick Timer (3) downcount... RAM Bus Access Test... RAM Bus Data Path Test... RAM Address Test... RAM Data Test... Sizing System Bus... Slot 4 (82) => Graphics board. Slot 3 (64) => SIMM board. Slot 2 (ff) => empty or no ID returned. Slot 1 (ff) => empty or no ID returned. Slot AT(ff) => empty or no ID returned. Slot AT(ff) => empty or no ID returned. Video RAM Address Test... Video RAM Data Test... Keyboard/Mouse Internal Loopback Test... Keyboard Reset Test... 9: Keyboard Reset Test failed. No Keyboard Found. Abort at ffff71f4 >b fd () SunOSの1番目のフロッピーを入れる Boot: fd(0,0,0) root on fd0a fstype 4.2 Boot: vmunix Size: 598016+98304+54564 bytes SunOS Release 4.0.1 (INSTALL) #9: Tue Nov 15 17:33:04 EST 1988 Copyright (c) 1988 by Sun Microsystems, Inc. mem = 12288K (0xc00000) avail mem = 11476992 64. level 1 page tables, 64. level 2 page tables Ethernet address = 8:0:20:2:2d:af wds0 at obmem 0xfb000000 irq 16 pri 2 sd0 at wds0 slave 0 sd1 at wds0 slave 8 sd2 at wds0 slave 16 st4 at wds0 slave 32 fdc0 at atmem 0x1000 irq 14 pri 2 fd0 at fdc0 slave 0 fd2 at fdc0 slave 1 ie0 at obmem 0xd0000000 irq 21 pri 3 bwtwo0 at obmem 0xa0200000 bwtwo0: resolution 1152 x 900 zs0 at obmem 0xfc000000 irq 9 pri 6 zs1 at obmem 0xa0000020 irq 9 pri 6 pp0 at atio 0x378 irq 15 pri 2 Insert Application SunOS diskette 2, confirm (y/n): y Initializing ram disk from diskette: done. WARNING: clock gained 2609 days -- CHECK AND RESET THE DATE! root on rd0a fstype 4.2 swap on ns0b fstype spec size 9652K dump on ns0b fstype spec インストールは続く
ここから先のコツは、端末の設定を7bitにしておくことで、なぜか各バイトのMSBが立っている出力を送ってきても文字が読めるようにしておくことだ。
参考文献
- Mike Persichetty and Gerri Roe. Field engineer handbook. Technical Volume I. Sun Microsystems, Inc. Customer Service Division. 800-4006-04. 1990. [bitsavers.org]