Spoločnosť Intel vyvíja novú architektúru firmvérov Universal Scalable Firmware (USF), zameranú na zjednodušenie vývoja všetkých komponentov softvérového zásobníka firmvérov pre rôzne kategórie zariadení, od serverov po systémy na čipe (SoC). USF poskytuje úrovne abstrakcie, ktoré umožňujú oddeliť logiku nízkoúrovňovej inicializácie hardvéru od komponentov platformy zodpovedných za nastavenie, aktualizáciu firmvéru, zabezpečenie a zavádzanie operačného systému. Návrh špecifikácie a implementácie typových prvkov architektúry USF je zverejnený na GitHub.
USF má modulárnu štruktúru, ktorá nie je viazaná na konkrétne riešenia a umožňuje používať rôzne existujúce projekty implementujúce fázy inicializácie hardvéru a zavádzania, ako sú UEFI-zásobník TianoCore EDK2, minimalistický firmvér Slim Bootloader, zavádzač U-Boot a platforma CoreBoot. Ako prostredie payload, ktoré sa používajú na vyhľadávanie zavádzača a prenos riadenia operačnému systému, môžu byť použité rozhrania UEFI, vrstva LinuxBoot (na priamy štart jadra Linuxu), VaultBoot (overené zavádzanie) a hypervízor ACRN. Pre operačné systémy sú k dispozícii typové rozhrania ako ACPI, UEFI, Kexec a Multi-boot.
USF vyčleňuje samostatnú vrstvu na podporu hardvéru (FSP, Firmware Support Package), ktorá interaguje s univerzálnou a prispôsobiteľnou vrstvou orchestrácie platformy (POL, Platform Orchestration Layer) cez spoločné API. FSP abstrahuje operácie ako reset CPU, inicializáciu hardvéru, prácu so SMM (System Management Mode), autentifikáciu a overenie na úrovni SoC. Orchestrácia vrstvy zjednodušuje vytváranie rozhraní ACPI, podporuje typové knižnice zavádzačov, umožňuje používanie jazyka Rust na vytváranie zabezpečených komponentov firmvéru a poskytuje možnosť definovať konfiguráciu pomocou značkovacieho jazyka YAML. Na úrovni POL sa tiež vykonáva atestácia (potvrdenie pôvodu), autentifikácia a organizácia bezpečnej inštalácie aktualizácií.

Očakáva sa, že nová architektúra umožní:
- Znížiť zložitosti a náklady na vývoj firmvéru pre nové zariadenia využitím opätovného nasadenia kódu existujúcich typových komponentov, modulárnej architektúry, ktorá nie je viazaná na konkrétne bootloadery, a možnosti použitia univerzálneho API na konfiguráciu modulov.
- Zvýšiť kvalitu a bezpečnosť firmvéru, vďaka používaniu verifikovateľných modulov na interakciu s hardvérom a bezpečnejšej infraštruktúry na overovanie a verifikáciu firmvéru.
- Použiť rôzne bootloadery a payload komponenty v závislosti od riešených úloh.
- Urýchliť zavádzanie nových technológií a skrátiť vývojový cyklus — vývojári sa môžu sústrediť len na pridávanie špecifických funkcií, zatiaľ čo ostatné používajú overené komponenty.
- Škálovať vývoj firmvéru pre rôzne zmiešané výpočtové architektúry (XPU), napríklad zahrňujúce okrem CPU aj integrované diskrétne grafické akcelerátory (dPGU) a programovateľné sieťové zariadenia na urýchlenie vykonávania sieťových operácií v dátových centrách podporujúcich cloudové systémy (IPU, Infrastructure Processing Unit).
Zdroj: opennet.ru
