Forum: FPGA, VHDL & Co. Petalinux: Zybo Z7-20


von derNeue (Gast)


Lesenswert?

Moin zusammen,
ich hab jetzt mal eine ganz doofe Frage!

Ich hab ein Hardware-Projekt mit Vivado 2017.4 erstellt. Wenn ich das 
auf mein Zybo Z7-20 packe und dann Source-Code laufen lasse, läuft 
alles!
Sobald ich aber das Hardware-Projekt als Basis für PetaLinux 2017.4 
nutzen will, bootet nichts mehr, wobei die Hardware funktioniert (die 
nötigen LEDs blinken), wobei die Status-LED nicht grün wird. Ich boote 
übrigens per SD-Karte.
Wenn ich von Digilent das vorbereitete Projekt von GitHub downloade 
läuft alles.

Hat sowas schon mal jemand gemacht und kann mir hier helfen? Hat hier 
jemand eine Anleitung, denn es gibt irgendwie viele Tutorials aber keine 
für Zybo Z7-20, bzw was ich hier modifizieren muss!

Über Hilfe wäre ich sehr dankbar! Und sag gleichmal vielen Dank!

VG derNeue

von Vancouver (Gast)


Lesenswert?

derNeue schrieb:
> Ich hab ein Hardware-Projekt mit Vivado 2017.4 erstellt. Wenn ich das
> auf mein Zybo Z7-20 packe und dann Source-Code laufen lasse, läuft

Sourcecode läuft eigentlich nicht, aber ich weiß was Du meinst. Sprichst 
Du von VHDL/Verilog-Code oder Baremetal-C-Code für den ARM? Bzw. Welches 
Petalinux hast Du bisher verwendet?

>Sobald ich aber das Hardware-Projekt als Basis für PetaLinux 2017.4
>nutzen will, bootet nichts mehr, wobei die Hardware funktioniert (die
>nötigen LEDs blinken), wobei die Status-LED nicht grün wird. Ich boote
>übrigens per SD-Karte.

Das liegt sehr wahrscheinlich an einer falschen Konfiguration des 
Prozessors. Stimmen die Settings des PS genau überein mit denen aus dem 
Digilent-Projekt? Wennz.B. die Parameter des DDR-Speichers falsch 
konfiguriert sind, ist nix mit booten. Der Device-Tree muss auch 
stimmen, sonst gibt es Probleme beim starten. In den korrekten 
Device-Tree kann man Stunden von Zeit versenken.


Hast Du die UART-Ausgabe mal angeschaut? Bricht der Bootvorgang irgendwo 
ab? Gibt es keine Kernel-Panic oä?

von derNeue (Gast)


Lesenswert?

Vielen Dank für die schnelle Antwort!
Also das PetaLinux, das damals über das Digilentprojekt lief war 2017.4. 
Und das wollte ich jetzt wieder benutzten. Eben nur mein Hardwareprojekt 
drunter legen.

Ich hab aus dem Digilentprojekt die petalinux-config 1:1 übernommen. 
Hier war nur eine Änderung beim u-boot-config target nötig. Und seitdem 
bekomme ich Fehlermeldungen, dass das petalinux-build nicht mehr 
funktioniert.

Weitere Möglichkeiten zur Änderung (laut Xilinx UG1144) können egl auch 
nicht gemacht werden.

Also eine UART-Ausgabe gibt es keine. Also es erscheint nichts. Was 
meiner Meinung nach daran liegt, dass irgendwo ein File nicht für Zybo 
Z7-20 genutzt wird.

von Duke Scarring (Gast)


Lesenswert?

derNeue schrieb:
> Eben nur mein Hardwareprojekt
> drunter legen.
Die FPGA-Linuxe sind aber schon recht stark auf die jeweilige Hardware 
ausgelegt. Da wirst Du genau gucken mussen ob das passt, und wo es 
klemmt...

Duke

von derNeue (Gast)


Lesenswert?

Wenn ich in das bestehende Projekt von Digilent meine Änderung reinmache 
und dann einfach das PetaLinux draufsetze, mit den config einstellungen 
von Digilent, ist die Chance hoch, dass es läuft oder nicht?

Oder wie wäre hier das beste Vorgehen??

Der einfachste Weg für mich, wäre einfach:
petalinux-config und dann petalinux-build

von derNeue (Gast)


Lesenswert?

wenn ich ggf. Änderungen machen müsste, komm ich da über die 
petalinux-config ran, oder wie finde ich die Orte für die Änderungen?

von Vancouver (Gast)


Lesenswert?

derNeue schrieb:
> Wenn ich in das bestehende Projekt von Digilent meine Änderung reinmache
> und dann einfach das PetaLinux draufsetze, mit den config einstellungen
> von Digilent, ist die Chance hoch, dass es läuft oder nicht?

Sollte so sein, aber in der Realität sieht es anders aus. Ich habe am 
Anfang auch viel mit Digilent-Demoprojekten experimentiert, aber das hat 
zu nichts geführt. Am besten kallpt es, jeweils ein eigenes 
Petalinux-Projekt "from the scratch" zu bauen.

Versuch doch mal, ein Minimaldesign zu machen, in dem nur ein PS 
drinsteckt und sonst nichts, und damit ein Linux hochzuziehen.

>Also eine UART-Ausgabe gibt es keine. Also es erscheint nichts. Was
>meiner Meinung nach daran liegt, dass irgendwo ein File nicht für Zybo
>Z7-20 genutzt wird.

Das ist sehr merkwürzig. Schon der FSBL sollte über den UART 
irgendwelche Ausgaben machen, soweit ich weiß. Und da der FPGA ja 
konfiguriert wird, scheint irgendetwas zu ticken. Hast Du den richtigen 
UART genommen? Es gibt ja zwei logische USB-Devices, eines ist für UART 
und das andere für JTAG. (zumindest beim Zybo ist es so.)

von derNeue (Gast)


Lesenswert?

Von klein nach groß ist eine gute Idee, das probier ich gleich mal aus.
Ist Euch ein gutes Tutorial für Zybo Z7-20 oder auch Zybo bekannt, das 
das gut und "idiotensicher" erklärt??

von derNeue (Gast)


Lesenswert?

Vancouver schrieb:
> Hast Du den richtigen
> UART genommen? Es gibt ja zwei logische USB-Devices, eines ist für UART
> und das andere für JTAG.

Also ich hab bis jetzt nichts geändert und sonst hat es auch immer 
funktioniert!

von derNeue (Gast)


Lesenswert?

Ich hab gestern Abend noch ein bisschen nachgeforscht und über die 
Verwendung von QEMU festgestellt, dass das root device nicht lädt von 
der zweiten Partition der SD Karte.

Hat jemand eine Ahnung wo ich hier einen Parameter ändern muss?

von (º°)·´¯`·.¸¸.·´¯`·.¸¸.·´¯`·.¸¸.·´¯`·.¸¸.·´¯`·.¸¸.· (Gast)


Lesenswert?

Da kommt eine Menge in Frage.

Als erstes kann man das Rootdevice in den Kernel hineinkompilieren.

Dann koennte es noch im Environment des Bootladers stehen, der
das dann als Kernelparameter uebergibt.
Das ist heute eigentlich die gaengige Methode.

Bei einem FPGA-Linux koennte ich mir vorstellen, dass das
Environment mit in den Configflash eingebettet ist.

von derNeue (Gast)


Lesenswert?

Also der Debugger sucht es bei mir eigentlich schon an der richtigen 
Stelle (zweite Partition der SD Karte), nur irgendwie findet er nichts. 
Geh ich in das Menü rein. Liegt dort wunderschön das rootfs.cpio und das 
"entpackte" Betriebssystem von rootfs.ext4....

aber dann steht dort -> Waiting for root device /dev/mmcplk0p2 ...

von derNeue (Gast)



Lesenswert?

Ich hab mir jetzt gerade nochmal mal die kernel-config angeschaut und 
habs zusätzlich mit denen vom Musterprojekt verglichen. Und da sieht 
alles sehr sehr gleich aus. mir ist jetzt auch nichts aufgefallen....

Ich lad jetzt einfach mal von dem Debuggen noch den Ablauf mit rauf. 
Vielleicht sieht ja jemand schneller wie ich, wo ich hingreifen muss.

Für mich ist das gerade sehr rätselhaft....

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.