xref: /arm-trusted-firmware/docs/plat/imx8.rst (revision 91f16700b400a8c0651d24a598fc48ee2997a0d7)
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