
Ich versuche, das Kernel-Image von der MMC-Karte zu lesen und es auf dem SPI-Nor-Flash zu flashen. Mein Kernel-Image ist nur uImage.
Also habe ich das Kernel-Image von der MMC-Karte gelesen und es in die Speicheradresse 0x8000 eingefügt.
Zynq> fatload mmc 0 0x8000 $kernel_image
Ich kann das sehen, indem ich laufe
md 0x8000.
Jetzt möchte ich diese Daten vom RAM in den QSPI-Flash kopieren.
Ich habe Folgendes getan.
sf update 0x8000 0 ${kernel_size}
Nun glaube ich, dass es den Inhalt von 0x8000 gelesen und in SPI Flash an der Offset-Adresse - 0x0 - abgelegt hat.
Jetzt lese ich vom Flash an einer anderen RAM-Adresse zurück - 0x3000000
>sf read 0x3000000 0 ${kernel_size}
Auf ähnliche Weise lade ich das Gerätebaum-Image in den RAM.
#fatload mmc 0 0x8000 ${devicetree_image}
jetzt habe ich es noch einmal gelesen.
#md 0x8000 ${devicetree_image}
Jetzt schreibe ich den Gerätebaum in den Flash.
#sf update 0x8000 0x700000 ${devicetree_size}
#sf read 0x2A00000 0x700000 ${devicetree_size}
Jetzt überprüfe ich den Gerätebaum im RAM.
md 0x2A00000 ${devicetree_size}
Jetzt boote ich von der neu gelesenen RAM-Adresse -
bootm 0x3000000 - 0x2A00000
Zynq> bootm 0x3000000 - 0x2A00000
Wrong Image Format for bootm command
ERROR: can't get kernel image!
was mache ich hier falsch?
Zynq> iminfo 0x3000000
## Checking Image at 03000000 ...
Unknown image format!
Zynq> iminfo 0x8000
## Checking Image at 00008000 ...
FIT image found
Bad FIT image format!
Nachdem ich den Gerätebaum geschrieben habe, sehe ich, dass 0x3000000 nichts enthält. Was übersehe ich hier?