[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からいっぱい)
 しかしともかく、検証もまだまだ不十分で、課題も山積みといった様相で、
実用には程遠いように感じています。
  1. まりも さん   2002-12-08 17:25:35
    >IPLのみで領域確保せず
    これを置いているということは、ATA133RAIDの BIOS ROMそのものを書き換えたのではなく、IPLwareとして、INT 1Bhフックするプログラムを組み込んで実現した、ということでしょうか。
  2. 大熊猫 さん   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で動作していると表示されます。
    ともかくも、パラメータを一般化して、
    もっと色々試してみたいところです。
  3. かねやす さん   2002-12-09 12:58:55
    最近のドライバはWin9x系でもint 13h要求しないのですね、なるほど。
    ところで、パラメータってどこに記録予定でいます? 僕は安易にSCSIのパラメータ領域を
    #7から逆向きに埋めていったんですが(超手抜)、本当はバンクRAMに置くべきなのかな?
  4. 大熊猫 さん   2002-12-10 13:29:45
    かねやすさん、こんにちは。

    > 最近のドライバはWin9x系でもint 13h要求しないのですね、なるほど。
    ATA100も最近のものという認識でいましたが・・・(^_^;
    はっと気づくと結構時代が流れているように感じます。
    ところで、体験したことがないので教えていただきたいのですが、
    int 13h要求があると、どのような現象が見られるのでしょうか?
    よろしくお願いします。

    > ところで、パラメータってどこに記録予定でいます?
    拡張ROM空間に持ち込むつもりでいます。
    そうすると、他のBIOSやドライバとバッティングしないで済み、
    デコードに割かないといけないバイト数が減らせるかと思いますので。
    私にとってFSやGSといった386以降のセグメントレジスタの
    ありがたみが初めて分かる場面と思っています。
    ただ、まだ実験していないので、どんな不具合が出るかなど
    ぜんぜん予想できていないです。
  5. 大熊猫 さん   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はあまり慣れていないので、苦戦しそうな予感です。