
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?