2020-10-14 09:12:02 +00:00
|
|
|
.. SPDX-License-Identifier: GPL-2.0+
|
|
|
|
|
|
|
|
imx8mm_evk
|
|
|
|
==========
|
|
|
|
|
|
|
|
U-Boot for the NXP i.MX8MM EVK board
|
|
|
|
|
|
|
|
Quick Start
|
|
|
|
-----------
|
|
|
|
|
|
|
|
- Build the ARM Trusted firmware binary
|
|
|
|
- Get ddr firmware
|
|
|
|
- Build U-Boot
|
|
|
|
- Boot
|
|
|
|
|
|
|
|
Get and Build the ARM Trusted firmware
|
|
|
|
--------------------------------------
|
|
|
|
|
|
|
|
Note: builddir is U-Boot build directory (source directory for in-tree builds)
|
2023-01-13 00:52:23 +00:00
|
|
|
Get ATF from: https://github.com/nxp-imx/imx-atf
|
2020-12-13 20:36:06 +00:00
|
|
|
branch: imx_5.4.47_2.2.0
|
2020-10-14 09:12:02 +00:00
|
|
|
|
|
|
|
.. code-block:: bash
|
|
|
|
|
|
|
|
$ make PLAT=imx8mm bl31
|
|
|
|
$ cp build/imx8mm/release/bl31.bin $(builddir)
|
|
|
|
|
|
|
|
Get the ddr firmware
|
|
|
|
--------------------
|
|
|
|
|
|
|
|
.. code-block:: bash
|
|
|
|
|
2020-12-13 20:36:06 +00:00
|
|
|
$ 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
|
|
|
|
$ cp firmware-imx-8.9/firmware/ddr/synopsys/lpddr4*.bin $(builddir)
|
2020-10-14 09:12:02 +00:00
|
|
|
|
2022-07-12 14:36:23 +00:00
|
|
|
Build U-Boot for sd card
|
|
|
|
--------------------------
|
2020-10-14 09:12:02 +00:00
|
|
|
|
|
|
|
.. code-block:: bash
|
|
|
|
|
|
|
|
$ export CROSS_COMPILE=aarch64-poky-linux-
|
|
|
|
$ make imx8mm_evk_defconfig
|
2021-04-06 03:58:58 +00:00
|
|
|
$ make
|
2020-10-14 09:12:02 +00:00
|
|
|
|
|
|
|
Burn the flash.bin to MicroSD card offset 33KB:
|
|
|
|
|
|
|
|
.. code-block:: bash
|
|
|
|
|
|
|
|
$sudo dd if=flash.bin of=/dev/sd[x] bs=1024 seek=33 conv=notrunc
|
|
|
|
|
|
|
|
Boot
|
|
|
|
----
|
|
|
|
Set Boot switch to SD boot
|
2022-07-12 14:36:23 +00:00
|
|
|
|
|
|
|
Build U-Boot for qspi flash card
|
|
|
|
------------------------------------
|
|
|
|
|
|
|
|
.. code-block:: bash
|
|
|
|
|
|
|
|
$ export CROSS_COMPILE=aarch64-poky-linux-
|
|
|
|
$ make imx8mm_evk_fspi_defconfig
|
|
|
|
$ make
|
|
|
|
|
|
|
|
Currently, there is no direct support to write to QSPI Flash.
|
|
|
|
Copy flash.bin to ${loadaddr} either from sd card or over network and then copy to
|
|
|
|
qspi flash
|
|
|
|
|
|
|
|
From sd card to memory
|
|
|
|
|
|
|
|
.. code-block:: bash
|
|
|
|
|
|
|
|
$mmc dev 1
|
|
|
|
$mmc read ${loadaddr} 0x00 <size_of_flash.bin/512>
|
|
|
|
|
|
|
|
.. code-block:: bash
|
|
|
|
|
|
|
|
$ sf probe
|
|
|
|
$ sf erase 0 <size_of_flash.bin_in_hex>
|
|
|
|
$ sf write $loadaddr 0x00 <size_of_flash.bin_in_hex>
|
|
|
|
|
|
|
|
Boot from QSPI Flash
|
|
|
|
-----------------------
|
|
|
|
Set Boot Switch to QSPI Flash
|
|
|
|
|
|
|
|
Pin configuration for imx8mm_revC evk to boot from qspi flash
|
|
|
|
SW1101: 0110xxxxxx
|
|
|
|
SW1102: 00100x0010
|