xref: /aosp_15_r20/external/arm-trusted-firmware/docs/plat/imx8m.rst (revision 54fd6939e177f8ff529b10183254802c76df6d08)
1*54fd6939SJiyong ParkNXP i.MX 8M Series
2*54fd6939SJiyong Park==================
3*54fd6939SJiyong Park
4*54fd6939SJiyong ParkThe i.MX 8M family of applications processors based on Arm Corte-A53 and Cortex-M4
5*54fd6939SJiyong Parkcores provide high-performance computing, power efficiency, enhanced system
6*54fd6939SJiyong Parkreliability and embedded security needed to drive the growth of fast-growing
7*54fd6939SJiyong Parkedge node computing, streaming multimedia, and machine learning applications.
8*54fd6939SJiyong Park
9*54fd6939SJiyong Parkimx8mq is dropped in TF-A CI build due to the small OCRAM size, but still actively
10*54fd6939SJiyong Parkmaintained in NXP official release.
11*54fd6939SJiyong Park
12*54fd6939SJiyong ParkBoot Sequence
13*54fd6939SJiyong Park-------------
14*54fd6939SJiyong Park
15*54fd6939SJiyong ParkBootrom --> SPL --> BL31 --> BL33(u-boot) --> Linux kernel
16*54fd6939SJiyong Park
17*54fd6939SJiyong ParkHow to build
18*54fd6939SJiyong Park------------
19*54fd6939SJiyong Park
20*54fd6939SJiyong ParkBuild Procedure
21*54fd6939SJiyong Park~~~~~~~~~~~~~~~
22*54fd6939SJiyong Park
23*54fd6939SJiyong Park-  Prepare AARCH64 toolchain.
24*54fd6939SJiyong Park
25*54fd6939SJiyong Park-  Build spl and u-boot firstly, and get binary images: u-boot-spl.bin,
26*54fd6939SJiyong Park   u-boot-nodtb.bin and dtb for the target board.
27*54fd6939SJiyong Park
28*54fd6939SJiyong Park-  Build TF-A
29*54fd6939SJiyong Park
30*54fd6939SJiyong Park   Build bl31:
31*54fd6939SJiyong Park
32*54fd6939SJiyong Park   .. code:: shell
33*54fd6939SJiyong Park
34*54fd6939SJiyong Park       CROSS_COMPILE=aarch64-linux-gnu- make PLAT=<Target_SoC> bl31
35*54fd6939SJiyong Park
36*54fd6939SJiyong Park   Target_SoC should be "imx8mq" for i.MX8MQ SoC.
37*54fd6939SJiyong Park   Target_SoC should be "imx8mm" for i.MX8MM SoC.
38*54fd6939SJiyong Park   Target_SoC should be "imx8mn" for i.MX8MN SoC.
39*54fd6939SJiyong Park   Target_SoC should be "imx8mp" for i.MX8MP SoC.
40*54fd6939SJiyong Park
41*54fd6939SJiyong ParkDeploy TF-A Images
42*54fd6939SJiyong Park~~~~~~~~~~~~~~~~~~
43*54fd6939SJiyong Park
44*54fd6939SJiyong ParkTF-A binary(bl31.bin), u-boot-spl.bin u-boot-nodtb.bin and dtb are combined
45*54fd6939SJiyong Parktogether to generate a binary file called flash.bin, the imx-mkimage tool is
46*54fd6939SJiyong Parkused to generate flash.bin, and flash.bin needs to be flashed into SD card
47*54fd6939SJiyong Parkwith certain offset for BOOT ROM. the u-boot and imx-mkimage will be upstreamed
48*54fd6939SJiyong Parksoon, this doc will be updated once they are ready, and the link will be posted.
49*54fd6939SJiyong Park
50*54fd6939SJiyong ParkTBBR Boot Sequence
51*54fd6939SJiyong Park------------------
52*54fd6939SJiyong Park
53*54fd6939SJiyong ParkWhen setting NEED_BL2=1 on imx8mm. We support an alternative way of
54*54fd6939SJiyong Parkboot sequence to support TBBR.
55*54fd6939SJiyong Park
56*54fd6939SJiyong ParkBootrom --> SPL --> BL2 --> BL31 --> BL33(u-boot with UEFI) --> grub
57*54fd6939SJiyong Park
58*54fd6939SJiyong ParkThis helps us to fulfill the SystemReady EBBR standard.
59*54fd6939SJiyong ParkBL2 will be in the FIT image and SPL will verify it.
60*54fd6939SJiyong ParkAll of the BL3x will be put in the FIP image. BL2 will verify them.
61*54fd6939SJiyong ParkIn U-boot we turn on the UEFI secure boot features so it can verify
62*54fd6939SJiyong Parkgrub. And we use grub to verify linux kernel.
63