CL-SOM-iMX7: U-Boot: Building Images

From Compulab Mediawiki
Revision as of 06:43, 5 April 2017 by Grinberg (talk | contribs)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search

Overview

CL-SOM-iMX7 firmware consists of single U-Boot binary image. It is based on U-Boot source code. U-Boot is invoked by the CPU internal boot ROM code of the i.MX7 SoC. U-Boot initializes hardware modules necessary for system boot and loads the operating system.

Building Firmware images for CL-SOM-iMX7

Getting U-Boot sources

There are two ways to get U-Boot sources that can be used as a baseline for CL-SOM-iMX7 U-Boot. You can create a copy of "Das U-Boot" source tree or download a snapshot and extract it. We assume that you have created /home/development/cl-som-imx7/u-boot directory for CL-SOM-iMX7 u-boot development.

Snapshot download

  • Download v2016.09 snapshot with your web browser.
  • Extract the downloaded archive u-boot-8cbb389.tar.gz
cd /home/development/cl-som-imx7/u-boot
tar xvf /path/to/downloaded/u-boot-8cbb389.tar.gz
mv u-boot u-boot-cl-som-imx7
This will create /home/development/cl-som-imx7/u-boot/u-boot-cl-som-imx7 directory containing U-Boot source code tree.
  • Apply the CL-SOM-iMX7 patch
cd /home/development/cl-som-imx7/u-boot/u-boot-cl-som-imx7
patch -p1 < /path/to/cl-som-imx7-u-boot-package/u-boot/u-boot-v2016.09-cl-som-imx7-*.patch

Git clone

  • Install git version control system.
  • Create a clone of U-Boot tree
cd /home/development/cl-som-imx7/u-boot
git clone git://git.denx.de/u-boot.git u-boot-cl-som-imx7
cd /home/development/cl-som-imx7/u-boot/u-boot-cl-som-imx7
  • Create a branch for CL-SOM-iMX7 development. The CL-SOM-iMX7 patches are generated vs. v2016.09 tag (8cbb389bb3da80cbf8911f8386cbff92c6a78afe commit) in the U-Boot tree. It is recommended to use exactly the same baseline to avoid merge conflicts.
git checkout -b cl-som-imx7-dev v2016.09
  • Apply CL-SOM-iMX7 patch
git am /path/to/cl-som-imx7-u-boot-package/u-boot/patches/*.patch

Building the firmware images

  • First, compileU-Boot. The following commands create the u-boot.imx binary (along with other image types):
export ARCH=arm
export CROSS_COMPILE=arm-none-linux-eabi-
make mrproper
make cl_som_imax7_defconfig && make
  • Rename the U-Boot binary image file:
cp u-boot.imx cl-som-imx7-firmware
  • You can now install the cl-som-imx7-firmware file into an SD card or CL-SOM-iMX7 SPI flash.