Difference between revisions of "U-Boot"
Jump to navigation
Jump to search
| Line 12: | Line 12: | ||
* ITB {{Todo|???}} | * ITB {{Todo|???}} | ||
* FIT (Flat Image Tree) {{Todo|Enhance}} | * FIT (Flat Image Tree) {{Todo|Enhance}} | ||
| + | |||
| + | === Boot sequence === | ||
| + | |||
| + | # Device's built-in boot code is executed (BootROM) | ||
| + | ## It searches connected storage devices for a bootloader signature at a predefined address | ||
| + | ## If found it loads the bootloader into SRAM and executes it | ||
| + | # TPL does minimal initialization, loads and executes SPL | ||
| + | # SPL does more extended initialization, loads and executes U-Boot | ||
| + | # U-Boot finishes initialization, provides a command prompt / searches for OS images / boots them | ||
| + | |||
| + | === bootcmd === | ||
| + | {{Todo|Describe boot script command. Uses boot.scr (?)}} | ||
| + | |||
| + | === Distro Boot === | ||
| + | Source: [https://gitlab.denx.de/u-boot/u-boot/-/blob/master/doc/README.distro README.distro] | ||
| + | |||
| + | Standardized way of booting a [[Linux distribution]] from U-Boot, without needing to build the distribution specifically for the target device. A distribution needs to provide its own generic bootloader, [[syslinux]] (extlinux). | ||
| + | |||
| + | Enabled by: <code>CONFIG_DISTRO_DEFAULTS=y</code> | ||
| + | |||
| + | U-Boot searches for <code>/extlinux/extlinux.conf</code> then <code>/boot/extlinux/extlinux.conf</code> on disk, or <code>pxelinux.cfg/default</code> over the network. | ||
| + | |||
== Related == | == Related == | ||
Revision as of 18:46, 28 March 2020
Linux friendly bootloader. Used in various ARM devices like PinePhone and Orange Pi.
Contents
Boot process
Definitions
General
- SPL (Secondary Program Loader) is a small binary, generated from U-Boot source, that fits in the SRAM and loads the main U-Boot into system RAM. [1]
- TPL (Tertiary Program Loader) is a tiny SPL which loads moderate-sized middle layer called TPL and that loads the full U-Boot into RAM.
Board-specific
- ATF (ARM Trusted Firmware)
Device Tree
- DTB (Device Tree Blob) TODO: Enhance
- ITB TODO: ???
- FIT (Flat Image Tree) TODO: Enhance
Boot sequence
- Device's built-in boot code is executed (BootROM)
- It searches connected storage devices for a bootloader signature at a predefined address
- If found it loads the bootloader into SRAM and executes it
- TPL does minimal initialization, loads and executes SPL
- SPL does more extended initialization, loads and executes U-Boot
- U-Boot finishes initialization, provides a command prompt / searches for OS images / boots them
bootcmd
TODO: Describe boot script command. Uses boot.scr (?)
Distro Boot
Source: README.distro
Standardized way of booting a Linux distribution from U-Boot, without needing to build the distribution specifically for the target device. A distribution needs to provide its own generic bootloader, syslinux (extlinux).
Enabled by: CONFIG_DISTRO_DEFAULTS=y
U-Boot searches for /extlinux/extlinux.conf then /boot/extlinux/extlinux.conf on disk, or pxelinux.cfg/default over the network.