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