7.25. NXP i.MX 9 Series
Building on the market-proven i.MX 6 and i.MX 8 series, i.MX 9 series applications processors bring together higher performance applications cores, an independent MCU-like real-time domain, Energy Flex architecture, state-of-the-art security with EdgeLock® secure enclave and dedicated multi-sensory data processing engines (graphics, image, display, audio and voice). The i.MX 9 series, part of the EdgeVerse™ edge computing platform, integrates hardware neural processing units across many members of the series for acceleration of machine learning applications at the edge i.MX9 Applications Processors.
7.25.1. Boot Sequence
BootROM –> SPL –> BL31 –> BL33(u-boot) –> Linux kernel
7.25.2. How to build
7.25.2.1. Build Procedure
Prepare AARCH64 toolchain.
Get the ELE FW image from NXP linux SDK package
Build SPL and u-boot firstly, and get binary images: u-boot-spl.bin, u-boot.bin and dtb
Build TF-A
Build bl31:
CROSS_COMPILE=aarch64-linux-gnu- make PLAT=<Target_SoC> bl31
Target_SoC should be “imx93” for i.MX93 SoC.
7.25.2.2. Deploy TF-A Images
TF-A binary(bl31.bin), u-boot-spl.bin u-boot.bin, ELE FW image are combined together to generate a binary file called flash.bin, the imx-mkimage tool is used to generate flash.bin, and flash.bin needs to be flashed into SD card with certain offset for BOOT ROM.
7.25.2.3. Reference Documentation
Details on how to prepare, generate & deploy the boot image be found in following documents: