u-bootを使ってみた
Jetson TK1のブートローダ、カーネルの記事で、ブートローダとカーネルがSPIフラッシュに書かれている?と書きましたが、eMMCかもしれません。
flashのscript実行時のログとかを調べているうちに、eMMCにブートローダ、dtb、カーネルが格納されているパーティションをみつけたので。
どちらにせよ、書き換え限度があるところに、そんなものを置いてしまうのはいただけないですね。
というわけで、以下のツールを使って、flashに書き込まず、USB経由でu-bootを起動してみました。
https://github.com/NVIDIA/tegra-uboot-flasher-scripts
しかし、結果はまともに動かず。
一応、u-boot自体はそれなりに動いているんですが、カーネルが正常に起動せず、途中でエラーを吐いて止まりました。
kernel commandlineを調べてみたところ、device treeでは↓こんな感じですが、
tegraid=40.0.0.00.00 vmalloc=256M video=tegrafb console=ttyS0,115200n8 earlyprintk
nVidiaのプロプライエタリなブートローダから起動した場合は、かなり増えてます。
u-bootの環境変数を設定して、kernel commandlineをあわせてみると、それまで出ていたエラーは消えましたが、結局起動途中でとまりました。
nVidiaのローダで実行している、何らかのレジスタ初期設定?がu-bootには無いので、起動しないんじゃないかと思っています。
http://elinux.org/Tegra/Boards/NVIDIA_Jetson_TK1
によると、u-bootはetherとか未対応のものがあるとのことで、
もうちょっと待たないと、使えそうにないですね。
ネットを調べても、Jetson TK1でu-bootを使ってLinuxを起動したという話は聞かないですし。
ちなみに、u-bootのJetson TK1対応は、以下にもはいってましたが、駄目でした。
http://git.denx.de/?p=u-boot/u-boot-arm.git;a=summary
https://github.com/swarren/u-boot