I tried booting a Yocto SystemReady image with the standard binary firmware images from NXP, like LF_v5.15.71_2.2.0_boot_IMX8MEVK(SystemReady-IR certified):imx-boot-imx8mqevk-sd.bin-flash_evk, LF_v5.15.71-2.2.0_images_IMX8MQEVK:imx-boot-imx8mqevk-sd.bin-flash_evk. Firmware is loaded on eMMC, the image is on an SD card. This image boots on other SystemReady systems.
I get the following:
mmc1 is current device
Scanning mmc 1:1...
52632 bytes read in 2 ms (25.1 MiB/s)
Scanning disk mmc@30b40000.blk...
Scanning disk mmc@30b50000.blk...
Found 5 disks
optee optee: OP-TEE api uid mismatch
Unable to open OP-TEE session (err=-19)
mm_communicate failed!
Error: Cannot initialize UEFI sub-system, r = 3
Found EFI removable media binary efi/boot/bootaa64.efi
114977 bytes read in 3 ms (36.5 MiB/s)
Error: Cannot initialize UEFI sub-system, r = 3
EFI LOAD FAILED: continuing...
So, after fighting for a while building my own firmware image (the documentation on this is a mess), I got the same error.
I traced it down to the fact that uboot in the standard images is build with OPTEE support, but OPTEE is not part of the standard images that are built. Specifically, the efiboot command calls efi_init_variables(), which if OPTEE is enabled tries to get the EFI variables from OPTEE, which obviously fails. So it's nothing to do with the image
Turning off OPTEE in u-boot allowed me to boot the SystemReady image. I didn't try to build OPTEE, I would have to fight some more because of vague and lacking instructions.
I assume I'm doing everything right, but if I'm not, well, I guess I'm asking someone to point out my error :-).
Can we get standard images that are SystemReady operational? And test releases for it? I can supply Yocto image builds or instructions if necessary. You can build them from https://github.com/MontaVista-OpenSourceTechnology/opencgx-armsr too.
Thanks,
-corey