Paul Beesley | f3653a6 | 2019-05-22 11:22:44 +0100 | [diff] [blame] | 1 | NXP i.MX 8 Series |
| 2 | ================= |
Anson Huang | 73b1853 | 2018-06-05 16:13:45 +0800 | [diff] [blame] | 3 | |
| 4 | The i.MX 8 series of applications processors is a feature- and |
| 5 | performance-scalable multi-core platform that includes single-, |
| 6 | dual-, and quad-core families based on the Arm® Cortex® |
| 7 | architecture—including combined Cortex-A72 + Cortex-A53, |
| 8 | Cortex-A35, and Cortex-M4 based solutions for advanced graphics, |
| 9 | imaging, machine vision, audio, voice, video, and safety-critical |
| 10 | applications. |
| 11 | |
Anson Huang | 62f8f7a | 2018-06-11 12:54:05 +0800 | [diff] [blame] | 12 | The i.MX8QM is with 2 Cortex-A72 ARM core, 4 Cortex-A53 ARM core |
| 13 | and 1 Cortex-M4 system controller. |
| 14 | |
Anson Huang | 73b1853 | 2018-06-05 16:13:45 +0800 | [diff] [blame] | 15 | The i.MX8QX is with 4 Cortex-A35 ARM core and 1 Cortex-M4 system |
| 16 | controller. |
| 17 | |
| 18 | The System Controller (SC) represents the evolution of centralized |
| 19 | control for system-level resources on i.MX8. The heart of the system |
| 20 | controller is a Cortex-M4 that executes system controller firmware. |
| 21 | |
| 22 | Boot Sequence |
Paul Beesley | f3653a6 | 2019-05-22 11:22:44 +0100 | [diff] [blame] | 23 | ------------- |
Anson Huang | 73b1853 | 2018-06-05 16:13:45 +0800 | [diff] [blame] | 24 | |
| 25 | Bootrom --> BL31 --> BL33(u-boot) --> Linux kernel |
| 26 | |
| 27 | How to build |
Paul Beesley | f3653a6 | 2019-05-22 11:22:44 +0100 | [diff] [blame] | 28 | ------------ |
Anson Huang | 73b1853 | 2018-06-05 16:13:45 +0800 | [diff] [blame] | 29 | |
| 30 | Build Procedure |
Paul Beesley | f3653a6 | 2019-05-22 11:22:44 +0100 | [diff] [blame] | 31 | ~~~~~~~~~~~~~~~ |
Anson Huang | 73b1853 | 2018-06-05 16:13:45 +0800 | [diff] [blame] | 32 | |
| 33 | - Prepare AARCH64 toolchain. |
| 34 | |
| 35 | - Build System Controller Firmware and u-boot firstly, and get binary images: scfw_tcm.bin and u-boot.bin |
| 36 | |
| 37 | - Build TF-A |
| 38 | |
| 39 | Build bl31: |
| 40 | |
| 41 | .. code:: shell |
| 42 | |
| 43 | CROSS_COMPILE=aarch64-linux-gnu- make PLAT=<Target_SoC> bl31 |
| 44 | |
Anson Huang | 62f8f7a | 2018-06-11 12:54:05 +0800 | [diff] [blame] | 45 | Target_SoC should be "imx8qm" for i.MX8QM SoC. |
Anson Huang | 73b1853 | 2018-06-05 16:13:45 +0800 | [diff] [blame] | 46 | Target_SoC should be "imx8qx" for i.MX8QX SoC. |
| 47 | |
| 48 | Deploy TF-A Images |
Paul Beesley | f3653a6 | 2019-05-22 11:22:44 +0100 | [diff] [blame] | 49 | ~~~~~~~~~~~~~~~~~~ |
Anson Huang | 73b1853 | 2018-06-05 16:13:45 +0800 | [diff] [blame] | 50 | |
| 51 | TF-A binary(bl31.bin), scfw_tcm.bin and u-boot.bin are combined together |
| 52 | to generate a binary file called flash.bin, the imx-mkimage tool is used |
| 53 | to generate flash.bin, and flash.bin needs to be flashed into SD card |
| 54 | with certain offset for BOOT ROM. The system controller firmware, |
| 55 | u-boot and imx-mkimage will be upstreamed soon, this doc will be updated |
| 56 | once they are ready, and the link will be posted. |
| 57 | |
| 58 | .. _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 |