1U-Boot for the Technexion Pico i.MX8MQ
2
3Quick Start
4===========
5- Build the TFA binary
6- Get DDR and HDMI firmware
7- Build U-Boot
8- Boot
9
10Get and Build the TFA blob
11==========================
12Note: srctree is U-Boot source directory
13Get ATF from: https://git.trustedfirmware.org/TF-A/trusted-firmware-a.git
14branch: master
15$ CROSS_COMPILE=aarch64-linux-gnu- make PLAT=imx8mq bl31
16$ cp build/imx8mq/release/bl31.bin $(builddir)
17
18Get the DDR and HDMI firmware
19=============================
20$ wget https://www.nxp.com/lgfiles/NMG/MAD/YOCTO/firmware-imx-7.9.bin
21$ chmod +x firmware-imx-7.9.bin
22$ ./firmware-imx-7.9.bin
23# Or use this to avoid running random scripts from the internet,
24# but note that you must agree to the license the script displays:
25# $ dd if=firmware-imx-7.9.bin of=firmware-imx-7.9.tar.bz2 bs=38868 skip=1
26# $ tar -xf firmware-imx-7.9.tar.bz2
27$ cp firmware-imx-7.9/firmware/hdmi/cadence/signed_hdmi_imx8m.bin $(builddir)
28$ cp firmware-imx-7.9/firmware/ddr/synopsys/lpddr4*.bin $(builddir)
29
30Build U-Boot
31============
32$ export CROSS_COMPILE=aarch64-poky-linux-
33$ make pico-imx8mq_defconfig
34$ make flash.bin
35
36Burn the flash.bin to MicroSD card offset 33KB
37$ dd if=flash.bin of=/dev/mmcblkX bs=1024 seek=33
38Or into eMMC from a running system
39$ dhcp flash.bin && mmc write $loadaddr 0x42 0x800
40
41Boot
42====
43"o" denotes a pin
44"[]" denotes two pins bridged by a jumper
45
46eMMC boot:
47J1 o[] []o J2
48   []o o[]
49
50USB upload via USB-C connector:
51J1 ooo ooo J2
52   o[] []o
53