<?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=U-Boot%3A_Introduction_to_U-Boot_development</id>
	<title>U-Boot: Introduction to U-Boot development - 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=U-Boot%3A_Introduction_to_U-Boot_development"/>
	<link rel="alternate" type="text/html" href="https://www.mediawiki.compulab.com/w/index.php?title=U-Boot:_Introduction_to_U-Boot_development&amp;action=history"/>
	<updated>2026-05-01T23:47:29Z</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=U-Boot:_Introduction_to_U-Boot_development&amp;diff=3217&amp;oldid=prev</id>
		<title>Ilya: New page: = Overview = This article describes the basics of U-Boot development, and is written to address the general case. Instructions that are specific to CompuLab U-Boot releases will be discuss...</title>
		<link rel="alternate" type="text/html" href="https://www.mediawiki.compulab.com/w/index.php?title=U-Boot:_Introduction_to_U-Boot_development&amp;diff=3217&amp;oldid=prev"/>
		<updated>2016-12-08T12:14:33Z</updated>

		<summary type="html">&lt;p&gt;New page: = Overview = This article describes the basics of U-Boot development, and is written to address the general case. Instructions that are specific to CompuLab U-Boot releases will be discuss...&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;= Overview =&lt;br /&gt;
This article describes the basics of U-Boot development, and is written to address the general case.&lt;br /&gt;
Instructions that are specific to CompuLab U-Boot releases will be discussed in dedicated articles.&lt;br /&gt;
This article is just an overview of typical steps in Linux development.&lt;br /&gt;
&lt;br /&gt;
= Getting the source code =&lt;br /&gt;
While it is possible to download the source code manually as a tar ball, the proper way to obtain Linux source code is by using git, the source control system of choice for the Linux kernel.&lt;br /&gt;
Working with git is essential to Linux development, so take the time to [https://git-scm.com/ familiarize yourself with its interface].&lt;br /&gt;
&lt;br /&gt;
* Install git:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
workstation-pc # sudo apt-get install git&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* cd into the development directory and invoke the git clone command on the Linux repository link:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
workstation-pc # git clone git://git.denx.de/u-boot.git&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You will now have a {{filename|u-boot}} folder with the U-Boot source code on your workstation.&lt;br /&gt;
&lt;br /&gt;
= Getting to know the build system =&lt;br /&gt;
The Linux kernel uses &amp;quot;make&amp;quot; for build automation and KConfig for build configuration.&lt;br /&gt;
The make build automation program is invoked using:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
workstation-pc # make &amp;lt;build target&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A list of the build targets can be obtained by invoking:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
workstation-pc # make help&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Below is a highlight of some of the common make targets:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Cleaning targets:&lt;br /&gt;
  clean           - Remove most generated files but keep the config&lt;br /&gt;
  mrproper	  - Remove all generated files + config + various backup files&lt;br /&gt;
&lt;br /&gt;
Configuration targets:&lt;br /&gt;
  menuconfig	  - Update current config utilising a menu based program&lt;br /&gt;
  xconfig         - Update current config utilising a QT based front-end&lt;br /&gt;
  gconfig         - Update current config utilising a GTK based front-end&lt;br /&gt;
  oldconfig       - Update current config utilising a provided .config as base&lt;br /&gt;
  defconfig	  - New config with default from ARCH supplied defconfig&lt;br /&gt;
  savedefconfig   - Save current config as ./defconfig (minimal config)&lt;br /&gt;
&lt;br /&gt;
Other generic targets:&lt;br /&gt;
  all             - Build all necessary images depending on configuration&lt;br /&gt;
* u-boot          - Build the bare u-boot&lt;br /&gt;
&lt;br /&gt;
Execute &amp;quot;make&amp;quot; or &amp;quot;make all&amp;quot; to build all targets marked with [*] &lt;br /&gt;
For further info see the ./README file&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Configuring a build =&lt;br /&gt;
U-Boot can support a vast variety of configurations, including multiple architectures, file systems, device drivers, networking features, security features, and more. The first step is to select which features are necessary for your use case.&lt;br /&gt;
A set of prepared configurations can be found in {{filename|configs}} folder. When working with CompuLab releases, a &amp;lt;product_name&amp;gt;_defconfig file will be found in this folder.&lt;br /&gt;
&lt;br /&gt;
* Configure the U-Boot:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
workstation-pc # make xyz_defconfig&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
After applying a U-Boot configuration, invoke {{cmd|menuconfig}} to fine-tune the configuration. {{cmd|menuconfig}} is a menu based U-Boot configuration program which provides a menu navigation across all the available U-Boot features.&lt;br /&gt;
menuconfig can turn features and device drivers on or off. Information about the various configuration options can be obtained using the help option (selected with the arrow keys, or the '?' key), and search for configuration options can be performed by pressing the '/' key.&lt;br /&gt;
&lt;br /&gt;
* Invoke menuconfig&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
workstation-pc # make menuconfig&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 .config - U-Boot 2016.09-cl-som-imx7-0.91 Configuration&lt;br /&gt;
 ──────────────────────────────────────────────────────────────────────────────&lt;br /&gt;
  ┌───────────── U-Boot 2016.09-cl-som-imx7-0.91 Configuration ─────────────┐&lt;br /&gt;
  │  Arrow keys navigate the menu.  &amp;lt;Enter&amp;gt; selects submenus ---&amp;gt; (or empty │  &lt;br /&gt;
  │  submenus ----).  Highlighted letters are hotkeys.  Pressing &amp;lt;Y&amp;gt;        │  &lt;br /&gt;
  │  includes, &amp;lt;N&amp;gt; excludes, &amp;lt;M&amp;gt; modularizes features.  Press &amp;lt;Esc&amp;gt;&amp;lt;Esc&amp;gt; to │  &lt;br /&gt;
  │  exit, &amp;lt;?&amp;gt; for Help, &amp;lt;/&amp;gt; for Search.  Legend: [*] built-in  [ ]         │  &lt;br /&gt;
  │ ┌─────────────────────────────────────────────────────────────────────┐ │  &lt;br /&gt;
  │ │        Architecture select (ARM architecture)  ---&amp;gt;                 │ │  &lt;br /&gt;
  │ │        ARM architecture  ---&amp;gt;                                       │ │  &lt;br /&gt;
  │ │        General setup  ---&amp;gt;                                          │ │  &lt;br /&gt;
  │ │        Boot images  ---&amp;gt;                                            │ │  &lt;br /&gt;
  │ │        Boot timing  ---&amp;gt;                                            │ │  &lt;br /&gt;
  │ │        Boot media  ---&amp;gt;                                             │ │  &lt;br /&gt;
  │ │    (3) delay in seconds before automatically booting                │ │  &lt;br /&gt;
  │ │    [ ] Console recording                                            │ │  &lt;br /&gt;
  │ │    [ ] Disable support for parallel NOR flash                       │ │  &lt;br /&gt;
  │ │    [ ] add U-Boot environment variable vers                         │ │  &lt;br /&gt;
  │ │        Command line interface  ---&amp;gt;                                 │ │  &lt;br /&gt;
  │ │        Device Tree Control  ---&amp;gt;                                    │ │  &lt;br /&gt;
  │ │    -*- Networking support  ---&amp;gt;                                     │ │  &lt;br /&gt;
  │ │        Device Drivers  ---&amp;gt;                                         │ │  &lt;br /&gt;
  │ │        File systems  ----                                           │ │  &lt;br /&gt;
  │ │        Library routines  ---&amp;gt;                                       │ │  &lt;br /&gt;
  │ │    [ ] Unit tests  ----                                             │ │  &lt;br /&gt;
  │ └─────────────────────────────────────────────────────────────────────┘ │  &lt;br /&gt;
  ├─────────────────────────────────────────────────────────────────────────┤  &lt;br /&gt;
  │        &amp;lt;Select&amp;gt;    &amp;lt; Exit &amp;gt;    &amp;lt; Help &amp;gt;    &amp;lt; Save &amp;gt;    &amp;lt; Load &amp;gt;         │  &lt;br /&gt;
  └─────────────────────────────────────────────────────────────────────────┘  &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Building the U-Boot =&lt;br /&gt;
* Once the U-Boot is configured, type &amp;quot;make&amp;quot; to initiate a build.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
workstation-pc # make&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* The resulting U-Boot images will appear in the working direktory&lt;br /&gt;
&lt;br /&gt;
[[Category:U-Boot]]&lt;/div&gt;</summary>
		<author><name>Ilya</name></author>
		
	</entry>
</feed>