124dba2b3SPaul BeesleyNXP i.MX 8 Series 224dba2b3SPaul Beesley================= 30bc18309SAnson Huang 40bc18309SAnson HuangThe i.MX 8 series of applications processors is a feature- and 50bc18309SAnson Huangperformance-scalable multi-core platform that includes single-, 60bc18309SAnson Huangdual-, and quad-core families based on the Arm® Cortex® 70bc18309SAnson Huangarchitecture—including combined Cortex-A72 + Cortex-A53, 80bc18309SAnson HuangCortex-A35, and Cortex-M4 based solutions for advanced graphics, 90bc18309SAnson Huangimaging, machine vision, audio, voice, video, and safety-critical 100bc18309SAnson Huangapplications. 110bc18309SAnson Huang 12baa7650bSAnson HuangThe i.MX8QM is with 2 Cortex-A72 ARM core, 4 Cortex-A53 ARM core 13baa7650bSAnson Huangand 1 Cortex-M4 system controller. 14baa7650bSAnson Huang 150bc18309SAnson HuangThe i.MX8QX is with 4 Cortex-A35 ARM core and 1 Cortex-M4 system 160bc18309SAnson Huangcontroller. 170bc18309SAnson Huang 180bc18309SAnson HuangThe System Controller (SC) represents the evolution of centralized 190bc18309SAnson Huangcontrol for system-level resources on i.MX8. The heart of the system 200bc18309SAnson Huangcontroller is a Cortex-M4 that executes system controller firmware. 210bc18309SAnson Huang 220bc18309SAnson HuangBoot Sequence 2324dba2b3SPaul Beesley------------- 240bc18309SAnson Huang 250bc18309SAnson HuangBootrom --> BL31 --> BL33(u-boot) --> Linux kernel 260bc18309SAnson Huang 270bc18309SAnson HuangHow to build 2824dba2b3SPaul Beesley------------ 290bc18309SAnson Huang 300bc18309SAnson HuangBuild Procedure 3124dba2b3SPaul Beesley~~~~~~~~~~~~~~~ 320bc18309SAnson Huang 330bc18309SAnson Huang- Prepare AARCH64 toolchain. 340bc18309SAnson Huang 350bc18309SAnson Huang- Build System Controller Firmware and u-boot firstly, and get binary images: scfw_tcm.bin and u-boot.bin 360bc18309SAnson Huang 370bc18309SAnson Huang- Build TF-A 380bc18309SAnson Huang 390bc18309SAnson Huang Build bl31: 400bc18309SAnson Huang 410bc18309SAnson Huang .. code:: shell 420bc18309SAnson Huang 43*650a435cSMark Dykes CROSS_COMPILE=aarch64-linux-gnu- make PLAT=<Target_SoC> bl31 440bc18309SAnson Huang 45baa7650bSAnson Huang Target_SoC should be "imx8qm" for i.MX8QM SoC. 460bc18309SAnson Huang Target_SoC should be "imx8qx" for i.MX8QX SoC. 470bc18309SAnson Huang 480bc18309SAnson HuangDeploy TF-A Images 4924dba2b3SPaul Beesley~~~~~~~~~~~~~~~~~~ 500bc18309SAnson Huang 510bc18309SAnson HuangTF-A binary(bl31.bin), scfw_tcm.bin and u-boot.bin are combined together 520bc18309SAnson Huangto generate a binary file called flash.bin, the imx-mkimage tool is used 530bc18309SAnson Huangto generate flash.bin, and flash.bin needs to be flashed into SD card 540bc18309SAnson Huangwith certain offset for BOOT ROM. The system controller firmware, 550bc18309SAnson Huangu-boot and imx-mkimage will be upstreamed soon, this doc will be updated 560bc18309SAnson Huangonce they are ready, and the link will be posted. 570bc18309SAnson Huang 580bc18309SAnson Huang.. _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