Die Entwickler des freien NVIDIA-Grafiktreibers Nouveau haben am 17. Januar 2016 zwei Patchserien zur Firmware-Verwaltung veröffentlicht. Die erste Serie bündelt das Laden der Firmware in gemeinsamen Funktionen. Eine zweite Patchserie ergänzt die Grundlage für Secure Boot bei diskreten GPUs und Tegra-Systemen.
Nouveau besteht aus einem Linux-Kerneltreiber sowie OpenGL- und Vulkan-Komponenten in Mesa. Das Projekt ist damit auch für Linux-Gaming und technische Entwicklungsumgebungen relevant. Die offizielle Projektseite von Nouveau dokumentiert diese Aufteilung und den aktuellen Entwicklungsstand.
Gemeinsamer Pfad für die Firmware
Alexandre Courbot schlug vor, dass die verschiedenen Nouveau-Komponenten ihre Firmware über einen einheitlichen Satz von Funktionen laden. Als gemeinsamer Ablageort ist in der Patchbeschreibung das Verzeichnis nvidia/<chip>/ vorgesehen. Betroffen sind unter anderem Falcon, Xtensa und die BIOS-Auswertung. Die Änderung sollte unterschiedliche Ladewege zusammenführen und die Verwendung offiziell bereitgestellter NVIDIA-Firmware vereinheitlichen.
Secure Boot für Maxwell-Chips
Die zweite Serie baut auf den gemeinsamen Firmware-Funktionen auf und ergänzt Secure-Boot-Unterstützung für dGPU- und Tegra-Hardware. Laut Patchbeschreibung konnte Nouveau damit verwaltete Falcon-Einheiten auf GM20x-Chips initialisieren, sofern passende Firmware vorhanden war. Für ein Jetson TX1 wurden bereits Firmwaredateien aus NVIDIA Shield TV und Google Pixel C genannt. Offizielle Dateien für weitere GPUs sollten später folgen.
Der Ansatz knüpfte an die damalige Arbeit an freien Grafiktreibern an. Ein älterer Beitrag zu Mesa-Entwicklern beschreibt, wie Valve Spiele als reale Testfälle für OpenGL-Treiber, Kernel-Schnittstellen und SteamOS anbot.
