[PATCH 1/6] doc: sl-mx8mm: Mention OSM 1.1 support

From: Frieder Schrempf frieder.schrempf@kontron.de
The latest revision of the SoM is compliant to OSM 1.1.
Signed-off-by: Frieder Schrempf frieder.schrempf@kontron.de --- doc/board/kontron/sl-mx8mm.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/doc/board/kontron/sl-mx8mm.rst b/doc/board/kontron/sl-mx8mm.rst index f022e0979b..57143b973a 100644 --- a/doc/board/kontron/sl-mx8mm.rst +++ b/doc/board/kontron/sl-mx8mm.rst @@ -9,7 +9,7 @@ with an i.MX8M-Mini SoC, 1/2/4 GB LPDDR4 RAM, SPI NOR, eMMC and PMIC. 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.MX8MM is compliant to the Open Standard Module (OSM) 1.0 +The OSM-S i.MX8MM is compliant to the Open Standard Module (OSM) 1.1 specification, size S (https://sget.org/standards/osm).
Quick Start

From: Frieder Schrempf frieder.schrempf@kontron.de
This clarifies the usage of a cross toolchain to build U-Boot and TF-A.
Signed-off-by: Frieder Schrempf frieder.schrempf@kontron.de --- doc/board/kontron/sl-mx8mm.rst | 6 ++++++ 1 file changed, 6 insertions(+)
diff --git a/doc/board/kontron/sl-mx8mm.rst b/doc/board/kontron/sl-mx8mm.rst index 57143b973a..ff6f01d3b7 100644 --- a/doc/board/kontron/sl-mx8mm.rst +++ b/doc/board/kontron/sl-mx8mm.rst @@ -20,6 +20,12 @@ Quick Start - 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) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

From: Frieder Schrempf frieder.schrempf@kontron.de
Use the latest version of the NXP TF-A code and add a note about quirks with GCC 12.
Signed-off-by: Frieder Schrempf frieder.schrempf@kontron.de --- doc/board/kontron/sl-mx8mm.rst | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-)
diff --git a/doc/board/kontron/sl-mx8mm.rst b/doc/board/kontron/sl-mx8mm.rst index ff6f01d3b7..63b14230e4 100644 --- a/doc/board/kontron/sl-mx8mm.rst +++ b/doc/board/kontron/sl-mx8mm.rst @@ -34,15 +34,20 @@ 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).
+.. 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://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 +1. Get TF-A from: https://github.com/nxp-imx/imx-atf.git, branch: lf_v2.6 +2. Build
.. code-block:: bash
- $ make PLAT=imx8mm bl31 + $ make PLAT=imx8mm CROSS_COMPILE=aarch64-linux-gnu- IMX_BOOT_UART_BASE="0x30880000" bl31 $ cp build/imx8mm/release/bl31.bin $(builddir)
**Mainline TF-A**

Hi Frieder,
On 19/01/2023 07:52, Frieder Schrempf wrote:
-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 +1. Get TF-A from: https://github.com/nxp-imx/imx-atf.git, branch: lf_v2.6 +2. Build
Maybe this will conflict with the earlier patch I sent: https://lists.denx.de/pipermail/u-boot/2023-January/504619.html

Hi Fabio,
On 19.01.23 12:04, Fabio Estevam wrote:
Hi Frieder,
On 19/01/2023 07:52, Frieder Schrempf wrote:
-1. Get TF-A from: https://eur04.safelinks.protection.outlook.com/?url=https%3A%2F%2Fsource.cod..., 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 +1. Get TF-A from: https://eur04.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com..., branch: lf_v2.6 +2. Build
Maybe this will conflict with the earlier patch I sent:
Indeed! I somehow missed your patch in my inbox... I think I will just rebase my patch onto yours.
Thanks Frieder

From: Frieder Schrempf frieder.schrempf@kontron.de
Use the latest firmware available from NXP.
Signed-off-by: Frieder Schrempf frieder.schrempf@kontron.de --- doc/board/kontron/sl-mx8mm.rst | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-)
diff --git a/doc/board/kontron/sl-mx8mm.rst b/doc/board/kontron/sl-mx8mm.rst index 63b14230e4..8ed08a66a3 100644 --- a/doc/board/kontron/sl-mx8mm.rst +++ b/doc/board/kontron/sl-mx8mm.rst @@ -65,10 +65,13 @@ Get the DDR firmware
.. code-block:: bash
- $ 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) + $ 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.bin $(builddir) + $ cp firmware-imx-8.18/firmware/ddr/synopsys/lpddr4_pmu_train_1d_dmem.bin $(builddir) + $ cp firmware-imx-8.18/firmware/ddr/synopsys/lpddr4_pmu_train_2d_imem.bin $(builddir) + $ cp firmware-imx-8.18/firmware/ddr/synopsys/lpddr4_pmu_train_2d_dmem.bin $(builddir)
Build U-Boot ^^^^^^^^^^^^

From: Frieder Schrempf frieder.schrempf@kontron.de
This adds a guide for copying the raw bootloader image on the SD card to the SPI NOR using U-Boot itself.
Signed-off-by: Frieder Schrempf frieder.schrempf@kontron.de --- doc/board/kontron/sl-mx8mm.rst | 34 +++++++++++++++++++++++++++++++++- 1 file changed, 33 insertions(+), 1 deletion(-)
diff --git a/doc/board/kontron/sl-mx8mm.rst b/doc/board/kontron/sl-mx8mm.rst index 8ed08a66a3..439f70142a 100644 --- a/doc/board/kontron/sl-mx8mm.rst +++ b/doc/board/kontron/sl-mx8mm.rst @@ -90,7 +90,39 @@ Burn the flash.bin to SD card at an offset of 33 KiB: Boot ^^^^
-Put the SD card in the slot on the board and apply power. +Put the SD card in the slot on the board and apply power. Check the serial +console for output. + +Flash the Bootloader to SPI NOR +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +1. Determine and note the exact size of the ``flash.bin`` image in bytes (e.g. + by running ``ls -l flash.bin``) + +2. On the U-Boot CLI copy the bootloader from SD card to RAM: + + .. code-block:: + + mmc dev 1 + mmc read $loadaddr 0x42 0x1000 + +3. Erase the SPI NOR flash: + + .. code-block:: + + sf probe + sf erase 0x0 0x200000 + +4. Copy the bootloader from RAM to SPI NOR. For the last parameter of the + command, use the size determined in step 1 in **hexadecimal notation**: + + .. code-block:: + + sf write $loadaddr 0x400 0x13B6F0 + +.. note:: + + To be able to boot from SPI NOR the OTP fuses need to be set accordingly.
Further Information -------------------

From: Frieder Schrempf frieder.schrempf@kontron.de
Add the CROSS_COMPILE flag as we assume we build in a cross environment. Also improve the comment about copying the binary to SD card.
Signed-off-by: Frieder Schrempf frieder.schrempf@kontron.de --- doc/board/kontron/sl-mx8mm.rst | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/doc/board/kontron/sl-mx8mm.rst b/doc/board/kontron/sl-mx8mm.rst index 439f70142a..d7f9930323 100644 --- a/doc/board/kontron/sl-mx8mm.rst +++ b/doc/board/kontron/sl-mx8mm.rst @@ -79,9 +79,9 @@ Build U-Boot .. code-block:: bash
$ make kontron-sl-mx8mm_defconfig - $ make + $ make CROSS_COMPILE=aarch64-linux-gnu-
-Burn the flash.bin to SD card at an offset of 33 KiB: +Copy the flash.bin to SD card at an offset of 33 KiB:
.. code-block:: bash
participants (3)
-
Fabio Estevam
-
Frieder Schrempf
-
Frieder Schrempf