Heim Der Blog Blog Details

Wie bootet man Linux auf einem Xilinx FPGA?

June 27 2025
Ampheo

Anfrage

Globaler Lieferant elektronischer Komponenten AMPHEO PTY LTD: Umfangreiches Inventar für One-Stop-Shopping. Einfache Anfragen, schnelle, individuelle Lösungen und Angebote.

SCHNELLE ANFRAGE
ZUR RFQ-LISTE HINZUFÜGEN
Das Booten von Linux auf einem Xilinx FPGA beinhaltet die Verwendung einer SoC-basierten FPGA-Plattform wie der Zynq-7000 oder Versal, die sowohl programmierbare Logik (PL) als auch ein Prozessorsystem (PS, typischerweise ARM Cortex-A9/A53) integriert.

Das Booten von Linux auf einem Xilinx FPGA beinhaltet die Verwendung einer SoC-basierten FPGA-Plattform wie der Zynq-7000 oder Versal, die sowohl programmierbare Logik (PL) als auch ein Prozessorsystem (PS, typischerweise ARM Cortex-A9/A53) integriert. Hier ist eine Schritt-für-Schritt-Übersicht:

Wie bootet man Linux auf einem Xilinx FPGA?

Linux auf einem Xilinx FPGA booten (z. B. Zynq-7000)


1. Geeignete Hardware verwenden

Du benötigst ein FPGA-Board mit integriertem ARM-Prozessor, z. B.:

  • ZedBoard

  • PYNQ-Z1 / Z2

  • ZCU102 (für Zynq UltraScale+)

  • Ultra96

Diese Boards enthalten:

  • Processing System (PS): ARM-CPU zum Ausführen von Linux

  • Programmable Logic (PL): FPGA für benutzerdefinierte Hardware


2. Tools installieren

Du brauchst:


3. Hardware-Design in Vivado erstellen

  1. Vivado öffnen → Block Design erstellen

  2. ZYNQ7 Processing System hinzufügen

  3. Block Automation ausführen

  4. (Optional) Eigene IP-Blöcke hinzufügen (z. B. GPIO, AXI)

  5. Bitstream generieren

 Design exportieren:

mathematica
 
FileExportExport HardwareInclude Bitstream

4. PetaLinux-Projekt erstellen

bash
 
petalinux-create --type project --name my_linux cd my_linux petalinux-config --get-hw-description=<Pfad-zur-exportierten-xsa-Datei>

Kernel, Device Tree, RootFS anpassen:

bash
 
petalinux-config -c kernel petalinux-config -c rootfs

5. Linux-Image bauen

bash
 
petalinux-build

Erzeugte Dateien:

  • BOOT.BIN (Bootloader + Bitstream + FSBL)

  • image.ub (Kernel + Device Tree + RootFS)

  • boot.scr (U-Boot-Skript, optional)


6. SD-Karte vorbereiten

SD-Karte mit FAT32 formatieren und kopieren:

  • BOOT.BIN

  • image.ub

  • (optional) boot.scr

In das FPGA-Board einlegen.


7. Verbinden & Booten

  • Serielles Terminal öffnen (115200 Baud)

  • Board einschalten

  • Du siehst U-Boot → dann Linux-Boot-Meldungen

Am Ende erscheint ein Prompt:

ruby
 
root@petalinux:~#

Tipp: Vorgefertigte Linux-Images (z. B. PYNQ)

Für Boards wie PYNQ-Z1 kannst du einfach ein fertiges Linux-Image verwenden:

  • Download: www.pynq.io

  • Auf SD-Karte flashen

  • Linux mit Jupyter & Python startet automatisch


Zusammenfassung der Dateien

Datei Funktion
BOOT.BIN FSBL + Bitstream + U-Boot (erster Bootschritt)
image.ub Kernel + Device Tree + Root Filesystem
boot.scr Bootskript (optional)

Was passiert beim Booten?

  1. FSBL: Initialisiert System, lädt Bitstream

  2. U-Boot: Lädt Kernel

  3. Linux-Kernel: Initialisiert Treiber, mountet RootFS

  4. Shell: Bereit zur Nutzung über UART oder Netzwerk

Ampheo