U-boot 对UEFI的支持
UEFI on U-Boot
Unified Extensible Firmware Interface Specification (UEFI) 已经成为 AArch64 和 X86系统的默认boot接口。它为固件上drivers和applications之间的交互提供了稳定的API。这些API 那囊括了 block storage、network和console 等设备的访问。Linux Kernel和诸如GRUB 、 FreeBSD loader 之类的boot loader都可以被执行。
[1] 开发目标
在U-Boot对UEFI的实现力争达到“Embedded Base Boot Requirements (EBBR) Specification - Release v1.0”EBBR规范规定的要求。主要参考EBBR中“Server Base Boot Requirements System Software on ARM Platforms” 章节。
一个完全成熟的UEFI实现将与U-Boot“保持规模小”的设计原则相矛盾。
因此可以得出结论:U-Boot中主要目标是实现EBBR规范规定的UEFI集合,并非full UEFI。
[2] Building U-Boot for UEFI
UEFI标准只支持小端系统。可以通过下面定义来使能ARM和x86对UEFI的支持:
CONFIG_CMD_BOOTEFI=y
CONFIG_EFI_LOADER=y
以上配置在.config文件生效。
此外,还支持