Last updated: "2002/05/19 19:22:29 +0900"

小松平良樹プレゼンツ

CASSIOPEIA FIVA MPC-103 でいろんな SODIMM を使ってみよう

CASSIOPEIA FIVA MPC-103 は、MPC-101/102 と比較して、SODIMM を選ぶようだ、 という現象が見られていました。

その原因を私が調査した結果、SDRAM に供給する SDRAM CLOCK の初期値が適切ではない ことが分かりました。

この SDRAM CLOCK の初期値を適切に変更することにより、使えなかった SODIMM が 使えるようになったという御報告をいただきました。MPC-103 ユーザに有益な 情報であると思いますので、ここで公開します。

FLASH ROM を書換える必要があります。 FLASH ROM を書き換えるのは、非常に危険な行為です。失敗すると、MPC-103 が二度と起動しなくなる 可能性があります。本 HTML 文書を参照して実行した結果、何が起ころうとも、 ご自身の責任において処理してください。私は責任をとりませんし、カシオも無関係です。 万が一失敗したとして、カシオに修理を求めるのは、本来の業務に支障を与えることになります。 失敗して起動しなくなった場合でも、カシオに修理を求めないでください。

本 HTML 文書に関する質問を、カシオに問い合わせることはしないでください。 私が勝手に行ったコトであり、カシオに問い合わせを行うと、 本来の業務に支障を与えることになります。 迷惑をかけると、今後 (私もあなたも) このような活動ができなくなる可能性があります。

「メモリマネージャが動いていない、日本語表示もされない生 MS-DOS 上」で 作業する必要があると思います。WindowsMe で、この状態を作ることができるかどうか、 私は知りません。私は Windows98SE によりこの状態を作り、作業しました。

時間とやる気の問題から、情報が足りないかもしれません。ご意見、苦情などは謹んでお受けしますが、 それが反映されるかどうかはわかりません。

もしも万が一、魔がさして実行してみたならば、結果を FIVA メーリングリスト に ご報告いただければ幸いです。

MPC-103 が SODIMM を選り好みする理由と改善方法

MPC-10x シリーズは、起動時、実装されている RAM の構成と容量を、 RAM への読み書きを行うことにより判断しています。 この処理を、「動的容量判断」と呼ぶことにします。 動的容量判断時に SDRAM に供給される CLOCK は、CPU CORE CLK を 3.5分周したものが使われます。

MPC-103 では CPU CORE CLK は 300MHz ですから、300/3.5=85.7MHz が供給 されます。最近の SODIMM のスピードグレードは、いわゆる「PC100」あるいは それよりも速いものが一般的ですから、 85.7MHz で問題がないと思うのですが、MPC-10x では実際には、(大体) 80MHz を 超える CLK では、本体と SODIMM の組合せによっては、 安定動作しないようです。この原因は、いまのところは不明です。

動的容量判断時、SDRAM に対して write/read アクセスを行います。 このとき、write/read が期待している動作と異なった場合、メモリ不良と判断して、 起動しません。この場合、電源 LED も点灯しません。

動的容量判断時には 300MHz/3.5=85.7MHz の SDRAM CLK が供給されていますが、 通常動作時には 300MHz/4.0=75.0MHz が供給されることが分かっています。

動的容量判断時に SDRAM CLK を 300MHz/4.0=75.0MHz とすることにより、 より多くの SODIMM を使用することができると予想しています。

動的容量判断は、いわゆる BIOS の処理の非常に早い段階で行われます。 これは FLASH ROM に格納されているコードにより処理されます。 そのため、動的容量判断時の SDRAM CLK を変更するには、FLASH ROM を 書換える (BIOS を書換える) 必要があります。

一般的に、速度を若干遅くすることにより不具合が出る可能性は少ない と考えられます。しかし、遅くすることにより、本体 SDRAM を認識できなくなる 可能性がないともいえません。 もしも本体 SDRAM を認識できなくなった場合には、MPC-103 は二度と起動しなくなってしまいます。

私の MPC-102 で、同様のタイミング (SDRAM CLK その他) により、SDRAM を 認識することを確認しました。 また、teruterubo さんの決死の挑戦により、MPC-103+209JK2P0.BIN では認識しなかった SODIMM が、209JK2P1.BIN (以下で説明) で認識されることが確認されました。 しかしこれらは、あなたの環境での正常動作を保証するものではまったくありません。 あなたの環境では、SDRAM CLK を変更することにより、二度と起動しなくなるかも しれません。

このように、二度と起動しなくなる可能性があることを認識した上で、本 HTML 文書を 参照してください。

BIOS の書換え

MPC-103 の BIOS は、ファイルとしては供給されていません。 そのため、実機から読み出して変更を加え、書き戻すという手順が必要になります。 これは、 CASSIOPEIA FIVA MPC-103 でメインメモリを 256MB にしてみよう+α と同様です。重複する内容はここでは述べませんので、こちらを充分理解しておいて ください。

重複する内容ですが、重要な注意点はここでも述べます。

WSP の自己展開差分は、元ファイルの生成時刻チェックを省略させているため、 元のファイルが不正であっても、一見、差分適用に成功したように見えてしまいます。 各ファイルの CRC の確認をお忘れなく。

awdflash.exe に、間違って *.COM を与えないように。与えるのは *.BIN です。

元になるファイルは、103hack で生成した BIOSORG.BIN です。 209JK1P0.BIN や 209JK2P0.BIN では **ありません**。 BIOSORG.BIN に適用するパッチとその内容は次の通りです。

パッチ 生成ファイル 用途
ORGP1.COM 209JK0P1.BIN オリジナルの CLK を変更しただけ
128P1.COM 209JK1P1.BIN 128MB+32MB で CLK を変更
256P1.COM 209JK2P1.BIN 256MB で CLK を変更

生成されるファイルの 209JK の次の数字は RAM 容量のつもりです。0 ってのは変ですけど...。 P の次の数字は patch level のつもりです。 209JK0P0.BIN というモノが存在しないのですが、256MB/128MB パッチとの対応から、 このようにしてみました。

差分生成には amapro ワキチ さんの WSP version 1.50 を使用しました。ありがとうございます。 http://www.vector.co.jp/soft/dos/util/se000818.html?l にて紹介されています。 また、元ファイルの生成時刻が一定ではないので、 http://www.vector.co.jp/soft/dos/util/se018498.html?l で紹介されている 毎黒仮節渡万 さん の WSPST 「WSP自己展開差分 タイムスタンプ比較抑制ツール」を使用しました。 ありがとうございます。

各パッチをアーカイブしたファイルは次から取得してください。

209JK patch level 1 パッチ集 '103bios_patch1_20020329_00.LZH'

元ファイル BIOSORG.BIN と、パッチを当てて生成される各ファイルの CRC は次の 通りです。

[D:\home\komatsu\103\pl1\tmp]crc *.bin
6f7f00fc  262144 209JK0P1.BIN
7180df77  262144 209JK1P1.BIN
e55577a5  262144 209JK2P1.BIN
613aa28f  262144 BIOSORG.BIN

生成されたファイルの CRC が上記の通りであれば、おそらく差分適用に成功しています。 awdflash.exe を使って、FLASH ROM に書き込んでください。このときには、 メモリマネージャが組み込まれていない、日本語表示もされない、生 MS-DOS 上で 作業する必要があると思います。

オリジナルの BIOS である BIOSORG.BIN は、web などでは提供されていません。 あなたしか持っていませんから、大事に大事に保存しておいてください。

パッチを当てた BIOS は、起動時の version 表記をオリジナルから変更しています。 次のようになります。

BIOS version 表記
209JK0P1.BIN 2.0.9JK_ORGpl1
209JK1P1.BIN 2.0.9JK_128pl1
209JK2P1.BIN 2.0.9JK_256pl1

おわりに

動的容量判断時の SDRAM CLK を 75.0MHz にすることにより、これまでは 使えなかった SODIMM が使えるようになる可能性が出てきましたが,,, 需要って ありますかねえ? パッチを作ってみたものの、別に誰も必要としていないかも。

もしも万が一、パッチ適用により、今まで使えなかった SODIMM が使えるようになった、 という方がいらっしゃいましたら、やったかいがあるというものです。 是非とも御報告ください。

謝辞

MPC-103 の SDRAM CLK を調査していただいた さえき さん、パッチを当てた 非常に危険な BIOS を動作確認してくださった teruterubo さん、ありがとうございました。

なお、ここでいう「動作確認」は、あくまでも teruterubo さんの環境では動作した、 ということであり、あなたの環境での動作を保証するものではありません。 くどいですが、動作保証は誰もしませんし、パッチを当てた BIOS では、 二度と起動しなくなる可能性も充分あります。

MPC-103 では 256MB+32MB が実現可能なようだ

本文書では、「多くの種類の SODIMM を使用してみよう」ということに焦点を当ててみました。 その後、MPC-103 では 256MB+32MB=288MB の RAM を使用できるようだ という ことがわかりました。補足として、288MB の RAM を使用する際にも、多くの SODIMM が 使用できるかもしれない方法を述べます。

SDRAM CLK に関しては、上のほうで述べた通りです。 288MB RAM の使用に関しては、 「CASSIOPEIA FIVA MPC-103 でメインメモリを 256MB にしてみよう+α」 の、 「MPC-103 で 288MB を使ってみよう」 で述べている通りです。

288MB RAM 使用時の、SDRAM CLK の初期値を 75.0MHz とするパッチは、次から 取得してください。

209JK3P1_20020417.LZH

BIOSORG.BIN に対して 209JK3P1.COM を適用すると、209JK3P1.BIN が できあがります。crc は次の通りです。

[D:\home\komatsu\103\pl_\tmp2]crc 209jk3p1.bin
ea87c563  262144 209jk3p1.bin

209JK3P1.BIN を awdflash.exe で書き込み再起動すると、ひょっとすると 288MB を使用できるようになるかもしれません。

awdflash.exe に、間違って *.COM を与えないように。与えるのは *.BIN です。

BIOS 起動時の version 表記は、2.0.9JK_288pl1 に変更しています。

正常動作しなかった場合、SODIMM を外すと、32MB で正常動作する ハズです (保証するものではありません)。

209JK3P1.BIN が正常動作しなかった場合は、適切な BIOS を書きこんでください。 そのときは念のため、電源 OFF → SODIMM を外す → 電源 ON で 動かした上で、BIOS の更新を行うのがよいでしょう。

SODIMM がインストールされている状態で正常動作しない場合でも、 MS-DOS は動くようですが、その状態で BIOS の更新が正常に行え るかどうかが疑わしいためです。

おわり

patch level 1 の動作報告が多くないのがちょっと心配なのですが、 patch level 0 を使う必要はたぶんないと思います。patch level 1 で問題ないと 思います。

MPC-103 では 288MB 化も問題ないと思います。256MB の SODIMM を使う場合、 209JK2Px の存在意義はあまりなく、209JK3P1 だけで よいような気がします。

MPC-103 では 512MB も実現可能みたいだよ

teruterubo さんが、MPC-103 で 512MB を実現されました。 これに関する情報は、次の URL からどうぞ。

CASSIOPEIA FIVA MPC-103で512MBを認識させる方法 by teruterubo さん



ホームページ



mail