Die Firma Intel entwickelt eine neue Architektur für die Universal Scalable Firmware (USF), die darauf abzielt, die Entwicklung aller Komponenten des Software-Stacks für Firmware zu vereinfachen, die für verschiedene Gerätekategorien von Servern bis hin zu Systemen auf einem Chip (SoC) reicht. USF bietet Abstraktionslevel, die es ermöglichen, die Logik der Low-Level-Hardwareinitialisierung von den Plattformkomponenten zu trennen, die für die Konfiguration, das Firmware-Update, die Sicherheitsüberprüfung und das Booten des Betriebssystems zuständig sind. Ein Entwurf der Spezifikation und der Implementierung der typischen Elemente der USF-Architektur wurde auf GitHub veröffentlicht.
USF hat eine modulare Struktur, die nicht an bestimmte Lösungen gebunden ist und es ermöglicht, verschiedene bestehende Projekte zu nutzen, die Phasen der Hardwareinitialisierung und des Bootens implementieren, wie das UEFI-Stack TianoCore EDK2, die minimalistische Firmware Slim Bootloader, den Bootloader U-Boot und die Plattform CoreBoot. Als Payload-Umgebungen, die zum Auffinden des Bootloaders und zur Übergabe der Kontrolle an das Betriebssystem verwendet werden, können das UEFI-Interface, die LinuxBoot-Schicht (für das direkte Booten des Linux-Kernels), VaultBoot (verifiziertes Booten) und der Hypervisor ACRN eingesetzt werden. Für Betriebssysteme werden typische Schnittstellen wie ACPI, UEFI, Kexec und Multi-boot bereitgestellt.
USF hebt eine separate Schicht zur Unterstützung von Hardware (FSP, Firmware Support Package) hervor, die über eine gemeinsame API mit der universellen und anpassbaren Schicht zur Plattform-Orchestrierung (POL, Platform Orchestration Layer) interagiert. FSP abstrahiert solche Operationen wie CPU-Reset, Hardwareinitialisierung, die Arbeit mit SMM (System Management Mode), Authentifizierung und Verifizierung auf SoC-Ebene. Die Orchestrierungsschicht vereinfacht die Erstellung von ACPI-Schnittstellen, unterstützt typische Bootloader-Bibliotheken, ermöglicht die Nutzung von Rust zur Erstellung sicherer Firmware-Komponenten und gibt die Möglichkeit, die Konfiguration mithilfe der Markupsprache YAML festzulegen. Auf der POL-Ebene werden auch Attestierung (Authentifizierung) und Organisation der sicheren Installation von Updates durchgeführt.

Es wird erwartet, dass die neue Architektur Folgendes ermöglicht:
- Die Komplexität und die Kosten der Entwicklung von Firmware für neue Geräte reduzieren, indem vorhandener Code standardisierter Komponenten wiederverwendet wird, eine modulare Architektur eingesetzt wird, die nicht an bestimmte Bootloader gebunden ist, und durch die Möglichkeit, eine universelle API zur Konfiguration der Module zu nutzen.
- Die Qualität und Sicherheit der Firmware erhöhen, indem verifizierbare Module für die Interaktion mit der Hardware und eine sicherere Infrastruktur zur Überprüfung der Authentizität und Verifizierung der Firmware verwendet werden.
- Verschiedene Bootloader und Payload-Komponenten je nach den zu lösenden Aufgaben nutzen.
- Die Förderung neuer Technologien beschleunigen und den Entwicklungszyklus verkürzen – Entwickler können sich ausschließlich auf die Implementierung spezifischer Funktionen konzentrieren und dabei auf bewährte Komponenten zurückgreifen.
- Die Entwicklung von Firmware für verschiedene gemischte Rechenarchitekturen (XPU) skalieren, die neben der CPU auch einen eingebetteten diskreten Grafikbeschleuniger (dPGU) und programmierbare Netzwerkgeräte zur Beschleunigung von Netzwerkoperationen in Rechenzentren, die Cloud-Systeme unterstützen (IPU, Infrastructure Processing Unit), umfassen.
Quelle: opennet.ru
