Kontron Electronics SL i.MX8MM SoM

The Kontron SoM-Line i.MX8MM (N801x) by Kontron Electronics GmbH is a SoM module with an i.MX8M-Mini SoC, 1/2/4 GB LPDDR4 RAM, SPI NOR, eMMC and PMIC.

The matching evaluation boards (Board-Line) have two Ethernet ports, USB 2.0, HDMI/LVDS, SD card, CAN, RS485, RS232 and much more.

Quick Start

  • Get and Build the Trusted Firmware-A (TF-A)

  • Get the DDR firmware

  • Build U-Boot

  • Boot

Get and Build the Trusted Firmware-A (TF-A)

Note: builddir is U-Boot build directory (source directory for in-tree builds)

There are two sources for the TF-A. Mainline and NXP. Get the one you prefer (support and features might differ).

NXP’s imx-atf

  1. Get TF-A from: https://source.codeaurora.org/external/imx/imx-atf, branch: imx_5.4.70_2.3.0

  2. Apply the patch to select the correct UART for the console, otherwise the TF-A will lock up during boot.

  3. Build

$ make PLAT=imx8mm bl31
$ cp build/imx8mm/release/bl31.bin $(builddir)

Mainline TF-A

  1. Get TF-A from: https://git.trustedfirmware.org/TF-A/trusted-firmware-a.git/, tag: v2.4

  2. Build

$ make PLAT=imx8mm CROSS_COMPILE=aarch64-linux-gnu- IMX_BOOT_UART_BASE="0x30880000" bl31
$ cp build/imx8mm/release/bl31.bin $(builddir)

Get the DDR firmware

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

Build U-Boot

$ make kontron-sl-mx8mm_defconfig
$ make

Burn the flash.bin to SD card at an offset of 33 KiB:

$ dd if=flash.bin of=/dev/sd[x] bs=1K seek=33 conv=notrunc


Put the SD card in the slot on the board and apply power.

Further Information

The bootloader configuration is setup to be used with kernel FIT images. Legacy images might not be working out of the box.

Please see https://docs.kontron-electronics.de for further vendor documentation.