badge icon

This article was automatically translated from the original Turkish version.

Article

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.

General Definition and Function

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.

Bootloader Process in Embedded Systems

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:

  1. ROM Bootloader (RBL): Hardwired into the CPU, it is the first code executed when the system powers on.
  2. SPL (Secondary Program Loader): A small bootloader capable of running in internal RAM, it initializes basic peripherals such as RAM and QSPI.
  3. U-Boot: Loaded into RAM by the SPL, it prepares advanced peripherals such as Ethernet and USB. It also loads the Linux kernel image into RAM.

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: The Common Bootloader in Embedded Systems

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:

  • Initializing hardware components (UART, Ethernet, USB, etc.)
  • Loading the Linux kernel or another operating system image into RAM
  • Loading kernel images from various file systems, QSPI Flash, or over a network
  • Performing advanced operations such as debugging, firmware updates, and troubleshooting

More information about U-Boot can be obtained via Denx Wiki.

Security and Advanced Features

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:

  • Update Interfaces: Software updates and debugging can be performed via communication protocols such as UART, USB, and Ethernet.
  • Security: Only authorized firmware files are permitted to execute, using digital signatures or encryption methods.
  • Error Management: If corrupted or unauthorized firmware is detected, the loading process is rejected or a recovery mechanism is triggered.
  • OTA (Over-the-Air) Updates: Some bootloaders provide support for remote and secure software updates.

These advanced features are critically important for reliability and system integrity in fields such as automotive, IoT, and medical devices.

Author Information

Avatar
AuthorHüsnü Umut OkurDecember 1, 2025 at 2:09 PM

Tags

Discussions

No Discussion Added Yet

Start discussion for "Bootloader" article

View Discussions

Contents

  • General Definition and Function

  • Bootloader Process in Embedded Systems

  • U-Boot: The Common Bootloader in Embedded Systems

  • Security and Advanced Features

Ask to Küre