开源固件引导程序-Coreboot
2023-05-17 11:51:07 阿炯

Coreboot原名LinuxBIOS,是一个旨在取代计算机中专有固件(BIOS或UEFI)的软件项目,它采用轻量级固件设计,只执行加载和运行现代32位或64位操作系统所需的最少量任务。其主要是C语言,有大约1%的汇编语言实现,在GPLv2协议下授权使用。


coreboot is a Free Software project aimed at replacing the proprietary firmware (BIOS/UEFI) found in most computers. coreboot performs the required hardware initialization to configure the system, then passes control to a different executable, referred to in coreboot as the payload. Most often, the primary function of the payload is to boot the operating system (OS).


由于coreboot要初始化裸硬件,所以必须为所要支持的每个芯片组和主板移植。因此其只适用于有限的硬件平台和主板型号。

通过分离硬件初始化和以后的启动逻辑,coreboot 可以从直接运行固件,在闪存中运行操作系统,加载自定义引导程序或实现固件标准(例如 PC BIOS 服务或 UEFI)的专用应用程序扩展。这使系统仅包含目标应用程序中必需的功能,从而减少了所需的代码量和闪存空间。

目前存在许多基于coreboot代码的派生实现,每个变种的目标略有不同:
librecore - 更关注自由、非x86和固件开发框架的一个变种。
libreboot - 重点在移除二进制内容(blob)的一个变种。

Libreboot是一个无专有二进制blob的coreboot,该项目使得将一些ThinkPad、MacBook和ARM Chromebook上网本修改为完全自由软件成为可能。


最新版本:4.2
4.20 版本带来了一大批新的硬件支持,主要是一些 Google Chromebook 、几款较新的 System76 笔记本电脑、用于 Sapphire Rapids 的 Intel Archer City 参考板,以及各种旧系统的 Coreboot 支持,这些支持要归功于热情的开源社区,新启用的硬件列表包括:
ASRock B75M-ITX
Dell Latitude E6400
HP EliteBook 2170p
Intel Archer City CRB/DQ67SW
Protectli VP2420/VP4630/VP4650/VP4670
Siemens MC EHL4/EHL5
System76 lemp11/oryp10/oryp9
Google Aurash/Boxy/Constitution/Gothrax/Hades/Myst/Screebo/Starmie/Taranza/Uldren/Yavilla

此版本还有一些优化,如:
降低了 Yabits 负载、ACPI 改进
inteltool 支持 Intel Emmitsburg PCH
向 Chromebook 添加 Sound Open Firmware 驱动程序,以在非 ChromeOS 操作系统上启用音频
更多 Intel Sapphire Rapids 支持代码和其他改进。
详情查看更新公告

4.22已于2023年11月未旬发布。项目团队在本发布周期中发现了 sandybridge/ivybridge 平台上存在未初始化变量错误,因此决定纳入 4.22.01 发布包。下一个版本计划于2024年2月19日发布。新版本的一些更新亮点包括:
x86 对预内存阶段 .data 部分的支持、对预内存阶段和 ramstage 的 CBFS 缓存的支持
允许 romstage 合并到 bootblock 中
soc/intel/cmn/gfx:添加 API 来报告外部显示器的存在
device/pci_rom:填充 VFCT 表时设置 VBIOS 校验和
将所有 “select” 语句从 Kconfig.name 文件移至 Kconfig
acpigen 现在生成可变长度的 PkgLength 字段,而不是固定的 3 字节大小,以提高兼容性并与 IASL 保持一致
支持在更多基于 Coreboot 的 Chromebook 上运行 Microsoft Windows
一般清理和重新格式化
添加初始 AMD openSIL 实现
添加适用于 ARM64 的 ACPI 表生成
即使标记为无效,在 s3 恢复期间也停止重置 CMOS
修复 SMM get_save_state 计算,该计算在启用 STM 时被破坏
SNB+MRC boards:将 MRC 设置迁移到 devicetree
适用于所有平台的 chipset devicetrees
新增 17 块主板支持,其中Google居多。

版本命名更新:值得注意的是,此版本是使用递增 4.xx 版本名称方案的最后一个版本。对于未来的版本,coreboot 将切换到 Year.Month.Sub-version 命名方案。因此,计划于 2024 年 2 月发布的下一个版本将编号为 24.02,子版本为 00。如果项目团队需要对 24.02 版本进行修复或将来发布,他们会将值 .01、.02 等附加到初始版本值。

默认分支更新:4.21 版本发布后,coreboot 项目已经将默认 git 分支从 “master” 更改为 “main”。在更改后的前几个月,master 分支每天与 main 分支同步几次,以便大家有时间更新脚本。截至 2023 年 11 月 1 日,同步率已减慢至每周一次;该频率计划将持续到下一个版本,届时 master 分支将被删除。

更多详情可查看官方博客


官方主页:
https://www.coreboot.org/
https://github.com/coreboot