[GR-PEACH]u-boot動いた

GR-PEACHでとりあえずプロンプトが出るところまで動いたのでメモ。

やったこと

GR-PEACHに載っているCPUはRenesas RZ/A1H。で、このCPU向けのu-bootは既に https://github.com/renesas-rz/u-boot-2015.01 にある(RSKという単語がちらほら見えるので、おそらくRenesas Starter Kit+ for RZ/A1Hのこと?)。ということでコイツをforkして進めることに。

ちなみにTOPPERSは既にGR-PEACH対応済み(TOPPERSプロジェクト/ASPカーネル)だったりするので、貴重な情報源としてありがたく使わせてもらうことに。

GR-PEACHのRZ/A1Hはリセットされた時に0x18000000のSPI Flashから開始するように結線されている(ブートモード3)。これを念頭にしてさっきのTOPPERSや「GCCによるビルドについて | Mbed」のmapファイルを参照したらエントリポイントは0x18004000で、0x18000000には謎の16進データが(こんなん)。何これ。

最初はmbed固有のマジックナンバーか何かかとも思ったけどそれにしては長すぎるし、そこのアドレスから開始されるのだから何かしら意味があるんじゃないかと仮定して試しに逆コンパイルしてみたところ予想が的中。あまり詳しく追ってはいない つーか理解できん けどどうも色々と初期化をして最後に0x18004000に飛ぶような感じがする。それならTOPPERSなどの設定と辻褄があう、気がする。

てことでu-bootも0x18000000に謎16進データを置き、本体は0x18004000に置くようにしたら一応動くようになりましたとさ。

…と結果だけ書くと簡単そうに見えるけどここまで来るのに1ヶ月もかけてたりする。今のところu-bootの機能のほとんどを無効にしているので、ネットワークとかSDカードとかも見えるようにしたいところ。ただし予定は未定