È disponibile il rilascio del progetto CoreBoot 4.22, nell'ambito del quale viene sviluppata un'alternativa libera ai firmware e BIOS proprietari. Il codice del progetto è distribuito con licenza GPLv2. Nella creazione della nuova versione hanno partecipato 135 sviluppatori, che hanno preparato 977 modifiche. Si segnala che a partire dal prossimo rilascio, il progetto passerà a un nuovo schema di denominazione delle versioni, che utilizza un legame con la data (anno.mese.aggiornamento); ad esempio, a febbraio 2024, invece della versione 4.23 sarà rilasciata la versione 24.02.00.
Variazioni principali:
- Aggiunta l'implementazione iniziale della piattaforma AMD openSIL (Open-Source Silicon Initialization Library), che sviluppa componenti per semplificare la creazione di firmware.
- Aggiunto supporto per 17 schede madri. 11 delle schede aggiunte sono utilizzate su dispositivi con Chrome OS o su server Google. Schede non correlate a Google:
- AMD Onyx
- Intel Meteorlake-P RVP
- Purism Librem 11
- Purism Librem L1UM v2
- Siemens FA EHL
- Supermicro X11SSW-F
- Aggiunto supporto per il SoC AMD Genoa.
- Sull'architettura x86, nelle fasi precedenti all'inizializzazione della memoria, è stata implementata la supporto per la sezione «.data», che consente di utilizzare definizioni di variabili globali nel codice in linguaggio C. Nella fase del blocco di avvio, i dati vengono collegati immediatamente dopo il codice e poi vengono collocati nella cache, utilizzando il concetto di Cache-As-RAM (VMA).
- Per i sistemi x86, nella fase ramstage e nelle fasi precedenti all'inizializzazione della memoria, è stata implementata la supporto per la cache del filesystem CBFS, utilizzata per posizionare i componenti di Coreboot su Flash. La cache CBFS consente di estrarre i file CBFS utilizzando la funzione cbfs_map() senza riservare un'area di memoria separata per il file. Per configurare la dimensione della cache, sono stati proposti i parametri PRERAM_CBFS_CACHE_SIZE e RAMSTAGE_CBFS_CACHE_SIZE.
- Aggiunta la possibilità di incorporare romstage nel blocco di avvio (bootblock). La fornitura di romstage come parte del blocco di avvio consente di ridurre la dimensione del codice di 10-20 mila righe. Tra le situazioni in cui potrebbe essere necessaria una fornitura separata di romstage sono menzionate configurazioni con vboot o modalità di fallback, oltre a dispositivi con dimensioni limitate del blocco di avvio (Intel APL 32K) o supporti di avvio troppo lenti (alcuni SoC ARM).
- In gfx è stato aggiunto un API per determinare la presenza di un display esterno su dispositivi con chip Intel.
- In pci_rom è stata implementata la possibilità di aggiungere un checksum per VBIOS durante la compilazione della tabella VFCT. Un checksum simile è controllato da alcuni driver AMD per Windows.
- Sono state aggiunte modifiche che consentono di avviare Windows su alcuni dispositivi Chromebook con Coreboot.
- È stata implementata la generazione della tabella ACPI per i dispositivi basati sull'architettura ARM64.
- È stata migliorata la compatibilità con le specifiche ACPI.
- Le impostazioni MRC (Memory Reference Code) per le schede SNB+MRC sono state spostate nella struttura DeviceTree.
- Aggiornati i componenti payload basati su U-Boot ed edk2.
- Aggiornati gli strumenti utilizzati: GMP 6.3.0, binutils 2.41 e MPFR 4.2.1.
- Il ramo principale nel repository Git è stato rinominato da «master» a «main».
Fonte: opennet.ru
