1*91f16700SchasingluluNXP i.MX 8 Series 2*91f16700Schasinglulu================= 3*91f16700Schasinglulu 4*91f16700SchasingluluThe i.MX 8 series of applications processors is a feature- and 5*91f16700Schasingluluperformance-scalable multi-core platform that includes single-, 6*91f16700Schasingluludual-, and quad-core families based on the Arm® Cortex® 7*91f16700Schasingluluarchitecture—including combined Cortex-A72 + Cortex-A53, 8*91f16700SchasingluluCortex-A35, and Cortex-M4 based solutions for advanced graphics, 9*91f16700Schasingluluimaging, machine vision, audio, voice, video, and safety-critical 10*91f16700Schasingluluapplications. 11*91f16700Schasinglulu 12*91f16700SchasingluluThe i.MX8QM is with 2 Cortex-A72 ARM core, 4 Cortex-A53 ARM core 13*91f16700Schasingluluand 1 Cortex-M4 system controller. 14*91f16700Schasinglulu 15*91f16700SchasingluluThe i.MX8QX is with 4 Cortex-A35 ARM core and 1 Cortex-M4 system 16*91f16700Schasinglulucontroller. 17*91f16700Schasinglulu 18*91f16700SchasingluluThe System Controller (SC) represents the evolution of centralized 19*91f16700Schasinglulucontrol for system-level resources on i.MX8. The heart of the system 20*91f16700Schasinglulucontroller is a Cortex-M4 that executes system controller firmware. 21*91f16700Schasinglulu 22*91f16700SchasingluluBoot Sequence 23*91f16700Schasinglulu------------- 24*91f16700Schasinglulu 25*91f16700SchasingluluBootrom --> BL31 --> BL33(u-boot) --> Linux kernel 26*91f16700Schasinglulu 27*91f16700SchasingluluHow to build 28*91f16700Schasinglulu------------ 29*91f16700Schasinglulu 30*91f16700SchasingluluBuild Procedure 31*91f16700Schasinglulu~~~~~~~~~~~~~~~ 32*91f16700Schasinglulu 33*91f16700Schasinglulu- Prepare AARCH64 toolchain. 34*91f16700Schasinglulu 35*91f16700Schasinglulu- Build System Controller Firmware and u-boot firstly, and get binary images: scfw_tcm.bin and u-boot.bin 36*91f16700Schasinglulu 37*91f16700Schasinglulu- Build TF-A 38*91f16700Schasinglulu 39*91f16700Schasinglulu Build bl31: 40*91f16700Schasinglulu 41*91f16700Schasinglulu .. code:: shell 42*91f16700Schasinglulu 43*91f16700Schasinglulu CROSS_COMPILE=aarch64-linux-gnu- make PLAT=<Target_SoC> bl31 44*91f16700Schasinglulu 45*91f16700Schasinglulu Target_SoC should be "imx8qm" for i.MX8QM SoC. 46*91f16700Schasinglulu Target_SoC should be "imx8qx" for i.MX8QX SoC. 47*91f16700Schasinglulu 48*91f16700SchasingluluDeploy TF-A Images 49*91f16700Schasinglulu~~~~~~~~~~~~~~~~~~ 50*91f16700Schasinglulu 51*91f16700SchasingluluTF-A binary(bl31.bin), scfw_tcm.bin and u-boot.bin are combined together 52*91f16700Schasingluluto generate a binary file called flash.bin, the imx-mkimage tool is used 53*91f16700Schasingluluto generate flash.bin, and flash.bin needs to be flashed into SD card 54*91f16700Schasingluluwith certain offset for BOOT ROM. The system controller firmware, 55*91f16700Schasingluluu-boot and imx-mkimage will be upstreamed soon, this doc will be updated 56*91f16700Schasingluluonce they are ready, and the link will be posted. 57*91f16700Schasinglulu 58*91f16700Schasinglulu.. _i.MX8: https://www.nxp.com/products/processors-and-microcontrollers/applications-processors/i.mx-applications-processors/i.mx-8-processors/i.mx-8-family-arm-cortex-a53-cortex-a72-virtualization-vision-3d-graphics-4k-video:i.MX8 59