awesome-repositories.com
Blog
awesome-repositories.com

Discover the best open-source repositories with AI-powered search.

ExploreCurated searchesOpen-source alternativesSelf-hosted softwareBlogSitemap
ProjectAboutHow we rankPressMCP server
LegalPrivacyTerms
© 2026 Bringes Technology SRL·VAT RO45896025·hello@awesome-repositories.com
·
u-boot avatar

u-boot/u-boot

0
View on GitHub↗
5,093 stars·4,488 forks·C·4 views

U Boot

U-Boot is an embedded bootloader that initializes hardware components and loads operating system kernels into memory. It functions as a hardware abstraction layer providing standardized access to networking, storage, and peripheral buses, while also serving as a secure boot loader and a firmware update interface.

The project distinguishes itself through the implementation of secure boot sequences that verify cryptographic signatures and interface with TPM modules to establish hardware-rooted trust. It further provides specialized capabilities for updating device firmware via standardized protocols such as Fastboot and DFU, and acts as a device tree manipulator to configure hardware parameters before the operating system starts.

The system covers a broad range of low-level operations, including CPU and memory controller initialization, hardware cache management, and the execution of standalone applications. It supports remote kernel provisioning by fetching boot images and device trees from servers over network protocols, and manages system behavior through environment variables and command script execution.

The build process includes tools for boot image packaging and hardware target configuration to ensure binary compatibility with specific embedded devices.

Features

  • Embedded Device Bootstrapping - Initializes hardware components and loads the operating system kernel into memory to bootstrap embedded devices.
  • System Boot Initializers - Loads and executes kernel images or RAM disks from memory to start an embedded operating system.
  • Built-In Language Interpreters - Runs sequences of user-defined scripts through a built-in interpreter to automate hardware initialization and boot tasks.
  • Hardware Peripheral Drivers - Coordinates data transfer across hardware buses such as I2C, SPI, PCI, and USB to interact with devices.
  • Hardware Target Configurations - Sets architecture and board-specific parameters to ensure binary compatibility with the target embedded device.
  • Board Initializers - Configures CPUs, memory controllers, and peripheral buses to prepare the physical board for software execution.
  • Hardware Device Initializations - Prepares embedded board components, CPUs, memory controllers, and clocks before starting the operating system.
  • Device Tree Blob Initializers - Uses flattened device tree blobs to describe hardware components and their memory addresses during the boot process.
  • Hardware Abstraction Layers - Provides a low-level interface providing standardized access to networking, storage, and peripheral buses.
  • Boot Argument Persistence - Sends configuration arguments and device trees to the kernel during startup to define system behavior.
  • Multi-Stage Bootloaders - Serves as a primary software stage that initializes hardware and loads an operating system kernel into memory.
  • Secure Boot Loaders - Verifies cryptographic signatures and interfaces with TPM modules to ensure hardware-rooted trust during boot.
  • Cryptographic Verification - Verifies binary payloads against embedded keys to ensure image authenticity and integrity before executing the kernel.
  • Secure Boot Implementations - Verifies boot image authenticity using cryptographic signatures and hardware-rooted trust to prevent unauthorized code execution.
  • Hardware Root of Trust - Interfaces with Trusted Execution Environments and TPM modules to establish a secure hardware-rooted chain of trust.
  • Filesystem Read Operations - Retrieves boot images and configuration files from various disk and flash storage filesystem formats.
  • Layered Architectures - Implements a layered architecture that abstracts physical hardware from high-level bootloader services for networking and storage.
  • Boot Sequence Automation - Runs sequences of predefined commands through an interpreter to automate repetitive boot tasks.
  • Hardware-Targeted Remote Execution - Executes automated test suites on remote physical hardware by provisioning environments via a lab coordinator.
  • Remote Kernel Provisioning - Fetches boot images and device trees from remote servers via network protocols to deploy operating systems.
  • Hardware Firmware Updaters - Implements standardized protocols like Fastboot and DFU to update device firmware from external sources.
  • Application and Firmware Updaters - Provides capabilities to update device firmware using standardized protocols like Fastboot and DFU.
  • Hardware Service Interfaces - Provides a standardized system call interface for external applications to access networking, storage, and console functions.
  • Non-Volatile Storage - Implements low-level read and write access to non-volatile storage media including MMC, NVMe, SATA, and flash.
  • Device Tree Manipulation - Modifies flattened device tree blobs to configure hardware parameters before the operating system starts.
  • Device Tree Manipulators - Acts as a tool for modifying flattened device tree blobs to configure hardware parameters before the OS starts.
  • Boot Protocol Implementations - Implements standardized boot protocols like Fastboot and DFU to facilitate firmware updates from external hosts.
  • Peripheral Bus Access - Provides standardized access to read and write data across peripheral buses such as USB, SCSI, and IDE.
  • Boot Image Packaging - Wraps binary payloads into platform-specific formats with headers and checksums to ensure correct hardware loading.
  • Hardware Emulators - Runs test suites across various board configurations using emulators to verify bootloader behavior.
  • Environment Variable Management - Provides a system for managing runtime environment variables used as the primary source for boot and hardware configuration.
  • Environment Variable-Based Configuration - Stores and retrieves system boot parameters in non-volatile memory to control startup behavior.

Star history

Star history chart for u-boot/u-bootStar history chart for u-boot/u-boot

AI search

Explore more awesome repositories

Describe what you need in plain English — the AI ranks thousands of curated open-source projects by relevance.

Start searching with AI

Curated searches featuring U Boot

Hand-picked collections where U Boot appears.
  • a plugin based system for boot environments

Frequently asked questions

What does u-boot/u-boot do?

U-Boot is an embedded bootloader that initializes hardware components and loads operating system kernels into memory. It functions as a hardware abstraction layer providing standardized access to networking, storage, and peripheral buses, while also serving as a secure boot loader and a firmware update interface.

What are the main features of u-boot/u-boot?

The main features of u-boot/u-boot are: Embedded Device Bootstrapping, System Boot Initializers, Built-In Language Interpreters, Hardware Peripheral Drivers, Hardware Target Configurations, Board Initializers, Hardware Device Initializations, Device Tree Blob Initializers.

What are some open-source alternatives to u-boot/u-boot?

Open-source alternatives to u-boot/u-boot include: tianocore/edk2 — edk2 is a development project for creating system firmware that complies with the UEFI specification. It provides the… s-matyukevich/raspberry-pi-os — This project is a bare-metal operating system developed for ARM64 architecture. It serves as a low-level… sel4/sel4 — seL4 is a formally verified microkernel whose C implementation is backed by machine-checked mathematical proofs of… espressif/arduino-esp32 — This project is an implementation of the Arduino framework for ESP32 microcontrollers, providing a core that enables… mit-pdos/xv6-public — xv6 is a Unix-like educational operating system designed for teaching kernel concepts. It is implemented as an… raspberrypi/pico-examples — This project is a reference library of firmware examples and a development framework for creating embedded C…

Open-source alternatives to U Boot

Similar open-source projects, ranked by how many features they share with U Boot.
  • tianocore/edk2tianocore avatar

    tianocore/edk2

    6,061View on GitHub↗

    edk2 is a development project for creating system firmware that complies with the UEFI specification. It provides the necessary infrastructure to initialize hardware platforms and boot operating systems across multiple CPU architectures. The project utilizes a modular firmware architecture that decouples high-level management protocols from physical transport layers. It implements critical security features, including a measured boot chain, cryptographic primitives for image authentication, and support for Trusted Platform Module hardware and software implementations. Its capability surface

    Ccfirmwarepython
    View on GitHub↗6,061
  • s-matyukevich/raspberry-pi-oss-matyukevich avatar

    s-matyukevich/raspberry-pi-os

    13,854View on GitHub↗

    This project is a bare-metal operating system developed for ARM64 architecture. It serves as a low-level implementation of kernel engineering, focusing on the fundamental construction of an OS from the hardware level up. The system is distinguished by its comprehensive approach to ARM64 processor control, featuring a red-black tree task scheduler and a hierarchical page table system for virtual memory management. It implements a sophisticated privilege model that handles transitions between kernel and user modes, ensuring process isolation through address space splitting and exception level m

    Carmarmv8assembler
    View on GitHub↗13,854
  • sel4/sel4seL4 avatar

    seL4/seL4

    5,583View on GitHub↗

    seL4 is a formally verified microkernel whose C implementation is backed by machine-checked mathematical proofs of correctness, confidentiality, integrity, and availability. It enforces strict isolation between processes through hardware-enforced address space separation and a capability-based access control system, where each process holds explicit rights only to the resources it has been granted. The kernel exposes hardware resources through a minimal API of system calls that manage threads, address spaces, and inter-process communication, with synchronous IPC supporting sender-identifying b

    Cmicrokernelossel4
    View on GitHub↗5,583
  • espressif/arduino-esp32espressif avatar

    espressif/arduino-esp32

    16,984View on GitHub↗

    This project is an implementation of the Arduino framework for ESP32 microcontrollers, providing a core that enables firmware development using a familiar API. It functions as a microcontroller hardware abstraction layer and a firmware toolchain integration, bridging external development environments to the hardware for compilation and flashing. The system includes an embedded real-time operating system wrapper to manage multi-core execution and task scheduling, alongside a wireless communication suite for TCP/IP networking and Bluetooth Low Energy. It distinguishes itself by providing an obj

    C++
    View on GitHub↗16,984
See all 30 alternatives to U Boot→