
mmcカードからカーネルイメージを読み取り、それをSPI Norフラッシュメモリにフラッシュしようとしています。私のカーネルイメージにはuImageだけがあります。
そのため、mmcカードからカーネルイメージを読み取ってメモリアドレス0x8000に入れました。
Zynq> fatload mmc 0 0x8000 $kernel_image
実行して見ることができます
md 0x8000.
このデータをRAMからQSPIフラッシュにコピーしたいと思います。
私は次のことをしました。
sf update 0x8000 0 ${kernel_size}
それでは、0x8000の内容を読み、オフセットアドレス - 0x0のSPIフラッシュに入れたと思います。
これで、別のRAMアドレス(0x3000000)のフラッシュメモリから再読み込みしています。
>sf read 0x3000000 0 ${kernel_size}
同様に、デバイスツリーイメージをRAMにロードします。
#fatload mmc 0 0x8000 ${devicetree_image}
もう読みました。
#md 0x8000 ${devicetree_image}
今、私はフラッシュメモリにデバイスツリーを作成しています。
#sf update 0x8000 0x700000 ${devicetree_size}
#sf read 0x2A00000 0x700000 ${devicetree_size}
RAMのデバイスツリーを確認しています。
md 0x2A00000 ${devicetree_size}
これで、新しく読み取ったRAMアドレスから起動します。
bootm 0x3000000 - 0x2A00000
Zynq> bootm 0x3000000 - 0x2A00000
Wrong Image Format for bootm command
ERROR: can't get kernel image!
私がここで何を間違っているのか?
Zynq> iminfo 0x3000000
## Checking Image at 03000000 ...
Unknown image format!
Zynq> iminfo 0x8000
## Checking Image at 00008000 ...
FIT image found
Bad FIT image format!
デバイスツリーを作成した後、0x3000000には何も表示されません。私がここで何を見逃しているのでしょうか?