phyCORE-i.MX 91/93

U-Boot for the phyCORE-i.MX 91/93. Both SoC variants, that is i.MX 91 and i.MX 93, are supported by same board code, however each variant uses different defconfig and ATF/ELE firmware blobs. Please follow the correct steps for the populated SoC.

Quick Start

  • Get and Build the ARM Trusted firmware

  • Get the DDR firmware

  • Get ahab-container.img

  • Build U-Boot

Get and Build the ARM Trusted firmware

Note: srctree is U-Boot source directory Get ATF from: https://github.com/nxp-imx/imx-atf/ branch: lf_v2.12

For phyCORE-i.MX 91 variant:

$ unset LDFLAGS
$ make PLAT=imx91 bl31
$ cp build/imx91/release/bl31.bin $(srctree)

For phyCORE-i.MX 93 variant:

$ unset LDFLAGS
$ make PLAT=imx93 bl31
$ cp build/imx93/release/bl31.bin $(srctree)

Get the DDR firmware

$ wget https://www.nxp.com/lgfiles/NMG/MAD/YOCTO/firmware-imx-8.21.bin
$ chmod +x firmware-imx-8.21.bin
$ ./firmware-imx-8.21.bin
$ cp firmware-imx-8.21/firmware/ddr/synopsys/lpddr4*.bin $(srctree)

Get ahab-container.img

$ wget  https://www.nxp.com/lgfiles/NMG/MAD/YOCTO/firmware-ele-imx-1.3.0-17945fc.bin
$ chmod +x firmware-ele-imx-1.3.0-17945fc.bin
$ ./firmware-ele-imx-1.3.0-17945fc.bin
$ cp firmware-ele-imx-1.3.0-17945fc/mx91a0-ahab-container.img $(srctree)
$ cp firmware-ele-imx-1.3.0-17945fc/mx93a1-ahab-container.img $(srctree)

Build U-Boot

For phyCORE-i.MX 91 variant:

$ make imx91-phycore_defconfig
$ make

For phyCORE-i.MX 93 variant:

$ make imx93-phycore_defconfig
$ make

Burn the flash.bin to MicroSD card offset 32KB:

$ dd if=flash.bin of=/dev/sd[x] bs=1024 seek=32 conv=notrunc