
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 には何もないことがわかります。ここで何が欠けているのでしょうか?