Ich verwende derzeit den Flash-basierten Altera MAX10 in einem Design, das an einen Hauptprozessor angeschlossen ist, auf dem Linux auf einem benutzerdefinierten Board ausgeführt wird (das FPGA selbst implementiert nur einige wenige Peripheriegeräte; der Prozessor, auf dem Linux ausgeführt wird, ist ein normales ARM-Design).
Bis jetzt habe ich die Standard-Altera-Tools für die Entwicklung verwendet ( Quartus Prime und USB Blaster als Programmiersoftware und Hardware-Tools), aber sobald das Produkt ausgeliefert wird, haben wir diese Option nicht mehr.
Da wir das Design so gestalten möchten, dass es vor Ort aufrüstbar ist, benötigen wir eine Lösung, um einen Bitstream von Linux (dem eingebetteten Betriebssystem) ohne einen USB-Blaster oder die Quartus-Programmiertools (da es sich um ein ARM-Board handelt, wir kann die Binärdateien nicht ausführen).
Also meine Fragen sind:
Zum Zweck der Entwicklung einer Proof-of-Concept-Lösung habe ich ein MAX10 Eval-Kit und einen BeagleBone Black . Ich kann alle Software- und Hardware-Kludges machen, die erforderlich sind.
Teillösungen
Wenn Sie wissen, wie man eines der folgenden Dinge macht, werde ich eines der folgenden positiv bewerten, in der Hoffnung, aus den einzelnen Teilen eine vollständige Lösung zusammenzustellen:
Aktualisierung:
Ich denke, die Standardmethode dafür ist, eine SVF- oder XSVF-Datei mit der Quartus-Software zu generieren und sie dann mit etwas wie OpenOCD oder http://www.clifford.at/libxsvf/ abzuspielen. Sie würden über die JTAG-Pins eine Schnittstelle zum FPGA herstellen, entweder über GPIO oder vielleicht einen FTDI-Chip.
Eine andere Möglichkeit wäre, auf den Onboard-Konfigurationsspeicher des FPGAs ganz zu verzichten und die Konfiguration direkt während des Bootens über SPI oder ähnliches zu laden, vorausgesetzt, das FPGA unterstützt dies. Auf diese Weise muss die FPGA-Firmware während des Firmware-Upgrade-Prozesses nicht aktualisiert werden, da sie in die Haupt-Firmware integriert und automatisch in das FPGA geladen würde.
Dies ist eher eine Anleitung, wie es gemacht werden könnte.
BEARBEITEN: Sie benötigen: für die erstmalige Programmierung: QuartusII, QSYS, NIOS SBT, JTAG-Verbindung zu Ihrem FPGA und für das Remote-Upgrade: ein Terminalprogramm, das Dateien und eine UART-Verbindung zu Ihrem FPGA senden kann.
Max10 unterstützt den dual-komprimierten Bildmodus. Hier können Sie mehr über den Flash-Speicher lesen.
Erstellen Sie ein goldenes Image, das das Arbeitsimage in Flash schreiben kann. Hier ist eine Dokumentation für Remote System Upgrade mit UART. Achten Sie darauf, Ihre Flash-Adressen zu schützen, in denen sich das Bild befindet.
Fügen Sie Ihrem Board eine JTAG-Verbindung hinzu (Konfigurationsanleitung Max10) und programmieren Sie den FPGA, bevor er das Haus verlässt.
Als nächstes wollen wir das FPGA aktualisieren. Die Methode zum Abrufen der .hex-Dateien ist etwas umständlich, aber nach ein-, zweimaliger Ausführung sollte es in Ordnung sein, es sollte im Beispiel beschrieben werden.
Möchten Sie das geladene Image über GPIO oder über die interne Konfiguration auswählen, denn wenn Sie intern wählen, muss Ihr Arbeitsdesign in der Lage sein, wieder auf Ihr goldenes Image umzuschalten.
Eggi
Damian