TianoCore + coreboot是真正的开源UEFI吗?


12

关于UEFI一直存在很多争议,但不管是否喜欢,它都成为通用台式机主板的唯一选择。我已经避免UEFI主板已有一段时间了,但是现在,随着主板供应商提供的UEFI产品具有比BIOS更多的功能(即支持更多RAM),这变得非常困难。考虑到这一点,我想确保将来至少可以选择开放源代码,如果没有,我可以接受更少的功能,但拥有更多的自由。

TianoCore是Intel的UEFI接口的开源实现,Wikipedia对此有以下说明

TianoCore缺少用于初始化芯片组功能的专用驱动程序,这些驱动程序由Coreboot提供,而其中的TianoCore是许多有效负载选项之一。Coreboot的开发需要芯片组制造商的合作,以提供开发初始化驱动程序所需的规范。

我的问题是,coreboot提供的这些驱动程序是否仍需要芯片组供应商提供的某种二进制blob?另外,Ronald G. Minnich对EFI的说法如下:

对IDE I / O地址或某些内存地址的访问可能被捕获到EFI代码中,并有可能被检查和修改或中止。许多人将其视为构建“ DRM BIOS”的一种努力。

在TianoCore + coreboot设置中,部件是否可以潜在地由硬件供应商提供开源或二进制固件?

Answers:


4

TianoCore + coreboot是真正的开源UEFI吗?

对于Intel平台(我已经为Intel主板进行过开发,尽管我相信情况仍然相同,但我无法代表AMD发言),不可以,因为TianoCore本身无法执行低级别的硬件初始化,并且需要coreboot首先进行此硬件初始化。但是coreboot如何做到这一点?coreboot调用特定的二进制blob来执行这些功能。如何生成这些二进制Blob(例如,微代码更新,FSP二进制文件,ME二进制文件等)?好吧,您不能自己构建这些二进制文件,因为它们是英特尔专有代码。充其量,您可以检索与平台相关的内容,并将其包含在coreboot构建过程中。除非您能够自由和开放地修改这些二进制Blob的源,否则您将没有真正的开源UEFI或coreboot。

我的问题是,coreboot提供的这些驱动程序是否仍需要芯片组供应商提供的某种二进制blob?

资料来源:

经验

coreboot源代码

http://www.coreboot.org/TianoCore

英特尔固件支持包(FSP)
http://www.intel.com/content/www/us/en/intelligent-systems/intel-firmware-support-package/intel-fsp-overview.html

微码更新(通常由BIOS应用,但并非必须如此。)
https://wiki.debian.org/Microcode


2
Milind R也有一个很好的观点,那就是开放硬件是必不可少的要求。
penguin4hire

4

可以将coreboot(进行早期硬件初始化)和TianoCore(提供UEFI API)组合在一起,以实现完整的UEFI固件实现。但是,这仍在开发中。由于外层将是coreboot,因此它也不是“规范的” UEFI。

一种基于Duet的方法可以在http://notabs.org/coreboot/duet-payload/中找到-它可以在实际硬件上启动。

另一个尝试重用Tiano并保持与UEFI架构更接近的尝试(公开:我的项目)在github上:https : //github.com/pgeorgi/edk2/。到目前为止,还没有人在真正的硬件上进行过很多测试,只是Qemu。

原则上,也可以使用coreboot代码并制作出tianocore程序包,因此它在各个方面的外观都感觉像UEFI(不仅仅是用户和OS可见的那些)。显然,coreboot开发人员对此并不十分感兴趣。


3

芯片组初始化和其他极端低级的硬件特定代码一直都是封闭源代码。BIOS / UEFI不会改变主板供应商很少披露内存控制器初始化等细节的事实。

要拥有真正的开源板,您必须寻找开源硬件,一些供应商会公开主板上每个硬件组件的所有规格。至少可以说这很难找到。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.