Skip to end of metadata
Go to start of metadata

You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 3 Current »

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

  • No labels