Spartan 6 SPI Flash Konfiguration

Gast #2497872
Lesenswert?

Hallo,

ist es eigentlich möglich, das Konfigurations-File an eine beliebige 
Adresse in den SPI Flash zu legen? Laut User Guide wird ja nach den Sync 
Word gesucht, aber eben nur von Adresse 0 an und nur 512 Bytes, bzw nach 
umschalten des OPCODES insgesamt 1024 Byte.

Ich möchte das File gerne an eine andere Stelle legen, weil an Adresse 0 
was anderes liegt. Ich finde leider nirgends Informationen? Kennt sich 
jemand aus?

Danke
Viele Grüße
#2498430
Lesenswert?

Hehe, den FX3 hab ich auch eben in der Mache. Nur leider bootet die 
Chip-Recvision auf dem Demoboard überhaupt nicht von SPI. Ich mach das 
immer so, dass der FPGA den USB Controller solange in Disconnected 
Zustand hält, bis er fertig gebootet hat. Aber mit nur einem SPI Flash 
für beide wirst du nicht hinkommen, da beide auf den Start ab der 0 
angewiesen sind. Macht doch auch keinen Sinn, die paar Cent...
#2498628
Lesenswert?

Achja, das blöde 32 Bit GPIF <-> SPI Problem. Echt doof gelöst.
Hm, du könntest ja nach dem Starten des FPGA SPI durchreichen aber dabei 
die Adressen verändern, dass der FX3 immer aus einem höheren 
Speicherbereich liest.
Darf man erfahren, was das für ein Projekt ist? Müssen keine Details 
sein, nur interessehalber, weil wir den FX3 auch (als Nachfolger des 
FX2) einsetzen.
Und nochwas: Nimmst du das Slave FIFO Interface? Falls ja, wie hast du 
die Krücke mit dem (Partial)Full Flag gelöst? Ich hab da eine Anfrage im 
Cypress Forum im Moment, aber da meldet sich keiner...
Gast #2498655
Lesenswert?

Im Cypress Forum sind wir auch aktiv. Zumindest unser 
Firmwareentwickler. Ich mach zum Glück nur den FPGA Teil.
Das synchrone Slave FIFO wollen wir auch nehmen. Sind aber noch nicht 
soweit weil unser Adapter vom FX3 Board auf das SP605 erst nächste Woche 
kommt. Dann gehts los mit dem GPIF. Aber wenn ich jetzt schon überall 
lese, dass es nur Probleme gibt, kommt mir das Grauen.
Den FPGA erst aufstarten geht bei uns nicht. Das wird ein Bus powered 
Device. Bevor der setConfig Request vom Host nicht gekommen ist, darf 
das Gerät laut Spec nur 150mA ziehen. Das wird nicht reichen um FPGA und 
FX3 zu Booten. I2c Boot ist auch Schwachsinn bei der größe eines solchen 
Image Files. Da brauch man ja locker zwei drei Stück. USB Boot kommt 
auch nicht in Frage. Da bekommt man keine Windows Zertifizierung. 
Eigentlich nur Einschränkungen mit dem Teil...
Was das für ein Gerät wird darf ich leider nicht sagen. Hier sind auch 
zu viel von den Mitstreitern unterwegs, wovon auch viele auf den FX3 
setzen.
Mit den FX2 hatten wir nichts zu tun. Ich hatte nur selber damit mal 
bissel rumgespielt, aber eher nur den 8051 programmiert ohne GPIF.

Gruß
#2498791
Lesenswert?

OK. Naja, Slave FIFO geht schon, allerdings hab ich da ein lustiges 
Problem mit dem Partial Full festgestellt. Das normale Full kann man ja 
nicht nehmen, das hat 3 Takte Latenz, also partial Full. Das partial 
full geht aber nicht auf low, wenn man so viele kurze Pakete wie DMA 
Buffer rein schreibt. Da gibts Datenverlust. Also hab ich jetzt 
getrickst und auf einem anderen Control Ausgang das normale Full auch 
mit ausgegeben und verknüpfe beide.
Unschön, aber bis die das fixen gehts vielleicht. Ansonsten ist das 
schon ein schöner Chip und ich hab das so hinbekommen, dass der sich von 
der Software aus gesehen wie ein FX2 verhält. Dank WinUSB ist das völlig 
transparent und wir müssen nur die Hardware ändern.
Wieso sollte man keine WHQL bekommen mit USB Boot? Du kanst doch zum 
Beispiel auch WinUSB für den unprogrammierten Chip benutzen, dann über 
die Vendor Requests programmieren und reboot machen. Das geht völlig 
problemlos, den buggy Cypress Treiber braucht kein Mensch.
Übrigens passt die Firmware auch in einen 24LC1025 rein, hab ich 
getestet. Aber viel Platz ist da nicht mehr, das stimmt.
Du wirst also um einen 2. Flash oder ein(zwei) I2C EEPROM(s) nicht 
herumkommen.
Gast #2499112
Lesenswert?

Naja die Beschreibung zum Slave FIFO ist auch sehr kurz gehalten. Z.B. 
weiß ich nicht, wenn ich einen 1024Byte großen DMA Bufer noch nicht voll 
geschrieben habe aber die Adresse kurz umschalte um andere Daten zu 
senden ob der Buffer dann über USB raus geschickt wird oder nur beim 
PKTND Signal. Und kann den Buffer beim zurückschalten der Adresse 
einfach weiter füllen? Fragen über Fragen die man nur durch probieren 
lösen kann und das nervt etwas wenn man die Zeit nicht hat.
Eine andere Abteilung von uns hatte das mit WHQL beim FX2 durch. Da 
wollten sie auch von USB Booten, weil der USBIO das so schön 
unterstützt. Aber die haben das nicht durch bekommen und sind dann auf 
Linux umgestiegen. Diesmal haben wir gleich bei Thesycon angefragt und 
die sagen, dass es immer schwierig ist, warum weiss ich auch nicht 
genau.
#2499215
Lesenswert?

Also das mit den Buffern müsste so gehen, wie du beabsichtigst. Ging 
beim FX2 auch schon so. Die sind komplett getrennt und werden erst an 
den DMA Master übergeben wenn die die volle Länge erreicht haben oder 
das BlockEnde kam.
WHQL haben wir uns geklemmt. Ersten wird der original Cypress Treiber 
wahrscheinlich nie durchkommen, der ist sowas von buggy, erzeugt immerzu 
Bluescreens, schreibt in nicht allozierte Speicherbereiche usw. und 
zweitens kostet das alles viel zu viel. Wir haben dann WinUSB genommen 
und gut. Ist genauso schnell, fehlerfrei und schon WHQL-signiert.
#2786619
Lesenswert?

Also ich kenn den FX3 "noch" nicht, aber der wird doch wie der FX2 einen 
MC haben. Was spricht dann dagegen einen mehrstufigen Bootloader zu 
verwenden ?

Ein 1. Level Bootloader welcher X Bytes ab einer Adresse, die nach der 
Konfiguration des FPGA liegt dürfte doch zusammen mit dem macic word in
die ersten 512 Bytes passen.
#2786644
Lesenswert?

Hm, ich weiß nicht, ob das rein passt, der ARM Kern braucht schon recht 
viel Firmware. Vielleicht wenn man alles zu Fuß in ASM programmiert, 
zumindest die 1. Stufe...aber 512 Byte sind da schon echt knapp.

MxM schrieb:
> Danke für diese wertvolle Antwort..

Ich hätte dir gerne einen Tipp gegeben, aber da ich selber vor dem 
"Problem" stehe, hab ich auch intensiv gesucht und nachgedacht, aber 
keine echt Lösung außer 2 Flash-Chips gefunden.
Viel nerviger ist, dass beim Spartan 6 nur entweder SPI Multi Boot oder 
AES Verschlüsselung geht. Toll.
Gast #2789101
Lesenswert?

"Viel nerviger ist, dass beim Spartan 6 nur entweder SPI Multi Boot oder
AES Verschlüsselung geht. Toll."

Ja, der sp6 ist mit Features nur so vollgestopft.. aber genau an der 
Stelle fehlt die Funktionalität..

Gruß,
Maxim
#2789276
Lesenswert?

Ja, so ist es leider. Ist halt ein abgespeckter Virtex 5, an manchen 
Stellen wurde offenbar zu sehr dem Preisdruck nachgegeben. Was man da 
fürs Geld kriegt, ist schon enorm, aber an manchen Stellen seltsam 
beschränkt. Auch die Clocking-Ressourcen sind stark eingeschränkt, vor 
allem die blöde BUFIO Beschränkung auf eine halbe Bank. Und dann alle 
SP60x Boards so blöde gebaut, dass man am FMC Stecker die 
ISERDES/OSERDES nicht mit mehreren Kanälen nutzen kann, weil die I/Os 
auf 4 Bänke verteilt sind....

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