b0da3a8b0b
Submitted by: koizumistr@minos.ocn.ne.jp Reviewed by: Koichi Suzuki <metal@gc5.so-net.ne.jp>
221 lines
6 KiB
Groff
221 lines
6 KiB
Groff
.\" Copyright (c) 1997
|
|
.\" Stefan Esser <se@FreeBSD.org>. All rights reserved.
|
|
.\"
|
|
.\" Redistribution and use in source and binary forms, with or without
|
|
.\" modification, are permitted provided that the following conditions
|
|
.\" are met:
|
|
.\" 1. Redistributions of source code must retain the above copyright
|
|
.\" notice, this list of conditions and the following disclaimer.
|
|
.\"
|
|
.\" 2. Redistributions in binary form must reproduce the above copyright
|
|
.\" notice, this list of conditions and the following disclaimer in the
|
|
.\" documentation and/or other materials provided with the distribution.
|
|
.\"
|
|
.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
|
|
.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
|
.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
|
.\" ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
|
|
.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
|
.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
|
|
.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
|
|
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
|
|
.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
|
|
.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
|
|
.\" SUCH DAMAGE.
|
|
.\"
|
|
.\" %FreeBSD: src/usr.sbin/pciconf/pciconf.8,v 1.26 2004/01/06 20:23:20 rwatson Exp %
|
|
.\"
|
|
.\" $FreeBSD$
|
|
.Dd February 7, 1997
|
|
.Dt PCICONF 8
|
|
.Os
|
|
.Sh 名称
|
|
.Nm pciconf
|
|
.Nd PCI バスのための診断ユーティリティ
|
|
.Sh 書式
|
|
.Nm
|
|
.Fl l Op Fl v
|
|
.Nm
|
|
.Fl a Ar selector
|
|
.Nm
|
|
.Fl r Oo Fl b | h Oc Ar selector addr Ns Op : Ns Ar addr2
|
|
.Nm
|
|
.Fl w Oo Fl b | h Oc Ar selector addr value
|
|
.Sh 解説
|
|
.Nm
|
|
ユーティリティは、
|
|
.Xr pci 4
|
|
の
|
|
.Xr ioctl 2
|
|
インタフェースにより提供されている機能への
|
|
コマンドラインインタフェースを提供します。
|
|
このため、機能の中には
|
|
.Pa /dev/pci
|
|
への書き込みアクセスを持つユーザ、すなわち通常はスーパユーザのみが、
|
|
利用できるものもあります。
|
|
.Pp
|
|
.Fl l
|
|
オプションを付けると、ブート時のプローブにより見つかったすべてのデバイスを
|
|
以下の書式で表示します:
|
|
.Bd -literal
|
|
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
|
|
.Ed
|
|
.Pp
|
|
.Fl v
|
|
オプションを指定すると、
|
|
.Nm
|
|
はベンダ/デバイス情報をデータベースからの読み取りを試み、
|
|
各デバイスに対してベンダ、デバイス、クラス、サブクラスの
|
|
識別文字列を表示します。
|
|
.Pp
|
|
最初の欄は、デバイス名、ユニット番号、
|
|
.Ar セレクタ
|
|
を表示します。
|
|
対象の
|
|
.Tn PCI
|
|
デバイスに関して、カーネル内のデバイスの設定がなされていない場合、
|
|
デバイス名は
|
|
.Dq none
|
|
になります。
|
|
設定されていないデバイスのユニット番号は 0 から開始し、
|
|
設定されていないデバイスに出会う度に増やされます。
|
|
.Ar セレクタ
|
|
は、このコマンドの他の書式で直接使えるような形で表示されます。
|
|
2 番目の欄はクラスコードで、2 桁の 16 進数で表されるクラスバイトと
|
|
サブクラスバイト、インタフェースバイトからなります。
|
|
3 番目の欄は
|
|
.Tn PCI
|
|
規格のリビジョン 2.1 で導入されたサブベンダ ID レジスタの内容です。
|
|
今日のほとんどの
|
|
.Tn PCI
|
|
カード (2.0) ではこれは 0 となりますが、新しく開発された
|
|
.Tn PCI
|
|
カードではそのカード固有の識別コード (unique card identification
|
|
code) が入れられます。この値は上位 2 バイトのカード ID と、
|
|
下位 2 バイトのカードベンダ ID から構成されます。
|
|
.Pp
|
|
4 番目の欄にはこのカードがどのチップに基づいているか識別する
|
|
チップデバイス ID が含まれます。この値は上記と同様に二つの
|
|
フィールドに分けられ、チップとベンダを識別します。
|
|
5 番目の欄はチップのリビジョンを表示します。
|
|
6 番目の欄はヘッダタイプを示します。
|
|
現在割り当てられているヘッダタイプは
|
|
.Tn PCI
|
|
-
|
|
.Tn PCI
|
|
ブリッジのチップが 1 となる以外はすべて 0 となります。
|
|
ヘッダタイプレジスタが 0 となっている
|
|
.Tn PCI
|
|
デバイスの最上位ビットがセットされていると、そのデバイスは
|
|
.Em 多機能 (multi-function)
|
|
デバイスであり、ひとつのチップにいくつかの (似たものかもしれないし、
|
|
まったく異なるものかもしれない) 機能を備えています。
|
|
.Pp
|
|
.Nm
|
|
を
|
|
.Fl l
|
|
以外の方法で実行するには
|
|
.Li pci Ns Va bus Ns \&: Ns Va device
|
|
(オプションで
|
|
.Li \&: Ns Va function
|
|
が続きます) という形式で
|
|
.Ar セレクタ
|
|
を指定する必要があります。
|
|
最後にコロンを付けても構いませんが無視されますので、
|
|
.Nm
|
|
.Fl l
|
|
の出力の最初の欄をそのまま使うことができます。
|
|
すべての番号は 10 進数で表します。
|
|
.Pp
|
|
.Fl a
|
|
フラグを付けると、
|
|
.Ar selector
|
|
で識別したデバイスになんらかのドライバが割り当てられているかを、
|
|
.Nm
|
|
は判定します。
|
|
終了状態 0 はデバイスがドライバを持つことを意味します;
|
|
非 0 はデバイスがドライバを持たないことを意味します。
|
|
.Pp
|
|
.Fl r
|
|
オプションはデバイス
|
|
.Ar selector
|
|
のバイトオフセット
|
|
.Ar addr
|
|
の所のコンフィギュレーションスペースレジスタ
|
|
(configuration space register) を読み取り、
|
|
その値を 16 進数で表示します。
|
|
省略可能な第 2 アドレス
|
|
.Ar addr2
|
|
は、読み取る範囲を指定します。
|
|
.Fl w
|
|
オプションはデバイス
|
|
.Ar selector
|
|
のバイトオフセット
|
|
.Ar addr
|
|
の所のコンフィギュレーションスペースレジスタへ
|
|
.Ar value
|
|
を書き込みます。
|
|
この二つのオプションでは、
|
|
.Fl b
|
|
フラグと
|
|
.Fl h
|
|
フラグで読み書きの大きさを指定できます。
|
|
.Fl b
|
|
は 1 バイトの読み書きを行い、
|
|
.Fl h
|
|
は 2 バイト (halfword) の読み書きを行います。
|
|
読み書きの大きさのデフォルトは 4 バイト (longword) です。
|
|
.Sh 環境変数
|
|
通常、PCI ベンダ/デバイスの情報データベースは、
|
|
.Pa /usr/share/misc/pci_vendors
|
|
から読み込まれます。
|
|
環境変数
|
|
.Ev PCICONF_VENDOR_DATABASE
|
|
を設定することにより、このパスを変更可能です。
|
|
.Sh 関連項目
|
|
.Xr ioctl 2 ,
|
|
.\" .Xr pci 4 ,
|
|
.Xr kldload 8
|
|
.Sh 歴史
|
|
.Nm
|
|
ユーティリティは
|
|
.Fx 2.2
|
|
で初めて登場しました。
|
|
.Fl a
|
|
オプションは
|
|
.Tn PCI
|
|
KLD サポートのために
|
|
.Fx 3.0
|
|
で追加されました。
|
|
.Sh 作者
|
|
.An -nosplit
|
|
.Nm
|
|
ユーティリティは
|
|
.An Stefan Esser
|
|
と
|
|
.An Garrett Wollman
|
|
によって書かれました。
|
|
.Sh バグ
|
|
.Fl b
|
|
オプションと
|
|
.Fl h
|
|
オプションは
|
|
.Nm
|
|
の内部で実装されており、
|
|
.Fn ioctl 2
|
|
に基づいているわけではありません。
|
|
.Pp
|
|
root ではないユーザが
|
|
.Fl a
|
|
オプションと
|
|
.Fl r
|
|
オプションを使うことを許可することは有用かもしれませんが、
|
|
KLD ドライバでデバイスを供給するために
|
|
.Nm kldload
|
|
を実行できるのは root だけでしょうし、
|
|
一部の粗悪な
|
|
.Tn PCI
|
|
チップではコンフィギュレーションスペースレジスタの
|
|
読み込みが故障を引き起こす場合があるのです。
|