Jacky Bai | 9c7717b | 2023-10-08 17:52:49 +0800 | [diff] [blame] | 1 | NXP i.MX 8ULP |
| 2 | ================== |
| 3 | |
| 4 | i.MX 8ULP is part of the ULP family with emphasis on extreme low-power techniques |
| 5 | using the 28 nm fully depleted silicon on insulator process. Like i.MX 7ULP, |
| 6 | i.MX 8ULP continues to be based on asymmetric architecture. |
| 7 | |
| 8 | The i.MX 8ULP family of processors features NXP’s advanced implementation of the |
| 9 | dual Arm Cortex-A35 cores alongside an Arm Cortex-M33. This combined architecture |
| 10 | enables the device to run a rich operating system (such as Linux) on the Cortex-A35 |
| 11 | core and an RTOS (such as FreeRTOS) on the Cortex-M33 core. It also includes a Cadence |
| 12 | Tensilica Fusion DSP for low-power audio and a HiFi4 DSP for advanced audio and machine |
| 13 | learning applications. |
| 14 | |
| 15 | The design enables clean separation between two processing domains, where each has |
| 16 | separate power, clocking and peripheral islands, but the bus fabric of each domain |
| 17 | is tightly integrated for efficient communication. The part is streamlined to minimize |
| 18 | pin count, enabling small packages and simple system integration. This microprocessor |
| 19 | is intended for applications where efficiency and simple system integration is important. |
| 20 | `i.MX8ULP Applications Processors`_. |
| 21 | |
| 22 | Boot Sequence |
| 23 | ------------- |
| 24 | |
| 25 | BootROM --> SPL --> BL31 --> BL33(u-boot) --> Linux kernel |
| 26 | |
| 27 | How to build |
| 28 | ------------ |
| 29 | |
| 30 | Build Procedure |
| 31 | ~~~~~~~~~~~~~~~ |
| 32 | |
| 33 | - Prepare AARCH64 toolchain. |
| 34 | |
| 35 | - Get the ELE FW image from NXP linux SDK package |
| 36 | |
| 37 | - Build SPL and u-boot firstly, and get binary images: u-boot-spl.bin, |
| 38 | u-boot.bin and dtb |
| 39 | |
| 40 | - Build TF-A |
| 41 | |
| 42 | Build bl31: |
| 43 | |
| 44 | .. code:: shell |
| 45 | |
| 46 | CROSS_COMPILE=aarch64-linux-gnu- make PLAT=<Target_SoC> bl31 |
| 47 | |
| 48 | Target_SoC should be "imx8ulp" for i.MX8ULP SoC. |
| 49 | |
| 50 | Deploy TF-A Images |
| 51 | ~~~~~~~~~~~~~~~~~~ |
| 52 | |
| 53 | TF-A binary(bl31.bin), u-boot-spl.bin u-boot.bin, ELE FW image are combined |
| 54 | together to generate a binary file called flash.bin, the imx-mkimage tool is |
| 55 | used to generate flash.bin, and flash.bin needs to be flashed into SD card |
| 56 | with certain offset for BOOT ROM. |
| 57 | |
| 58 | Reference Documentation |
| 59 | ~~~~~~~~~~~~~~~~~~~~~~~ |
| 60 | |
| 61 | Details on how to prepare, generate & deploy the boot image be found in following documents: |
| 62 | |
| 63 | - i.MX Linux User's Guide |
| 64 | `link <https://www.nxp.com/design/software/embedded-software/i-mx-software/embedded-linux-for-i-mx-applications-processors:IMXLINUX>`__ |
| 65 | - i.MX Linux Reference Manual |
| 66 | `link <https://www.nxp.com/design/software/embedded-software/i-mx-software/embedded-linux-for-i-mx-applications-processors:IMXLINUX>`__ |
| 67 | |
| 68 | .. _i.MX8ULP Applications Processors: https://www.nxp.com/products/processors-and-microcontrollers/arm-processors/i-mx-applications-processors/i-mx-8-applications-processors/i-mx-8ulp-applications-processor-family:i.MX8ULP |
| 69 | |