FE(4)

名称
fe - 富士通 MB86960A/MB86965A をベースとしたイーサネットアダプタ

書式
device fe0 at isa? port 0x300 net irq ?

解説
fe は、富士通 MB86960A, MB86965A またはその他の互換チップをベースとした イーサネットアダプタのためのネットワークデバイスドライバです。

このドライバは、アダプタのハードウェアが対応していれば、 I/O ポートアドレスと IRQ の設定を自動的に行ないます。

このドライバはプログラム I/O データ転送技術を使用しており、 まずまずのパフォーマンスが得られます。 アダプタがたとえ持っていたとしても、共有メモリは使用しません。

このドライバは現在のところ、ISA 用の富士通 FMV-180 シリーズ、 ISA 用の アライドテレシス AT1700 シリーズと RE2000 シリーズ、 富士通 MBH10302 PC カードに対応しています。

  パラメータ
カーネル設定ファイルにおいて、2 つのパラメータ port と irq には、アダプタのハードウェア設定を反映した値を指定する必要があります。 もう 1 つオプションとして flags パラメータがあり、付加的な設定を行なうことができます。 その他の device 文におけるパラメータは書式に書かれているとおりに 書く必要があります。

port パラメータは、アダプタのベース I/O ポートアドレスを指定します。 この値はアダプタのハードウェア設定と合致している必要があります。 port は、 “”? にして、指定せずに残しておくこともできます。 その場合、ドライバは I/O アドレスに関するハードウェア設定の検出を 自動的に試みます。 この機能はアダプタハードウェアによっては動かないかもしれません。

irq パラメータは、アダプタが使用する IRQ 番号を指定します。 この値はアダプタのハードウェア設定と合致している必要があります。 irq は、 “”? にして、指定せずに残しておくこともできます。 その場合、ドライバは IRQ に関するハードウェア設定の検出を 自動的に試みます。 この機能はアダプタハードウェアによっては動かないかもしれません。

flags は、様々なデバイス設定の組み合わせからなる数値です。 現在のバージョンでは以下の flags が定義されています。 2 つ以上の設定をデバイスに設定するには、 それぞれの flag 値を数値で加算してください。 以下で指定されていない flag ビットは予約されており、0 にしなければ なりません。実際には、それぞれのビットは単に無視されるか、テスト用や ドライバの文書化されていない機能を制御するために使われます。 文書化されていない機能については、プログラムのソースを参照してください。

0x007F
    これらの flag ビットは、 flags の 0x0080 ビットが設定されている時に、MB86960A/MB86965A チップの DLCR6 レジスタを 初期化するために使用されます。 DLCR6 上書き機能に関する詳細は以下を参照してください。 将来のバージョンにおけるドライバの互換性を保持するために、 0x0080 ビットがセットされていない場合以外、 0x007F flag ビットは 0 にしておいてください。

0x0080
    この flag は、MB86960A/MB86965A チップの DLCR6 レジスタに対する デフォルト設定を flag 値の 低位 7 bit を用いて上書きします。 この flag は問題解決用のものであり、アダプタハードウェアに関する 知識がある人のみが使用してください。 DLCR6 設定に関する詳細な情報は、富士通のマニュアルを参照してください。

オプション
fe ドライバはカーネル設定ファイルにおいて、 “option” 文で指定できるいくつかの私的なオプションを持っています。 以下に私的オプションをリストします。 ドライバはこれ以外にも文書化されていないオプションを受け付けます。 それらの名前には全て FE_ という固定された接頭辞が付けられています。 文書化されていないオプションについては、プログラムのソースを参照してください。

FE_DEBUG=level
    このオプションは、デバイスと (または) ドライバのデバッギングレベルを 制御する数値を受けとります。 FE_DEBUG ここにリストされていない値にオプションを設定すると、 文書化されていない動作を引き起こすかもしれません。 このオプションに関するデフォルトの設定値は 1 です。

    •   FE_DEBUG=0 を設定すると、正当性の確認を含めた多くのデバッグ用コードが、 ドライバのオブジェクトコードから除かれます。 この設定は最も速くて小さなオブジェクトコードを生成します。 この設定であっても、いくつかの非常時メッセージは記録されます。

    •   FE_DEBUG=1 を設定すると、最低限のデバッグ用コードが含まれ、 最小量のメッセージが記録されます。 この設定では致命的なエラーメッセージのみが記録されます。

    •   FE_DEBUG=2 を設定すると、標準的なデバッグ用コードが含まれ、 中間量のメッセージが記録されます。 この設定では滅多にないイベントや怪しげな状態でのメッセージが記録されます。

    •   FE_DEBUG=3 を設定すると、全てのデバッグ用コードが含まれ、 最大量のメッセージが記録されます。 この設定では通常動作の報告やレジスタ値のダンプなどの 冗長なメッセージが記録されます。

ハードウェアモデルに特有の機能
fe ドライバには、アダプタのハードウェアモデルに特有の機能や制限が いくつかあります。 以下はそのような性質の概略です。

  富士通 FMV-180 シリーズアダプタ
これらのアダプタでは、IRQ と I/O ポートアドレスの両方が 自動的に検出可能です。

FMV-180 シリーズでは fe の自動 I/O ポートアドレス検出機能はたいていの場合具合良く動きます。 もしシステムに 2 つ以上の FMV-180 があったとしても、 ちゃんと動きます。 しかし、それ以外のアダプタとの組み合わせは、ドライバを混乱させるかも しれません。 ハードウェア検出で何か困難を感じた時は、 port ? を使わないことをお勧めします。

FMV-180 シリーズでは fe の自動 IRQ 検出機能は確実に動きます。 FMV-180 には常に irq ? を使うことをお勧めします。 IRQ のハードウェア設定は、カーネル設定ファイルにおいて IRQ 値が指定されて いたとしても、アダプタの EEPROM 設定から読み込まれます。 ドライバはカーネル設定ファイルで指定された IRQ が EEPROM に保存された値と 違っていた場合、警告メッセージを生成し、 設定ファイルで指定された値を使用します (この振舞は前回のリリースより変更になっています)。

  アライドテレシス AT1700 シリーズと RE2000 シリーズアダプタ
アライドテレシス AT1700 シリーズと RE2000 シリーズでは、 自動 I/O ポートアドレス検出機能は動きますが、 FMV-180 シリーズよりは確実度が落ちます。 アライドテレシスのアダプタでこの機能を使用するのはお勧めできません。

自動 IRQ 検出も制限つきですが可能です。 fe ドライバは設定ファイルで “irq”? が設定されていた場合、ボードの EEPROM 設定より IRQ 設定を得ようとします。 不幸なことに、AT1700 シリーズと RE2000 シリーズには 2 種類のモデルが あるように思えます; あるタイプは IRQ を 3/4/5/9 から選択可能で、もう片方は 10/11/12/15 から選択 可能です。 これらのモデルの識別方法は、良く知られていません。 このため、アライドテレシスのアダプタでの自動 IRQ 検出は確実でないようです。 何かトラブルが起きた時は、正確な IRQ 番号を指定してください。

AT17000 シリーズと RE2000 シリーズの違いや、 これらのシリーズ内でのマイナモデルの見分けはしていません。

  富士通 MBH10302 PC カード
fe ドライバは富士通 MBH10302 と互換 PC カードをサポートしています。 動作には PC カード (PCMCIA) サポートパッケージが必要です。

関連項目
netstat(1), crd(4), ed(4), netintro(4), ifconfig(8), pccardd(8)

バグ
以下は、既知の大きなバグです:

fe ドライバによって保たれているコリジョン数の統計は正確ではありません; netstat(1) の オプションは実際のコリジョン数より若干少ない値を示します。

思ったよりも多くの mbuf クラスタが消費されます。 パケット受信ルーチンが、mbuf クラスタの割り当てポリシに、わざ と違反しているからです。 不必要に割り当てられたクラスタは短い生存期間で解放されるため、 長い目で見ればカーネルメモリ消費量には影響しません。

XNS と IPX へのサポートがドライバには含まれていますが、 一度もテストはされておらず、たくさんのバグがあるはずです。

作者、著作権、免責条項

fe ドライバは David Greenman が書いた ed ドライバを模範として、 M. Sekiguchi <seki@sysrap.cs.fujitsu.co.jp> が独自に作成して寄贈しました。 fe における PC カードサポートは Hidetoshi Kimura <h-kimura@tokyo.se.fujitsu.co.jp> が書きました。 このマニュアルページは M. Sekiguchi が書きました。

All Rights Reserved, Copyright (C) Fujitsu Limited 1995

This document and the associated software may be used, modified, copied, distributed, and sold, in both source and binary form provided that the above copyright, these terms and the following disclaimer are retained. The name of the author and/or the contributor may not be used to endorse or promote products derived from this document and the associated software without specific prior written permission.

THIS DOCUMENT AND THE ASSOCIATED SOFTWARE IS PROVIDED BY THE AUTHOR AND THE CONTRIBUTOR “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 THE CONTRIBUTOR 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 DOCUMENT AND THE ASSOCIATED SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

歴史
fe ドライバは FreeBSD 2.0.5 から登場しました。