xref: /aosp_15_r20/external/arm-trusted-firmware/docs/plat/imx8.rst (revision 54fd6939e177f8ff529b10183254802c76df6d08)
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