ATA/ATAPI - I/Oポート、レジスタ Edit

目次 Edit

I/Oポート、レジスタ Edit

コマンドによって、レジスタのビットの意味が変わってくるので、詳しくはコマンドを参照してください。
いっそ、レジスタAとかにすればよかったのに。。

ATAのI/Oポートマップ Edit

データ・レジスタ (Port:0x0170, 0x01f0) Edit

bit1514131211109876543210
内容主に、PIOデータ転送時のデータ用レジスタ

エラー・レジスタ (Port:0x0171, 0x01f1) Edit

bit76543210
内容コマンドによるABRTコマンドによる
ABRT (bit:2) Edit
  • 0:アボートなし
  • 1:実行したコマンドが未定義かパラメータが間違っている。

フィーチャーズ・レジスタ (Port:0x0171, 0x01f1) Edit

コマンドの特性を示すレジスタで、すべてのビットの意味がコマンドによって異なる。

bit76543210
内容コマンドによる

セクタ・カウント (Port:0x0172, 0x01f2) Edit

PACKETコマンド以外 Edit
bit76543210
内容処理するセクタ数
PACKETコマンド→Interrupt Reasonレジスタ Edit
bit76543210
内容TAGRELI/OC/D
C/D (bit:0) Edit
I/O (bit:1) Edit

データの転送方向を示す。

  • 0:ホスト→デバイス
  • 1:デバイス→ホスト
REL (bit:2) Edit
TAG (bit:3-7) Edit

セクタ・ナンバー (Port:0x0173, 0x01f3) Edit

すべてのビットの意味がコマンドによって異なる。

bit76543210
内容コマンドによる

シリンダLow (Port:0x0174, 0x01f4) Edit

bit76543210
内容CHS方式時:Cylinder Low
LBA方式時:LBA[0-7]
PACKETコマンド時:Byte Count LSB

シリンダHigh (Port:0x0175, 0x01f5) Edit

bit76543210
内容CHS方式時:Cylinder High
LBA方式時:LBA[8-15]
PACKETコマンド時:Byte Count MSB

デバイス/ヘッド・レジスタ (Port:0x0176, 0x01f6) Edit

bit76543210
内容廃止コマンドによる廃止DEVコマンドによる
Device select (bit:4) Edit
  • 0:マスタ
  • 1:スレーブ

ステータス・レジスタ (Port:0x0177, 0x01f7) Edit

bit76543210
内容BusyDRDYコマンドによるDRQ廃止廃止ERR
Error (bit:0) Edit
  • 0:エラーなし
  • 1:エラーあり
Data Request (bit:3) Edit
  • 0:データ転送要求なし
  • 1:データ転送要求中!
Device Ready (bit:6) Edit
  • 0:デバイスの準備ができていない。
  • 1:デバイス準備OK
Busy (bit:7) Edit
  • 0:アイドル状態
  • 1:ビジー状態

コマンド・レジスタ (Port:0x0177, 0x01f7) Edit

bit76543210
内容コマンドコード

オールタネート・ステータス・レジスタ (Port:0x0376, 0x03f6) Edit

基本的にステータス・レジスタと同じで、割り込みフラグを変更しないことだけが違う。

デバイス・コントロール・レジスタ (Port:0x0376, 0x03f6) Edit

このレジスタは、マスタ、スレーブの両デバイスに書き込みを行うので注意。

bit76543210
内容予約SRSTnIEN0
Interrupt Enable (bit:1) Edit
  • 0:割り込みをイネーブル
  • 1:割り込みをディセーブル
Software Reset (bit:2) Edit
  • 0:何もしない。
  • 1:ソフトウェアリセットを実行

Since 2008 July. OS Project Wiki
リロード   新規 下位ページ作成 編集 凍結 差分 添付 コピー 名前変更   ホーム 一覧 検索 最終更新 バックアップ リンク元   ヘルプ   最終更新のRSS