nyligen Intel presenterade utvecklingen av en ny firmware-arkitektur Universal Scalable Firmware (USF) som är avsett att förenkla utvecklingen av alla komponenter i den fasta programvaran för en mängd olika enhetskategorier, från servrar till system på ett chip (SoC).
USF tillhandahåller lager av abstraktion för att separera initieringslogik från hårdvara på låg nivå av de plattformskomponenter som ansvarar för konfigurering, uppdatera firmware, skydda och starta operativsystemet.
Om USF
USF har en modulär struktur som inte är bunden till specifika lösningar y gör det möjligt att använda flera befintliga projekt De implementerar hårdvaruinitiering och startsteg, såsom TianoCore EDK2 UEFI-stacken, den minimalistiska Slim Bootloader-firmwaren, U-Boot-starthanteraren och CoreBoot-plattformen.
UEFI-gränssnitt, LinuxBoot-lager (för direkt laddning av Linux-kärnan), VaultBoot (verifierad start) och ACRN-hypervisor kan användas som nyttolastmiljöer för att hitta starthanteraren och överföra kontroll till operativsystemet, förutom typiska gränssnitt som ACPI, UEFI, Kexec och Multi-boot tillhandahålls för operativsystem.
Intels USF-specifikationer består av två delar: en intern Intel-specifikation som täcker konstruktionen av SOC och dess interna gränssnitt (IP HW och IP FW); och en extern branschspecifikation som täcker gränssnitt för SOC, plattformar och OS-nyttolaster, samt att bygga och hantera kompletta firmwareprodukter och lösningar (d.v.s. hur man initierar, konfigurerar, integrerar, startar, uppgraderar och underhåller ). Den externa specifikationen är öppen för aktiv feedback och samarbete från industri- och teknikpartners. Den externa specifikationsversionen vid den första releasen börjar avsiktligt i en preliminär granskning så att teknikpartners har möjlighet att hjälpa till att förbättra dess innehåll och riktning innan slutförandet av v1.0.
USF definiera ett lager för firmware-stödpaket En separat FSP som samverkar med det generiska och anpassade Platform Orchestration Layer (POL) genom ett gemensamt API. FSP abstraherar operationer som CPU-omstart, hårdvaruinitiering, SMM (systemhanteringsläge), autentisering och verifiering på SoC-nivå.
Orkestreringsskiktet förenklar skapandet av ACPI-gränssnitt, liksom det stöder generiska nyttolastbibliotek och tillåter användning av Rust-språket för att skapa säkra firmware-komponenter och låter dig även definiera konfigurationen med YAML-markeringsspråket. POL utför även attestation (bekräftelse av äkthet), autentisering och organisation av säker installation av uppdateringar.
Med USF hoppas vi kunna hjälpa till att ta itu med branschens svagheter i firmwareutveckling, minska komplexiteten, påskynda innovation, förbättra firmwarekvalitet och säkerhet och möjliggöra framtida firmwareflexibilitet och skalbarhet på CPU:er och XPU:er.
Den nya arkitekturen förväntas tillåta:
- Minska komplexiteten och kostnaderna för att utveckla firmware för nya enheter genom att återanvända standard komponentkod, en modulär arkitektur som inte är bunden till specifika laddare och möjligheten att använda ett universellt API för att konfigurera moduler.
- Förbättra firmwarekvalitet och säkerhet genom att använda verifierbara moduler för datorinteraktion och en säkrare infrastruktur för firmwareverifiering och autentisering.
- Använd olika laddare och nyttolastkomponenter, beroende på vilka uppgifter som ska lösas.
- Påskynda utvecklingen av ny teknik och förkorta utvecklingscykeln - Utvecklare kan bara fokusera på att lägga till specifik funktionalitet, annars kan du använda beprövade, färdiga komponenter.
- Skala firmwareutveckling för olika Mixed Computing Architectures (XPUs), till exempel inklusive, förutom CPU, en integrerad diskret grafikaccelerator (dGPU) och programmerbara nätverksenheter för att accelerera nätverksdrift i datacenter som tillhandahåller molnsystem (IPU), Infrastruktur Processor).
Slutligen för dem som är intresserade av att veta mer om det, bör de veta att ett utkast till specifikation och implementering av de typiska delarna av USF-arkitekturen redan finns tillgängligt publiceras på GitHub.
Fuente: https://www.intel.com