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에 아무것도 표시되지 않습니다. 내가 여기서 무엇을 놓치고 있는 걸까요?