Hi Igor On Thu, 2020-01-23 at 13:31 +0200, Igor Opaniuk wrote: > From: Igor Opaniuk <igor.opan...@toradex.com> > > Add README with build steps for U-boot and TF-A for Verdin i.MX8MM > SoM. > > Signed-off-by: Igor Opaniuk <igor.opan...@toradex.com> > Reviewed-by: Oleksandr Suvorov <oleksandr.suvo...@toradex.com> > --- > > board/toradex/verdin-imx8mm/README | 81 > ++++++++++++++++++++++++++++++ > 1 file changed, 81 insertions(+) > create mode 100644 board/toradex/verdin-imx8mm/README > > diff --git a/board/toradex/verdin-imx8mm/README > b/board/toradex/verdin-imx8mm/README > new file mode 100644 > index 0000000000..857138d4fb > --- /dev/null > +++ b/board/toradex/verdin-imx8mm/README > @@ -0,0 +1,81 @@ > +U-Boot for the Toradex Verdin i.MX8MM board
Verdin iMX8M Mini Module > + > +Quick Start > +=========== > +- Build the ARM Trusted firmware binary > +- Get DDR firmware > +- Build U-Boot > +- Flash to eMMC > +- Boot > + > + > +Get and Build the ARM Trusted firmware (Trusted Firmware A) > +====================================== > +$ echo "Downloading and building TF-A..." > +$ git clone -b imx_4.14.78_1.0.0_ga I suggest to use the later branch imx_4.14.98_2.3.0 which should also include i.MX 8M Nano support now. > https://source.codeaurora.org/external/imx/imx-atf > +$ cd imx-atf > + > +Please edit `plat/imx/imx8mm/include/platform_def.h` so it > +contains proper values for UART configuration and BL31 base > +address (correct values listed below): > +#define BL31_BASE 0x910000 > +#define IMX_BOOT_UART_BASE 0x30860000 > +#define DEBUG_CONSOLE 1 > + > +Then build ATF (TF-A): > +$ make PLAT=imx8mm bl31 > + > +Get the DDR firmware > +============================= > +$ wget > https://www.nxp.com/lgfiles/NMG/MAD/YOCTO/firmware-imx-8.1.1.bin There is now 8.4.1 available from above mentioned release. However, I believe there were no changes in DDR firmware. > +$ chmod +x firmware-imx-8.1.1.bin > +$ ./firmware-imx-8.1.1.bin > +$ cp firmware-imx-8.1.1/firmware/ddr/synopsys/lpddr4*.bin ./ > + > +Build U-Boot > +============ > +$ export CROSS_COMPILE=aarch64-poky-linux- With a linaro toolchain this would rather be: aarch64-linux-gnu- > +$ make verdin-imx8mm_defconfig > +$ make flash.bin > + > +Flash to eMMC > +=========== > +> tftpboot ${loadaddr} flash.bin > +> setexpr blkcnt ${filesize} + 0x1ff && setexpr blkcnt ${blkcnt} / > 0x200 > +> mmc dev 0 1 && mmc write ${loadaddr} 0x2 ${blkcnt} Or just run update_uboot (;-p). > + > +Boot > +=========== > + > +ATF, U-boot proper and u-boot.dtb images are packed into FIT image, > +which is loaded and parsed by SPL. > + > +Boot sequence is: > +SPL ---> ATF (TF-A) ---> U-boot proper > + > +Output: > + > +U-Boot SPL 2020.01-01840-gd92bdc79cf-dirty (Jan 22 2020 - 18:50:57 > +0200) > +Normal Boot > +Trying to boot from MMC1 > +NOTICE: Configuring TZASC380 > +NOTICE: RDC off > +NOTICE: BL31: v1.5(release):p9.0.0_1.1.0-ga-20190801-0-gd6451cc1e- > dirty > +NOTICE: BL31: Built : 17:43:07, Jan 22 2020 > +NOTICE: sip svc init > + > + > +U-Boot 2020.01-01840-gd92bdc79cf-dirty (Jan 22 2020 - 18:50:57 > +0200) > + > +CPU: Freescale i.MX8MMQ rev1.0 at 0 MHz > +Reset cause: POR > +DRAM: 2 GiB > +MMC: FSL_SDHC: 0, FSL_SDHC: 1 > +Loading Environment from MMC... OK > +In: serial > +Out: serial > +Err: serial > +Model: Toradex Verdin iMX8M Mini 2GB Wi-Fi / BT IT V1.0A, Serial# > 06535148 > +Net: Could not get PHY for FEC0: addr 7 > +eth0: ethernet@30be0000 > +Hit any key to stop autoboot: 0 Cheers Marcel