Wie flasht man SPI NOR und liest vom SPI Nor zurück – Microzed Zynq von Uboot?

Wie flasht man SPI NOR und liest vom SPI Nor zurück – Microzed Zynq von Uboot?

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?

verwandte Informationen