PCI Edit

目次 Edit

PCIコンフィグレーション空間 Edit

PCIバスにはI/O空間などとは別の、コンフィグレーション空間というものがある。
現在はさまざまなデバイスがPCIデバイスを使用しており、USBなどはPCIバスを前提としている。

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

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

コンフィグレーション・アドレス・レジスタ(Port:0x0cf8) Edit

3130292827262524232221201918171615141312111009080706050403020100
EN予約:0BusNoDevNoFuncNoRegAddr000x00
RegAddr : レジスタ・アドレス(bit:2-7) Edit

PCIコンフィグレーション・レジスタのアドレスを指定します。
4バイト単位で指定します。

FuncNo : ファンクション番号(bit:8-10) Edit

0~7までのファンクション番号を指定

DevNo : デバイス番号(bit:11-15) Edit

0~31までのデバイス番号を指定

BusNo : バス番号(bit:16-23) Edit

0~255までのバス番号を指定

EN : コンフィグレーション・データ・レジスタ・イネーブル(bit:31) Edit

コンフィグレーション・データ・レジスタを有効にするビット。

  • 0:無効
  • 1:有効

コンフィグレーション・データ・レジスタ(Port:0x0cfc) Edit

PCIコンフィグレーション・レジスタ Edit

3130292827262524232221201918171615141312111009080706050403020100
デバイスIDベンダID0x00
デバイス・ステータスデバイス制御0x04
クラスコードリビジョンID0x08
ヘッダ・タイプ0x0c
ベース・アドレス00x10
ベース・アドレス10x14
ベース・アドレス20x18
ベース・アドレス30x1c
ベース・アドレス40x20
ベース・アドレス50x24
0x28
サブシステムIDサブシステム・ベンダID0x2c
0x30
予約0x34
予約0x38
割り込みピン割り込みライン0x3c
未定義0x40
0xfc
  •  :どのデバイスも実装すべきとされているレジスタ

ベンダID/デバイスID/リビジョンID/サブシステム・ベンダID/サブシステムID Edit

デバイスを一意に識別するための番号。

ベンダID Edit

メーカーに一意に割り振られる番号。

デバイスID Edit

メーカーが独自に決めることができる、デバイスの番号

リビジョンID Edit

改訂番号。バージョン番号

サブシステム・ベンダID Edit
サブシステムID Edit

デバイス制御 Edit

15141312111009080706050403020100
予約

デバイス・ステータス Edit

31302928272625242322212019181716
予約

クラスコード Edit

デバイスの分類を表す。

313029282726252423222120191817161514131211100908
基本クラスサブクラスプログラム・インターフェース

ヘッダタイプ(Byte:0x0c[bit:23-16]) Edit

2322212019181716
MFタイプ
MF : マルチファンクション(bit:23) Edit
  • 0:単機能ファンクション。同じデバイス/バス番号の、ファンクション番号1~7に機能は無い。
  • 1:マルチファンクション。同じデバイス/バス番号の、ファンクション番号1~7にも機能がある。
タイプ(bit:22-16) Edit

0~127までの128通りの表現ができるが、現在は0~2の3通りしかない。

  • 0x00:通常デバイス
  • 0x01:PCIブリッジ・デバイス
  • 0x02:Card Busブリッジ・デバイス

参考・関連 Edit

書籍 Edit

PCIバス&PCI‐Xバスの徹底研究 Edit

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