でん@相模原です。 ども、おおさとさん。 長文失礼!!! >その度に「de4x5 で試してみたら」とアドバイスして解決していたのですが、 この件はとりあえずおいておきましょう。(混乱するといけないので) >NIC はとりあえず 3 種類。 > (1) Wisecom WS-D400/D : 21140AF + Davicom DM9101F(9833-BT/M7715) > (2) Planex ENW-9501-F : 21140AF + Davicom DM9101F(9849B/MB30) > (3) メーカー不詳 : 21140AE + LevelOne LXT970QC Davicomは評価経験がないので何ともいえませんが、LevelOneは多少 有ります。(笑) 最新のものは LXT971ALC で、その前は LXT971LC, さらに前が LXT970xxx ですね。970と971の大きな差は信号をこのLSI自身がどう見るかです。 971は良くも、悪くもデジタル的に処理するようになっているので 信号に関してもとてもシビアな反応を示します。 信号の見方というのは、データの取り込み対象となる信号を時系列で サンプリングするといった取り込みの仕方を意味します。 デジタル的にこれらを処理するというのは2つの点で問題をはらむ場合 があります。 1つ目)信号の取り込みを行う場合、0/1のレベルチェックが うまいこと運ばない。 ↓ 0/1が正しく見えない。 2つ目)信号の取り込みタイミングが時間的にずれてしまい うまいこと取り込めない。 ↓ 正しい波形を位置を認識できない。 これらは、一見信号の波形だけの様に重われるかもしれませんが、 オートネゴにしろ、リンク信号にせよ、これらも波形の組み合わせ で表現されるので、注意が必要である事を意味します。 これを頭の隅において以下の話を進めます。 >(1) と (2) は全く同じ基板です。違いといえばセラミックコンデンサ >の色ぐらいで、同じ設計同じ工場でたぶん製造時期が違う程度だろうと >思われます。/proc/pci で見ても同じく Rev.34 です。 >これで違いがあるとは思えなかったのですが。 >結果は、(2) と tulip の組み合わせだけが動作しませんでした。 >de4x5では動きます。 >ケーブルを抜いて挿しなおしてやると動作します。 この三つの事象で思い当たるのは、電源投入時点でAuto設定をしている 場合にDM9101Fをハードリセットしているかどうかです。 ケーブルを抜くということは言い換えると 「異なる速度のHUBポートへ繋ぐ事」 を示します。しかし一般的なLSIでは一旦Autoで速度が確定すると 再度速度調停をするにはハードリセットが必要になるからです。 加えて、電源投入直後はハードウェアの実装にもよるのですが 多くの場合はAutoで自動ネゴとなるのでリセットしないでも リンクすることが多いのです。 でも、これは少々危険で実装によっては 「自動的にリセットされない事」 も同時に意味しています。 このシーケンスに着目して、de4x5ドライバとtulipのドライバを 比べてみるともしかすると動くのかもしれません。 >というわけで、なんとも微妙な問題です。 確かに微妙ですが、この他にも特定ポートだけでリンクしないとか 有ります。この場合は多くの場合はLSIが壊れています。 詳しくはIEEE802委員会の文章を読んで欲しいのですが、単的には 過電圧が一瞬だけですがポートにかかる場合があって、それが 原因でLSIが破壊されるということらしいです。 ルータとかをやっている企業では今大問題になっているのですが 規格以上の問題なので、なんともしがたいのが現状です。 >さらに、21140AF + LevelOne の別の製品、21143PD のもの、Lite-On >の互換チップのものなども手元に用意できます。だいたい今までのとこ >ろこれ等は 2.4.x でも tulip で動いていますが。 >tulip に patch のあたっていない素の kernel だとどうかとか、暇が >あれば(& ご要求があれば)さらにやってみますが、何かのお役に立つで >しょうか。 ということで、少しソースを追ってみましょうか。(笑) とり急ぎ、まずはここまで。 ===== でん / Masaharu "DENSUKE" Nagata E-Mail: densuke@xxxxxxxxxxxxx