総合手引 | セクション 4 | English | オプション |
RealTek コントローラはバスマスタ DMA を使いますが、ディスクリプタベース のデータ伝送機構は用いません。受信側はひとつの固定サイズのリングバッファ を用い、パケットはそこから mbuf にコピーされます。 伝送のために、外向きのパケットアドレスレジスタが 4 つだけありますが、 外向きのパケットがすべて隣接したバッファに入れられることが要求されます。 さらに、外向きのパケットバッファは longword に整列されている必要があります。 さもなければ、伝送は失敗します。
8139 は特別なダイレクトアクセスレジスタによってコントロールされる内部 PHY を 持っていますが、8129 は MII バス経由で外部 PHY を用いているという点で、 8139 と 8129 は違います。8139 は全二重または半二重における 10 または 100Mbps をサポートしています。8129 は適切な PHY チップによって 決まっている同じスピードとモードをサポートしています。
rl ドライバは次のようなメディアタイプをサポートしています。
autoselect | メディアタイプとオプションの自動選択を使用可能にします。これは、 RealTek コントローラについている PHY チップが NWAY オートネゴシエーションを サポートしているときのみ可能です。ユーザは /etc/rc.conf ファイルにメディアオプションを書き加えることで、 自動選択モードを手動で上書きすることができます。 |
10baseT/UTP | 10Mbps に設定します。 mediaopt は full-duplex または half-duplex モードを選択するために用いることができます。 |
100baseTX | 100Mbps (ファストイーサネット) に設定します。 mediaopt は full-duplex または half-duplex モードを選択するために用いることができます。 |
rl ドライバは次のようなメディアオプションをサポートしています。
full-duplex | 全二重に設定します。 |
half-duplex | 半二重に設定します。 |
アダプタがサポートしているときのみ、100baseTX メディアタイプは有効です。 このデバイスをさらに設定するためには、 ifconfig(8) を参照してください。
rl%d: couldn't map memory | 致命的な初期化エラーが起こりました。 |
rl%d: couldn't map interrupt | 致命的な初期化エラーが起こりました。 |
rl%d: watchdog timeout | デバイスがネットワークに応答しなくなったか、ネットワークの 接続 (ケーブル) に問題があります。 |
rl%d: no memory for rx list | ドライバがレシーバリング用の mbuf の確保に失敗しました。 |
rl%d: no memory for tx list | パッドバッファを確保、または mbuf チェインをクラスタにまとめるときに、 トランスミッタリング用の mbuf の確保に失敗しました。 |
rl%d: chip is in D3 power state -- setting to D0 |
パワーマネージメントをサポートするアダプタにのみ、このメッセージが出ま
す。シャットダウン時にコントローラをローパワーモードにするオペレーティング
システムがあり、チップ設定前にこの状態を解除しない PCI BIOS があります。
D3 状態において、コントローラは PCI の設定すべてを失うので、BIOS
がそのときにフルパワーモードに設定しなおさなければ、正しく設定すること
はできません。ドライバはこの状態を検出し、アダプタを D0 (フルパワー)
状態に設定しなおそうとしますが、ドライバを完全に操作できる状態にするの
には至らないかもしれません。ブート時にこのメッセージが現れ、ドライバが
ネットワークインタフェースとしてデバイスをアタッチすることに失敗するの
なら、デバイスを適切に設定するために 2 度目のウォームブートを行う必要が
あります。
他のオペレーティングシステムからウォームブートするときのみに、この状態は 起こります。 FreeBSD のブート前にシステムの電源を切れば、カードが正常に設定されます。 |
RealTek 8129 と 8139 のデータシート, ftp.realtek.com.tw:/lancard/data sheet,
RealTek のデータシートの品質はとりわけ貧弱です。文法とスペルはひどいですし、 多くの情報、特に受信器としての処理に関する情報が抜けています。 非常に重要な事実として、 チップが受信バッファをフィルする (訳注: 受信データを入れる) 方法に関して記述してないということがあります。 フレームが受信されたことを知らせる割り込みが起きたときに、 ドライバがこのフレームを処理している間に、 次のフレームが受信バッファへコピーされている最中になる可能性があります。 チップが次のフレームの残りを DMA してしまう前に、ドライバが最初のフレームを処理し終えたなら、チップ が次のフレームのすべてを DMA するより前に、バッファにあるそのフレーム をドライバが処理しようとするかもしれません。
ドライバは実パケットデータの前についているヘッダ中のフレーム長を調べる ことで、不完全なフレームかどうかをチェックできます。不完全なフレームは 0xFFF0 というマジック長です。ドライバはこの長さを発見すると、現在有効 なパケットをすべて処理し終えたことを知ることができます。このマジック値 とその重要性については、RealTek のデータシートのどこにも書いてありません。
FreeBSD | RL (4) | November 4, 1998 |
総合手引 | セクション 4 | English | オプション |
このマニュアルページサービスについてのご意見は Ben Bullock にお知らせください。 Privacy policy.
“ | Ken Thompson has an automobile which he helped design. Unlike most automobiles, it has neither speedometer, nor gas gauge, nor any of the other numerous idiot lights which plague the modern driver. Rather, if the driver makes a mistake, a giant “?” lights up in the center of the dashboard. “The experienced driver,” says Thompson, “will usually know what's wrong.” | ” |