10/11/2011

TX-50開発キットで遊ぶ その5

今週はなんとかして、BIOSを焼いて起動テストまで行きたいところです。

先週の続きで、BLDK付属のSpiUpdate.efiを使って焼いてみようという作戦です。

いんぐりもんぐりして、SST 25VF016Bをゲットしました。(このチップは一時期のマザーボードでよく使われていたようです。)で、やってみたんですが、なんとエラーです。チップ以外にも何かをチェックしているっぽいです。うーん。どうしよっかな。

考えました。ひらめきました。開発元のイノテックさんの主催するEM-CLUBというTX-50のフォーラムでBIOSのアップデートがダウンロードできるのを思い出しました。これを使ってなんとかできないかやってみることにしました。

で、まず、どんな感じか感触を掴むためにアップデートを実行してみます。まず、EM-CLUBから「70S01905D.EXE」を頂きました。これはどうやらDOSで起動させて実行するタイプのようです。
なので、DOSの起動ディスクが必要になります。FreeDOSとかでやるという手もありそうですが、
今回は、王道のフロッピーでやります。久々にUSBフロッピードライブが活躍だー。
Window7のマシンにUSBフロッピードライブつないで、ディスク入れてフォーマット時に、
「MS-DOSの起動ディスクを作成する(M)」にチェックです。Windows7でこれをやるのは初めてでしたが、まだこの機能残ってるんですね。よかったです。


で、このフロッピーに「70S01905D.EXE」を入れればいんですが、なんとこのファイル約2.5MBもあります。フロッピーは1.44MBなので当然、入らんのです。あーあ。

あきらめるのは、まだ早いっす。USBメモリに「70S01905D.EXE」を入れて、フロッピーからDOSを起動させたあとで、別ドライブとしてUSBメモリが認識すれば、実行できるはずです。


よし。FDDとUSBメモリを両方挿して起動です。DOSは普通に起動しました。そして、USBメモリにカレントディスクを移動してみます。なんと、「C:」と思いきや、「B:」ドライブとして認識するようです。「70S01905D.EXE」も見えてますので、実行してみます。せっかくなので、BIOSチップを入れ替えて焼けるかやってみたところ、うまくいきました。別チップに焼いたBIOSで起動成功です。
試しに、SST 25VF016B以外のチップでも試してみましたが、エラーになりました。結局SST 25VF016B必須ですな。

最近気づいたんですが、BIOS中に「F12」キーで起動ドライブの選択メニュー画面に入れます。

で、本題に戻ります。「70S01905D.EXE」を使ってBLDKのBIOSを焼けないかなー。
とりあえず、「/?」を付けて実行してみたらヘルプがでてきました。かなりいろんなオプションがあるようです。どうやら「/G」オプションで現在のBIOSをファイルに保存できるようです。でやってみたら、「NO FILE」というファイル名で現在のBIOSが保存されたっぽいです。これでBIOSのバックアップファイルゲットです。他のオプションもいろいろ試してみましたが、なんだか無視されているような感じです。どうやこのツールは「Insyde Flash Utility for InsydeH2O 1.8.7」というものに、BIOSのROMイメージを合体させたもので、自動的に「/ALL」というオプションが優先されて実行されるようです。

オプションで任意のROMイメージファイルを指定できないかやってみたところ、試した範囲では無視されてだめでした。そこで、ちょっと考え方を変えて、「70S01905D.EXE」をバイナリエディタで編集してBIOSイメージ部分を自分のBIOSイメージと入れ替えてしまうことができれば、焼けるかも。

バイナリエディタで「70S01905D.EXE」を開いて、先ほどファイルに保存したBIOSイメージと同じ内容の箇所を探してみました。なんと、BIOSイメージ2MBはそのまま実行ファイルのお尻から2MBと一致しました。つうことは、この2MBをまんま入れ替えれば、行けるかも。

という訳で、BLDKをビルドしたBIOSイメージと入れ替えてみます。ぬ。BLDKのイメージは1MBですね。うーん。ここは単純に0で埋め尽くしたジャスト1MBのファイルを作ってくっつけます。
で、「70S01905D.EXE」のBIOSイメージ以外のところを切り出したファイルを作ってくっつけます。

そんなこんなして作ったアップデータをDOSで実行してみましたところ、見事動いて、焼けたようです。やったー。めでたくBLDKを動かすことができそうです。

しかし、電源入れたが起動せず。というか、どこまで動いているのか?まったく動いてないのかも判断不能です。

POSTコードを表示する7segLEDとかあればいいんだけどな。

その6に続く。

0 件のコメント:

コメントを投稿