¿Cómo actualizar SPI NOR y volver a leer desde SPI Nor - Microzed Zynq desde Uboot?

¿Cómo actualizar SPI NOR y volver a leer desde SPI Nor - Microzed Zynq desde Uboot?

Estoy intentando leer la imagen del kernel de la tarjeta mmc y actualizarla en el flash SPI Nor. La imagen de mi kernel es solo uImage.

Entonces, leí la imagen del kernel de la tarjeta mmc y la puse en la dirección de memoria: 0x8000.

Zynq> fatload mmc 0 0x8000 $kernel_image

Puedo ver eso corriendo

md 0x8000.

Ahora quiero copiar estos datos de la RAM a la memoria flash QSPI.

Hice lo siguiente.

sf update 0x8000 0 ${kernel_size}

Ahora, creo que ha leído el contenido de 0x8000 y ha colocado SPI Flash en la dirección de desplazamiento: 0x0.

Ahora estoy leyendo desde la memoria flash en una dirección RAM diferente: 0x3000000.

>sf read 0x3000000 0 ${kernel_size}

De manera similar, estoy cargando la imagen del árbol de dispositivos en la RAM.

#fatload mmc 0 0x8000 ${devicetree_image}

Ahora vuelvo a leer.

#md 0x8000 ${devicetree_image}

Ahora estoy escribiendo un árbol de dispositivos en la memoria flash.

#sf update 0x8000 0x700000 ${devicetree_size}
#sf read 0x2A00000 0x700000 ${devicetree_size}

Ahora estoy comprobando el árbol de dispositivos en la RAM.

md 0x2A00000 ${devicetree_size}

Ahora, estoy arrancando desde la dirección RAM recién leída.

bootm 0x3000000 - 0x2A00000

Zynq> bootm 0x3000000 - 0x2A00000
Wrong Image Format for bootm command
ERROR: can't get kernel image!

¿Qué estoy haciendo mal aquí?

Zynq> iminfo 0x3000000

## Checking Image at 03000000 ...
Unknown image format!


Zynq> iminfo 0x8000

## Checking Image at 00008000 ...
   FIT image found
Bad FIT image format!

Después de escribir el árbol de dispositivos, veo que 0x3000000 no tiene nada. ¿Que me estoy perdiendo aqui?

información relacionada