u-bootにはloadb,loadx,loadyというコマンドがあってそれぞれでkermit,XMODEM,YMODEMというプロトコルを使用して、PCとシリアルケーブル経由でバイナリファイル転送が行えるとのこと。 PC側はteratermやrloginなどのシリアル通信ができる端末ソフトを用意する。 この環境でファイル転送を試したがteraterm・rloginともファイル転送に失敗した。原因は今のところ不明。
今raspberry pi 3 はWiFiで接続していて、有線LANは接続していない。手元にSW-HUBもないしLANケーブルもない。TFTPを使ってバイナリファイルを受け取れるのは有線LANのみで、WiFiはサポートしていない。なのでとりあえずはシリアル経由でクロスコンパイルしたバイナリを送ることができればと思ったのだが。。
しかしu-bootでWiFiをサポートすることはできないのだろうか。単なるドライバの問題のような気もする。raspbianはWiFiをサポートしているし、u-bootもlinuxベースのようだから、raspbianでWiFiをドライブしているコードを引っこ抜いてu-bootにくっつければ何とかなりそうな気もする。ちょっとソースコードをのぞいてみようかなと思うけど、私には難しいだろうなあ。。