[Suzaku:00653] Re: LAN9118 増設について

Yasushi SHOJI email@hidden
2006年 9月 26日 (火) 18:00:41 JST


At Tue, 26 Sep 2006 15:36:20 +0900,
Tarumi wrote:
> 
> SUZAKU-Sを使用し、外部にLAN9118を増設して使おうとしているのですが
> DHCPが正常に終了できずに悩んでいます。

PINGとか tcp/ipの通信はできていますか?

一度 DHCPが interfaceを初期化するときのバグを見たことがあります。

> ドライバは最新のものに含まれていたものを使用しています。

9115ではテストしていますが、9118ではテストしていないのでなんとも言えま
せんが、とりあえず気がついたとこだけ。

9118って32 bit版ですよね? レジスタのread/writeは正常にできていると判
断して良いですか?

> 変更箇所
>  ・fpgaのSMC91111のアドレスを変更、割り込みは削除。
>  ・fpgaにSMSC9118を追加
>   (DHCPに対応させる方法が分からなかった為、eth0にして使用しています)

eth1を dhcpに対応させる方法でしょうか? dhcpのクライアントの引き数でイ
ンターフェースを指定できるはずです。

下のログを見ると9118では IRQを使っていないように見えますがあっています
か?

>  ・config.linix-2.4.x.jffs2にCONFIG_SMSC911X=yを追加
> 
> 通信ログ
>  ・ ・ ・ ・ ・ (省略)
>  eth0: LAN9118 (rev 1180001) at ffe00000 IRQ 2
>  SMSC: -->Phy_Initialize
>  SMSC: dwPhyId==0x00C0001C,bPhyModel==0x0D,bPhyRev==0x01
>  SMSC: <--Phy_Initialize, result=TRUE
>  SMSC: <--Smsc911x_init(), result=0
>  SMSC:   Interface Name = "eth0"
>  SMSC: <-- init_module()
>  Suzaku MTD mappings:
>    Flash 0x800000 at 0xff000000
> 
>  ・ ・ ・ ・ ・ (省略)
>  flatfsd: Created 4 configuration files (150 bytes)
>  Setting hostname: 
>  SMSC: Link is now UP at 100Mbps FD
>  SMSC: LAN911x: ASYMP,SYMP ,100FD,100HD,10FD ,10HD 
>  SMSC: Partner: ASYMP,SYMP ,100FD,100HD,10FD ,10HD 
>  Setting up interface lo: 
>  Starting DHCP client: 
>  SMSC: -->Smsc911x_open(dev=0x800FB270)
>  SMSC: -->Lan_Initialize(dwIntCfg=0x00000001)
>  SMSC: <--g_GpioSetting set
>  SMSC: <--Lan_Initialize
>  SMSC: Testing ISR using IRQ 2
>  SMSC: In ISR, not my interrupt, dwIntCfg=0x00000101

ここで失敗してますね。ソースコード的には dwIntCfg=0x00001100じゃないと
いけないみたいです。

>  SMSC: ISR passed test using IRQ 2
>  SMSC: Tx will use PIO
>  SMSC: Rx will use PIO
>  SMSC: -->Phy_Initialize
>  SMSC: dwPhyId==0x00C0001C,bPhyModel==0x0D,bPhyRev==0x01
>  SMSC: <--Phy_Initialize, result=TRUE
>  SMSC: <--Smsc911x_open, result=0
>  SMSC: In ISR, not my interrupt, dwIntCfg=0x36000101
>  SMSC_WARNING: Gpt_CancelCallBack: Failed
>  SMSC: In ISR, not my interrupt, dwIntCfg=0x36000101
>  Starting inetd: 
>  Starting thttpd: 
>  SMSC: Link is now UP at 100Mbps FD
>  SMSC: LAN911x: ASYMP,SYMP ,100FD,100HD,10FD ,10HD 
>  SMSC: Partner: ASYMP,SYMP ,100FD,100HD,10FD ,10HD 
>  
>  SUZAKU-S login: Jan  1 00:01:05 dhcpcd[32]: timed out waiting for a valid DHCP server response
>  SMSC: Multicast: enable dwBitNum=31,addr=01 00 5E 00 00 01
                                             ^^^^^^^^^^^^^^^^^
MACアドレスはあっていますか?

>  SMSC: In ISR, not my interrupt, dwIntCfg=0x36000101
> 
> 初期化、テスト割り込み、送信は正常に行われています。
> 受信割り込みも、おそらく正常だと思います。

たぶん、割り込み処理していないと思います。

    cat /proc/interrupts

で、割り込みの増加を見れると思いますが、確認してもらえますか?

> 受信が正常に行われているかどうかが、Linuxに不慣れなものでよく分かりません。

wireshark (旧 ethereal)で通信経路のデータを見ることができます。suzaku
から正しいデータが出力されているか確認してください。

> お手数ですが、現状および受信状態を確認する方法など
> ご教授いただきたく、よろしくお願いいたします。

9118に書き込む場所で printkをして、wiresharkで取れたデータと比較してみ
てください。

> 追伸。
>  過去のメーリングリストに添付しているサンプルソースなどは
>  何処かからダウンロードできないのでしょうか?
>  (参考資料は、多いほど助かるのですが・・・)


http://lists.atmark-techno.com/pipermail/suzaku/ でアーカイブを見るこ
とができます。添付ファイルも見れると思います。
-- 
         yashi




suzaku メーリングリストの案内