スポンサーリンク

PCICONF(8) FreeBSD システム管理者マニュアル PCICONF(8)

名称

pciconf − PCI バスのための診断ユーティリティ

書式

pciconf −l [−v]

pciconf −a selector

pciconf −r [

                   −b | −h] selector addr[:addr2]

pciconf −w [
−b
| −h] selector addr value

解説

pciconf ユーティリティは、 pci(4) の ioctl(2) インタフェースにより提供さ れている機能へのコマンドラインインタフェースを提供します。このため、機能 の中には /dev/pci への書き込みアクセスを持つユーザ、すなわち通常はスーパ ユーザのみが、利用できるものもあります。

−l オプションを付けると、ブート時のプローブにより見つかったすべてのデバイ スを以下の書式で表示します:

foo0@pci0:4:0: class=0x010000 card=0x00000000 chip=0x000f1000 rev=0x01 hdr=0x00
bar0@pci0:5:0: class=0x000100 card=0x00000000 chip=0x88c15333 rev=0x00 hdr=0x00
none0@pci0:6:0: class=0x020000 card=0x00000000 chip=0x802910ec rev=0x00 hdr=0x00

−v オプションを指定すると、 pciconf はベンダ/デバイス情報をデータベースか らの読み取りを試み、各デバイスに対してベンダ、デバイス、クラス、サブクラ スの識別文字列を表示します。

最初の欄は、デバイス名、ユニット番号、 セレクタを表示します。対象の PCI デバイスに関して、カーネル内のデバイスの設定がなされていない場合、デバイ ス名は ‘‘none’’ になります。設定されていないデバイスのユニット番号は 0 か ら開始し、設定されていないデバイスに出会う度に増やされます。 セレクタは、 このコマンドの他の書式で直接使えるような形で表示されます。 2 番目の欄はク ラスコードで、2 桁の 16 進数で表されるクラスバイトとサブクラスバイト、イ ンタフェースバイトからなります。 3 番目の欄は PCI 規格のリビジョン 2.1 で 導入されたサブベンダ ID レジスタの内容です。今日のほとんどの PCI カード (2.0) ではこれは 0 となりますが、新しく開発された PCI カードではそのカー ド固有の識別コード (unique card identification code) が入れられます。この 値は上位 2 バイトのカード ID と、下位 2 バイトのカードベンダ ID から構成 されます。

4 番目の欄にはこのカードがどのチップに基づいているか識別するチップデバイ ス ID が含まれます。この値は上記と同様に二つのフィールドに分けられ、チッ プとベンダを識別します。 5 番目の欄はチップのリビジョンを表示します。 6 番目の欄はヘッダタイプを示します。現在割り当てられているヘッダタイプは PCI - PCI ブリッジのチップが 1 となる以外はすべて 0 となります。ヘッダタ イプレジスタが 0 となっている PCI デバイスの最上位ビットがセットされてい ると、そのデバイスは 多機能 (multi-function) デバイスであり、ひとつのチッ プにいくつかの (似たものかもしれないし、まったく異なるものかもしれない) 機能を備えています。

pciconf−l 以外の方法で実行するには pcibus:device (オプションで :function が続きます) という形式で セレクタを指定する必要があります。最後 にコロンを付けても構いませんが無視されますので、 pciconf −l の出力の最初 の欄をそのまま使うことができます。すべての番号は 10 進数で表します。

−a フラグを付けると、 selector で識別したデバイスになんらかのドライバが割 り当てられているかを、 pciconf は判定します。終了状態 0 はデバイスがドラ イバを持つことを意味します; 非 0 はデバイスがドライバを持たないことを意味 します。

−r オプションはデバイス selector のバイトオフセット addr の所のコンフィ ギュレーションスペースレジスタ (configuration space register) を読み取 り、その値を 16 進数で表示します。省略可能な第 2 アドレス addr2 は、読み 取る範囲を指定します。 −w オプションはデバイス selector のバイトオフセッ ト addr の所のコンフィギュレーションスペースレジスタへ value を書き込みま す。この二つのオプションでは、 −b フラグと −h フラグで読み書きの大きさを 指定できます。 −b は 1 バイトの読み書きを行い、 −h は 2 バイト (halfword) の読み書きを行います。読み書きの大きさのデフォルトは 4 バイト (longword) です。

環境変数

通常、PCI ベンダ/デバイスの情報データベースは、 /usr/share/misc/pci_vendors から読み込まれます。環境変数 PCICONF_VENDOR_DATABASE を設定することにより、このパスを変更可能です。

関連項目

ioctl(2), kldload(8)

歴史

pciconf ユーティリティは FreeBSD 2.2 で初めて登場しました。 −a オプション は PCI KLD サポートのために FreeBSD 3.0 で追加されました。

作者

pciconf ユーティリティは Stefan Esser と Garrett Wollman によって書かれま した。

バグ

−b オプションと −h オプションは pciconf の内部で実装されており、 ioctl(2) に基づいているわけではありません。

root ではないユーザが −a オプションと −r オプションを使うことを許可するこ とは有用かもしれませんが、 KLD ドライバでデバイスを供給するために kldload を実行できるのは root だけでしょうし、一部の粗悪な PCI チップではコンフィ ギュレーションスペースレジスタの読み込みが故障を引き起こす場合があるので す。

FreeBSD 10.0 February 7, 1997 FreeBSD 10.0

スポンサーリンク