
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에 아무것도 없는 것을 확인했습니다. 내가 여기서 무엇을 놓치고 있는 걸까요?