This article was automatically translated from the original Turkish version.
A bootloader is the first software that runs when a computer or embedded system is powered on. Its primary function is to initiate the process of loading the operating system into memory and to prepare hardware components for operation. Although bootloaders operate in both general-purpose computers and embedded systems, their behavior varies depending on the architecture. In particular, in Linux-based embedded systems, the bootloader must be manually installed and configured by the user.
A bootloader is a small program executed by the BIOS during the computer’s startup process, responsible for loading the operating system into RAM. It is typically stored in the first sector of bootable devices (MBR – Master Boot Record). The BIOS reads this sector to initiate the bootloader. Some systems employ a two-stage structure consisting of a primary and a secondary bootloader; the primary bootloader’s sole purpose is to launch the more advanced secondary bootloader.
In embedded systems, where no BIOS exists, the bootloader directly assumes the responsibility of the boot process. In such systems, the bootloader initiates not only the operating system but also other system components.
In embedded systems, the bootloader performs all initial configurations required for the operating system to function. The ARM architecture is commonly used in these systems. The bootloader process typically follows these steps:
This process applies to boards such as the BeagleBone Black, which features TI’s AM335x processor. External RAM must be initialized by the SPL because the RBL can only work with fixed internal structures. Therefore, the SPL serves as an intermediate stage tailored to the specific requirements of the hardware.
U-Boot (Universal Bootloader) is an open-source bootloader widely used in embedded systems. Developed by DENX, this software supports numerous architectures including ARM, MIPS, and x86, and has become the de facto standard for embedded Linux systems.
The core functions of U-Boot include:
More information about U-Boot can be obtained via Denx Wiki.
In embedded systems, the bootloader is not merely a boot initiator but also one of the system’s security barriers. Modern bootloaders support the following advanced features:
These advanced features are critically important for reliability and system integrity in fields such as automotive, IoT, and medical devices.
General Definition and Function
Bootloader Process in Embedded Systems
U-Boot: The Common Bootloader in Embedded Systems
Security and Advanced Features