VR(4)

名称
vr - VIA Technologies VT3043 と VT86C100A イーサネットデバイスドライバ

書式
device vr0

解説
vr ドライバは、VIA Technologies 社の VT3043 Rhine I と VT86C100A Rhine II のファーストイーサネットチップを搭載した PCI イーサネットカードのサポートを提供します。 このサポート範囲には、D-Link DFE530-TX やその他諸々の安価な ファーストイーサネットカードが含まれます。

VIA Rhine チップはバスマスタ DMAを使用し、DEC 21x4x "tulip" チップに 似たデザインのソフトウェアインタフェースを持っています。大きな違いは、 Rhine チップの受信フィルタの方がはるかに単純だということです。tulip の ように、送信 DMA エンジン経由で特殊な設定フレームをダウンロードしたり せずに、Rhine はレジスタ経由でプログラミングします。また、送信 DMA バッファ、受信 DMA バッファとも、longword で境界調整する必要があることも 違います。Rhine チップは、外部にある物理層デバイスとは MII バスを通して 接続されるように設計されています。また、10Mbps と 100Mbps の両方の スピードが、全二重、半二重のどちらのモードでもサポートされています。

vr ドライバは次のようなメディアタイプをサポートします。

autoselect
    メディアタイプやオプションの自動選択を使用可能にします。 ユーザは、 /etc/rc.conf ファイルにメディアオプションを書き加えることで、 自動選択されたモードを手動で強制的に変更できます。

10baseT/UTP
    10Mbps に設定します。 mediaopt は、 full-duplex または half-duplex モードを選択するために使用可能です。

100baseTX
    100Mbps (ファストイーサネット) に設定します。 mediaopt は full-duplex または half-duplex モードを選択するために使用可能です。

vr ドライバは、次のメディアオプションをサポートしています。

full-duplex
    full duplex に設定します。

half-duplex
    half duplex に設定します。

アダプタがサポートしているときのみ、100baseTX メディアタイプは使用可能です。 このデバイスを設定するためにもっと多くの情報が必要な場合は ifconfig(8) を参照してください。

診断

vr%d: couldn't map memory 致命的な初期化エラーが起こりました。

vr%d: couldn't map interrupt 致命的な初期化エラーが起こりました。

vr%d: watchdog timeout デバイスがネットワークに応答しなくなったか、ネットワークの 接続 (ケーブル) に問題があります。

vr%d: no memory for rx list ドライバがレシーバリング用の mbuf の確保に失敗しました。

vr%d: no memory for tx list パッドバッファを確保、または mbuf チェインをクラスタにまとめるときに、 トランスミッタリング用の mbuf の確保に失敗しました。

vr%d: chip is in D3 power state -- setting to D0 パワーマネージメントをサポートするアダプタにのみ、このメッセージが出ます。 オペレーティングシステムの中にはシャットダウン時にコントローラを ローパワーモードにするものがあり、チップになにか新しく設定する前に この状態から脱出しなければならないのですが、PCI BIOS の中にはこの脱出に 失敗してしまうものもあります。コントローラはこの D3 状態になると設定状態が 揮発してしまうので、もし BIOS が規定の時間内にもとの状態に戻せなかったら、 その後の設定は正常に実行できません。 ドライバはこの状態の検出し、アダプタを D0 (フルパワー) 状態に 戻そうとしますが、これでは、ドライバが完全に動作する状態に戻すためには 不十分かもしれません。 ブート時にこのメッセージが表示され、ドライバがこのデバイスを ネットワークインタフェースとして接続できない場合は、さらに 1 回ウォームブート させて、デバイスを適切に設定させる必要があります。

他のオペレーティングシステムからウォームブートするときのみに、この状態は 起こります。 FreeBSD のブートに先だってシステムをシャットダウンする場合、カードを正常に 設定しておく必要があります。

関連項目
arp(4), netintro(4), ifconfig(8) VIA Technologies VT86C100A データシート, http://www.via.com.tw.

歴史
vr デバイスドライバは FreeBSD 3.0 に初めて登場しました。

作者
vr ドライバは Bill Paul <wpaul@ctr.columbia.edu> が書きました。

バグ
vr ドライバは、送信前には常に、送信 mbuf チェーンを longword 境界に整列した バッファへコピーすることにより、Rhine チップの暴走を避けます。 バッファ境界が正しくない場合、 チップは与えられたバッファアドレスを丸めてしまい、 間違った境界アドレスから DMAを開始してしまいます。 バッファのコピーはシステム性能を低下させますが、不可避です。 (Pentium II のような) 速いマシンでは、性能への影響はずっと少ないでしょう。