TianoCore + coreboot è un vero UEFI open source?


12

Ci sono state molte controversie sull'UEFI, ma piaccia o no, sta diventando l'unica opzione quando si tratta di schede madri desktop generalmente disponibili. Evito i mobi UEFI da un po 'di tempo, ma ora è diventato abbastanza difficile poiché i fornitori mobo spediscono prodotti UEFI con più funzionalità rispetto a quelli BIOS (ovvero supporto per più RAM). Ciò in mente, voglio essere sicuro che ci sarà almeno un'opzione per andare all'open source in futuro e, in caso contrario, posso sopportare meno funzioni ma più libertà.

TianoCore è l'implementazione open source di Intel delle interfacce UEFI e Wikipedia ha questo da dire al riguardo :

A TianoCore mancano i driver specializzati che inizializzano le funzioni del chipset, che sono invece fornite da Coreboot, di cui TianoCore è una delle molte opzioni di payload. Lo sviluppo di Coreboot richiede la collaborazione dei produttori di chipset per fornire le specifiche necessarie per sviluppare i driver di inizializzazione.

La mia domanda è: questi driver forniti da coreboot richiedono ancora qualche tipo di BLOB binari dai fornitori di chipset? Inoltre, Ronald G. Minnich ha questo da dire su EFI:

Gli accessi agli indirizzi I / O IDE, o determinati indirizzi di memoria, possono essere bloccati nel codice EFI e potenzialmente esaminati, modificati o interrotti. Molti vedono questo come uno sforzo per costruire un "BIOS DRM".

In una configurazione di TianoCore + coreboot, ci sono parti che potrebbero potenzialmente fare quel firmware open source o binario fornito dal fornitore dell'hardware?

Risposte:


4

TianoCore + coreboot è un vero UEFI open source?

Per le piattaforme Intel (ho fatto lo sviluppo per le schede Intel e non posso parlare per AMD anche se credo che il caso sia sempre lo stesso), no, perché TianoCore da solo non può eseguire l'inizializzazione dell'hardware di basso livello e richiede coreboot per eseguire prima questo init hardware. Ma come fa coreboot a fare questo? coreboot richiama BLOB binari specifici per eseguire queste funzioni. Come vengono generati questi BLOB binari (ad es. Aggiornamenti di microcodici, binari FSP, binari ME, ecc.)? Bene, non puoi creare questi binari da solo perché sono codici proprietari Intel. Nella migliore delle ipotesi, è possibile recuperare quelli pertinenti alla propria piattaforma e includerli nel processo di generazione di coreboot. Fino a quando non sarai in grado di modificare liberamente e apertamente l'origine di questi BLOB binari, non avrai un vero UEFI open source o coreboot per quella materia.

La mia domanda è: questi driver forniti da coreboot richiedono ancora qualche tipo di BLOB binari dai fornitori di chipset?

fonti:

Esperienza

codice sorgente coreboot

http://www.coreboot.org/TianoCore

Intel Firmware Support Package (FSP)
http://www.intel.com/content/www/us/en/intelligent-systems/intel-firmware-support-package/intel-fsp-overview.html

Aggiornamento microcodice (spesso applicato dal BIOS ma non necessario)
https://wiki.debian.org/Microcode


2
Milind R sottolinea anche che l'hardware aperto è un requisito necessario.
penguin4hire,

4

È possibile combinare coreboot (inizializzazione hardware anticipata) e TianoCore (fornendo l'API UEFI) a un'implementazione completa del firmware UEFI. Tuttavia, è ancora in fase di sviluppo. Inoltre non sarà un UEFI "canonico" poiché lo strato esterno sarà coreboot.

Un approccio, basato su Duet, può essere trovato su http://notabs.org/coreboot/duet-payload/ - si avvia in qualche modo su hardware reale.

Un altro tentativo (divulgazione: il mio progetto) che tenta di riutilizzare maggiormente Tiano e di avvicinarsi all'architettura UEFI è su github: https://github.com/pgeorgi/edk2/ . Questo non ha ancora visto molti test su hardware reale, solo Qemu.

In linea di principio, potrebbe anche funzionare per prendere il codice coreboot e ricavarne i pacchetti tianocore, in modo che sembri UEFI sotto ogni aspetto (non solo quelli visibili all'utente e al sistema operativo). Ovviamente gli sviluppatori coreboot non sono molto interessati a questo.


3

L'inizializzazione del chipset e tale altro codice specifico hardware di livello estremamente basso è sempre stata per lo più a codice chiuso. BIOS / UEFI non cambia il fatto che i dettagli dell'inizializzazione del controller di memoria ecc. Vengono raramente divulgati dai produttori di schede.

Per avere una vera scheda open source, dovrai cercare hardware open source, un fornitore che espone tutte le specifiche di ciascun componente hardware sulla scheda madre. È difficile da trovare, per non dire altro.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.