Artix-7のMicroBlazeでネットワーク対応のU-Bootが起動した
今年、特電に入ってくれたアルバイトさんはとても優秀です。
Artix-7にMicrolBlazeを入れて、U-Bootを起動させてネットワークに対応させるところまで作りあげてくれました。
上の写真は特電Artix-7ボードの下に拡張ボードを挿して、LANが使えるようにしたものです。
まず、MicroBlazeが起動すると、First Stage BootLoaderとしてSREC BootLoaderが動作します。このSREC BootLoaderはSPI ROMからU-BootのSレコードを読み出してきてSDRAM上に展開します。
このSREC BootLoaderはXILINX SDKの中に入っているものを修正して作ったのですが、最初はうまくU-Bootを起動してくれませんでした。

SDKの中に入っていたSREC BootLoaderは、XMD上でELFをロードしてRUNするとちゃんと動くのに、BitStreamに埋め込んでFPGAごと起動するとSPI ROMからの読み出しが動かないようです。
どうやら、SelfTestというサンプルプログラムを1回実行すると動くということがわかったので、初期化に何かの問題があったようです。そういうわけで、SelfTestを一回実行してからLoader本体を動かすことで、U-Bootが動き出すところまでいきました。
デバッグ用のメッセージがいろいろ含まれていますが、こんな感じです。
U-Bootが起動して、Pingを打ってみたら、ちゃんと返ってくる!ネットワーク機能がちゃんと動いているという証拠です。
次にLinuxのイメージをロードしてみたいところです。TFTPサーバを立ち上げてイメージをネットワーク経由でロードできるようにしようとしているのですが、そこでまた何かうまくいかないことが起きているようです。
きっと近いうちに解決されるでしょう。
| 固定リンク






コメント