Difference between revisions of "CL-SOM-iMX7: U-Boot: Building Images"

From Compulab Mediawiki
Jump to: navigation, search
 
 
(2 intermediate revisions by one other user not shown)
Line 1: Line 1:
 
== Overview ==
 
== Overview ==
CL-SOM-iMX7 firmware consists of single U-Boot binary image.
+
The CompuLab CL-SOM-iMX7 System-on-Module / Computer-on-Module firmware consists of two components: Secondary Program Loader (SPL) and U-Boot.
It is based on [http://www.denx.de/wiki/U-Boot/WebHome U-Boot] source code.
+
Both components are based on [http://www.denx.de/wiki/U-Boot/WebHome U-Boot] source code.<br>
U-Boot is invoked by the CPU internal boot ROM code of the i.MX7 SoC.
+
SPL is the bootstrap utility 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.
+
U-Boot initializes hardware modules necessary for system boot and loads the operating system.<br>
 +
The latest U-Boot package is available at the [http://www.compulab.com/products/computer-on-modules/cl-som-imx7-freescale-i-mx-7-system-on-module/#devres CL-SOM-iMX7 Resources] web page.
  
 
== Building Firmware images for CL-SOM-iMX7 ==
 
== Building Firmware images for CL-SOM-iMX7 ==
 
=== Getting U-Boot sources ===
 
=== 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.
+
We assume that you have created {{filename|/home/development/cl-som-imx7/u-boot}} directory for the the CL-SOM-iMX7 U-Boot development.
You can create a copy of "Das U-Boot" source tree or download a snapshot and extract it.
 
We assume that you have created {{filename|/home/development/cl-som-imx7/u-boot}} directory for CL-SOM-iMX7 u-boot development.
 
  
==== Snapshot download ====
+
{{:Transclusion: CL-SOM-iMX7: U-Boot: Building Images}}
* Download [http://git.denx.de/?p=u-boot.git;a=snapshot;h=8cbb389bb3da80cbf8911f8386cbff92c6a78afe;sf=tgz v2016.09] snapshot with your web browser.
+
* You can now install the {{filename|cl-som-imx7-firmware}} file into an SD card or CL-SOM-iMX7 SPI flash.
* Extract the downloaded archive {{filename|u-boot-8cbb389.tar.gz}}
 
<pre>
 
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
 
</pre>
 
: This will create {{filename|/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
 
<pre>
 
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
 
</pre>
 
  
==== Git clone ====
+
== See also ==
* Install [http://git-scm.com/ git] version control system.
 
* Create a clone of U-Boot tree
 
<pre>
 
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
 
</pre>
 
* 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.
 
<pre>
 
git checkout -b cl-som-imx7-dev v2016.09
 
</pre>
 
* Apply CL-SOM-iMX7 patch
 
<pre>
 
git am /path/to/cl-som-imx7-u-boot-package/u-boot/patches/*.patch
 
</pre>
 
  
=== Building the firmware images ===
+
* [[CL-SOM-iMX7: U-Boot: Firmware Update|Firmware Update]]
* First, compileU-Boot. The following commands create the {{filename|u-boot.imx}} binary (along with other image types):
+
* [[CL-SOM-iMX7: U-Boot: Creating a bootable SD card|Creating a bootable SD card]]
<pre>
+
* [[U-Boot: Quick reference]]
export ARCH=arm
+
* [[U-Boot images]]
export CROSS_COMPILE=arm-none-linux-eabi-
+
* [http://www.denx.de/wiki/U-Boot/Documentation U-Boot documentation]
make mrproper
 
make cl_som_imax7_defconfig && make
 
</pre>
 
* Rename the U-Boot binary image file:
 
<pre>
 
cp u-boot.imx cl-som-imx7-firmware
 
</pre>
 
* You can now install the {{filename|cl-som-imx7-firmware}} file into an SD card or CL-SOM-iMX7 SPI flash.
 
  
 
[[Category:U-Boot]]
 
[[Category:U-Boot]]
 
[[Category:CL-SOM-iMX7]]
 
[[Category:CL-SOM-iMX7]]

Latest revision as of 15:07, 28 June 2023

Overview

The CompuLab CL-SOM-iMX7 System-on-Module / Computer-on-Module firmware consists of two components: Secondary Program Loader (SPL) and U-Boot. Both components are based on U-Boot source code.
SPL is the bootstrap utility 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.
The latest U-Boot package is available at the CL-SOM-iMX7 Resources web page.

Building Firmware images for CL-SOM-iMX7

Getting U-Boot sources

We assume that you have created /home/development/cl-som-imx7/u-boot directory for the the CL-SOM-iMX7 U-Boot development.

Git clone

  • Install git version control system.
  • Create a clone of U-Boot tree
cd /home/development/cl-som-imx7/u-boot
git clone https://github.com/compulab/u-boot.git -b v2017.07-cl-som-imx7-1.9 u-boot-cl-som-imx7
cd u-boot-cl-som-imx7
  • Create a branch for CL-SOM-iMX7 development
git checkout -b cl-som-imx7-1.9-devel

Building the firmware images

  • First, compile U-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-imx7_defconfig && make
  • Merge the SPL and U-Boot images into one firmware image:
dd if=/dev/zero count=640 bs=1K | tr '\000' '\377' > cl-som-imx7-firmware
dd if=SPL of=cl-som-imx7-firmware bs=1K seek=1 conv=notrunc
dd if=u-boot.img of=cl-som-imx7-firmware bs=1K seek=64 conv=notrunc
  • You can now install the cl-som-imx7-firmware file into an SD card or CL-SOM-iMX7 SPI flash.

See also