blob: b6b13e2689634378db819a10bb49f46f92cb318b [file] [log] [blame]
Jacky Bai9c7717b2023-10-08 17:52:49 +08001NXP i.MX 8ULP
2==================
3
4i.MX 8ULP is part of the ULP family with emphasis on extreme low-power techniques
5using the 28 nm fully depleted silicon on insulator process. Like i.MX 7ULP,
6i.MX 8ULP continues to be based on asymmetric architecture.
7
8The i.MX 8ULP family of processors features NXPs advanced implementation of the
9dual Arm Cortex-A35 cores alongside an Arm Cortex-M33. This combined architecture
10enables the device to run a rich operating system (such as Linux) on the Cortex-A35
11core and an RTOS (such as FreeRTOS) on the Cortex-M33 core. It also includes a Cadence
12Tensilica Fusion DSP for low-power audio and a HiFi4 DSP for advanced audio and machine
13learning applications.
14
15The design enables clean separation between two processing domains, where each has
16separate power, clocking and peripheral islands, but the bus fabric of each domain
17is tightly integrated for efficient communication. The part is streamlined to minimize
18pin count, enabling small packages and simple system integration. This microprocessor
19is intended for applications where efficiency and simple system integration is important.
20`i.MX8ULP Applications Processors`_.
21
22Boot Sequence
23-------------
24
25BootROM --> SPL --> BL31 --> BL33(u-boot) --> Linux kernel
26
27How to build
28------------
29
30Build 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
50Deploy TF-A Images
51~~~~~~~~~~~~~~~~~~
52
53TF-A binary(bl31.bin), u-boot-spl.bin u-boot.bin, ELE FW image are combined
54together to generate a binary file called flash.bin, the imx-mkimage tool is
55used to generate flash.bin, and flash.bin needs to be flashed into SD card
56with certain offset for BOOT ROM.
57
58Reference Documentation
59~~~~~~~~~~~~~~~~~~~~~~~
60
61Details 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