EN JA
RE(4)
RE(4) FreeBSD Kernel Interfaces Manual RE(4)

名称

reRealTek 8139C+/8169/816xS/811xS/8168/810xE/8111 PCI/PCIe イーサネットアダプタドライバ

書式

このドライバをカーネルにコンパイルするためには、次の行を利用者のカーネル設定ファイルに置きます:

device miibus
device re

もう一つの方法として、ブート時にモジュールとしてドライバをロードするためには、次の行を loader.conf(5) に置きます:

if_re_load="YES"

解説

re ドライバは、RealTek RTL8139C+, RTL8169, RTL816xS, RTL811xS, RTL8168, RTL810xE と RTL8111 PCI と PCIe イーサネットコントローラに基づく様々な NIC のサポートを行います。

8139C+ と 810xE に基づく NIC は、CAT5 ケーブル上で 10Mbps と 100Mbps の速度の能力があります。 8169, 816xS, 811xS, 8168 と 8111 に基づく NIC は、10Mbps, 100Mbps および 1000Mbps オペレーションの能力があります。

re ドライバによってサポートされたすべての NIC は、 TCP/IP チェックサムオフロードとハードウェア VLAN タグ付け/挿入機能があり、記述子ベースの DMA メカニズムを使用します。また、それらは、TCP ラージ送信 (TCP セグメンテーションオフロード) の能力があります。

8139C+ は、10/100MAC と PHY の両方を結合する単一チップ解決手法です。 8169 は、GMII または TBI 外部 PHY を必要とする、10/100/1000 MAC 専用です。 816xS, 811xS, 8168 と 8111 は、 10/100/1000 MAC と 10/100/1000 銅の PHY の両方を含む単一チップデバイスです。スタンドアロン 10/100/1000 カードは、 32 ビット PCI と 64 ビット PCI モデルの両方で利用可能です。 8110S は、組み込みマザーボード上の LAN アプリケーションのために設計されています。

また、8169, 8169S と 8110S は、インタフェース MTU 設定を通して設定することができる、ジャンボフレームをサポートします。 MTU は、チップがより大きいフレームを送信することができないので、 7422 に制限されます。 ifconfig(8) ユーティリティで 1500 バイトより大きい MTU を設定することは、ジャンボフレームを受信して送信するアダプタを設定します。

re ドライバは、次のメディアタイプをサポートします:

autoselect
メディアタイプとオプションの自動選択を有効にします。ユーザは、 rc.conf(5) にメディアオプションを加えることによって、手動で自動選択モードを無効にできます。
10baseT/UTP
10Mbps オペレーションを設定します。 ifconfig(8) mediaopt オプションは、 全二重半二重 モードのいずれかを選択するために使用することもできます。
100baseTX
100Mbps (ファーストイーサネット) オペレーションを設定します。 ifconfig(8) mediaopt オプションは、 全二重半二重 モードのいずれかを選択するために使用することもできます。
1000baseTX
ツイストペア上の 1000baseTX オペレーションを設定します。 RealTek gigE チップは、 全二重 モードのみ 1000Mbps をサポートします。

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

full-duplex
全二重オペレーションを強制的に設定します。
half-duplex
半二重オペレーションを強制的に設定します。

このデバイスの設定についてのより詳しい情報については、 ifconfig(8) を参照してください。

ハードウェア

re ドライバは、次を含んでファーストイーサネットとギガビットイーサネットアダプタに基づく RealTek RTL8139C+, RTL8169, RTL816xS, RTL811xS, RTL8168, RTL810xE と RTL8111 をサポートします。

  • Alloy Computer Products EtherGOLD 1439E 10/100 (8139C+)
  • Compaq Evo N1015v Integrated イーサネット (8139C+)
  • Corega CG-LAPCIGT ギガビットイーサネット (8169S)
  • D-Link DGE-528(T) ギガビットイーサネット (8169S)
  • Gigabyte 7N400 Pro2 Integrated ギガビットイーサネット (8110S)
  • LevelOne GNC-0105T (8169S)
  • LinkSys EG1032 (32-bit PCI)
  • PLANEX COMMUNICATIONS Inc. GN-1200TC (8169S)
  • USRobotics USR997902 Gigabit Ethernet (8169S)
  • Xterasys XN-152 10/100/1000 NIC (8169)

ローダ調整変数

カーネルをブートする前の loader(8) プロンプトで、または loader.conf(5) に格納して、次の調整変数を設定することができます。
hw.re.intr_filter
この調整変数は、ドライバに MSI/MSI-X ケーパビリティをサポートするコントローラで割り込みフィルタハンドラを使用するようにします。 MSI/MSI-X が管理者によって無効にされるなら、この調整変数には、効果がなく、ドライバは、割り込みフィルタハンドラを使用します。デフォルト値は、割り込みスレッドハンドラを使用する 0 です。
hw.re.msi_disable
この調整変数は、イーサネットハードウェア上の MSI のサポートを無効にします。デフォルト値は、0 です。
hw.re.msix_disable
この調整変数は、イーサネットハードウェアで MSI-X サポートを無効にします。デフォルト値は、0 です。
hw.re.prefer_iomap
この調整変数は、指定されたデバイスで使用されるべきマッピングの登録を制御します。 0 以外のは、I/O 空間レジスタマッピングを有効にします。デフォルト値は、メモリ空間レジスタマッピングを使用する 0 です。

SYSCTL 変数

次の変数は、 sysctl(8) 変数と loader(8) 調整変数の両方で利用可能です:
dev.re.%d.int_rx_mod
1us の単位で受信する割り込み処理を延着する最大の量。受け付けられる範囲は、0 から 65 で、デフォルトは、65 (65us) です。値 0 は、割り込みモデレーションを完全に無効にします。変更の効果が効く前に、インタフェースを落して、再び上げる必要があります。

診断

re%d: couldn't map memory
致命的な初期化エラーが発生しました。
re%d: couldn't map ports
致命的な初期化エラーが発生しました。
re%d: couldn't map interrupt
致命的な初期化エラーが発生しました。
re%d: no memory for softc struct!
ドライバは、初期化の間、デバイス毎のインスタンス情報のためのメモリの割り付けに失敗しました。
re%d: failed to enable memory mapping!
ドライバは、PCI 共有メモリマッピングの初期化に失敗しました。カードがバスマスタスロットにないなら、これは、起こるかもしれません。
re%d: no memory for jumbo buffers!
ドライバは、初期化の間、ジャンボフレームのためのメモリの割り付けに失敗しました。
re%d: watchdog timeout
デバイスは、ネットワークに応答することを停止しているか、またはネットワーク接続 (ケーブル) に問題があります。

関連項目

altq(4), arp(4), miibus(4), netintro(4), ng_ether(4), polling(4), rgephy(4), vlan(4), ifconfig(8) RealTek Semiconductor RTL8139C+, RTL8169, RTL8169S and RTL8110S datasheets, http://www.realtek.com.tw/.

歴史

re デバイスドライバは、 FreeBSD 5.2 ではじめて登場しました。

作者

re ドライバは、 Bill Paul <wpaul@windriver.com>によって書かれました。

バグ

RTL8169 MAC と Marvell 88E1000 PHY を使用する、 Xterasys XN-152 32 ビット PCI NIC は、ボードが 64 ビット PCI スロットにプラグを差し込まれるなら、 DMA 不正を引き起こす欠陥があります。欠陥は、チップ自体ではなく、ボードの設計にあります: PCI REQ64# と ACK64# ラインは、ハイに引くべきですが、それらは、ハイではありません。訳注: ボードの説明と思われるが意味不明。結果は、8169 チップが NIC とバスの間の 64 ビットのデータパスが実際に存在しないにもかかわらず、 64 ビットの DMA 転送を実行するようにだまされていることになります。

残念ながら、ソフトウェアでこの問題を修正することができませんが、それを検出することは可能です。 re ドライバがロードされるとき、それは、チップをデジタルループバックモードにして、パケット転送を開始することによって DMA 操作を有効にするように設計された診断ルーチンを実行します。カードが適切に機能するなら、転送さられたデータは、変更されずにエコーバックされます。エコーされたデータが間違っているなら、ドライバは、コンソールにエラーメッセージを印刷し、デバイスのアタッチをアボートします。ユーザは、NIC がこの問題を避けるために 32 ビット PCI スロットにインストールされることを保証するべきです。

RealTek 8169, 8169S と 8110S チップは、ジャンボフレームのサイズを 7.5K まで転送する能力となるように見えます。

January 26, 2011 FreeBSD