Чи є TianoCore + coreboot справжнім відкритим кодом UEFI?


12

Про UEFI було багато суперечок, але подобається це чи ні, це стає єдиним варіантом, коли мова йде про загальнодоступні материнські плати настільних ПК. Я деякий час уникав мобілів UEFI, але зараз це стало досить складно, оскільки постачальники мобо поставляють продукти UEFI з більшими можливостями, ніж BIOS (тобто підтримка більшої кількості оперативної пам'яті). Маючи на увазі, я хочу бути впевненим, що в майбутньому є принаймні варіант відкрити вихідний код, і якщо цього немає, я можу мати менше можливостей, але більше свободи.

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

TianoCore не вистачає спеціалізованих драйверів, які ініціалізують функції чіпсетів, які натомість надаються Coreboot, з яких TianoCore є одним із багатьох варіантів корисної навантаження. Розробка Coreboot вимагає співпраці виробників чіпсетів для надання специфікацій, необхідних для розробки драйверів ініціалізації.

Моє запитання: чи потрібні ці драйвери, що надаються coreboot, ще від певних постачальників чіпсетів? Також Рональд Г. Мінніч має про це сказати про ІФІ:

Доступ до адрес вводу / виводу IDE або певних адрес пам'яті може бути захоплений кодом EFI та потенційно вивчений, модифікований або перерваний. Багато хто сприймає це як намагання створити "DRM BIOS".

У налаштуваннях основного завантаження TianoCore + - це частини, які потенційно можуть робити цей відкритий чи двійковий прошивки, наданий постачальником обладнання?

Відповіді:


4

Чи є TianoCore + coreboot справжнім відкритим кодом UEFI?

Що стосується платформ Intel (я зробив розробку для плат плат Intel, і я не можу говорити за AMD, хоча я вважаю, що справа все-таки однакова), ні, тому що TianoCore сам по собі не може виконати ініціалізацію апаратного забезпечення низького рівня і вимагає, щоб основне завантаження спочатку виконало це обладнання. Але як це робить rootboot? coreboot викликає конкретні бінарні краплі для виконання цих функцій. Як створюються ці двійкові краплі (наприклад, оновлення мікрокоду, бінарні файли FSP, бінарні файли ME тощо)? Ну, ви не можете самостійно створити ці файли, тому що вони є власницьким кодом Intel. У кращому випадку ви можете отримати ті, що стосуються вашої платформи, і включити їх у процес збирання основних програм. Поки ви не зможете вільно і відкрито модифікувати джерело для цих бінарних крапок, у вас не буде справжнього UEFI з відкритим кодом або основного завантаження з цього питання.

Моє запитання: чи потрібні ці драйвери, що надаються 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

Можливо поєднати основну завантажувальну систему (роблячи ранню ініціалізацію обладнання) та TianoCore (надаючи API UEFI) для повної реалізації програмного забезпечення UEFI. Однак це ще в розвитку. Він також не буде "канонічним" UEFI, оскільки зовнішній шар буде основним.

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

Ще одна (розкриття: мій проект) спроба, яка намагається повторно використовувати більше Тіано та наблизитися до архітектури UEFI, - це github: https://github.com/pgeorgi/edk2/ . Цей ще не бачив багато тестування реального обладнання, просто Qemu.

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


3

Ініціалізація чіпсетів та подібний інший надзвичайно низький рівень апаратного коду завжди був переважно з закритим кодом. BIOS / UEFI не змінює той факт, що виробники плати рідко розкривають дані про ініціалізацію контролера пам'яті тощо.

Щоб мати справжню плату з відкритим кодом, вам доведеться шукати апаратне забезпечення з відкритим кодом, якогось постачальника, який розкриває всі технічні характеристики кожного компонента обладнання на материнській платі. Це, важко, знайти.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.