Forum: FPGA, VHDL & Co. MAX10 via SPI konfigurieren


von Johannes J. (jo910)



Lesenswert?

Hallo zusammen,

ich habe einen MAX10 FPGA zusammen mit einem TI AM335x Prozessor auf 
einer Platine. Der MAX10 kann aktuell via JTAG konfiguriert werden. 
Zusätzlich soll ein Konfigurationsupdate des MAX10 mithilfe des AM335x 
ermöglicht werden. Die beiden Chips sind über ein SPI Interface 
verbunden.

Die Basiskonfiguration des MAX10 enthält den On-Chip-Flash IP sowie die 
SPI-Slave-to-Avalon-Bridge, die mittels Quartus Platform Designer 
eingefügt wurden. Ein Lesezugriff über das SPI Interface via AM335x 
funktioniert bereits auf willkürlich gewählten Adressen.

Um die Konfiguration des MAX10 zu erneuern, müsste man das CFM0 neu 
beschreiben. Hierzu habe ich von Quartus ein .pof, ein .rpd sowie ein 
.map File erzeugen lassen. Das SPI Interface des MAX10 ist über Avalon 
mit dem On-Chip Flash verbunden, weshalb beim Zugriff eine Avalon 
Adresse (32 Bit) angegeben werden muss, während die Adressen im .map 
File interne Byte Adressen sind.

Meine Frage:
An welche Adresse(n) müsste man den Inhalt des .rpd Files schreiben, um 
das CFM0 zu überschreiben?
Ist das .rpd File hierfür überhaupt geeignet?
Wie muss mit dem ICB Bereich in der .map Datei (siehe Anhang) umgegangen 
werden?

Vielen Dank.

von Andreas (Gast)


Lesenswert?

Johannes J. schrieb:
> Um die Konfiguration des MAX10 zu erneuern, müsste man das CFM0 neu
> beschreiben.

Und das ganze soll dann ohne Konfigurationszyklus ablaufen. Also sprich 
sowas wie eine Partial Reconfiguration?

https://www.intel.com/content/www/us/en/programmable/documentation/tnc1513987819990.html

Den Flash überschreiben und neu booten ist keine Option?


VG,
Andreas

von Johannes J. (jo910)


Lesenswert?

Doch, ich möchte den Flash überschreiben und anschließend neu booten.
Es scheitert aktuell lediglich daran, dass mir der Adressbereich nicht 
klar ist, an dem die neue Konfiguration hinterlegt werden muss. Im 
Quartus Platform Designer und in der .map Datei sind Adressen angegeben, 
die jedoch keine Avalon Adressen darstellen. Die 
SPI-Slave-to-Avalon-Bridge erwartet jedoch eine Avalon Adresse, die für 
einen Schreibzugriff angegeben werden muss.

Gruß

Johannes

von Duke Scarring (Gast)


Lesenswert?

Hast Du mal versucht, den aktuellen Flashinhalt via SPI auszulesen?
Vielleicht erkennst Du da schon das richtige Muster...

Duke

von Johannes J. (jo910)


Lesenswert?

Ja, das hab ich bereits versucht. Leider kann ich die bisher 
ausgelesenen Bitmuster in der .rpd Datei nicht finden, weshalb ich auch 
hier noch etwas skeptisch bin, ob das .rpd File für meine Zwecke 
geeignet ist.

von Andreas (Gast)


Lesenswert?

Hallo Johannes,

Johannes J. schrieb:
> ausgelesenen Bitmuster in der .rpd Datei nicht finden, weshalb ich auch
> hier noch etwas skeptisch bin

Da musst du mal bei dem RPD file und einem Speicherinhalt ganz genau 
hinschauen. Wenn ich es richtig in Erinnerung habe sind im rpd die 
Bilfolgen gedreht. Sprich bei einem Byte im RPD ist das MSB das LSB im 
Flash Speicherinhalt.

VG,
Andreas

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.