11

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

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

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

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

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

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

3 ответа3

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 не очень заинтересованы в этом.

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

3

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

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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .