混合固件架构:开源与闭源的融合之道
1. 系统固件供应链解读
在嵌入式设备的固件领域,开源的理念旨在用开源实现替代专有固件代码,但可惜的是,它缺乏硅供应商的专门支持。混合工作模型应运而生,试图平衡开源固件开发与硅供应商提供的最小化、必要的平台初始化二进制文件。
1.1 传统系统固件开发模型
传统系统固件开发模型由硅供应商主导,如同一种“独裁”模式,遵循为平台启用而构建的生态系统。这个生态系统主要由三个主要部分组成:
- 启动固件 :负责板级配置。
- 包装层 :作为启动固件和平台初始化二进制文件之间的转换层。
- 平台初始化 :负责硅初始化的代码块,由硅供应商共享。
1.2 平台初始化流程
在传统模型中,平台初始化通常是硅初始化和目标板初始化的组合。硅供应商会发布样本硅初始化参考代码,IBV(独立板卡供应商)会使用这些代码进行准备。IBV 有自己的专有 BIOS 代码库,用于抽象硬件初始化并为其他层提供 API。例如,Aptio 需要额外移植硅供应商提供的样本硅初始化代码以适应其基础设施,而 InsydeH2O UEFI 固件解决方案则尽量充分利用样本包而不做太多修改。之后,IBV 的 BIOS 代码会与 OEM(原始设备制造商)和 ODM(原始设计制造商)共享,他们会添加产品特定功能,如启用预启动触摸屏、屏幕键盘、预启动连接、启动硬件诊断实用程序等。最后,添加专注于板级配置的启动固件特定层后,OEM 定制的系统固件用于平台启用。这个过程通常在 IBV/ODM/OEM 端每两周进行一次。 <
超级会员免费看
订阅专栏 解锁全文
27

被折叠的 条评论
为什么被折叠?



