[ TOP | Recently ]

2009-07-26 Embedded PHY


STR81xxのpdfに Gigabit Ethernet Contoller (GEC) と書いてあるので if_gec.c にする。
安直なので後で困りそう。Gigabitと名前が付いてる割に、Embedded な PHY は 10/100M しか対応してない。1G は外付け PHY で実装した時のみだ。

ちなみにSTR91xxの方は
・Embedded Switch Controller (including HNAT and MAC)
・Embedded 4-port Gigabit Switch Engine
とかいう表記があるので if_esc とか if_gse にするか。いまいちパッとしないなぁ。


            §            §            §


送信パケットなmbufをNICのring bufferに展開する所を書いて、ついでに確認のためmbufの中身をprintfしたりするデバッグコードを入れて、送信してみる。試行錯誤しながら、なんとなく動くようになった。
gec_start() で ring bufferを充填して、DMA転送開始。送信完了割り込みも問題なく入る。うはw余裕www送信キター…と思ったら、してくれない。PHYが見えないのだ。
内蔵PHYなのでmiibus経由でアクセスするのじゃなくて、レジスタ直接叩くのかなぁ、とか思っていろいろ試すが、反応しない。MII経由でPHYをread/writeしても0xffffしか読めない。というかそもそもリンクアップさえしてないよ? うーん…

pdfには、STR8132はMIIBUSを持っていないように読み取れるので、そもそもMIIはアクセスできないのだろうと思って各種レジスタを叩きまくるが、やっぱりリンクアップしない。
うーーーーーーーむ。

土日の間、丸二日悩みつつ、やっぱりわからないのでカルドセプトDSをしつつフテ寝する。


EOF