You are on page 1of 5

Das U-Boot - Wikipedia https://en.wikipedia.

org/wiki/Das_U-Boot

Das U-Boot
From Wikipedia, the free encyclopedia

Das U-Boot (subtitled "the Universal


Boot Loader" and shortened to Das U-Boot
"U-Boot") is an open source, primary Developer(s) DENX Software
boot loader used in embedded devices Engineering
to package the instructions to boot
the device's operating system kernel. Initial release October15, 1999
It is available for a number of Stable release v2016.05 / May16,
computer architectures, including
2016
68k, ARM, AVR32, Blackn,
MicroBlaze, MIPS, Nios, SuperH, PPC Preview release v2016.07-rc1 /
and x86. June6, 2016
Development status Active
Written in C
Contents Available in English
Type Boot loader
1 Functionality
1.1 Boot sources License GNU GPLv2+
1.2 Compatible le Website www.denx.de/wiki
systems /U-Boot/
1.3 Device tree (http://www.denx.de
2 History /wiki/U-Boot/)
3 Usages
4 See also
5 References
6 External links

Functionality
U-Boot is both a rst-stage and second-stage bootloader. It is loaded by the
system's ROM or BIOS from a supported boot device. These vary by platform;
typical examples include SD cards, SATA, NOR ash (e.g. EEPROMs, using SPI
or IC), and NAND ash. If there are size constraints, U-Boot may be split into
stages: the platform would load a small SPL (Secondary Program Loader), and
the SPL would do initial hardware conguration and load the rest of U-Boot.
[1][2][3] Regardless of whether the SPL is used, U-Boot performs both rst-stage
(e.g., conguring memory controllers and SDRAM) and second-stage booting
(performing multiple steps to load a modern operating system from a variety of
devices that must be congured, presenting a menu for users to interact with
and control the boot process, etc.).

U-Boot runs a command-line interface on a serial port. Using the console, users
can load and boot a kernel, possibly changing parameters from the default.

1 of 5 Sunday 05 February 2017 11:37 AM


Das U-Boot - Wikipedia https://en.wikipedia.org/wiki/Das_U-Boot

There are also commands to read device information, read and write ash
memory, download les (kernels, boot images, etc.) from the serial port or
network, manipulate device trees, and work with environment variables (which
can be written to persistent storage, and are used to control U-Boot behavior
such as the default boot command and timeout before auto-booting, as well as
hardware data such as the Ethernet MAC address).

Unlike PC bootloaders which obscure or automatically choose the memory


locations of the kernel and other boot data, U-Boot requires its boot commands
to explicitly specify the memory addresses as destinations for copying data
(kernel, ramdisk, device tree, etc.) and for jumping to the kernel and as
arguments for the kernel. Because U-Boot's commands are fairly low-level, it
takes several steps to boot a kernel, but this also makes U-Boot more exible
than other bootloaders, since the same commands can be used for more
general tasks. It's even possible to upgrade U-Boot using U-Boot, simply by
reading the new bootloader from somewhere (local storage, or from the serial
port or network) into memory, and writing that data to persistent storage
where the bootloader belongs.

U-Boot has support for USB, so it can use a USB keyboard to operate the
console (in addition to input from the serial port), and it can access and boot
from USB Mass Storage devices such as SD card readers.

Boot sources

(Note: These are boot sources that U-Boot is capable of loading data (i.e. a
kernel) from. U-Boot itself must be booted by the platform, and that must be
done from a device that the platform's ROM or BIOS is capable of booting
from, which naturally depends on the platform.)

Onboard storage
SD card
SATA
NAND ash
USB
Serial port (le transfer)
Kermit
S-Record
YMODEM
Network boot (optionally using DHCP, BOOTP, or RARP)
TFTP
NFS (Note: This is true NFS boot (U-Boot itself uses NFS to load the
kernel), as opposed to loading a kernel from the network using TFTP
and specifying that the kernel should use an NFS mount as its root
lesystem)

Compatible le systems

2 of 5 Sunday 05 February 2017 11:37 AM


Das U-Boot - Wikipedia https://en.wikipedia.org/wiki/Das_U-Boot

Squashfs (Cramfs)
ext2
ext3
ext4
FAT
FDOS
JFFS2
ReiserFS
UBIFS
ZFS

Device tree

Device tree is a data structure for describing hardware layout. Using Device
tree, a vendor might be able to use an unmodied mainline U-Boot on
otherwise special purpose hardware. As also adopted by the Linux kernel,
Device tree is intended to ameliorate the situation in the embedded industry,
where a vast number of product specic forks (of U-Boot and Linux) exist. The
ability to run mainline software practically gives customers indemnity against
lack of vendor updates.

History
The project's origin is a 8xx PowerPC
bootloader called 8xxROM written by Magnus
Damm.[4] In October 1999 Wolfgang Denk
moved the project to SourceForge.net and
renamed it to PPCBoot, because SF.net did not
allow project names starting with digits.[4]
Version 0.4.1 of PPCBoot was rst publicly
released July 19, 2000.

In 2002 a previous version of the source code


U-Boot on the Openmoko
was briey forked into a product called
Freerunner
ARMBoot, but was merged back into the
PPCBoot project shortly thereafter. On October
31, 2002 PPCBoot2.0.0 was released. This marked the last release under
the PPCBoot name, as it was renamed to reect its ability to work on other
architectures besides the PPC ISA.[5][6]

PPCBoot2.0.0 became UBoot0.1.0 in November 2002, expanded to work


on the x86 processor architecture. Additional architecture capabilities were
added in the following months: MIPS32 in March 2003, MIPS64 in April, Altera
NIOS32 in October, Coldre in December, and Microblaze in April 2004. The
May 2004 release of U-Boot-1.1.2 worked on the products of 216 board
manufacturers across the various architectures.[6]

The current name Das U-Boot adds a German denite article, to create a

3 of 5 Sunday 05 February 2017 11:37 AM


Das U-Boot - Wikipedia https://en.wikipedia.org/wiki/Das_U-Boot

bilingual pun on the German word for


"submarine." It is free software released under
the terms of the GNU General Public License. It
can be built on an x86 PC for any of its intended
architectures using a cross development GNU
toolchain, for example crosstool
(http://www.kegel.com/crosstool), the
Embedded Linux Development Kit
(http://www.denx.de/wiki/DULG/ELDK) (ELDK)
or OSELAS.Toolchain
(http://www.pengutronix.de/oselas/toolchain
/index_en.html). U-Boot on the XPedite5501

The importance of U-Boot in embedded Linux


systems is quite succinctly stated in the book Building Embedded Linux
Systems, by Karim Yaghmour, whose text about U-Boot begins, "Though there
are quite a few other bootloaders, 'Das U-Boot,' the universal bootloader, is
arguably the richest, most exible, and most actively developed open source
bootloader available."[7]

Usages
The ARM-based Chromebooks ship with U-Boot. The Celeron- and
i5-based Chromebooks use it as payload for coreboot.[8]
The PowerPC based series of AmigaOne computers running AmigaOS use
U-Boot, in particular the Sam440ep and Sam460ex by ACube Systems Srl,
and the upcoming AmigaOne X5000 by A-Eon, the successor of the
AmigaOne X1000.
Ubiquiti Networks devices uses U-Boot

See also
Comparison of boot loaders
RedBoot
Coreboot
Barebox

References
1. http://xillybus.com/tutorials/u-boot-image-altera-soc
2. https://boundarydevices.com/u-boot-on-i-mx6/
3. https://blackn.uclinux.org/doku.php?id=bootloaders:u-boot:features
4. PPCBoot Homepage: Authors (http://ppcboot.sourceforge.net/#authors)
5. "[PPCBoot-users] Halloween release of PPCBoot: 2.0.0 - the Final Release."
(https://web.archive.org/web/20040127050919/http://www.geocrawler.com
/archives/3/4205/2002/10/0/10043434/), Wolfgang Denk, 31 October 2002
6. "U-Bootdoc History". Retrieved Sep 4, 2011.

4 of 5 Sunday 05 February 2017 11:37 AM


Das U-Boot - Wikipedia https://en.wikipedia.org/wiki/Das_U-Boot

7. Building Embedded Linux Systems by Kareem Yaghmour, Chapter 9


(http://oreilly.com/catalog/9780596002220/)
8. coreboot tutorial oscon 2013 (https://docs.google.com/presentation
/d/1eGPMu03vCxIO0a3oNX8Hmij_Qwwz6R6ViFC_1HlHOYQ/), p. 6

External links
Oicial website (http://www.denx.de/wiki/U-Boot/)
Oicial git repository (http://git.denx.de/u-boot.git/)
Barebox (http://www.barebox.org/) (formerly known as U-Boot-V2)
Das U-Boot (https://sourceforge.net/projects/armboot/) on
SourceForge.net

Retrieved from "https://en.wikipedia.org/w/index.php?title=Das_U-


Boot&oldid=756439285"

Categories: Free BIOS implementations Free boot loaders


Free software programmed in C Free system software
High-priority free software projects Software related to embedded Linux

This page was last modied on 24 December 2016, at 06:45.


Text is available under the Creative Commons Attribution-ShareAlike
License; additional terms may apply. By using this site, you agree to the
Terms of Use and Privacy Policy. Wikipedia is a registered trademark of
the Wikimedia Foundation, Inc., a non-prot organization.

5 of 5 Sunday 05 February 2017 11:37 AM

You might also like