Czy TianoCore + coreboot to prawdziwy UEFI typu open source?

12

UEFI wzbudziło wiele kontrowersji, ale to się podoba czy nie, staje się jedyną opcją, jeśli chodzi o ogólnie dostępne płyty główne do komputerów stacjonarnych. Od pewnego czasu unikam mobo UEFI, ale teraz stało się to dość trudne, ponieważ dostawcy mobo dostarczają produkty UEFI z więcej funkcji niż BIOS (tj. Wsparcie dla większej ilości pamięci RAM). Mając to na uwadze, chcę mieć pewność, że w przyszłości będzie przynajmniej opcja wyboru oprogramowania typu open source, a jeśli nie będzie, mogę znieść mniej funkcji, ale więcej swobody.

TianoCore to implementacja interfejsów UEFI typu open source firmy Intel, a Wikipedia ma o tym do powiedzenia :

W TianoCore brakuje wyspecjalizowanych sterowników inicjujących funkcje mikroukładu, które zamiast tego są dostarczane przez Coreboot, z których TianoCore jest jedną z wielu opcji ładunku. Rozwój Coreboot wymaga współpracy producentów chipsetów w celu dostarczenia specyfikacji potrzebnych do opracowania sterowników inicjalizacyjnych.

Moje pytanie brzmi: czy te sterowniki dostarczone przez coreboot nadal wymagają jakiegoś binarnego obiektu blob od dostawców chipsetu? Ponadto, Ronald G. Minnich ma do powiedzenia na temat EFI:

Dostęp do adresów we / wy IDE lub niektórych adresów pamięci można uwięzić w kodzie EFI i potencjalnie zbadać, zmodyfikować lub przerwać. Wielu uważa to za próbę zbudowania „DRM BIOS”.

Czy w konfiguracji coreboot TianoCore + części mogą potencjalnie zrobić to oprogramowanie typu open source lub oprogramowanie binarne dostarczone przez dostawcę sprzętu?

Czerwony
źródło

Odpowiedzi:

4

Czy TianoCore + coreboot to prawdziwy UEFI typu open source?

W przypadku platform Intela (opracowałem już płyty Intela i nie mogę mówić w imieniu AMD, ale uważam, że sprawa jest nadal taka sama), nie, ponieważ sam TianoCore nie jest w stanie przeprowadzić inicjalizacji sprzętowej niskiego poziomu i najpierw wymaga rootboota, aby wykonać tę inicjację sprzętową. Ale jak robi to Coreboot? coreboot wywołuje określone binarne obiekty BLOB w celu wykonania tych funkcji. W jaki sposób generowane są te binarne obiekty blob (np. Aktualizacje mikrokodu, pliki binarne FSP, pliki binarne ME itp.)? Cóż, nie możesz sam zbudować tych plików binarnych, ponieważ są one zastrzeżonymi kodami Intela. W najlepszym razie możesz pobrać te związane z twoją platformą i włączyć je do procesu kompilacji coreboot. Dopóki nie będziesz w stanie swobodnie i otwarcie modyfikować źródła dla tych binarnych obiektów blob, nie będziesz mieć prawdziwego UEFI typu open source ani coreboota.

Moje pytanie brzmi: czy te sterowniki dostarczone przez coreboot nadal wymagają jakiegoś binarnego obiektu blob od dostawców chipsetu?

tak

Źródła:

Doświadczenie

kod źródłowy coreboot

http://www.coreboot.org/TianoCore

Pakiet oprogramowania układowego Intel (FSP)
http://www.intel.com/content/www/us/en/intelligent-systems/intel-firmware-support-package/intel-fsp-overview.html

Aktualizacja mikrokodu (często stosowana przez BIOS, ale nie musi).
Https://wiki.debian.org/Microcode

penguin4hire
źródło
2
Milind R ma również rację w tym, że otwarty sprzęt jest niezbędnym wymogiem.
penguin4hire
4

Możliwe jest połączenie Coreboot (wczesna inicjalizacja sprzętowa) i TianoCore (zapewnienie interfejsu API UEFI) z pełną implementacją oprogramowania układowego UEFI. Jednak wciąż jest w fazie rozwoju. Nie będzie to również „kanoniczny” UEFI, ponieważ zewnętrzną warstwą będzie coreboot.

Jedno podejście oparte na Duet można znaleźć na stronie http://notabs.org/coreboot/duet-payload/ - uruchamia się nieco na prawdziwym sprzęcie.

Kolejna próba (ujawnienie: mój projekt), która próbuje ponownie wykorzystać więcej Tiano i pozostać bliżej architektury UEFI, jest na github: https://github.com/pgeorgi/edk2/ . Ten nie widział jeszcze wielu testów na prawdziwym sprzęcie, tylko Qemu.

Zasadniczo może również działać, aby pobrać kod coreboot i zrobić z nich pakiety tianocore, więc wygląda i działa jak UEFI pod każdym względem (nie tylko te widoczne dla użytkownika i systemu operacyjnego). Oczywiście programiści Coreboot nie są tym bardzo zainteresowani.

Patrick Georgi
źródło
3

Inicjalizacja chipsetu i taki inny, bardzo niski poziom specyficzny dla sprzętu kod zawsze były w większości zamknięte. BIOS / UEFI nie zmienia faktu, że szczegóły dotyczące inicjalizacji kontrolera pamięci itp. Są rzadko ujawniane przez sprzedawców płyt.

Aby mieć prawdziwą płytę typu open source, musisz poszukać sprzętu typu open source, jakiegoś dostawcy, który ujawnia wszystkie specyfikacje każdego elementu sprzętowego na płycie głównej. Co najmniej trudno to znaleźć.

Milind R.
źródło