u-boot-brain/board/toradex/apalis-imx8
Marcel Ziswiler 3d60366500 board: toradex: add apalis imx8qm 4gb wb it v1.0b module support
This commit adds initial support for the Toradex Apalis iMX8QM 4GB WB IT
V1.0B module. Unlike the V1.0A early access samples exclusively booting
from SD card, they are now strapped to boot from eFuses which are
factory fused to properly boot from their on-module eMMC. U-Boot
supports either booting from the on-module eMMC or may be used for
recovery purpose using the universal update utility (uuu) aka mfgtools
3.0.

Functionality wise the following is known to be working:
- eMMC, 8-bit and 4-bit MMC/SD card slots
- Gigabit Ethernet
- GPIOs
- I2C

Unfortunately, there is no USB functionality for the i.MX 8QM as of yet.

Signed-off-by: Marcel Ziswiler <marcel.ziswiler@toradex.com>
Reviewed-by: Max Krummenacher <max.krummenacher@toradex.com>
2019-06-11 10:42:48 +02:00
..
apalis-imx8.c board: toradex: add apalis imx8qm 4gb wb it v1.0b module support 2019-06-11 10:42:48 +02:00
apalis-imx8qm-imximage.cfg board: toradex: add apalis imx8qm 4gb wb it v1.0b module support 2019-06-11 10:42:48 +02:00
Kconfig board: toradex: add apalis imx8qm 4gb wb it v1.0b module support 2019-06-11 10:42:48 +02:00
MAINTAINERS board: toradex: add apalis imx8qm 4gb wb it v1.0b module support 2019-06-11 10:42:48 +02:00
Makefile board: toradex: add apalis imx8qm 4gb wb it v1.0b module support 2019-06-11 10:42:48 +02:00
README board: toradex: add apalis imx8qm 4gb wb it v1.0b module support 2019-06-11 10:42:48 +02:00

U-Boot for the Toradex Apalis iMX8QM V1.0B Module

Quick Start
===========

- Build the ARM trusted firmware binary
- Get scfw_tcm.bin and ahab-container.img
- Build U-Boot
- Load U-Boot binary using uuu
- Flash U-Boot binary into the eMMC
- Boot

Get and Build the ARM Trusted Firmware
======================================

$ git clone -b imx_4.14.78_1.0.0_ga https://source.codeaurora.org/external/imx/imx-atf
$ cd imx-atf/
$ make PLAT=imx8qm bl31

Get scfw_tcm.bin and ahab-container.img
=======================================

$ wget https://github.com/toradex/meta-fsl-bsp-release/blob/toradex-sumo-4.14.78-1.0.0_ga-bringup/imx/meta-bsp/recipes-bsp/imx-sc-firmware/files/mx8qm-apalis-scfw-tcm.bin?raw=true
$ mv mx8qm-apalis-scfw-tcm.bin\?raw\=true mx8qm-apalis-scfw-tcm.bin
$ wget https://www.nxp.com/lgfiles/NMG/MAD/YOCTO/firmware-imx-8.0.bin
$ chmod +x firmware-imx-8.0.bin
$ ./firmware-imx-8.0.bin

Copy the following binaries to the U-Boot folder:

$ cp imx-atf/build/imx8qm/release/bl31.bin .
$ cp u-boot/u-boot.bin .

Copy the following firmware to the U-Boot folder:

$ cp firmware-imx-8.0/firmware/seco/ahab-container.img .

Build U-Boot
============

$ make apalis-imx8qm_defconfig
$ make u-boot-dtb.imx

Load the U-Boot Binary Using UUU
================================

Get the latest version of the universal update utility (uuu) aka mfgtools 3.0:

https://community.nxp.com/external-link.jspa?url=https%3A%2F%2Fgithub.com%2FNXPmicro%2Fmfgtools%2Freleases

Put the module into USB recovery aka serial downloader mode, connect USB device
to your host and execute uuu:

sudo ./uuu u-boot/u-boot-dtb.imx

Flash the U-Boot Binary into the eMMC
=====================================

Burn the u-boot-dtb.imx binary to the primary eMMC hardware boot area partition:

load mmc 1:1 $loadaddr u-boot-dtb.imx
setexpr blkcnt ${filesize} + 0x1ff && setexpr blkcnt ${blkcnt} / 0x200
mmc dev 0 1
mmc write ${loadaddr} 0x0 ${blkcnt}

Boot