È stato pubblicato il rilascio del progetto CoreBoot 4.16, un'alternativa libera ai firmware e BIOS proprietari. Il codice del progetto è distribuito con licenza GPLv2. Alla creazione della nuova versione hanno partecipato 170 sviluppatori che hanno preparato 1770 modifiche.
Novità principali:
- È stato aggiunto il supporto per 33 schede madri, 22 delle quali sono utilizzate su dispositivi con Chrome OS o su server Google. Tra le schede non collegate a Google:
- Acer Aspire VN7-572G
- AMD Chausie
- ASROCK H77 Pro4-M
- ASUS P8Z77-M
- Emulazione QEMU power9
- Intel Alderlake-N RVP
- Prodrive Atlas
- Star Labs Star Labs StarBook Mk V (i3-1115G4 e i7-1165G7)
- System76 gaze16 3050, 3060 e 3060-b
- È stata interrotta la supporto per le schede madri Google Corsola, Nasher e Stryke.
- È stato aggiunto il supporto per CPU Power9 e SoC AMD Sabrina.
- È stata aggiunta un'opzione per disabilitare il sottosistema IME (Intel Management Engine), fornito nella maggior parte delle schede madri moderne con processori Intel e implementato come microprocessore separato, funzionante indipendentemente dalla CPU e svolgendo compiti che devono essere separati dal sistema operativo, come la gestione dei contenuti protetti (DRM), l'implementazione dei moduli TPM (Trusted Platform Module) e interfacce a basso livello per il monitoraggio e la gestione dell'hardware. Per disabilitare l'IME nei sistemi con processori dalla famiglia Skylake fino ad Alder Lake, è stato utilizzato il parametro me_state nel CMOS, assegnando a esso il valore 1 per disattivare il motore. È stato aggiunto il metodo “.enable” per modificare lo stato CSME tramite CMOS, il cui stato corrisponde al parametro me_state.
- È stato aggiunto coreboot-configurator, una semplice interfaccia grafica per modificare le impostazioni CMOS in Coreboot CBFS, utilizzando l'utility nvramtool.
- È stata aggiunta l'utility apcb_v3_edit per la modifica dei file binari APCB V3 (AMD PSP Customization Block) e la loro sostituzione con fino a 16 SPD (Serial Presence Detect).
- Sono stati aggiornati i sottomoduli amd_blobs, arm-trusted-firmware, blobs, chromeec, intel-microcode, qc_blobs e vboot.
- Nel MP init è stato spostato il codice per la configurazione del LAPIC (Local Advanced Programmable Interrupt Controller).
- È stato aggiunto il supporto per sequenze di escape ANSI per evidenziare eventi importanti, come errori e avvisi, durante la visualizzazione dei log nella console interattiva.
- È stata implementata la funzione cbmem_dump_console, simile a cbmem_dump_console_to_uart, ma funzionante con console normalmente configurate.
- Le impostazioni dell'immagine Live sono state adattate per lavorare con la distribuzione NixOS 21.11. È stato interrotto il supporto per il pacchetto iasl, sostituito da acpica-tools.
- Il bootloader U-Boot è stato aggiornato alla versione 2021.10.
- Supporto aggiunto per sistemi che includono oltre 128 core CPU.
- Driver aggiunto per sensori di prossimità Semtech sx9360 SAR, utilizzati nei dispositivi Samsung.
- Driver aggiunto per i controller SD SGenesys Logic GL9750, utilizzati nei Chromebook.
- Supporto aggiunto per i controller Ethernet Realtek RT8125.
- Driver aggiunto per Fibocom 5G WWAN ACPI.
- Supporto aggiunto per topologie di memoria miste con l'uso di DDR4.
- Supporto aggiunto per la specifica FSP 2.3 (Flexible Software Package).
- Codice riprogettato per il calcolo degli hash utilizzati nella verifica e valutazione dello stato di CBFS.
- Supporto aggiunto per la tecnologia PCI-e Resizable BAR (Base Address Registers), che consente alla CPU di accedere all'intera memoria video della scheda PCI.
Inoltre, è stato presentato un piano di transizione a partire dal rilascio 4.18 per la quarta revisione del meccanismo di allocazione delle risorse (RESOURCE_ALLOCATOR_V4), nel quale è stato aggiunto il supporto per la manipolazione di più intervalli di risorse, l'uso dell'intero spazio degli indirizzi e l'assegnazione di memoria nell'area oltre 4 GB. Nel rilascio di Coreboot 4.18, atteso a novembre, è prevista anche l'obsolescenza del meccanismo di inizializzazione del multiprocessore classico (LEGACY_SMP_INIT), sostituito dal codice di inizializzazione PARALLEL_MP.
Fonte: opennet.ru
