[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: NWB-5852



<E15Q5qL-00027o-00@ruri.iri.co.jp>の記事において
tsubai@iri.co.jpさんは書きました。

> 先日、NWB-5852 で MAC address を読めているのに気づいたので少し
> 調べてみたところ、どうも電源を落して(コンセントからも抜いて)
> 5分程度放置した直後だけはアドレスぐらいは読めていました。その
 :
> tlp0 at ap0 slot2 addr 0xb8400000: DECchip 21140A Ethernet, pass 1.2
> tlp0: broken MicroWire interface detected; setting SROM size to 1Kb
> tlp0: Ethernet address 00:00:00:00:03:00

tulip では Mac Address はよくある 3線式 serial EEPROM の
93c45/55 に入っています。これの data sheet は例えば
http://www.atmel.com/atmel/acrobat/doc0172.pdf
とかにありますが、これを見るとデータ出力の H 電圧が
結構低い(Vcc=4.5〜5.5V のとき Vout min 2.4V)ので、
データラインの pullup 抵抗がちゃんとついてないと
1 になるはずのデータが 0 に読めてしまうということは
起こると思います。#時間で変わるのは温度が関係してる?

これが原因だとするとハードのバグなので対策は難しいと思いますが、
SROM_EMIT() の macro の中の delay を思いっきり増やせば
(正確には MIIROM_SROMDO の読み込み前に delay() を追加すれば)
何か変わるかもしれません。

> なお、動いているかのように見えたときにハブに繋いでみたところ、
> ifconfig した直後から tlp0: receive ring overrun が出っぱなしで
> やっぱり使えませんでした。:-)

これは tulip.c の rev 1.96 の修正で直ってたりはしませんか?
(かなり希望的観測ですが……)
---
Izumi Tsutsui
tsutsui@ceres.dti.ne.jp