Zynqを起動するのにu-bootの環境変数にbootargsを書いて、Linux Kernelに引数を渡している。 Device Treeにも、bootargsの設定がある。
ん???
Linux Kernelって、引数はひとまとまりしか受付なかったんじゃないかな?
環境変数のbootargsって、どうやってLinux Kernelに渡してるんだろう?
ざっくりいくと、ATAGとDevice Treeのどちらかが使用される。
ARM環境だけで言えば、r1とr2レジスタでの受け渡しだよなぁ〜
今は当然、Device Treeが使われる。
やっぱり、bootargsの環境変数はどこへ行くのやら?
・・・?
そこでu-bootのソースコードを解析したらところ、Device Treeがあるときはbootargsの環境変数をDevice TreeにマージしてDevice Treeを渡してた。
そういうことだったのかぁ〜。
それだったら、わざわざ環境変数にbootargsを書かなくてもDevice Treeに書いてしまえばいいよね。