
Hi Fabio,
No. I think they actually use fip.bin but just not upstreamed yet. Please see the "Firmware version" in the list. For Compulab we are using mainline U-boot. But for imx8mm-evk it is NXP released firmware.
And yes we do use mainline ATF and mainline OPTEE. I'll explain how to build all of them.
# OPTEE
1. export ARCH=arm 2. export CROSS_COMPILE=arm-linux-gnueabihf- 3. export CROSS_COMPILE64=aarch64-linux-gnu- 4. make PLATFORM=imx PLATFORM_FLAVOR=mx8mm_cl_iot_gate O=build.mx8mmevk \ CFG_TEE_CORE_LOG_LEVEL=2 \ CFG_TEE_TA_LOG_LEVEL=2 \ CFG_TEE_CORE_DEBUG=y \ CFG_EXTERNAL_DTB_OVERLAY=y \ CFG_DT=y \ CFG_DT_ADDR=0x52000000 \ CFG_DEBUG_INFO=y
And we got tee-header_v2.bin tee-pager_v2.bin and tee-pageable_v2.bin. These files will be used in the TF-A stage.
Then we start building U-boot (BL31).
# U-boot (BL31)
1. export ARCH=arm64 2. export CROSS_COMPILE=aarch64-linux-gnu- 3. export ATF_LOAD_ADDR=0x920000 4. make O=/tmp/uboot-imx8 imx8mm-cl-iot-gate_defconfig 5. make O=/tmp/uboot-imx8
We got u-boot.bin at this stage. u-boot.bin is needed for the next stage.
# TF-A
make ARCH=aarch64 CROSS_COMPILE=aarch64-linux-gnu- PLAT=imx8mm \ SPD=opteed BL32_BASE=0x7e000000 IMX_BOOT_UART_BASE=0x30880000 \ NEED_BL32=yes NEED_BL33=yes NEED_BL2=yes \ LOG_LEVEL=50 \ USE_TBBR_DEFS=1 GENERATE_COT=1 TRUSTED_BOARD_BOOT=1 \ MBEDTLS_DIR=../mbedtls \ BL32=../optee_os/build.mx8mmevk/core/tee-header_v2.bin \ BL32_EXTRA1=../optee_os/build.mx8mmevk/core/tee-pager_v2.bin \ BL32_EXTRA2=../optee_os/build.mx8mmevk/core/tee-pageable_v2.bin \ BL33=/tmp/uboot-imx8/u-boot.bin BL2_CFLAGS=-DIMX8M_FIP_MMAP \ fip bl2 bl31
Now we have bl2.bin and fip.bin in build/imx8mm/release for the next stage.
# U-boot (generate flash.bin and u-boot.itb)
1. export NXP_FIRMWARE=firmware-imx-8.8.bin 2. wget -c http://www.freescale.com/lgfiles/NMG/MAD/YOCTO/$%7BNXP_FIRMWARE%7D 3. bash -x ${NXP_FIRMWARE} --auto-accept 4. cp -v $(find firmware* | awk '/train|hdmi_imx8|dp_imx8/' ORS=" ") /tmp/uboot-imx8 5. cp -v ../trusted-firmware-a/build/imx8mm/release/bl2.bin /tmp/uboot-imx8/bl31.bin 6. cp -v ../trusted-firmware-a/build/imx8mm/release/fip.bin /tmp/uboox-imx8/fip.bin 7. export ARCH=arm64 8. export CROSS_COMPILE=aarch64-linux-gnu- 9. export ATF_LOAD_ADDR=0x920000 10. make O=/tmp/uboot-imx8
So now it shouldn't complain about missing images.
Yours, Paul
On Fri, 13 Aug 2021 at 20:15, Fabio Estevam festevam@denx.de wrote:
Hi Paul,
On 13/08/2021 06:59, Paul Liu wrote:
Hi Fabio,
Can we think of a way to keep this fip.bin feature? This is part of the SystemReady IR certificate for this Compulab board. [1]
[1]
https://developer.arm.com/architectures/system-architectures/arm-systemready...
i.MX8MM EVK is also listed there and we don't use fip.bin on this platform (and not on any other i.MX8MM platform in mainline U-Boot).
If you really want to use fip.bin, could you please let me know the exact build procedure for AT-F? Do you use mainline ATF?
As a user of the IOT-GATE-iMX8, I would just like to be able to flash mainline U-Boot and move forward. Even better if I could use the same procedure that has been used on other i.MX8MM boards.
Regards,
Fabio Estevam
DENX Software Engineering GmbH, Managing Director: Wolfgang Denk HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany Phone: (+49)-8142-66989-60 Fax: (+49)-8142-66989-80 Email: festevam@denx.de