imx95_evk

U-Boot for the NXP i.MX95 19x19 EVK board

Quick Start

  • Get ahab-container.img

  • Get DDR PHY Firmware Images

  • Get and Build OEI Images

  • Get and Build System Manager Image

  • Get and Build the ARM Trusted Firmware

  • Build the Bootloader Image

  • Boot

Get ahab-container.img

Note: srctree is U-Boot source directory

$wgethttps://www.nxp.com/lgfiles/NMG/MAD/YOCTO/firmware-ele-imx-2.0.2-89161a8.bin
$shfirmware-ele-imx-2.0.2-89161a8.bin--auto-accept

i.MX95 A0 silicon version

$cpfirmware-ele-imx-2.0.2-89161a8/mx95a0-ahab-container.img$(srctree)

i.MX95 B0 silicon version

$cpfirmware-ele-imx-2.0.2-89161a8/mx95b0-ahab-container.img$(srctree)

Get DDR PHY Firmware Images

Note: srctree is U-Boot source directory

$wgethttps://www.nxp.com/lgfiles/NMG/MAD/YOCTO/firmware-imx-8.28-994fa14.bin
$shfirmware-imx-8.28-994fa14.bin--auto-accept
$cpfirmware-imx-8.28-994fa14/firmware/ddr/synopsys/lpddr5*v202409.bin$(srctree)
$cpfirmware-imx-8.28-994fa14/firmware/ddr/synopsys/lpddr4x*v202409.bin$(srctree)

Get and Build OEI Images

Note: srctree is U-Boot source directory Get OEI from: https://github.com/nxp-imx/imx-oei branch: master

$sudoapt-yinstallmakegccg++-multilibsrecord
$wgethttps://developer.arm.com/-/media/Files/downloads/gnu/13.3.rel1/binrel/arm-gnu-toolchain-13.3.rel1-x86_64-arm-none-eabi.tar.xz
$tarxvfarm-gnu-toolchain-13.3.rel1-x86_64-arm-none-eabi.tar.xz
$exportTOOLS=$PWD
$gitclone-bmasterhttps://github.com/nxp-imx/imx-oei.git
$cdimx-oei

i.MX95 A0 silicon version on 19x19 LPDDR5 EVK

$makeboard=mx95lp5oei=ddrDEBUG=1r=A0DDR_CONFIG=XIMX95LPD5EVK19_6400mbps_train_timing_a1all
$cpbuild/mx95lp5/ddr/oei-m33-ddr.bin$(srctree)
$makeboard=mx95lp5oei=tcmDEBUG=1r=A0all
$cpbuild/mx95lp5/tcm/oei-m33-tcm.bin$(srctree)

i.MX95 B0 silicon version on 19x19 LPDDR5 EVK

$makeboard=mx95lp5oei=ddrDEBUG=1r=B0all
$cpbuild/mx95lp5/ddr/oei-m33-ddr.bin$(srctree)

i.MX95 B0 silicon version on 15x15 LPDDR4X EVK

$makeboard=mx95lp4x-15oei=ddrDEBUG=1r=B0all
$cpbuild/mx95lp4x-15/ddr/oei-m33-ddr.bin$(srctree)

Get and Build System Manager Image

Note: srctree is U-Boot source directory Get System Manager from: https://github.com/nxp-imx/imx-sm branch: master

$sudoapt-yinstallmakegccg++-multilibsrecord
$wgethttps://developer.arm.com/-/media/Files/downloads/gnu/13.3.rel1/binrel/arm-gnu-toolchain-13.3.rel1-x86_64-arm-none-eabi.tar.xz
$tarxvfarm-gnu-toolchain-13.3.rel1-x86_64-arm-none-eabi.tar.xz
$exportTOOLS=$PWD
$gitclone-bmasterhttps://github.com/nxp-imx/imx-sm.git
$cdimx-sm
$makeconfig=mx95evkall
$cpbuild/mx95evk/m33_image.bin$(srctree)

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

$exportCROSS_COMPILE=aarch64-poky-linux-
$unsetLDFLAGS
$unsetAS
$gitclone-blf_v2.12https://github.com/nxp-imx/imx-atf.git
$cdimx-atf
$makePLAT=imx95bl31
$cpbuild/imx95/release/bl31.bin$(srctree)

Build the Bootloader Image

i.MX95 A0 silicon version on 19x19 LPDDR5 EVK

$exportCROSS_COMPILE=aarch64-poky-linux-
$makeimx95_a0_19x19_evk_defconfig
$make

i.MX95 B0 silicon version on 19x19 LPDDR5 EVK

$exportCROSS_COMPILE=aarch64-poky-linux-
$makeimx95_19x19_evk_defconfig
$make

i.MX95 B0 silicon version on 15x15 LPDDR4X EVK

$exportCROSS_COMPILE=aarch64-poky-linux-
$makeimx95_15x15_evk_defconfig
$make

Copy imx-boot-imx95.bin to the MicroSD card:

$sudoddif=flash.binof=/dev/sd[x]bs=1kseek=32conv=fsync

Boot

Set i.MX95 boot device to MicroSD card