Byl vydán projekt CoreBoot 4.17, jehož cílem je vyvinout svobodnou alternativu proprietárním firmwarům a BIOSu. Kód projektu se distribuuje pod licencí GPLv2. Na vývoji nové verze se podílelo 150 vývojářů, kteří připravili více než 1300 změn.
Hlavní změny:
- Byla odstraněna zranitelnost (CVE-2022-29264), která se objevovala ve verzích CoreBoot od 4.13 do 4.16 a umožňovala na systémech s AP (Application Processor) vykonávat kód na úrovni SMM (System Management Mode), tedy s vyšší prioritou (Ring -2) než hypervizor a nulový ochranný kruh s neomezeným přístupem k celé paměti. Problém byl způsoben nesprávným voláním zpracovatele SMI v modulu smm_module_loader.
- Byla přidána podpora 12 základních desek, z nichž 5 se používá na zařízeních s Chrome OS nebo na serverech Google. Mezi desky nesouvisející s Googlem patří:
- Clevo L140MU / L141MU / L142MU
- Dell Precision T1650
- HP Z220 CMT Workstation
- Star Labs LabTop Mk III (i7-8550u), LabTop Mk IV (i3-10110U, i7-10710U), Lite Mk III (N5000) a Lite Mk IV (N5030).
- Byla ukončena podpora základních desek Google Deltan a Deltaur.
- Byl přidán nový payload coreDOOM, který umožňuje spustit hru DOOM z Corebootu. V projektu byl použit kód doomgeneric, portovaný na libpayload. Pro výstup se používá lineární frame buffer Coreboot a WAD soubory s herními zdroji se načítají z CBFS.
- Byly aktualizovány payload komponenty SeaBIOS 1.16.0 a iPXE 2022.1.
- Byl přidán režim SeaGRUB (GRUB2 nad SeaBIOS), který umožňuje v GRUB2 využívat callbacky poskytované SeaBIOS, například pro přístup k hardwaru, ke kterému nemá payload GRUB2 přístup.
- Byla přidána ochrana proti útoku SinkHole, která umožňuje vykonávat kód na úrovni SMM (System Management Mode).
- Byla implementována vestavěná funkce pro generování statických tabulek stránek paměti z assemblerových souborů, bez nutnosti volání externích utilit.
- Bylo povoleno zapisování ladících informací do konzole CBMEMC z zpracovatelů SMI při použití DEBUG_SMI.
- Byl změněn systém zpracovatelů inicializace CBMEM, místo vázaných k fázím zpracovatelů *_CBMEM_INIT_HOOK byly nabídnuty dva zpracovatele CBMEM_CREATION_HOOK (používá se v počáteční fázi, která vytváří cbmem) a CBMEM_READY_HOOK (používá se v jakýchkoli fázích, ve kterých již byl cbmem vytvořen).
- Byla přidána podpora PSB (Platform Secure Boot), aktivovaná procesorem PSP (Platform Security Processor) pro ověření integrity BIOSu pomocí digitálního podpisu.
- Byla přidána vlastní implementace zpracovatele ladících dat, která jsou předávána z FSP (FSP Debug Handler).
- Byly přidány funkce specifické pro výrobce TIS (TPM Interface Specification) pro čtení a zápis přímo z registrů TPM (Trusted Platform Module) — tis_vendor_read() a tis_vendor_write().
- Byla přidána podpora pro zachycení dereferencování null ukazatelů prostřednictvím ladicích registrů.
- Bylo implementováno rozpoznávání zařízení i2c, což usnadňuje práci s deskami vybavenými touchpadami nebo dotykovými obrazovkami různých výrobců.
- Byla přidána možnost ukládat časová data ve formátu vhodném pro generování grafů FlameGraph, které názorně ukazují, kolik času se tráví na různých fázích spuštění.
- Do utility cbmem byla přidána možnost přidání do tabulky cbmem "timestamp" času z uživatelského prostoru, což umožňuje odrážet v cbmem události ve fázích, které nastávají po CoreBoot.
Dále lze zmínit publikaci nadací OSFF (Open-Source Firmware Foundation) otevřeného dopisu společnosti Intel, ve kterém se navrhuje učinit moduly podpory firmware (FSP, Firmware Support Package) více modulárními a začít publikovat dokumentaci související s inicializací SoC Intel. Nedostatek kódu FSP významně ztěžuje vytváření otevřených firmware a brání pokroku projektů Coreboot, U-Boot a LinuxBoot na hardwaru Intel. Dříve podobná iniciativa završila úspěchem a společnost Intel otevřela kód požadovaných komunitních firmware bloků PSE (Programmable Services Engine).
Zdroj: opennet.ru
