[20516]
ATA133 BOOT BIOS
投稿者:大熊猫 さん
2002-12-07 04:38:02
と、何番煎じか良く分かりませんがさっき成功して、眠れそうにありません。
各種パラメータ(UA/DA、CHS、IOアドレス等など)はとりあえず決め撃ちし
割り込みを使わないPIO転送で、INT 1BをフックするのみでWindows98SEの
インストールおよびブートに成功しました。(ファンクションは4,5,6のみ実装)
機種: PC9821V7 S7KA(G8UYC)
内蔵IDE:プライマリ・マスタ WD Cavier 21700(IPLのみで領域確保せず)
PCI スロット#1: MILLENIUM VRAM4M版
PCI スロット#2: 玄人志向ATA133RAID(SiI680)
プライマリ・マスタ Seagate ST33210A(Aドライブのみ)
また、CMDのレファレンスドライバは問題なく組み込めたようで、
デバイスマネージャからも接続別表示でHDDが上記ボードに
ぶら下がっているのが確認でき、MS-DOS互換アクセスではなくなりました。
速度などは計測していませんが・・・。
ドライブは当該ドライブのみ見えています。
なお、RAID/IDEのジャンパはRAIDにしてあります。
そうでないと、クラスコードに応じてROMアドレスから連続して
「広大な」メモリ空間が割り当てられます。(DC00からいっぱい)
しかしともかく、検証もまだまだ不十分で、課題も山積みといった様相で、
実用には程遠いように感じています。
-
まりも さん
2002-12-08 17:25:35
>IPLのみで領域確保せず
これを置いているということは、ATA133RAIDの BIOS ROMそのものを書き換えたのではなく、IPLwareとして、INT 1Bhフックするプログラムを組み込んで実現した、ということでしょうか。
-
大熊猫 さん
2002-12-08 23:55:52
まりもさん、こんばんは。
BIOSはFLASH ROMに書きこんでおります。
IPLのみが残っているというのは、もともと内蔵IDE接続の
HDDに作業用として、DOSの領域を残してあったからです。
しかし、Win98SEのインストール中に
「SETUPX.DLLが見つかりません」という
エラーが出たので、調べてみるとその作業用のDOSのドライブに
テンポラリファイルが出来ていて、そこでこけていることが
判明したので、テンポラリファイルも同じATA133RAID接続の
HDDに作らせるように仕向けるため、DOS領域を開放した結果、
IPLのみが残ったということです。
あと、追加ですがレファレンスドライバには、
接続および動作状況を表示するプログラムがついていて、
ATA133RAID接続の3.2GBのHDDに関してはUDMA mode2で
動作していることが確認できました。
松下寿の8倍速CD-ROMをつないでみると
WDMA mode1で動作していると表示されます。
ともかくも、パラメータを一般化して、
もっと色々試してみたいところです。
-
かねやす さん
2002-12-09 12:58:55
最近のドライバはWin9x系でもint 13h要求しないのですね、なるほど。
ところで、パラメータってどこに記録予定でいます? 僕は安易にSCSIのパラメータ領域を
#7から逆向きに埋めていったんですが(超手抜)、本当はバンクRAMに置くべきなのかな?
-
大熊猫 さん
2002-12-10 13:29:45
かねやすさん、こんにちは。
> 最近のドライバはWin9x系でもint 13h要求しないのですね、なるほど。
ATA100も最近のものという認識でいましたが・・・(^_^;
はっと気づくと結構時代が流れているように感じます。
ところで、体験したことがないので教えていただきたいのですが、
int 13h要求があると、どのような現象が見られるのでしょうか?
よろしくお願いします。
> ところで、パラメータってどこに記録予定でいます?
拡張ROM空間に持ち込むつもりでいます。
そうすると、他のBIOSやドライバとバッティングしないで済み、
デコードに割かないといけないバイト数が減らせるかと思いますので。
私にとってFSやGSといった386以降のセグメントレジスタの
ありがたみが初めて分かる場面と思っています。
ただ、まだ実験していないので、どんな不具合が出るかなど
ぜんぜん予想できていないです。
-
大熊猫 さん
2002-12-15 19:29:55
Windows2000をインストールしてみました。
Win98SEよりは垣根が低いと思っていましたが、
UIDE66などと同じくF6を押してSiI680のドライバを登録すると、
SiI680接続のHDDにSiI680接続のCDROMを用いて難なく
インストールでき、BOOTもできました。
デバイスマネージャでの動作モードの表示はそれぞれUDMA2、WDMA1と出ます。
内蔵IDE プライマリ・マスタ WD Cavier 21700 (IPLのみ)
SiI680 プライマリ・マスタ Quantum Fireball EL AT5.1
セカンダリ・マスタ 松下寿 CR583J
FreeBSDの動作も確認したい所です。とりあえずkernuideでは認識して
くれなかった(あたりまえ)ので、作らないといけないんですね。
UNIX系OSはあまり慣れていないので、苦戦しそうな予感です。