jpman project specific RCS keyword (jpman %Id) is obsolete, after manual entries are stored in freefall CVS repository. This old Id is useless and more worse it confuses users and bug reporters. So, this old Id is removed. Submitted by:jpman project <man-jp@jp.FreeBSD.org>
221 lines
7.2 KiB
Groff
221 lines
7.2 KiB
Groff
.\" pnp(4) - manual page for the scanner device driver `asc'
|
|
.\"
|
|
.\"
|
|
.\" Copyright (c) 1997 Luigi Rizzo
|
|
.\"
|
|
.\" 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.
|
|
.\" 3. All advertising materials mentioning features or use of this software
|
|
.\" must display the following acknowledgements:
|
|
.\" This product includes software developed by Luigi Rizzo.
|
|
.\" 4. The name of the author may not be used to endorse or promote products
|
|
.\" derived from this software without specific prior written permission.
|
|
.\"
|
|
.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 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.
|
|
.\"
|
|
.\" %Id: pnp.4,v 1.2 1998/03/12 07:30:36 charnier Exp %
|
|
.\"
|
|
.\" Based on Japanese translation by Yasuhito FUTATSUKI <futatuki@fureai.or.jp>
|
|
.\" [man-jp 1426]
|
|
.\" $FreeBSD$
|
|
.\"
|
|
.Dd September 7, 1997
|
|
.Dt PNP 4 i386
|
|
.Os FreeBSD
|
|
.Sh 名称
|
|
.Nm pnp
|
|
.Nd PnP デバイスのサポート
|
|
.Sh 書式
|
|
.Cd controller pnp0
|
|
.Sh 解説
|
|
.Fx
|
|
の PnP デバイスサポートによって、ユーザが PnP カードの設定を
|
|
強制設定することが可能になります。また、デバイスドライバが PnP カードの
|
|
パラメータを取得・変更することが可能になります。
|
|
.Pp
|
|
手動で強制設定する機能を用いるためには、カーネルを
|
|
.Cd options USERCONFIG
|
|
付きでコンパイルする必要があります。
|
|
このときカーネルは、PnP デバイスの設定を記録するための
|
|
一定の大きさのテーブル (デフォルトで 20 エントリ) を確保します。
|
|
PnP カード 1 つが複数の独立したデバイスから構成されている
|
|
こともあります (5 つ 6 つもあるということは異常ではありません)。
|
|
.Pp
|
|
カーネルを
|
|
.Dq Fl c
|
|
フラグ付きでブートすることで、
|
|
PnP カードの設定変更のコマンドを使用できます。コマンドは
|
|
.Dl pnp CSN LDN
|
|
というシーケンスから始まります。ここで、CSN ならびに LDN は
|
|
それぞれ、デバイスに振られているカード選択番号
|
|
.Pq Card Select Number
|
|
および論理デバイス番号
|
|
.Pq Logiacal Device Number
|
|
です。
|
|
このシーケンスに続けて、以下のコマンドの任意の組み合わせが使えます。
|
|
|
|
.Bl -tag -width "mmmmmmmmmm""
|
|
.It Dv irqN Ar line
|
|
カード上の割り込み 0 または 1
|
|
.Pq 訳注: N で指定
|
|
に使用する IRQ 線を設定します。
|
|
.Ar line
|
|
に 0 を指定することは、IRQ 線を使用しないことを意味します。
|
|
.It Dv drqN Ar n
|
|
カード上の DMA 0 または 1
|
|
.Pq 訳注: N で指定
|
|
に使用する DRQ チャネルを設定します。
|
|
チャネルに 4 を指定することは、チャネルを使用しないことを意味します。
|
|
.It Dv portN Ar address
|
|
N 番目のポート領域
|
|
.Pq port's range
|
|
の基底アドレス
|
|
.Pq base address
|
|
を設定します (N=0..7)。
|
|
.Ar address
|
|
に 0 を指定することは、ポートを使用しないことを意味します。
|
|
.It Dv memN Ar address
|
|
N 番目のメモリ領域
|
|
.Pq memory's range
|
|
の基底アドレス
|
|
.Pq base address
|
|
を設定します (N=0..3)。
|
|
.Ar address
|
|
に 0 を指定することは、メモリ領域を使用しないことを意味します。
|
|
.It Dv bios
|
|
PnP デバイスの設定として、BIOS が設定したものを使用します。
|
|
これはデフォルトであり、
|
|
BIOS が PnP をサポートしている場合には通常はこれでよいでしょう。
|
|
BIOS 設定を使用する場合には
|
|
.Dq Dv flags
|
|
以外のパラメータは無視されます。
|
|
.It Dv os
|
|
PnP デバイスの設定に、このエントリで指定したものを使用します。
|
|
.It Dv enable
|
|
PnP デバイスを有効にします。
|
|
.It Dv disable
|
|
PnP デバイスを無効にします。
|
|
.It Dv delete
|
|
デバイスに使用されているエントリを開放し、別の CSN/LDN の組を持つ
|
|
他のデバイスで使用できるようにします。
|
|
.It Dv flags
|
|
デバイスドライバに渡す 32 ビットの flags エントリの値を設定します。
|
|
flags は、特別な動作モードを指定するのに使われることがあります。
|
|
(例えば、ある種のサウンドカードで SB と WSS のエミュレーションを
|
|
切り替える、など)
|
|
.El
|
|
.Pp
|
|
現在のテーブル内の設定値は、userconfig の
|
|
.Ic ls
|
|
コマンドで表示されます。
|
|
このテーブルは、ユーザが行なった変更に加え、
|
|
PnP デバイスドライバがアクセスしたすべての論理デバイスのエントリを
|
|
保持します。
|
|
.Pp
|
|
テーブルの変更結果は、
|
|
.Xr dset 8
|
|
コマンドによってファイルシステム上のブートイメージに保存されます。
|
|
.Pq 訳注: カーネルの ELF 化により dset コマンドは廃止されました
|
|
.Pp
|
|
.Sh PnP をサポートするデバイスドライバ
|
|
カーネルは PnP デバイスを自動的に認識して設定します。
|
|
PnP デバイスは以下のデータ構造で識別します。
|
|
.Bd -literal
|
|
struct pnp_device {
|
|
char *pd_name;
|
|
char *(*pd_probe ) (u_long csn, u_long vendor_id);
|
|
void (*pd_attach ) (u_long csn, u_long vend_id, char * name,
|
|
struct isa_device *dev);
|
|
u_long *pd_count;
|
|
u_int *imask;
|
|
struct isa_device dev;
|
|
};
|
|
.Ed
|
|
.Pp
|
|
プローブ (probe) ルーチンは、渡される vendor_id が自分が
|
|
認識するものであるか、
|
|
カード中の必要なデバイスが有効になっているかをチェックし、
|
|
チェックに
|
|
失敗した場合には NULL 値を、成功した場合には NULL でない値
|
|
(一般にデバイス名を指すポインタ) を返します。
|
|
プローブルーチン内において、論理デバイスが有効であるかどうかの
|
|
チェックには、
|
|
.Fn read_pnp_parms
|
|
を使用できます。
|
|
.Pp
|
|
アタッチ (attach) ルーチンは、
|
|
PnP カードを ISA アクセス可能にする、
|
|
設定を取得する、デバイスの ISA ドライバを呼ぶ、
|
|
といった必要な初期化をすべて行うことが必要です。
|
|
.Pp
|
|
次のルーチンとデータ構造が使用できます。
|
|
.Bl -tag -width "xxxxxxxxxx"
|
|
.It Dv struct pnp_cinfo
|
|
このデータ構造
|
|
.Po
|
|
.Pa /usr/i386/isa/pnp.h
|
|
で定義されている
|
|
.Pc
|
|
は、
|
|
PnP 論理デバイスに関連するすべての情報を含んでいます。
|
|
.It Fn read_pnp_parms "struct pnp_cinfo *d" "int ldn"
|
|
この関数は要求された論理デバイスの設定を返します。
|
|
この関数はプローブおよびアタッチの
|
|
ルーチンから呼ばれることだけを想定しているため、
|
|
CSN を指定することはできません。
|
|
.It Fn write_pnp_parms "struct pnp_cinfo *d" "int ldn"
|
|
この関数は要求された論理デバイスのパラメータを設定します。
|
|
同時に、カーネルの強制設定用テーブルのエントリを更新します。
|
|
BIOS や (userconfig を使用する) ユーザの方が、
|
|
どうパラメータを設定すべきかをよく知っているはずなので、
|
|
デバイスドライバは通常デバイスの設定を変更すべきでは
|
|
.Em ありません。
|
|
特に、
|
|
userconfig による強制設定メカニズムを破綻させてしまうため、
|
|
無効になっている論理デバイスを
|
|
.Em 有効にしてはなりません。
|
|
デバイスドライバは論理デバイスやポート領域などを無効にしても
|
|
かまいませんが、これは、
|
|
特定のデバイスやパラメータが問題を起こすことがわかっている場合に
|
|
限るべきです。
|
|
.It Fn enable_pnp_card void
|
|
この関数はアタッチルーチン内部で
|
|
.Em のみ、
|
|
カードの ISA ポート/メモリのアドレス領域にアクセスする前に
|
|
.Em 呼ばなければなりません。
|
|
.El
|
|
.Pp
|
|
.Sh 関連項目
|
|
.Xr dset 8
|
|
.Pq 訳注: 廃止されました
|
|
.Sh バグ
|
|
ビジュアルコンフィギュレーションには、PnP デバイス設定のサポートが
|
|
ありません。
|
|
userconfig のコマンドで PnP デバイスの設定を取得することができれば
|
|
素晴らしいことでしょう。
|
|
.Sh 作者
|
|
PnP サポートは
|
|
.An Sujal Patel
|
|
が初めに手掛けたものを元に、
|
|
.An Luigi Rizzo
|
|
が書きました。
|
|
.Sh 歴史
|
|
.Nm
|
|
は
|
|
.Fx 2.2.5
|
|
に初めて登場しました。
|