summaryrefslogtreecommitdiff
path: root/doc
diff options
context:
space:
mode:
authorFrieder Schrempf <[email protected]>2025-11-11 17:54:18 +0100
committerFabio Estevam <[email protected]>2025-11-29 14:42:24 -0300
commitdfafac3207b4e590c52d7ceed00850a1e542c886 (patch)
tree4baca5002ec9064b2a0ccfbae0fe03ce7ca42f38 /doc
parent1817467e4838aab9a86237cfb5076d9fc2b5b24e (diff)
imx: Add support for Kontron i.MX8MP OSM-S SoM and BL carrier board
This adds support for the Kontron Electronics OSM-S i.MX8MP SoM and the matching baseboard BL i.MX8MP. The SoM hardware complies to the Open Standard Module (OSM) 1.1 specification, size S (https://sget.org/standards/osm). Signed-off-by: Frieder Schrempf <[email protected]>
Diffstat (limited to 'doc')
-rw-r--r--doc/board/kontron/index.rst1
-rw-r--r--doc/board/kontron/osm-s-mx8mp.rst104
2 files changed, 105 insertions, 0 deletions
diff --git a/doc/board/kontron/index.rst b/doc/board/kontron/index.rst
index cb1906e626b..2f103773f63 100644
--- a/doc/board/kontron/index.rst
+++ b/doc/board/kontron/index.rst
@@ -6,6 +6,7 @@ Kontron
.. toctree::
:maxdepth: 2
+ osm-s-mx8mp
pitx-imx8m
sl28
sl-mx6ul
diff --git a/doc/board/kontron/osm-s-mx8mp.rst b/doc/board/kontron/osm-s-mx8mp.rst
new file mode 100644
index 00000000000..37fb0f7b917
--- /dev/null
+++ b/doc/board/kontron/osm-s-mx8mp.rst
@@ -0,0 +1,104 @@
+.. SPDX-License-Identifier: GPL-2.0+
+
+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**
+
+1. Get TF-A from: https://github.com/nxp-imx/imx-atf, branch: lf_v2.6
+2. Build
+
+ .. code-block:: bash
+
+ $ 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**
+
+1. Get TF-A from: https://git.trustedfirmware.org/TF-A/trusted-firmware-a.git/, tag: v2.4
+2. Build
+
+ .. code-block:: bash
+
+ $ 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
+^^^^^^^^^^^^^^^^^^^^
+
+.. code-block:: bash
+
+ $ 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
+^^^^^^^^^^^^
+
+.. code-block:: bash
+
+ $ 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:
+
+.. code-block:: bash
+
+ $ 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.