7.23.NXP i.MX 8 Series
The i.MX 8 series of applications processors is a feature- andperformance-scalable multi-core platform that includes single-,dual-, and quad-core families based on the Arm® Cortex®architecture—including combined Cortex-A72 + Cortex-A53,Cortex-A35, and Cortex-M4 based solutions for advanced graphics,imaging, machine vision, audio, voice, video, and safety-criticalapplications.
The i.MX8QM is with 2 Cortex-A72 ARM core, 4 Cortex-A53 ARM coreand 1 Cortex-M4 system controller.
The i.MX8QX is with 4 Cortex-A35 ARM core and 1 Cortex-M4 systemcontroller.
The System Controller (SC) represents the evolution of centralizedcontrol for system-level resources on i.MX8. The heart of the systemcontroller is a Cortex-M4 that executes system controller firmware.
7.23.1.Boot Sequence
Bootrom –> BL31 –> BL33(u-boot) –> Linux kernel
7.23.2.How to build
7.23.2.1.Build Procedure
Prepare AARCH64 toolchain.
Build System Controller Firmware and u-boot firstly, and get binary images: scfw_tcm.bin and u-boot.bin
Build TF-A
Build bl31:
CROSS_COMPILE=aarch64-linux-gnu-makePLAT=<Target_SoC>bl31
Target_SoC should be “imx8qm” for i.MX8QM SoC.Target_SoC should be “imx8qx” for i.MX8QX SoC.
7.23.2.2.Deploy TF-A Images
TF-A binary(bl31.bin), scfw_tcm.bin and u-boot.bin are combined togetherto generate a binary file called flash.bin, the imx-mkimage tool is usedto generate flash.bin, and flash.bin needs to be flashed into SD cardwith certain offset for BOOT ROM. The system controller firmware,u-boot and imx-mkimage will be upstreamed soon, this doc will be updatedonce they are ready, and the link will be posted.