开源与混合固件架构:挑战与解决方案
在当今的科技领域,硅供应商在开源硅初始化代码方面面临着诸多挑战,同时,开源社区在面对闭源开发时也有不少困扰。而混合固件架构为解决这些问题提供了一种可能的途径。
1. 硅供应商面临的开源挑战
硅供应商在开源专有硅初始化代码时,会遇到一系列的挑战,具体如下:
- 数据手册依赖 :系统固件编程需对芯片组和 CPU 寄存器进行编程,但硅参考代码所编程的寄存器并非都在公开数据手册中记录。硅工程师或发布负责人可能无权先将这些寄存器公开,每次代码更改依赖外部文档还会延迟项目里程碑。而且,许多寄存器被视为“受限机密”,原因包括通过专有总线接口访问、与电源管理控制器交互等。按照开源编程模型和审查者的期望,所有被编程的寄存器都应在外部数据手册中无限制访问地记录。
- 第三方 IP 限制 :开发硅参考代码需要与第三方 IP 所有者合作,他们通常会提供特定许可证下的参考代码,禁止硅供应商重新分发。例如,内存供应商提供的内存参考代码(MRC)不能作为硅参考代码的一部分再分发,离散 GPU 初始化代码也不能包含在硅参考代码版本中。OEM 需要与特定的独立硬件供应商(IHV)合作以获取这些参考代码。
- 缺乏兼容性的硅参考代码开发 :通常,硅参考代码的开发不保证向后兼容性,这使得很难确定从上一代继承的代码比例。如果在系统固件编程中不使用硬件寄存器的版本控制方法,就难以确定新芯片组的所有寄存器是否受限且不能开源可见。AMD 的 AGESA 开源硅开发计划就因每次外部发布前对代码库进行大规模 IP 法律审查而未能持续,该过程耗时费力,还导致产品发货延迟,后
超级会员免费看
订阅专栏 解锁全文
1359

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



