<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://www.mediawiki.compulab.com/w/index.php?action=history&amp;feed=atom&amp;title=CM-T54%3A_U-Boot%3A_Building_Images</id>
	<title>CM-T54: U-Boot: Building Images - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://www.mediawiki.compulab.com/w/index.php?action=history&amp;feed=atom&amp;title=CM-T54%3A_U-Boot%3A_Building_Images"/>
	<link rel="alternate" type="text/html" href="https://www.mediawiki.compulab.com/w/index.php?title=CM-T54:_U-Boot:_Building_Images&amp;action=history"/>
	<updated>2026-05-03T11:18:27Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.31.0</generator>
	<entry>
		<id>https://www.mediawiki.compulab.com/w/index.php?title=CM-T54:_U-Boot:_Building_Images&amp;diff=1914&amp;oldid=prev</id>
		<title>Grinberg: /* Building the firmware images */</title>
		<link rel="alternate" type="text/html" href="https://www.mediawiki.compulab.com/w/index.php?title=CM-T54:_U-Boot:_Building_Images&amp;diff=1914&amp;oldid=prev"/>
		<updated>2014-12-18T09:43:42Z</updated>

		<summary type="html">&lt;p&gt;‎&lt;span dir=&quot;auto&quot;&gt;&lt;span class=&quot;autocomment&quot;&gt;Building the firmware images&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;== Overview ==&lt;br /&gt;
The CompuLab CM-T54 System-on-Module / Computer-on-Module firmware consists of two components: Secondary Program Loader (SPL) and U-Boot.&lt;br /&gt;
Both components are based on [http://www.denx.de/wiki/U-Boot/WebHome U-Boot] source code.&lt;br /&gt;
SPL is the bootstrap utility invoked by the CPU internal boot ROM code of the OMAP54xx SoC.&lt;br /&gt;
SPL performs minimal hardware initialization and loads U-Boot from the same boot device.&lt;br /&gt;
U-Boot initializes hardware modules necessary for system boot and loads the operating system.&lt;br /&gt;
&lt;br /&gt;
== Building Firmware images for CM-T54 ==&lt;br /&gt;
=== Cross-Compiler ===&lt;br /&gt;
There are several options for cross-compilation toolchain setup. You can either compile your cross-compiler or use an already built cross-compiler. The cross-compiler should support the ARM embedded-application binary interface (&amp;quot;[http://en.wikipedia.org/wiki/Application_binary_interface#EABI EABI]&amp;quot;)&lt;br /&gt;
* Pre-built toolchain (recommended):&lt;br /&gt;
** [http://www.mentor.com/embedded-software/sourcery-tools/sourcery-codebench/editions/lite-edition/ Sourcery CodeBench Lite]&lt;br /&gt;
* Tools for creating cross-compilers:&lt;br /&gt;
** [http://crosstool-ng.org/ Crosstool-ng]: Builds a cross-compiler from source. Non-distribution specific.&lt;br /&gt;
** [http://www.gentoo.org/proj/en/base/embedded/handbook/index.xml?part=1&amp;amp;chap=4 Crossdev]: Gentoo's cross-compiler builder. Needs Gentoo.&lt;br /&gt;
&lt;br /&gt;
=== Getting U-Boot sources ===&lt;br /&gt;
There are two ways to get U-Boot sources that can be used as a baseline for CM-T54 SPL and U-Boot.&lt;br /&gt;
You can create a copy of &amp;quot;Das U-Boot&amp;quot; source tree or download a snapshot and extract it.&lt;br /&gt;
We assume that you have created {{filename|/home/development/cm-t54/u-boot}} directory for CM-T54 u-boot development.&lt;br /&gt;
&lt;br /&gt;
==== Snapshot download ====&lt;br /&gt;
* Download [http://git.denx.de/cgi-bin/gitweb.cgi?p=u-boot.git;a=snapshot;h=c43fd23cf619856b0763a64a6a3bcf3663058c49;sf=tgz v2014.10] snapshot with your web browser.&lt;br /&gt;
* Extract the downloaded archive {{filename|u-boot-c43fd23.tar.gz}}&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd /home/development/cm-t54/u-boot&lt;br /&gt;
tar xvf /path/to/downloaded/u-boot-c43fd23.tar.gz&lt;br /&gt;
mv u-boot u-boot-cm-t54&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
: This will create {{filename|/home/development/cm-t54/u-boot/u-boot-cm-t54}} directory containing U-Boot source code tree.&lt;br /&gt;
* Apply the CM-T54 patch&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd /home/development/cm-t54/u-boot/u-boot-cm-t54&lt;br /&gt;
patch -p1 &amp;lt; /path/to/cm-t54-u-boot/u-boot/u-boot-v2014.10-cm-t54-2.patch&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Git clone ====&lt;br /&gt;
* Install [http://git-scm.com/ git] version control system.&lt;br /&gt;
* Create a clone of U-Boot tree&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd /home/development/cm-t54/u-boot&lt;br /&gt;
git clone git://git.denx.de/u-boot.git u-boot-cm-t54&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* Create a branch for CM-T54 development. The CM-T54 patches are generated vs. v2014.10 tag (c43fd23cf619856b0763a64a6a3bcf3663058c49 commit) in the U-Boot tree. It is recommended to use exactly the same baseline to avoid merge conflicts.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
git checkout -b cm-t54-dev v2014.10&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* Apply the CM-T54 patch&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd /home/development/cm-t54/u-boot/u-boot-cm-t54&lt;br /&gt;
git apply /path/to/cm-t54-u-boot/u-boot/u-boot-v2014.10-cm-t54-2.patch&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Building the firmware images ===&lt;br /&gt;
In this section we assume that any version of Sourcery CodeBench Lite toolchain is installed on a host machine and it's location is added to the PATH.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
export ARCH=arm&lt;br /&gt;
export CROSS_COMPILE=arm-none-linux-eabi-&lt;br /&gt;
make mrproper&lt;br /&gt;
make cm_t54_defconfig &amp;amp;&amp;amp; make&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In the example above, CM-T54 firmware images for SPL ({{filename|MLO}}) and U-Boot ({{filename|u-boot.img}}) will be created in {{filename|/home/development/cm-t54/u-boot/u-boot-cm-t54}}.&lt;br /&gt;
&lt;br /&gt;
== See also ==&lt;br /&gt;
&lt;br /&gt;
* [[U-Boot quick reference]]&lt;br /&gt;
* [[U-Boot images]]&lt;br /&gt;
* [http://www.denx.de/wiki/U-Boot/Documentation U-Boot documentation]&lt;br /&gt;
&lt;br /&gt;
[[Category:U-Boot]]&lt;br /&gt;
[[Category:CM-T54]]&lt;/div&gt;</summary>
		<author><name>Grinberg</name></author>
		
	</entry>
</feed>