Kontron Electronics i.MX8MP SoMs and Boards
The OSM-S i.MX8MP by Kontron Electronics GmbH is a SoM module with an i.MX8M-Plus SoC, up to 8 GB LPDDR4 RAM, eMMC, PMIC, RTC.
The matching evaluation boards (Board-Line, BL) have two Ethernet ports, USB 2.0, HDMI/LVDS, SD card, CAN, RS485, RS232 and much more.
The OSM-S i.MX8MP is compliant to the Open Standard Module (OSM) 1.1 specification, size S (https://sget.org/standards/osm).
Quick Start
Get and Build the Trusted Firmware-A (TF-A)
Get the DDR firmware
Build U-Boot
Boot
Note
To build on a x86-64 host machine, you need a GNU cross toolchain for the
target architecture (aarch64). Check your distros package manager or
download and install the necessary tools (aarch64-linux-gnu-*) manually.
Get and Build the Trusted Firmware-A (TF-A)
There are two sources for the TF-A. Mainline and NXP. Get the one you prefer (support and features might differ).
Note
If you are using GCC 12 and you get compiler/linker errors, try to add the
following arguments to your make command as workaround:
CFLAGS="-Wno-array-bounds" LDFLAGS="--no-warn-rwx-segments"
NXP’s imx-atf
Get TF-A from: https://github.com/nxp-imx/imx-atf, branch: lf_v2.6
Build
$ make PLAT=imx8mp CROSS_COMPILE=aarch64-linux-gnu- IMX_BOOT_UART_BASE="0x30880000" bl31 $ cp build/imx8mp/release/bl31.bin $(builddir)
Note
builddir is U-Boot’s build directory (source directory for in-tree builds)
Mainline TF-A
Get TF-A from: https://git.trustedfirmware.org/TF-A/trusted-firmware-a.git/, tag: v2.4
Build
$ make PLAT=imx8mp CROSS_COMPILE=aarch64-linux-gnu- IMX_BOOT_UART_BASE="0x30880000" bl31 $ cp build/imx8mp/release/bl31.bin $(builddir)
Get the DDR firmware
$ wget https://www.nxp.com/lgfiles/NMG/MAD/YOCTO/firmware-imx-8.18.bin
$ chmod +x firmware-imx-8.18.bin
$ ./firmware-imx-8.18.bin
$ cp firmware-imx-8.18/firmware/ddr/synopsys/lpddr4_pmu_train_1d_imem_202006.bin $(builddir)
$ cp firmware-imx-8.18/firmware/ddr/synopsys/lpddr4_pmu_train_1d_dmem_202006.bin $(builddir)
$ cp firmware-imx-8.18/firmware/ddr/synopsys/lpddr4_pmu_train_2d_imem_202006.bin $(builddir)
$ cp firmware-imx-8.18/firmware/ddr/synopsys/lpddr4_pmu_train_2d_dmem_202006.bin $(builddir)
Build U-Boot
$ make kontron-osm-s-mx8mp_defconfig
$ make CROSS_COMPILE=aarch64-linux-gnu-
Copy the flash.bin to SD card at an offset of 32 KiB:
$ dd if=flash.bin of=/dev/sd[x] bs=1K seek=32 conv=notrunc
Boot
Put the SD card in the slot on the board and apply power. Check the serial console for output.
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.