Dual BIOS! 計画

2つのBIOSを載んで切り替えて起動する方法についての検討してみました。

  • BIOS 2重化の方法の検討、2M bit Flash ROM の制御信号を調べる。
  • Dual BIOSマザーの解析、どうやって2つのBIOSを切り替えているか。
  • Dual BIOS! 化の改造方法。

Dual BIOS! 計画 - バイオスの2重化改造 -

バイオスROMがマザーに半田付けされている場合、その更新に失敗したら簡単には修復できません。 そうなる前に、バイオスを2重化して切り替える改造方法を考えてみます。
 題してDual BIOS!(インチキDual BIOS)ってことで。 (2001年7月)


Dual BIOS! 改造後のGA-7ZX-H

DualBIOSはギガバイトの商標です。今回製作したものは、!を付けて『Dual BIOS!』と呼ぶことにしますが、当然まったくの別物で、 あらかじめスイッチで使用するBIOSを決めておく方式です。それでは、改造を始めるまでの過程を含めて紹介します。

BIOS 2重化の方法を検討

BIOS ROMはチップイネーブル(以下、CE# )ピンをHighレベルに保てば、スタンバイ状態になり、他の制御信号を無視してくれます。またデータバスはハイインピーダンスとなりますから、この状態はROMがつながっていない場合と同等と考えていいわけです。

ではここで、BIOSをROM1,
増設するROMをROM2 として、

ROM1にはチップセットからのCE#を、

ROM2のCE#をHighレベルにすると、

ROM1だけを読み書きをすることができ、これを逆にするとROM2だけの読み書きもできますから、CE#の操作だけで特定のROMを選択することができそうです。

2M bit Flash ROM

フラッシュROMの資料を調べてみると、ROMの読み書きなどをする場合は、チップイネーブル(以下、CE# )ピンを必ずLowレベルにしていることがわかります。 左の方法の場合2個のROMのCE#以外はすべて共通配線にします。
ROMの各ピンの機能は下の通り。

A0-A17 : Address
DQ0-DQ7 : Data
CE# : Chip Enable
WE# : Write Enable
OE# : Output Enable
VDD : 5V
Vss : GND
NC : 4Mbit ROMの場合 A18

Dual BIOSマザーの解析

ギガバイトのDual BIOSマザーが手許にあるので、そのしくみを調べてみました。
2つのROMでCE#以外はすべて共通配線になっており、CE#は3本足の面実装(不明)部品をはさんで、74HC74の出力につながっていました。

これは、最終的にこの74HC74が3本足の面実装部品をスイッチングして2つのROMのどちらかにCE#信号を渡し、もう一方のROMのCE#をハイレベルにすることで、ROMを選択しているということです。 この方法は先に考えた方法と同じで、CE#を操作する改造方法でいけると確信しました。


GA-7ZXR(Dual BIOS)rev1.0 BIOS CE#に関係する回路


74HC74
このICの出力は,フリップフロップ出力とその反転出力と呼ばれるもので、一方がHighレベルであれば 必ずもう一方はLowレベルになります。またここでは3.3v動作になっていました。

2M Flash (SST 39SF020A)
2Mビット・フラッシュロムで、C-MOS,5V動作のものです。 入出力はTTLコンパチブルなので、このように3.3Vにプルアップされた入力レベルでも動作するようです。
ただ、なぜ3.3Vを使っているのかは、よくわかりません。

Dual BIOS! (インチキdual BIOS) 化の改造方法

追加するROMをCE#信号以外をすべて共通配線にして取り付けます。
チップセットからBIOS ROMへのCE#信号パターンを探し、切り離します。
チップセットから出ているCE#をこの回路図のCE#に、
2個のROMのCE#にはROM1:CE#, ROM2:CE#をそれぞれ接続して完成です。
フラッシュ・ユーティリティ−で、2つのROMが認識できれば、成功!

fig Dual BIOS!

Dual BIOS!
チップセットのCE#出力はスイッチでどちらか一方のROMのCE#ピンに加わり、同時にもう一方のCE#をHighレベルにする回路です。 暫定的な手段としてなら、親亀子亀方式でROMを2段重ねにし、CE# を分離し、その切替を直接SWの接点で行うこともできるとは思いますが、 ROMのCE#がオープンにならないようにプルアップする、絶対に二つのROMが同時にアクティブにならないようにする、SWの配線を極力短くするなどの対策が必要で、その場合でも接点に信号を直接流すことになり不安ですから、このような回路を使用しました。

Dual BIOS! 配線図

Dual BIOS!
CE#切替回路(74HC00を半透明として表から見た配線図)

CE#のLED表示

CE#がLowレベルのとき、つまりBIOS ROMがアクティブの時にはROMを切り替えないようにしたい。  そこでCE#をモニターするLEDを付けてみます。

今回の製作にあたって、どんなタイミングでBIOSのCE#がアクティブ(Lowレベル)になっているか、よく分からなかったため、確認用に製作したものです。


ROMアクティブ表示LED 参考配線図 (7555を半透明として表から見た図)

C-MOSタイマーIC,7555を使いROMがアクティブの場合、それが一瞬でも0.1秒程度光るようにました。
Win98で、マウスを動かしただけでもBIOS読んでるみたいですね、 起動後に別のリビジョンのバイオスにすりかえるのは、やめたほうがいいようです。
ただし、実際はCE#だけモニターしているので、その他のROMの制御信号を見てませんから、必ずしもBIOSを読んでいるとは限りません。


製作はユニバーサル基板を使って作るのが一般的と思いますが、この場合マザーへの取り付けに工夫が必要です。
部品点数が少ないので、いっそのこと、マザーにICの文字のある面をボンドで貼ってしまい、ピンに直接配線したほうが楽かもしれません。

BIOSのバックアップは、オリジナルが消失した場合に備え1つだけ複製を保管する、その方法を考えることがこの記事の内容です。
安全性にはできるだけ配慮したつもりですが、適切でない改造内容を含むことも考えられます。
実際に改造される場合は、この内容を検証できる方のみ、お試し下さい。

BIOSがソケットにのっている場合、DOSブート後にBIOSを抜いて別のROMを入れて書き込むという手段を御存じと思いますが、これは危険が伴いますから、非常時以外は勧められる方法ではありません。
今回のようにソケットを追加し、CE# を操作できるよう改造すれば、より安全に切り替え可能となります。もっとも改造をとちると壊滅するかもしれませんが。 まあ『ロム焼き....』が市販されていますから、それを使いますよね普通!。

data sources
SST : SST39SF010A / 020A / 040
http://www.ssti.com/products/stdmem.html

Thanks
全面的に御協力いただいたIKEさん、切替回路の考案などの御協力いただいたkeiさん、またその他の情報を寄せていただいたみなさん、ありがとうございました。

2001 07/18 作成

次のページで実際にDual BIOS! 化改造をしたGA-7ZX-Hを紹介します。



このページの回路をROMソケットに差せるようにすれば便利です。問題となるのが PLCCソケットに差し込めるプラグ部分で、手に入るとは思えませんからROMと面実装用ソケットを親亀子亀方式、つまり2段重ねで半田付しCE# を分離しその操作SWを取り付ければ、自作版『ロム焼き....』ができそうですが.......