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.
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 Ressourcen für Agilex™ 7 und Agilex™ 5, Stratix® 10 SoC, Arria® 10 SoC, Cyclone® 10 GX SoC, Cyclone® 10 LP SoC, Arria® V SoC Cyclone® V SoC auf.
Erhalten Sie zusätzliche Unterstützung für die Agilex™ 7 Softwareentwicklung und die Agilex™ 5 Softwareentwicklung, schrittweise Anleitungen für Standardentwicklungsabläufe, die die wichtigsten kritischen Ressourcen und Dokumentationen anzeigen.
Suchen Sie nach anderen Geräten in den Geräte- und Produktsupport-Sammlungen.
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.
Bootloader für SDM-basierte Geräte
Für Agilex™ 7 SoCs und Agilex™ 5 SoCs sowie Stratix® 10 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.
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 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.
2. Hardware-Übergabe
Übersicht über die Übergabe
Alle SoC FPGA Projekte beginnen mit einem Hardwareprojekt, bei dem verschiedene unten aufgeführte Systemeinstellungen vom Benutzer konfiguriert werden, die sich auf das HPS auswirken.
- 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.
- 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 Arria 10 SoCs ist die Übergabe in einer einzigen XML-Datei enthalten, die in eine Gerätebaumdatei konvertiert und vom Bootloader verwendet wird
- Bei Agilex 7 SoCs und Agilex 5 SoCs sowie Stratix 10 SoCs sind die Übergabeinformationen Teil des FPGA Konfigurationsbitstreams
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
Agilex™ 7 und Agilex™ 5, Stratix® 10 SoC Übergabe
- Bei Agilex 7 und Agilex 5, Stratix 10 SoC sind die Übergabeinformationen Teil des Bitstreams der FPGA Konfiguration.
Arria® 10 SoC Übergabe
- Bei Arria 10 SoCs ist die Übergabe in einer einzigen XML-Datei enthalten, die in eine Gerätebaumdatei konvertiert und vom Bootloader verwendet wird
Cyclone®-V-SoC- und Arria®-V-SoC-Übergabe
- 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
3. Verfügbare Bootloader
Übersicht der verfügbaren Bootloader
Verfügbare Bootloader, Lizenztypen, unterstützte SoCs und Verfügbarkeit von zweistufigem Support.
Gerät | Bootloader |
Lizenztyp |
Beschreibung |
---|---|---|---|
Agilex™ 7 Agilex™ 5 Stratix® 10 |
ATF | BSD | 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 SoC FPGA Port von ATF kann unter https://github.com/altera-opensource/arm-trusted-firmware abgerufen werden. |
Agilex™ 7 Agilex™ 5 Stratix® 10 Arria® 10 Arria® V Cyclone® V |
U-Boot |
GPL |
U-Boot ist ein Bootloader, der in der Industrie weit verbreitet ist und zahlreiche Funktionen bietet:
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. |
5. Ressourcen
Ressourcentyp | : Agilex™ 7 | ,Agilex™ 5 | Stratix® 10 SoC, | Arria® 10 SoC und Cyclone® V SoC |
---|---|---|---|---|
Designbeispiele | SoC Entwicklungskit der F-Reihe | Premium-Entwicklungskit der E-Reihe Modulares Entwicklungskit der E-Reihe
|
||
Benutzerhandbuch | HPS Boot Benutzerhandbuch | HPS Boot Benutzerhandbuch | ||
Quellcode | Altera SoC FPGA U-Boot auf GitHub |
Altera SoC FPGA U-Boot auf GitHub |
|
|
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.