189 lines
7.2 KiB
Groff
189 lines
7.2 KiB
Groff
.\"
|
|
.\"
|
|
.\" Copyright (c) 1997 Joerg Wunsch
|
|
.\"
|
|
.\" 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 DEVELOPERS ``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 DEVELOPERS 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: rdp.4,v 1.1.1.1 1998/12/21 18:01:15 joerg Exp %
|
|
.\" $FreeBSD$
|
|
.\"
|
|
.\"
|
|
.\" " (emacs disconfusion)
|
|
.Dd December 21, 1998
|
|
.Dt RDP 4 i386
|
|
.Os
|
|
.Sh 名称
|
|
.Nm rdp
|
|
.Nd RealTek RTL 8002 ポケットイーサネットのためのイーサネットドライバ
|
|
.Sh 書式
|
|
.Cd "device rdp0 at isa? port 0x378 net irq 7"
|
|
.Cd "device rdp0 at isa? port 0x378 net irq 7 flags 0x2"
|
|
.Sh 解説
|
|
.Nm
|
|
デバイスドライバは、標準パラレルポートに接続される
|
|
RealTek RTL 8002 ベースのポケットイーサネットアダプタをサポートします。
|
|
.Pp
|
|
これらアダプタはポケットイーサネットアダプタのうちで安価なものに属する
|
|
と考えられます。RTL 8002 はその中心部で、標準パラレルプリンタアダプタと
|
|
通信するようにデザインされたホストインタフェースだけでなく、
|
|
BNC および UTP (10 Mbit/s) メディアへのインタフェースも含むものです。
|
|
完全なイーサネットアダプタとして動くためには、
|
|
送信および受信パケットバッファ (RTL 8002 では 16 K x 4) として
|
|
使われる外部 RAM と、割り当てられたイーサネットハードウェアアドレス
|
|
を保持してくための EEPROM が必要です。
|
|
RTL 8002 では、EEPROM は 標準 93C46 シリアル EEPROM
|
|
(一般にこれが選択されるようです) または 74S288 パラレル EEPROM を
|
|
使うことができます。後者の変種を動かすためには、
|
|
デバイスコンフィギュレーションにフラグ 0x1 が必要です。
|
|
.Pp
|
|
標準的なプリンタアダプタは、タイミングの要求仕様に関して
|
|
大幅なばらつきがあるようなので、
|
|
ポケットイーサネットアダプタとプリンタインタフェース
|
|
との間でデータを交換する方法が現在 2 つ存在します。
|
|
デフォルトでは RTL 8002 がサポートする最も高速なモードです。
|
|
もし使用するプリンタアダプタが特に低速であれば
|
|
(パケットが損なわれたり、正しくパケットが受信されていない
|
|
かどうかを観察することで知ることができます)
|
|
.Nm
|
|
ドライバを減速させるために
|
|
コンフィギュレーションフラグに 0x2 をセットすることができます。
|
|
高速モードではデータ転送速度は非対称で、送信のほうが受信よりも
|
|
やや高速 (最大 2 倍) です。送信が 150 KB/s で受信が 80 KB/s
|
|
というのが一般的です。低速モードでは双方の転送速度は等しく、
|
|
50KB/s から 70KB/s の範囲になりますが、もちろん場合によって
|
|
異なります。
|
|
.Pp
|
|
ブート時にアダプタが認識されない場合、
|
|
.Em bootverbose
|
|
フラグ
|
|
.Pq Ql Fl v
|
|
をセットすることでその原因を診断する助けになるでしょう。
|
|
RTL 8002 アダプタは (
|
|
.Xr lpt 4
|
|
とは違い) プリンタアダプタに動作する割り込みが利用できることを
|
|
要求するので、イーサネットアダプタが検出時に
|
|
割り込みを表明できない場合、
|
|
.Nm
|
|
ドライバはアタッチに失敗します。
|
|
.Pp
|
|
RTL 8002 は (ハードウェア) マルチキャストをサポートしません。
|
|
.Pp
|
|
.Nm
|
|
ドライバはきわめて初期に検出されるようにするため
|
|
フラグを内部でセットします。このため、同一のカーネルで
|
|
.Nm
|
|
ドライバと
|
|
.Xr lpt 4
|
|
の両方を設定することが可能です。もし RTL 8002 が存在しなければ
|
|
最終的にプリンタドライバが検出されるでしょう。
|
|
.Sh 診断
|
|
.Pp
|
|
.Dl "rdp0: configured IRQ (7) cannot be asserted by device"
|
|
.Pp
|
|
プリンタアダプタを通して割り込みをアサートする RTL 8002 を、
|
|
検出ルーチンは見付けられませんでした。
|
|
.Pp
|
|
.Dl "rdp0: failed to find a valid hardware address in EEPROM"
|
|
.Pp
|
|
EEPROM の中のハードウェアアドレスが格納されている標準的な場所が
|
|
存在しないと推測される場合、
|
|
.Nm
|
|
ドライバは IEEE の OUI による割り当てを元に
|
|
正しいと思われるイーサネットハードウェアアドレスを見つけるまで
|
|
(シリアル) EEPROM 全体を見回ります。
|
|
この診断はドライバがアドレスを見つけることができなかった
|
|
ことを示しています。注: これはアダプタが 74S288 EEPROM
|
|
を搭載していることによるまれな場合かもしないので、
|
|
.Ql flags 0x1
|
|
を試すべきです。
|
|
.Pp
|
|
.Dl "rdp0: Device timeout"
|
|
.Pp
|
|
パケットの転送開始後、イーサネットアダプタが
|
|
転送の通知 (成功または失敗) を返しませんでした。
|
|
ハードウェアが動けなくなってしまっているようなのでリセットしています。
|
|
.Pp
|
|
.Sh 関連項目
|
|
.Xr lpt 4 ,
|
|
.Xr ifconfig 8
|
|
.Sh 作者
|
|
このドライバは RealTek による RTL 8002 のための パケットドライバと、
|
|
RealTek が提供していてくれた RTL 8012 (RTL 8002 の後継です)
|
|
に関するいくつかの情報を元に
|
|
.ie t J\(:org Wunsch
|
|
.el Joerg Wunsch
|
|
が書きました。
|
|
.Sh バグ
|
|
もちろんたくさんあります。
|
|
.Pp
|
|
.Nm
|
|
ドライバはブート時にハードウェアを検出する必要があるので、
|
|
その時に存在していなければなりません。
|
|
.Pp
|
|
RealTek のパケットドライバが扱うことができる 8 つの速度モード
|
|
のうち、2つしか実装されていません。したがって
|
|
現在の低速モードでさえ、ハードウェアにとって速過ぎる場合が
|
|
あるかもしれません。
|
|
.Pp
|
|
利用可能なモードを自動的に認識する検出ルーチンの中に DMA 転送テストが
|
|
存在するべきです。
|
|
.Pp
|
|
データ交換のために標準プリンタインタフェースを酷使することは、
|
|
エラーになりやすい傾向にあります。偶発的なハードウェアの停止はそれほど
|
|
驚くことではなく、タイムアウトルーチンがそのような状態を
|
|
捕捉してくれるでしょう。
|
|
ping の洪水 (flood-pinging) はこの問題を引き起こすよい例です。
|
|
同様に、BPF はもちろんサポートされていますが、
|
|
無差別 (promiscuous) モードを使って混雑しているイーサネットを
|
|
覗こうとするのは悪いアイデアです。
|
|
.Pp
|
|
RTL 8002 は 受信バッファ空間が 4 KB しかないので
|
|
(2 x 2 KB は送信バッファに使われます)、
|
|
.Nm
|
|
ドライバを使ったマシンが NFS の標準的なブロックサイズである 8 KBで
|
|
高速のサーバをマウントした場合、
|
|
大きなパケットが到着することで発生する、
|
|
よくある NFS のデットロックが起こるかもしれません。
|
|
(NFS は パケット全体を再送することしかできないので、
|
|
同じパケットが何度も転送されることになるでしょう。)
|
|
.Pp
|
|
EEPROM からイーサネットハードウェアアドレスを見つけ出す発見的
|
|
な手法は最悪ですが、EEPROM の中の実際の場所に依存しない唯一の賢い
|
|
一般的な方法はないようです。
|
|
RealTek によるサンプルドライバでは直接アドレス 0 に定めていました。
|
|
他のベンダは、たとえば 15 のような
|
|
正しいイーサネットアドレスと混同してはならないゴミとともに拾い上げていました。
|
|
.Pp
|
|
後継のチップである RTL 8012 をサポートするべきです。
|
|
これは近ごろ入手可能になり、使われているようです。
|
|
(RTL 8002 はすでにいくぶん歳をとっており、1992 年または 93 年のものです。)
|
|
RTL 8012 は転送をかなり高速化することができるであろう、
|
|
双方向の SPP または EPP のような進化した
|
|
プリンタアダプタハードウェアをサポートしています。
|
|
また、RTL 8012 はハードウェアマルチキャストをサポートしており、
|
|
パケットバッファ RAM は 64K x 4 のアドレス空間を扱うことができます。
|
|
.Pp
|
|
このドライバはスタンドアロンで動作するのではなく、
|
|
ppc ドライバの上位に位置するべきです。またローダブルモジュールと
|
|
することによって、ポケットイーサネットアダプタが実際に取り付けられてから
|
|
デバイスを検出できるようにするべきです。
|