U-Boot
U-Boot 是一个开源引导加载程序,主要用于嵌入式系统,它支持多种不同的结构,包括 PPC、ARM、AVR32、MIPS、x86、68k、Nios 与 MicroBlaze。它由开源项目 PPCBoot 发展起来的,ARMboot 并入了 PPCBoot,和其他一些 arch 的 Loader 合称 U-Boot。于2002年12月17日发布了第一个版本 V0.2.0,同时 PPCBoot 和 ARMboot 停止维护。它支持的处理器构架包括 PowerPC (MPC5xx,MPC8xx,MPC82xx,MPC7xx,MPC74xx,4xx), ARM (ARM7,ARM9,StrongARM,Xscale),MIPS (4Kc,5Kc),x86 等等, U-Boot(Universal Bootloader)从名字就可以看出,它是在 GPLv2 授权下的开源代码中最完整的一个通用 Boot Loader,采用汇编及C语言开发。
U-Boot is the Universal Boot Loader project and is used to boot the Linux kernel in the Arm Reference Platforms deliverables on our supported platforms.
它提供两种操作模式:启动加载(Boot loading)模式和下载(Downloading)模式,并具有大型 Boot Loader 的全部功能。主要特性为:
SCC/FEC 以太网支持
BOOTP/TFTP 引导
IP,MAC 预置功能
在线读写 FLASH,DOC, IDE,IIC,EEROM,RTC
支持串行口 kermit,S-record 下载代码
识别二进制、ELF32、pImage 格式的 Image,对 Linux 引导有特别的支持
监控 (minitor) 命令集:读写 I/O、内存、寄存器、内存、外设测试功能等
脚本语言支持(类似 BASH 脚本)
支持 WatchDog,LCD logo,状态指示功能等
U-Boot 的功能是如此之强大,涵盖了绝大部分处理器构架,提供大量外设驱动,支持多个文件系统,附带调试、脚本、引导等工具,特别支持 Linux, 为板级移植做了大量的工作。U-Boot1.1.1 版本特别包含了对 SA1100 和 44B0 芯片的移植,所以 44B0 移植主要是针对 Board 的移植,包括 FLASH、内存配置以及串口波特率等等。U-Boot 的完整功能性和后续不断的支持,使系统的升级维护变得十分方便。
最新版本:2022.12
2022年12月上旬消息,U-Boot 终于提供 TCP 协议和 HTTP 支持,此前 U-Boot 引导加载程序只支持 UDP 协议,仅限通过 tftp(简单文件传输协议) 或 NFS(网络文件系统) 进行文件传输。在开发人员的长期努力之下,如今 U-Boot 终于提供了 TCP 协议支持,可通过 HTTP 下载文件或其他内容。经过五年开发,整整二十轮的修改,对 U-Boot 网络的 TCP 基础支持补丁终于完成并合并到主线。除了对 TCP 协议的兼容,该系列补丁还添加了一个基础的 wget 应用程序。U-Boot 上的的 wget 应用是一个命令行下载器,允许通过 TCP 从 HTTP 服务器下载文件到指定的内存地址,目前 wget 仅支持 80 端口上的 HTTP 服务器,且不支持 HTTPS。
提供 HTTP 和 TCP 支持意味着 U-Boot 可以从 HTTP 服务器下载内核或其他文件,而不仅限使用 NFS 或 TFTP 进行远程加载,它可以简化一些 U-Boot 嵌入式设备的部署。
最新版本:2025.07
该版本包含了多项新功能,包括 “uthreads”(灵感源自 barebox 引导加载程序中的 “bthreads” 协程)、exFAT 支持、新架构和 SoC 支持以及对现有平台的改进、清理、更好的测试等。项目负责人 Tom Rini 在公告中表示:由于这是一个完整版本,而不仅仅是候选版本,我希望更多人能阅读这篇文章,并阅读我提供的链接。为了项目和社区的整体健康,我希望在社区中找到一些能够帮助我们进行整体组织和管理的人。我希望能够长期将我们纳入软件自由保护协会的框架下,这意味着我们将拥有一个不只由一个人管理的组织结构。具体更新内容包括:
受 barebox "bthreads" 的启发,现在有了 "uthreads"。
现在支持 exFAT,且再次对 EFI loader subsytem 进行了大量改进。
对以下架构 / SoC 的全面改进、更新和新支持: Apple M1/2、i.MX8/9、sunxi、STM32、StarFive、TI K3、Rockchip RK3528 和 RK3576(以及对旧版芯片的改进)、MIPS Boston 平台、SoCFPGA、Atmel sama9x60 和 sama5d2、 Raspberry Pi、AMD/Xilinx(Versal、Versal Gen 2、ZynqMP)、Marvell 平台、各种 Tegra 平台、Qualcomm 平台、Rensas R-Car 以及其他平台。
对网络、DFU、MMC、 i2c、SCSI 和其他子系统进行了大量清理和改进。此外,还针对一般代码质量和清理工作进行了一系列改进。
在更多 (QEMU) 平台的 CI 中进行更多测试。
更多详情可查看此处。
项目主页:https://www.denx.de/wiki/U-Boot