SoC-Bootloader

Intel® SoC-FPGAs verwenden einen Bootloader, um die Endbenutzeranwendung auf dem Hardprozessorsystem (HPS) zu laden und auszuführen. Die Endbenutzeranwendung kann eine einfache Bare-Metal-Anwendung oder ein komplexes Betriebssystem wie das Linux*-Betriebssystem sein.

Auf dieser Seite wird beschrieben, was ein Bootloader ist, die verfügbaren Bootloader und ihre Hauptmerkmale aufgelistet, die ersten Schritte mit den Bootloadern beschrieben und zusätzliche Ressourcen aufgelistet.

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 folgende eingeschränkte Funktionalität:

  • 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 impliziert
  • Es weiß nicht, wie das System konfiguriert wurde, so dass es nicht alles aufrufen kann

Die Endbenutzeranwendung hingegen ist in der Regel groß und erfordert, dass das System wie vom Endbenutzer 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.

Mehrstufige Bootloader

Manchmal kann der Bootloader-Prozess in mehrere Phasen unterteilt werden, typischerweise zwei.

2. Hardware-Übergabe

Übersicht über die Übergabe

Alle Intel SoC FPGA-Projekte beginnen mit einem Hardwareprojekt, bei dem verschiedene Systemeinstellungen, die sich auf das HPS auswirken, vom Benutzer eingegeben werden. Dazu gehören:

  • Pin-Multiplexing
  • Pin-Einstellungen
  • SDRAM-Einstellungen
  • Takteinstellungen

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 von der genauen Bootloader- und SoC-Gerätefamilie kann die Übergabe verschiedene Formen annehmen. Typischerweise:

  • Für 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 Preloader kompiliert werden.
  • Bei Intel Arria 10 SoCs ist die Übergabe in einer einzigen XML-Datei enthalten, die in eine Gerätestrukturdatei konvertiert und vom Bootloader verwendet wird.
  • Bei Intel Stratix 10 SoCs sind die Übergabeinformationen Teil des FPGA-Konfigurationsbitstreams

Die primäre Methode zum Eingeben oder Ändern der Übergabeinformationen besteht darin, sie im Qsys zu bearbeiten.

Zusätzlich zu den Übergabeinformationen verfügen die Bootloader auch über verschiedene Einstellungen, die vom Benutzer mit den folgenden Methoden ausgewählt werden können:

  • Einstellungen im BSP-Editor ändern
  • Bearbeiten des Bootloader-Quellcodes
  • Bearbeiten der Bootloader-Gerätestruktur, wenn eine Gerätestruktur verwendet wird

Cyclone V Soc und Arria V SoC Übergabe

Intel Arria 10 SoC Übergabe

Intel Stratix 10 SoC Übergabe

3. Verfügbare Bootloader

Übersicht über verfügbare Bootloader

In der folgenden Tabelle sind die verfügbaren Bootloader, Lizenztypen, unterstützten SoCs und die Verfügbarkeit der zweistufigen Unterstützung aufgeführt:

Bootloader

Lizenztyp

Zyklon V SoC

Arria V SoC

Intel Arria 10 SoC

Intel Stratix 10 SoC

Zweistufiger Support

U-Boot

GPL

Ja

Ja

Ja

Ja

Ja

MPL

BSD

Ja

Ja

Ja

-

-

UEFI

BSD

-

-

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
  • Flash-Speicher-Unterstützung
  • Befehlszeilenschnittstelle
  • Skripterstellung
  • Benutzerdefinierte U-Boot-Anwendungen

U-Boot wird unter einer Allgemein-Public-Lizenz (GPL) entwickelt, so dass alle Beiträge, die zu einem Produkt geleistet werden, das an die Öffentlichkeit geliefert wird, ebenfalls veröffentlicht werden müssen.

Der U-Boot-Quellcode ist auf der U-Boot SoC FPGA-Seite auf der GitHub-Website verfügbar.

Für den Intel Arria 10 SoC, Arria V SoC und Cyclone V SoC ist der U-Boot-Quellcode in der Intel SoC FPGA Embedded Development Suite (SoC EDS) enthalten, was einen einfachen und bequemen Entwicklungsprozess ermöglicht.

Beachten Sie, dass die Unterstützung für Cyclone V- und Arria V-SoCs in den offiziellen U-Boot-Git-Baum auf der GitHub-Website integriert wurde. Es wird daran gearbeitet, auch Mainline-Unterstützung für Intel Arria 10 SoCs zu erhalten.

Die allgemeine U-Boot-Hauptseite befindet sich auf der Webseite Das U-Boot - dem Universal Boot Loader.

MPL

Der Minimal Preloader (MPL) ist ein Bootloader, der mit den Intel SoC FPGA Bare-Metal Hardware Abstraction Libraries (HWLIBs) entwickelt wurde. Es ist ein einstufiger Bootloader, der für minimalen Platzbedarf ausgelegt ist.

Die MPL ist für folgende Geräte verfügbar:

  • Zyklon V SoC
  • Arria V SoC
  • Intel Arria 10 SoC

Die MPL wird mit einer Berkeley Software Distribution (BSD) Lizenz angeboten, die eine bequemere Entwicklung und Bereitstellung ermöglicht.

Die MPL wird als Teil des SoC EDS ausgeliefert und ist ein Projektarchiv in der <SoC EDS Installationsordner>/embedded/examples/software/Intel® FPGA-SoCFPGA-HardwareLib-MPL.tar.gz Datei. Das Archiv enthält eine Datei mit dem Namen README.txt, die detaillierte MPL-Beschreibungen und Nutzungsinformationen enthält.

UEFI

Das Unified Extensible Firmware Interface (UEFI) ist eine standardisierte Firmware-Spezifikation, die die Plattforminitialisierung und den Firmware-Bootstrap vereinfacht.

Der UEFI-Bootloader ist für die folgenden Geräte verfügbar:

  • Intel Arria 10 SoC
  • Intel Stratix 10 SoC

Da das UEFI sehr gut spezifiziert ist und von Hunderten von Technologieunternehmen verwendet wird, kann ein Großteil des Codes wiederverwendet werden, was schnellere Entwicklungszyklen ermöglicht.

Das UEFI, wie es auf Intel SoC FPGAs implementiert ist, besteht aus zwei verschiedenen Phasen:

  • Pre-Efi-Initialisierungsphase (PEI). In dieser Phase wird die Plattform konfiguriert und entweder die Endbenutzeranwendung oder DXE geladen.
  • Treiber eXecution Environment (DXE). Diese Phase lädt zusätzliche UEFI-Treiber und ermöglicht erweiterte Funktionen wie Netzwerk und Befehlszeilenschnittstelle.

Der UEFI-Bootloader bietet auch die Möglichkeit, spezielle Anwendungen auszuführen, die auf die DXE-Umgebung abzielen. Solche Anwendungen können dann ausgeführt werden, wenn die Exit-Kontrolle an die DXE zurückkehrt.

UEFI wird mit einer BSD-Lizenz angeboten, die eine bequemere Entwicklung und Bereitstellung ermöglicht.

Der UEFI-Quellcode ist auf der UEFI SoC FPGA-Seite auf der GitHub-Website verfügbar.

Für Intel Arria 10 SoCs wird das UEFI auch mit SoC EDS geliefert, das den gleichen Entwicklungsablauf wie U-Boot ermöglicht.

ATF

Die ARM Trusted Firmware (ATF) ist eine Referenzimplementierung von Secure World Software für ARMv8-a, die verschiedene ARM-Schnittstellenstandards wie Trusted Board Boot Requirements (TBBR) und Secure Monitor Call implementiert.

Die ATF wird kollaborativ unter einer BSD-Lizenz entwickelt, die eine komfortable Entwicklung und Bereitstellung ermöglicht.

Der ATF hat eine geringe Stellfläche und ist als First Stage Bootloader (FSBL) konzipiert. Es wird mit UEFI verwendet, um die PXE dann DXE zu laden, aber es kann auch zum Beispiel verwendet werden, um eine einfache Bare-Metal-Anwendung zu laden.

Der Quellcode für den Intel SoC FPGA Port von ATF kann unter https://github.com/Intel FPGA-opensource/arm-trusted-firmwareabgerufen werden.

4. Erste Schritte

U-Boot Erste Schritte

Für die ersten Schritte mit U-Boot stehen Ihnen die folgenden Ressourcen zur Verfügung:

  • Erzeugen und Kompilieren von Cyclone V Vorladern
  • Arria 10 U-Boot generieren und kompilieren

MPL Erste Schritte

Die MPL wird als Teil des SoC EDS ausgeliefert und ist ein Projektarchiv in der <SoC EDS Installationsordner>/embedded/examples/software/Intel FPGA-SoCFPGA-HardwareLib-MPL.tar.gz Datei. Das Archiv enthält eine Datei mit dem Namen README.txt mit detaillierten Nutzungsinformationen für Intel Arria 10 SoCs, Arria V SoCs und Cyclone V SoCs.

Erste Schritte mit UEFI

Für die ersten Schritte mit UEFI stehen Ihnen die folgenden Ressourcen zur Verfügung:

Quellcode

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.