Firmware, Trizeps VIIImini

How to Make U-Boot for Trizeps VIII Mini using imx_firmware

This will generate the uboot with all needed components atf, optee, spl, and uboot. Also, you can create an uefi image.

Update and install build tools:

sudo apt-get update sudo apt-get upgrade sudo apt-get install attr build-essential python python-dev python-crypto python-wand device-tree-compiler bison flex swig iasl uuid-dev wget git bc libssl-dev zlib1g-dev python3-pip gcc g++ make python3 mono-devel

Clone the imx-firmware repo:

git clone --recursive ssh://git@gitlab.keith-koep.com:30001/imx/imx_firmware.git

Build uboot and uefi:

./buildme64.sh -b Tr8m -t all

Update uboot and uefi on mounted sd card:

sudo ./WriteUboot.sh /dev/sde ./flash.bin sudo ./WriteUefi.sh /dev/sde ./uefi.fit

Update uboot and uefi using fastboot:

sudo fastboot flash bootloader flash.bin sudo fastboot flash BOOTFIRMWARE uefi.fit

Setup Build Enviroment

  1. Set up a Linux Environment (Note: We use WSL):

  1. Update and install build Tools:

sudo apt-get update sudo apt-get upgrade sudo apt-get install attr build-essential python python-dev python-crypto python-wand device-tree-compiler bison flex swig iasl uuid-dev wget git bc libssl-dev zlib1g-dev python3-pip sudo apt-get install gcc g++ make python3 mono-devel pushd ~ wget https://releases.linaro.org/components/toolchain/binaries/7.2-2017.11/aarch64-linux-gnu/gcc-linaro-7.2.1-2017.11-x86_64_aarch64-linux-gnu.tar.xz tar xf gcc-linaro-7.2.1-2017.11-x86_64_aarch64-linux-gnu.tar.xz rm gcc-linaro-7.2.1-2017.11-x86_64_aarch64-linux-gnu.tar.xz popd

U-Boot

http://gitlab.keith-koep.com/imx/uboot-imx
http://gitlab.keith-koep.com/imx/imx-mkimage

 

  1. Clone repositories:

git clone -b iot_merged_kuk_imx_v2018.03_4.14.98_2.0.0_ga http://gitlab.keith-koep.com/imx/uboot-imx git clone http://gitlab.keith-koep.com/imx/imx-mkimage.git
  • Build U-Boot:

pushd uboot-imx export CROSS_COMPILE=~/gcc-linaro-7.2.1-2017.11-x86_64_aarch64-linux-gnu/bin/aarch64-linux-gnu- export ARCH=arm64 make trizeps8mini_iot_defconfig make -j32 popd
  • Create bootimage:

pushd imx-mkimage CFLAGS= make SOC=iMX8MM clean make copytr8mini CFLAGS= make SOC=iMX8MM flash_trizeps8mini popd

UEFI

http://gitlab.keith-koep.com/imx/mu_platform_nxp
Note: # note: On Windows Ubuntu, ignore Python errors during build specifically like # „ERROR - Please upgrade Python! Current version is 3.6.7. Recommended minimum is 3.7.“

  1. Clone repositories and setup:

git clone --recursive http://gitlab.keith-koep.com/imx/mu_platform_nxp.git pushd mu_platform_nxp export GCC5_AARCH64_PREFIX=~/gcc-linaro-7.2.1-2017.11-x86_64_aarch64-linux-gnu/bin/aarch64-linux-gnu- pip3 install -r requirements.txt --upgrade python3 KUK/Trizeps8mini_2GB/PlatformBuild.py --setup cd MU_BASECORE make -C BaseTools cd .. popd
  1. Build:

pushd mu_platform_nxp export GCC5_AARCH64_PREFIX=~/gcc-linaro-7.2.1-2017.11-x86_64_aarch64-linux-gnu/bin/aarch64-linux-gnu- python3 KUK/Trizeps8mini_2GB/PlatformBuild.py -V TARGET=RELEASE \ PROFILE=DEV MAX_CONCURRENT_THREAD_NUMBER=20 popd
  1. Create bootable UEFI image:

pushd mu_platform_nxp/Build/Trizeps8mini_2GB/RELEASE_GCC5/FV cp ../../../../../imx-iotcore/build/firmware/its/uefi_imx8_unsigned.its . ../../../../../u-boot/tools/mkimage -f uefi_imx8_unsigned.its -r uefi.fit popd