SoC FPGA Bootloader Developer Center
SoC FPGA Bootloader Developer Center stellt die verfügbaren SoC-Bootloader mit den Hauptmerkmalen, den ersten Schritten und zusätzlichen Ressourcen zur Verfügung.
Intel® SoC-FPGAs verwenden einen Bootloader, um die Endbenutzeranwendung auf das harte Prozessorsystem (HPS) zu laden und auszuführen. Die Endbenutzeranwendung kann eine einfache Bare-Metal-Anwendung oder ein komplexes Betriebssystem wie das Linux* Betriebssystem sein.
Diese Seite beschreibt, was ein Bootloader ist, listet die verfügbaren Bootloader und ihre Hauptmerkmale auf, beschreibt die ersten Schritte mit den Bootloadern und listet zusätzliche Ressourcen auf.
1. Was ist ein Bootloader?
Bootloader-Definition
Wenn ein SoC-Gerät hochfährt, wird zuerst eine Software namens BootROM ausgeführt. Aus mehreren Gründen verfügt das BootROM über die folgenden eingeschränkten Funktionen:
- Es muss in das On-Chip-ROM passen, also muss es klein sein
- Es ist sehr teuer zu wechseln, daher muss es sehr robust sein, was weniger Funktionen bedeutet
- Es weiß nicht, wie das System konfiguriert wurde, sodass es nicht alles aufrufen kann
Die Endbenutzeranwendung hingegen ist in der Regel groß und erfordert, dass das System vom Endbenutzer wie gewünscht konfiguriert wird, bevor es ausgeführt werden kann.
Die Aufgabe des Bootloaders besteht darin, die Lücke zwischen dem BootROM und der Endbenutzeranwendung zu schließen.
Einstufiger Bootloader
Typische Bootloader-Aufgaben
- Konfigurieren der Pin-Multiplexing- und Pin-Einstellungen, z. B. Anstiegsrate, Spannung und Pull-up/Pull-down
- Konfiguration der Uhren im Uhrenbaum
- Aufrufen und Kalibrieren des SDRAM
- Initialisieren des Flash-Speichers
- Konfiguration der FPGA Fabric
- Laden der Endanwendung aus dem Flash-Speicher
- Übergabe der Steuerung an die Endanwendung
Neben den oben aufgeführten Funktionen bieten Bootloader auch die folgenden erweiterten Funktionen, die eine komplexere Bereitstellung und eine bequemere Entwicklung ermöglichen können:
- Netzwerkzugriff, der die Endbenutzeranwendung aus der Cloud einbindet.
- Debugging-Tools, die eine bequemere Diagnose von Problemen ermöglichen.
- Befehlszeilenschnittstelle für interaktive Befehle.
- Anwendung, die ein Framework ausführt, mit dem einfache Endbenutzeranwendungen geladen und vom Bootloader vollständig ausgeführt werden können. Nachdem die Anwendung abgeschlossen ist, wird die Steuerung an den Bootloader zurückgegeben.
Mehrstufige Bootloader
Manchmal kann der Bootloader-Prozess in mehrere Phasen unterteilt werden, normalerweise zwei.
Bei Cyclone®-V-SoCs kann das BootROM nur einen Bootloader mit einer Größe von bis zu 64 KB laden, da der SDRAM zu diesem Zeitpunkt noch nicht hochgefahren ist. Ebenso kann das BootROM bei Intel® Arria® 10 SoCs nur einen Bootloader mit einer Größe von bis zu 256 KB laden. Aufgrund dieser Größenbeschränkungen können erweiterte Funktionen wie Netzwerkzugriff oder komplexer Dateisystemzugriff nicht ausgeführt werden. Wenn solche Funktionen gewünscht sind, ruft die erste Stufe des Bootloaders den SDRAM auf und lädt dann eine zweite Stufe mit mehr Funktionalität. Ein zweistufiger Bootloader ist die Standardoption für Cyclone-V-SoCs, Arria®-V-SoCs und Arria® 10-SoCs.
Bootloader für SDM-basierte Geräte
Für Intel® Stratix® 10 SoCs, Intel Agilex 7 SoCs und Intel® Agilex® 5 SoCs wird typischerweise ein zweistufiger Bootloader verwendet. Die erste kleine Bootloader-Stufe ist Teil des FPGA-Konfigurationsbitstreams und wird vom Secure Device Manager (SDM) in den HPS-On-Chip-RAM geladen, während die zweite größere Bootloader-Stufe an einem Ort gelagert werden muss, auf den der HPS zugreifen kann.
2. Hardware-Übergabe
Übersicht über die Übergabe
Alle Intel SoC FPGA Projekte beginnen mit einem Hardware-Projekt, bei dem verschiedene Systemeinstellungen, die sich auf das HPS auswirken, vom Benutzer eingegeben werden. Dazu gehören:
- Pin-Multiplexing
- Pin-Einstellungen
- SDRAM-Einstellungen
- Uhrzeiteinstellungen
Es ist die Aufgabe des Bootloaders, diese Einstellungen anzuwenden, und der Prozess, bei dem der Bootloader diese Einstellungen empfängt, wird als Hardware-zu-Software-Übergabe bezeichnet.
Abhängig vom genauen Bootloader und der SoC-Gerätefamilie kann die Übergabe verschiedene Formen annehmen. Normalerweise:
- Bei Cyclone-V- und Arria-V-SoCs ist die Übergabe eine Kombination aus XML-Dateien, Binärdateien und Quellcodedateien, die in Quellcode konvertiert und dann in den Bootloader kompiliert werden
- Bei Intel Arria 10 SoCs ist die Übergabe in einer einzigen XML-Datei enthalten, die in eine Gerätebaumdatei konvertiert und vom Bootloader verwendet wird
- Bei Intel Stratix 10 SoCs, Intel Agilex 7-SoCs und Intel Agilex 5-SoCs sind die Übergabeinformationen Teil des Bitstroms der FPGA Konfiguration
Die primäre Methode zur Eingabe oder Änderung der Übergabeinformationen besteht darin, sie im Quartus Platform Designer zu bearbeiten.
Zusätzlich zu den Übergabeinformationen verfügen die Bootloader über verschiedene Einstellungen, die vom Benutzer mithilfe der folgenden Methoden ausgewählt werden können:
- Bearbeiten des Bootloader-Quellcodes
- Bearbeiten des Bootloader-Gerätebaums, wenn ein Gerätebaum verwendet wird
Cyclone-V-SoC- und Arria-V-SoC-Übergabe
Intel Arria 10 SoC Übergabe
Intel Stratix 10 SoC, Intel Agilex 7 SoC und Intel Agilex 5 SoC Übergabe
3. Verfügbare Bootloader
Übersicht der verfügbaren Bootloader
In der folgenden Tabelle sind die verfügbaren Bootloader, Lizenztypen, unterstützten SoCs und die Verfügbarkeit von zweistufigem Support aufgeführt:
Bootloader |
Lizenztyp |
Cyclone V SoC, |
Intel Arria 10 SoC |
Intel Stratix 10 SoC, Intel Agilex 7 SoC, Intel Agilex 5 SoC |
---|---|---|---|---|
U-Boot |
GPL |
Ja |
Ja |
Ja |
ATF |
BSD |
- |
- |
Ja |
U-Boot
U-Boot ist ein Bootloader, der in der Industrie weit verbreitet ist und zahlreiche Funktionen bietet:
- Optionale erste Stufe namens "SPL" für Systeme mit begrenztem On-Chip-RAM (z. B. Cyclone-V-SoC und Arria-V-SoC)
- Netzwerkfähigkeit
- Unterstützung für Flash-Speicher
- Befehlszeilenschnittstelle
- Scripting
- Benutzerdefinierte U-Boot-Anwendungen
U-Boot wird unter einer allgemein-öffentlichen Lizenz (GPL) entwickelt, so dass alle Beiträge, die zu einem Produkt geleistet werden, das an die Öffentlichkeit geliefert wird, ebenfalls öffentlich gemacht werden müssen.
Der U-Boot-Quellcode ist auf der U-Boot SoC FPGA-Seite auf der GitHub-Website verfügbar.
Die Hauptseite von U-Boot befindet sich auf der Das U-Boot -- der Universal Boot Loader-Webseite.
ATF
Die ARM Trusted Firmware (ATF) ist eine Referenzimplementierung der Secure-World-Software für ARMv8-a, die verschiedene ARM-Schnittstellenstandards wie Trusted Board Boot Requirements (TBBR) und Secure Monitor Call (SMC) implementiert.
Das ATF wird kollaborativ unter einer BSD-Lizenz entwickelt, was eine bequeme Entwicklung und Bereitstellung ermöglicht.
Der Quellcode für Intel SoC FPGA Port von ATF kann unter https://github.com/altera-opensource/arm-trusted-firmware abgerufen werden.
5. Ressourcen
Benutzerhandbücher
Die folgenden Benutzerhandbücher sind verfügbar:
Quellcode
Der Quellcode kann von den folgenden Websites bezogen werden:
Der Inhalt dieser Seite ist eine Kombination aus menschlicher und computerbasierter Übersetzung des originalen, englischsprachigen Inhalts. Dieser Inhalt wird zum besseren Verständnis und nur zur allgemeinen Information bereitgestellt und sollte nicht als vollständig oder fehlerfrei betrachtet werden. Sollte eine Diskrepanz zwischen der englischsprachigen Version dieser Seite und der Übersetzung auftreten, gilt die englische Version. Englische Version dieser Seite anzeigen.