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

How to PCMCIA debug



緒方です。

NetBSD/i386 で IBM CREDIT CARD ADAPTER ETHERNET II を認識させようと
sys/dev/pcmcia/if_ne_pcmcia.c や sys/dev/pcmcia/pcmcia.c をいじってみたの
ですが力不足らしくで全然だめでした。

if_ne_pcmcia.c の ne2000dev に値を定義すれば使えそうな気がするのですが
定義のためのカードの具体的な値の取得方法がよくわかりません。
PCMCIADEBUG や PCMCIAVERBOSE をつけることでカードのいろいろな情報が
分かると思ったのですが何もつけないよりは情報量が増えるという程度で目的の
カードの値等は得られませんでした。

なにか良い方法があったら教えてください。
ここを見ろとポインタを示してしていただけるだけでもよいです。
# つまらないところでつまづいているんだろうなきっと。(笑)


やったこと
kernel config で PCMCIAVERBOSE を指定。
pcmcia.c のソース中にある PCMCIADEBUG を付けると make に失敗するので
つけてない。# PCMCIADEBUG って obsolete ?
gdb で pcmcia_debug=1 にして再起動。

認識に失敗するカードの表示
/netbsd: pcmcia0: CIS checksum failed
/netbsd: pcmcia0: CIS version PCMCIA 2.0 or 2.1
/netbsd: pcmcia0: CIS info: IBM Corp., Ethernet, 0934214, PC-NIC ENCC 990010759-001A
/netbsd: pcmcia0: Manufacturer code 0xa4, product 0x2
/netbsd: pcmcia0: function 0: network adapter, ccr addr 20000 mask b
/netbsd: pcmcia0: function 0, config table entry 1: I/O card; irq mask ffff; iomask 5, iospace 0-1f; memspace 11000-14fff; mwait_required io16 irqpulse irqlevel
/netbsd: ne0 at pcmcia0 function 0
/netbsd: pcmcia0: ++enabled_count = 1
/netbsd: pcmcia0: function 0 CCR at 0 offset 0: 41 0 41 0, 0 41 0 41, 0
/netbsd:  port 0x420-0x42f port 0x430-0x43f
/netbsd: ne0: can't match ethernet vendor code
/netbsd: pcmcia0: --enabled_count = 0

認識に成功するカードの表示
/netbsd: pcmcia0: CIS version PCMCIA 2.0 or 2.1
/netbsd: pcmcia0: CIS info: IBM Corp., Ethernet, 0934214, PC-NIC ENCC 990010759-001A
/netbsd: pcmcia0: Manufacturer code 0xa4, product 0x2
/netbsd: pcmcia0: function 0: network adapter, ccr addr 20000 mask b
/netbsd: pcmcia0: function 0, config table entry 1: I/O card; irq mask ffff; iomask 5, iospace 0-1f; memspace 11000-14fff; mwait_required io16 irqpulse irqlevel
/netbsd: ne0 at pcmcia0 function 0
/netbsd: pcmcia0: ++enabled_count = 1
/netbsd: pcmcia0: function 0 CCR at 0 offset 0: 41 0 41 0, 0 41 0 41, 0
/netbsd:  port 0x420-0x42f port 0x430-0x43f
/netbsd: ne0: National Semiconductor InfoMover Ethernet
/netbsd: ne0: Ethernet address xx:xx:xx:xx:xx:xx
/netbsd: pcmcia0: --enabled_count = 0

と、両方とも同じ IBM CREDIT CARD ADAPTER ETHERNET II で外観も全く同じ
なのですが、認識に失敗するカードは CIS checksum failed とちょっとおかしい
ようで ne0: can't match ethernet vendor code と vendor code が既に定義されて
いる National Semiconductor InfoMover Ethernet と違っているようなので
同じようにエントリを追加して値を修正すれば認識できるように思えます。

ハードウェア的に壊れているならあきらめも付くのですが、両方とも知人の
 Windows 95 マシンに挿してみたところ IBM Ethernet Credit Card Adapter II で
認識し、パケットエラーも無い状態で問題なく使えるので NetBSD でも動くように
できると思っています。

kernel は 5/15 時点の syssrc を使って 1.4Y の状態です。
# userland が 1.4X の時のままだったりする。(汗)


# IBM CREDIT CARD ADAPTER ETHERNET II で経験を積んで、次は AWE64 互換の
# E-mu EMU8000 が載った TDK DMC9000 と戦う予定。 sb にアタッチすれば
# 動くのではと思ってるけど... 地雷源に突入〜かも。(笑)
# E-mu EMU8710, SYNCHROTECH EMU8710, SYNTHONY EMU8710 PS と compatible かも。



OGATA Hiroshi <ogata@isp.qix.org>