Nios2 Flash Programmer EPCS

OP #2896867
Lesenswert?

Hallo,

ich versuche jetzt schon seit längerem, meine FPGA Konfiguration + Nios2 
Software im EPCS Configuration Flash unterzubringen. Dazu will ich den 
Flash Programmer der Nios2 EDS nutzen.
Im SOPC Builder habe ich den EPCS Controller hinzugefügt. Wie muss nun 
eigentlich der Reset Vector werden?

Kann ich den Reset Vector auf mein bisheriges SRAM zeigen lassen, oder 
muss er zwangsläufig aufs EPCS zeigen? Beides habe ich ohne Erfolg 
ausprobiert.

Die FPGA-Config konnte ich wohl mithilfe des Nios programmieren. Leider 
wird das Programm, das sich ebenfalls im EPCS befinden sollte, nicht 
gestartet.

Gruß
Björn
Gast #2896993
Lesenswert?

Reset vector soll auf EPCS zeigen.

Dann kannst Du mit:
sof2flash --input=foo.sof --output=foo.flash --epcs
elf2flash --input=nios_fw.elf --output=nios_fw.flash --epcs 
--after=foo.flash

die *.flash Dateien erstellen.

Diese kannst Du dann mit
$SOPC_KIT_NIOS2/bin/nios2-flash-programmer "foo.flash" --base=0x9000000 
--epcs --accept-bad-sysid --device=1 --instance=0 '--cable=USB-Blaster 
on localhost [USB-0]' --program

und dann mit

$SOPC_KIT_NIOS2/bin/nios2-flash-programmer "nios_fw.flash" 
--base=0x9000000 --epcs --accept-bad-sysid --device=1 --instance=0 
'--cable=USB-Blaster on localhost [USB-0]' --program

programmieren.

Im FPGA soll zu diesem Zeitpunkt ein FPGA Design mit EPCS-Base Addresse 
0x900000 laufen (oder eben andere, aber gleiche). Über JTAG geht es halt 
am schnellsten.

Oder, Du erstellst eine pof Datei mit FPGA-Konfiguration und NIOS 
Firmware und flashst sie über active serial rein.

Hoffe, ich konnte Dir etwas helfen

Kest
OP #2897203
Lesenswert?

Hallo,

erstmal vielen Dank für die ausführliche Beschreibung. Das Erstellen der 
.flash Dateien und programmieren hat damit funktioniert. Die FPGA 
Konfiguration klappt damit auch. Leider startet mein Nios aber immer 
noch nicht.
Der Reset Vector zeigt nun ins EPCS. Was mich wundert: im Linker Script 
zeigen sämtliche Sections noch ins SRAM (siehe Anhang). Lege ich nun 
.text dort mit uns EPCS, passt es nicht mehr mit rein, da mein EPCS 
angeblich nur 2k Speicher hat?
Wo liegt mein Verständnisfehler? ;-)

Gruß
Björn
Angehängte Dateien:
Gast #2897371
Lesenswert?

Ich mache es folgendermaßen: reset-Vector wird auf EPCS gesetzt (im QSYS 
bei NIOS Reset Vector). Die Firmware läuft dann aber aus dem DDR2 
Speicher. Nach dem Booten sorgt also ein Teil im EPCS Controller dafür, 
dass alles in den DDR2 Speicher umkopiert wird (bei Dir also ins SRAM).

Deine Sections sehen erstmal richtig aus. Ich habe allerdings noch einen 
kleinen "Trick" gemacht: ich habe noch zusätzlich einen ONCHIP_RAM für 
"exceptions". Ob es daran liegt, weiß ich leider nicht.

Sorry, dass ich da jetzt nicht weiterhelfen kann

Kest
OP #2897380
Lesenswert?

Ich werde noch ein wenig rumprobieren und suchen. Irgendwie muss es ja 
zum laufen zu bringen sein. Habe auch etwas von einem "Boot-Copier" 
gelesen, der eben das Nios Programm, vor der Ausführung, vom EPCS in 
einen anderen Speicher kopieren soll.
Trotzdem danke für Deine Hilfe. Sobald es läuft, poste ich nochmal, 
woran es lag.

Gruß
Björn
Gast #2897400
Lesenswert?

Ach noch was, welche Quartus Version hast Du? Ich hoffe doch 12 und 
aufwärts?
Das mit dem Bootcopier habe ich auch früher gemacht (mit Quartus 8/9). 
Aber mittlerweile muss man das nicht mehr machen (solange man nur ein 
FPGA-Konfigurationsfile und eine NIOS-Konfiguration hat)

Kest
#2993200
Lesenswert?

Kest schrieb:

> die *.flash Dateien erstellen.
>
> Diese kannst Du dann mit
> $SOPC_KIT_NIOS2/bin/nios2-flash-programmer "foo.flash" --base=0x9000000
> --epcs --accept-bad-sysid --device=1 --instance=0 '--cable=USB-Blaster
> on localhost [USB-0]' --program
>
> und dann mit
>
> $SOPC_KIT_NIOS2/bin/nios2-flash-programmer "nios_fw.flash"
> --base=0x9000000 --epcs --accept-bad-sysid --device=1 --instance=0
> '--cable=USB-Blaster on localhost [USB-0]' --program
>
> programmieren.

Wenn man da die selbe Base-Adresse angibt, würde dann nicht nachdem ich 
das sof-File drauf geflashed werden anschließend durch die niosII 
Firmware das sof-File überschrieben werden?

lg Dustin
#2993201
Lesenswert?

Dustin F. schrieb:

>
> Wenn man da die selbe Base-Adresse angibt, würde dann nicht nachdem ich
> das sof-File drauf geflashed werden anschließend durch die niosII
> Firmware das sof-File überschrieben werden?

ahja.. wer lesen kann ist klar im Vorteil:

Kest schrieb:
> elf2flash --input=nios_fw.elf --output=nios_fw.flash --epcs
> --after=foo.flash

--after übersehen.

Danke! Funktioniert Super!!!

lg Dustin

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren