Является ли TianoCore + coreboot действительно UEFI с открытым исходным кодом?


12

Было много споров вокруг UEFI, но нравится это или нет, это становится единственным вариантом, когда дело доходит до общедоступных системных плат для настольных ПК. Я некоторое время избегал мобов UEFI, но теперь это стало довольно сложно, поскольку поставщики mobo поставляют продукты UEFI с большим количеством функций, чем в BIOS (то есть с поддержкой большего объема оперативной памяти). Имея это в виду, я хочу быть уверенным, что по крайней мере есть возможность открыть открытый исходный код в будущем, а если нет, я могу нести больше возможностей, но больше свободы.

TianoCore является реализацией интерфейсов UEFI с открытым исходным кодом Intel, и Википедия может сказать об этом следующее :

В TianoCore отсутствуют специализированные драйверы, которые инициализируют функции набора микросхем, которые вместо этого предоставляются Coreboot, среди которых TianoCore является одним из многих вариантов полезной нагрузки. Разработка Coreboot требует сотрудничества со стороны производителей чипсетов для предоставления спецификаций, необходимых для разработки драйверов инициализации.

Мой вопрос заключается в том, требуют ли эти драйверы, предоставляемые coreboot, какие-то двоичные двоичные объекты от производителей чипсетов? Кроме того, Рональд Г. Миннич может сказать об EFI:

Доступ к адресам ввода-вывода IDE или определенным адресам памяти может быть зафиксирован в коде EFI и потенциально проверен, изменен или прерван. Многие видят в этом попытку построить «DRM BIOS».

В настройках TianoCore + coreboot, могут ли компоненты, которые могли бы сделать это с открытым исходным кодом или двоичные прошивки, предоставленные поставщиком оборудования?

Ответы:


4

Является ли TianoCore + coreboot действительно UEFI с открытым исходным кодом?

Для платформ Intel (я занимался разработкой для плат Intel, и я не могу говорить за AMD, хотя я считаю, что ситуация все та же), нет, потому что TianoCore сам по себе не может выполнить аппаратную инициализацию низкого уровня и требует, чтобы coreboot сначала выполнял эту аппаратную инициализацию. Но как это делает coreboot? coreboot вызывает определенные двоичные двоичные объекты для выполнения этих функций. Как генерируются эти двоичные двоичные объекты (например, обновления микрокода, двоичные файлы FSP, двоичные файлы ME и т. Д.)? Ну, вы не можете создать эти двоичные файлы самостоятельно, потому что они являются проприетарным кодом Intel. В лучшем случае вы можете найти те, которые относятся к вашей платформе, и включить их в процесс сборки coreboot. Пока вы не сможете свободно и открыто изменять исходный код для этих двоичных двоичных объектов, у вас не будет настоящего UEFI с открытым исходным кодом или coreboot в этом отношении.

Мой вопрос заключается в том, требуют ли эти драйверы, предоставляемые coreboot, какие-то двоичные двоичные объекты от производителей чипсетов?

да

Источники:

Опыт

исходный код coreboot

http://www.coreboot.org/TianoCore

Пакет поддержки микропрограммы Intel (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. Однако это все еще в разработке. Это также не будет «каноническим» UEFI, поскольку внешний слой будет coreboot.

Один подход, основанный на Duet, можно найти по адресу http://notabs.org/coreboot/duet-payload/ - он несколько загружается на реальном оборудовании.

Другая попытка (раскрытие: мой проект), которая пытается использовать больше Tiano и оставаться ближе к архитектуре UEFI, находится на github: https://github.com/pgeorgi/edk2/ . Этот тест еще не проводился на реальном оборудовании, только Qemu.

В принципе, он также может работать для извлечения кода из coreboot и создания пакетов tianocore из них, поэтому он выглядит и выглядит как UEFI во всех аспектах (а не только в тех, которые видны пользователю и ОС). Очевидно, что разработчики coreboot не очень заинтересованы в этом.


3

Инициализация набора микросхем и такого другого крайне низкоуровневого аппаратного кода всегда была в основном с закрытым исходным кодом. BIOS / UEFI не меняет того факта, что детали инициализации контроллера памяти и т. Д. Редко раскрываются поставщиками плат.

Чтобы иметь настоящую плату с открытым исходным кодом, вам придется искать аппаратное обеспечение с открытым исходным кодом, какой-то поставщик, который раскрывает все спецификации каждого аппаратного компонента на материнской плате. Это трудно найти, если не сказать больше.

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.