Hi,
I am booting iMX8QM MEK with (BL31) boot loader using imx-atf image (bl31.bin) using the RESET_TO_BL31=1 build flag which allows the imx8qm CPU to reset to BL31 entrypoint on Cortex-A53. I have booted bl31.bin from 0x80000000 from the flash.bin using imx-mkimage target :
flash_test_8: $(MKIMG) mx8qm-ahab-container.img scfw_tcm.bin bl31.bin App.bin imx8qm-mek-ca53.dtb
./$(MKIMG) -soc QM -rev B0 -append mx8qm-ahab-container.img -c -scfw scfw_tcm.bin -ap bl31.bin a53 0x80000000 -data App.bin 0x80020000 -data imx8qm-mek-ca53.dtb 0x83000000 -out flash.bin
and booted it from eMMC using NXP UUU tool. Note, that my A53 bootable test app (App.bin) doesn't seem to print to console when booted from flash.bin at the BL33 entrypoint for normal world ARM application at the pre-specified address in flash.bin(0x80020000).
I used a debugger to examine RAM and can see there is an image (presumably the test app) copied from flash to RAM at 0x80020000. I'm not sure if the handoff to 0x80020000 is happening properly. Although, bl31.bin has code to set the program counter to the entry point 0x80020000.
(1) Does this mechanism show any obvious issue ? Shouldn't we be able to boot App.bin normally like we can boot it from u-boot ?
(2) Is there any SCFW API I can use to print (to console) RAM contents at 0x80020000 onwards (for debugging) ?
Thanks.
Solved! Go to Solution.
Just following up on this, I have been able to confirm the bl31.bin (TFA imx-atf) image does perform the handoff to a BL33 normal world image inside a debugger after setting a breakpoint at the specified address (0x80020000). Closing this thread.
Just following up on this, I have been able to confirm the bl31.bin (TFA imx-atf) image does perform the handoff to a BL33 normal world image inside a debugger after setting a breakpoint at the specified address (0x80020000). Closing this thread.