OS Project Wiki の保存版 ヒデさん・アリスさんほか、OS部のみなさんが書いたものです。
2019年にサイトが消滅しました。当時あった211ページのうち、本文が残っていたのは86ページです。すべては復旧できていません。Common Crawl と Internet Archive に 残っていたものを組み直しています(最終取得 2019-05-24)。
編集・検索・添付などの機能は動きません。表示のみです。

検索

まずは、検索!

Index

人気の20件
最新の20件
2018-12-022018-01-092017-05-07
  • Device/PCI
2017-04-252016-05-012015-02-242014-01-032013-06-252012-12-302012-12-292012-07-272012-07-162012-02-052012-01-292011-10-012011-09-18

PCI

目次

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

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

I/Oポート、レジスタ

PCIのI/Oポートマップ

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

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

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

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

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

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

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

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

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

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

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

  • 0:無効
  • 1:有効

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

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

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

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

ベンダID

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

デバイスID

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

リビジョンID

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

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

デバイス制御

15141312111009080706050403020100
予約

デバイス・ステータス

31302928272625242322212019181716
予約

クラスコード

デバイスの分類を表す。

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

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

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

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

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

参考・関連

書籍

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

Since 2008 July. OS Project Wiki
保存 2019-03-25 ・ ページ一覧