74ff228f2038a2199f966f24e200679cae64e4be
[platform/kernel/u-boot.git] / doc / board / kontron / sl-mx8mm.rst
1 .. SPDX-License-Identifier: GPL-2.0+
2
3 Kontron Electronics SL i.MX8MM SoM
4 ==================================
5
6 The Kontron SoM-Line i.MX8MM (N801x) by Kontron Electronics GmbH is a SoM module
7 with an i.MX8M-Mini SoC, 1/2/4 GB LPDDR4 RAM, SPI NOR, eMMC and PMIC.
8
9 The matching evaluation boards (Board-Line) have two Ethernet ports, USB 2.0,
10 HDMI/LVDS, SD card, CAN, RS485, RS232 and much more.
11
12 Quick Start
13 -----------
14
15 - Get and Build the Trusted Firmware-A (TF-A)
16 - Get the DDR firmware
17 - Build U-Boot
18 - Boot
19
20 Get and Build the Trusted Firmware-A (TF-A)
21 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
22
23 Note: builddir is U-Boot build directory (source directory for in-tree builds)
24
25 There are two sources for the TF-A. Mainline and NXP. Get the one you prefer
26 (support and features might differ).
27
28 **NXP's imx-atf**
29
30 1. Get TF-A from: https://source.codeaurora.org/external/imx/imx-atf, branch: imx_5.4.70_2.3.0
31 2. Apply the patch to select the correct UART for the console, otherwise the TF-A will lock up during boot.
32 3. Build
33
34   .. code-block:: bash
35
36      $ make PLAT=imx8mm bl31
37      $ cp build/imx8mm/release/bl31.bin $(builddir)
38
39 **Mainline TF-A**
40
41 1. Get TF-A from: https://git.trustedfirmware.org/TF-A/trusted-firmware-a.git/, tag: v2.4
42 2. Build
43
44   .. code-block:: bash
45
46      $ make PLAT=imx8mm CROSS_COMPILE=aarch64-linux-gnu- IMX_BOOT_UART_BASE="0x30880000" bl31
47      $ cp build/imx8mm/release/bl31.bin $(builddir)
48
49 Get the DDR firmware
50 ^^^^^^^^^^^^^^^^^^^^
51
52 .. code-block:: bash
53
54    $ wget https://www.nxp.com/lgfiles/NMG/MAD/YOCTO/firmware-imx-8.9.bin
55    $ chmod +x firmware-imx-8.9.bin
56    $ ./firmware-imx-8.9.bin
57    $ cp firmware-imx-8.9/firmware/ddr/synopsys/lpddr4*.bin $(builddir)
58
59 Build U-Boot
60 ^^^^^^^^^^^^
61
62 .. code-block:: bash
63
64    $ make kontron-sl-mx8mm_defconfig
65    $ export ATF_LOAD_ADDR=0x920000
66    $ make
67
68 Burn the flash.bin to SD card at an offset of 33 KiB:
69
70 .. code-block:: bash
71
72    $ dd if=flash.bin of=/dev/sd[x] bs=1K seek=33 conv=notrunc
73
74 Boot
75 ^^^^
76
77 Put the SD card in the slot on the board and apply power.
78
79 Further Information
80 -------------------
81
82 The bootloader configuration is setup to be used with kernel FIT images. Legacy
83 images might not be working out of the box.
84
85 Please see https://docs.kontron-electronics.de for further vendor documentation.