blob: 04087305010616e728c03e25f4a83ad9dde533ae [file] [log] [blame]
Paul Beesleyf3653a62019-05-22 11:22:44 +01001NXP i.MX 8M Series
2==================
Bai Ping06e325e2018-10-28 00:12:34 +08003
4The i.MX 8M family of applications processors based on Arm Corte-A53 and Cortex-M4
5cores provide high-performance computing, power efficiency, enhanced system
6reliability and embedded security needed to drive the growth of fast-growing
7edge node computing, streaming multimedia, and machine learning applications.
8
9Boot Sequence
Paul Beesleyf3653a62019-05-22 11:22:44 +010010-------------
Bai Ping06e325e2018-10-28 00:12:34 +080011
12Bootrom --> SPL --> BL31 --> BL33(u-boot) --> Linux kernel
13
14How to build
Paul Beesleyf3653a62019-05-22 11:22:44 +010015------------
Bai Ping06e325e2018-10-28 00:12:34 +080016
17Build Procedure
Paul Beesleyf3653a62019-05-22 11:22:44 +010018~~~~~~~~~~~~~~~
Bai Ping06e325e2018-10-28 00:12:34 +080019
20- Prepare AARCH64 toolchain.
21
22- Build spl and u-boot firstly, and get binary images: u-boot-spl.bin,
23 u-boot-nodtb.bin and dtb for the target board.
24
25- Build TF-A
26
27 Build bl31:
28
29 .. code:: shell
30
Mark Dykesef3a4562020-01-08 20:37:18 +000031 CROSS_COMPILE=aarch64-linux-gnu- make PLAT=<Target_SoC> bl31
Bai Ping06e325e2018-10-28 00:12:34 +080032
33 Target_SoC should be "imx8mq" for i.MX8MQ SoC.
Jacky Baia6177002019-03-06 17:15:06 +080034 Target_SoC should be "imx8mm" for i.MX8MM SoC.
Jacky Bai9bd2f842019-11-28 13:16:33 +080035 Target_SoC should be "imx8mn" for i.MX8MN SoC.
Jacky Bai07ed02c2020-06-03 14:28:45 +080036 Target_SoC should be "imx8mp" for i.MX8MP SoC.
Bai Ping06e325e2018-10-28 00:12:34 +080037
38Deploy TF-A Images
Paul Beesleyf3653a62019-05-22 11:22:44 +010039~~~~~~~~~~~~~~~~~~
Bai Ping06e325e2018-10-28 00:12:34 +080040
41TF-A binary(bl31.bin), u-boot-spl.bin u-boot-nodtb.bin and dtb are combined
42together to generate a binary file called flash.bin, the imx-mkimage tool is
43used to generate flash.bin, and flash.bin needs to be flashed into SD card
44with certain offset for BOOT ROM. the u-boot and imx-mkimage will be upstreamed
45soon, this doc will be updated once they are ready, and the link will be posted.
Ying-Chun Liu (PaulLiu)234c2712020-12-22 02:56:00 +080046
47TBBR Boot Sequence
48------------------
49
50When setting NEED_BL2=1 on imx8mm. We support an alternative way of
51boot sequence to support TBBR.
52
53Bootrom --> SPL --> BL2 --> BL31 --> BL33(u-boot with UEFI) --> grub
54
55This helps us to fulfill the SystemReady EBBR standard.
56BL2 will be in the FIT image and SPL will verify it.
57All of the BL3x will be put in the FIP image. BL2 will verify them.
58In U-boot we turn on the UEFI secure boot features so it can verify
59grub. And we use grub to verify linux kernel.