私は、シンプルなディスクドライバを開発するための私の四半期の長いプロジェクトの一環として、ドキュメントを流してきました。現時点では、私はインテル82801EB IOコントローラの中に実装されているさまざまなatapiとIDEコントローラのレジスタをマップしようとしています。すべてのこのIDEコントローラのアドレスマップの開始位置をメモリ上のどこに配置するかを説明できるものがありますか?
まず、私が言及していた文書:ページ415で www.intel.com/assets/pdf/datasheet/252516.pdf
は、テーブル154は、様々なコンフィギュレーション・レジスタのオフセットを示しています。これは愚かな質問のように見えるかもしれませんが、どのようにオフセットされているのかを調べるにはからへ?私は、これらのレジスタ用に予約されたある種の固定ベースアドレスを見つけることを期待していました。そこから私はこのテーブルを使用してドライバを構築することができます。
たとえば、テーブル154では、PCIコマンドレジスタがオフセット04-05hに配置されています。登録簿は417ページに詳述されています。これは私が理解していると信じています。しかし、このレジスタが4バイトの位置にあるベースアドレスはどこにありますか?
更新: ここでは、使用しているD865PERLボードの固定IOマップを調べた後、0000-00ffhはB865PERLによって予約されており、ICH5データシートを参照して動的アドレス指定情報。私が考えているのは、上記のテーブル154のIDEコントローラー・レジスターに使用することができます。この時点で私は教授に電子メールを送ったが、まだどこにあるのか把握しようとしている。
ありがとうございます!
私はD865PERLマザーボードのマニュアル、特に固定IOアドレスマップを見ています。 download.intel.com/support/motherboards/desktop/d865perl/sb/c3176401.pdf この固定IOマップ(54ページ)には、コマンドブロックレジスタのアドレスなどが記載されていますが、IDEコントローラのレジスタは不明です。オペレーションの開始時に私が0000h-00ffh番地に書いたテーブルは? –
私はあなたがATAプロトコルを知っていると仮定します。私がD865PERL仕様から理解する限り、プライマリおよびセカンダリIDEポートはコマンドブロック:0170-0177、01f0-01f7にマップされています。0374 - 0377、03f4 - 03f7 ... 私はあなたが直接82801EBコントローラをプログラムする必要はないと思う。 – Alphaneo