1Description 2=========== 3 4The i.MX 8 series of applications processors is a feature- and 5performance-scalable multi-core platform that includes single-, 6dual-, and quad-core families based on the Arm® Cortex® 7architecture—including combined Cortex-A72 + Cortex-A53, 8Cortex-A35, and Cortex-M4 based solutions for advanced graphics, 9imaging, machine vision, audio, voice, video, and safety-critical 10applications. 11 12The i.MX8QX is with 4 Cortex-A35 ARM core and 1 Cortex-M4 system 13controller. 14 15The System Controller (SC) represents the evolution of centralized 16control for system-level resources on i.MX8. The heart of the system 17controller is a Cortex-M4 that executes system controller firmware. 18 19Boot Sequence 20============= 21 22Bootrom --> BL31 --> BL33(u-boot) --> Linux kernel 23 24How to build 25============ 26 27Build Procedure 28--------------- 29 30- Prepare AARCH64 toolchain. 31 32- Build System Controller Firmware and u-boot firstly, and get binary images: scfw_tcm.bin and u-boot.bin 33 34- Build TF-A 35 36 Build bl31: 37 38 .. code:: shell 39 40 CROSS_COMPILE=aarch64-linux-gnu- make PLAT=<Target_SoC> bl31 41 42 Target_SoC should be "imx8qx" for i.MX8QX SoC. 43 44Deploy TF-A Images 45----------------- 46 47TF-A binary(bl31.bin), scfw_tcm.bin and u-boot.bin are combined together 48to generate a binary file called flash.bin, the imx-mkimage tool is used 49to generate flash.bin, and flash.bin needs to be flashed into SD card 50with certain offset for BOOT ROM. The system controller firmware, 51u-boot and imx-mkimage will be upstreamed soon, this doc will be updated 52once they are ready, and the link will be posted. 53 54.. _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 55