CoreBoot
时间:2022-03-30 03:51:01 | 来源:行业动态
时间:2022-03-30 03:51:01 来源:行业动态
CoreBoot的前身是LinuxBios,是Ron Minnich于上世纪发起的项目,一种Linux代码风格的开源固件解决方案,跟UEFI固件架构完全不同。CoreBoot的目标是做最小的操作来完成硬件功能初始化,尽快的启动到操作系统中。
图3 CoreBoot的发展
UEFI的平台启动初始化流程为SEC-PEI-DXE-BDS-TLS-RT这几个阶段,其中SEC是指安全验证阶段,PEI是指EFI前期初始化阶段,DXE是驱动执行环境阶段,BDS是指启动设备选择阶段,TSL是指操作系统加载前期阶段,RT是指运行时阶段。
而CoreBoot将启动流程分为bootblock-romstage-ramstage-payload这几个主要阶段, 如下图4所示。其中booblock是汇编编写的,主要为C运行环境做准备;romstage阶段主要是来初始化内存和一些早期初始化操作;ramstage阶段主要执行系统设备的初始化,比如pcie初始化,创建ACPI表等;到了payload阶段CoreBoot的初始化操作实际上已经完成,payload可以作为最终的Bootloader来加载操作系统。
图4 CoreBoot平台初始化流程
相比UEFI架构的代码,CoreBoot代码跟Linux风格类似,完全开源, 它结合CPU厂商的芯片初始化二进制包(FSP/ATF/AGASA等)一起使用,来完成封闭的芯片初始化功能,同时可以集成Tianocore、LinuxBoot等各种payload,来满足各种需求。
目前CoreBoot主要在Chromebook等PC机器上应用,由于CoreBoot的开源以及Linux风格的代码架构的原因, 以及在Linux领域的人才优势,也在推进支持使用CoreBoot作为服务器的UEFI BIOS的替代选择。