Hallo Besucher, der Thread wurde 11k mal aufgerufen und enthält 52 Antworten

letzter Beitrag von andi6510 am

FPGASID Konfigurationstool ist da! (ehemals: FPGASID Konfigurationstool muss her!)

  • Hallo Leute,


    eine Sache, die mir noch am Herzen liegt, ist ein vernuenftiges Konfigurationstool fuer den FPGASID. Es gibt ja im Moment nur ein paar rudimentaere Konfigurationsprogramme - ein paar Basic Schnipsel von mir und das config-tool hier aus dem Forum. Jetzt ist aber noch die Aufgabe Bereich des Firmware-Flashens hinzugekommen. Dort benutze ich zum Testen im Moment auch einen wilden Mix aus Basic und Assembler - das kann man so auch nicht auf die Allgemeinheit loslassen.


    Lange Rede kurzer Sinn: Es muss was Vernuenftiges her!


    In der Vergangenheit hatten sich schon ein paar Leute bei mir gemeldet, die ein solches tool progrmmieren wollten und teilweise auch schon ganz nette Sachen gemacht hatten. Leider sind diese Aktivitaeten aber alle im Moment wieder eingeschlafen. Vermutlich, weil es doch ziemlich viel Arbeit bedeutet, so ein tool auf die Beine zu stellen. Auch gab es von meiner Seite nicht so recht Unterstuetzung, da das Thema fuer mich auch ziemlich hinten an stand. Doch das alles soll sich jetzt aendern! Waere doch gelacht, wenn wir es hier im Forum nicht schaffen wuerden so etwas auf die Beine zu stellen!


    Daher hier ein offizieller Aufruf: Wer hat Lust und kann etwas dazu beitragen, dass ein solches tool entsteht?


    Ich habe mittlerweile eine ziemlich gute Vorstellung, wie das tool aussehen soll und was es alles koennen muss. Das Tool soll bei aller Funktion dann natuerlich auch halbwegs gefaellig aussehen. Es duerfen sich also auch FPGASID-fremde Programmierer beteiligen, die einfach nur Spass daran haben eine verneunftige Bedienoberflaeche zu bauen. Die technische Seite (welche Register wie beschrieben werden) kann ich gerne uebernehmen.
    Programmiersprache sollte Assembler sein. Entwicklung z.B. mit dem C64 Studio im Emulator, dann gibts spaeter auch richtige Assemblersourcen. Den Hardwarezugriff baue ich dann auf der echten Hardware ein.


    Wer sich meldet, sollte bereit sein in den naechsten Wochen/Monaten da auch Zeit zu investieren, damit das alles nicht gleich wieder einschlaeft. Und wenn mehrere mithelfen wird es fuer die Einzelnen nicht so viel. Wenn sich (hoffentlich) ein paar Leute melden, werde ich versuchen die ungebremste Kreativitaet zu synchronisieren.


    Also: Traut Euch und meldet Euch hier!


    So, zum Schluss hier noch meine Notizen, wie ich mir das Tool vorstelle:

  • Wer es noch nicht bemerkt hat: Im letzten FPGA-Release (6) gab es auch ein Konfigurationstool namens 'ConfiGuru', welches ich in einem ziemlichen Kraftakt in den Wochen vor Weihnachten geschrieben habe:


    ConfiGuru_easy.png


    In dem Release ist es ist noch in der Version 0.8. Es hat also noch das ein oder andere kleinere Problem, ist aber weitesgehend funktional.


    Das Tool funktioniert ab der FPGA-Version 6 - für ältere Versionen geht es in einen Demomode, mit dem sich die Funktionen ansehen lassen ohne dass sie etwas Sinnvolles machen. Vorsicht: Im Demomodus werden trotzdem Register geschrieben, die es so aussehen lassen, als würde da schon was funktionieren, aber leider ist das trügerisch, weil z.B. der zweite SID nicht konfiguriert wird, da ich die Registerzugriffe da nochmal geändert habe.


    Folgende Grundfunktionen bietet das Tool:


    Easy Konfiguration

    (Siehe Bild oben) Hier können einige Grundkonfigurationen ausgewählt werden. Mit 'save A' speichert man die Konfiguration dann dauerhaft ins Flash, so dass sie gleich nach dem Einschalten gesetzt wird. (Hinweis: Der zweite Knopf 'save B' ist mit der aktuellen Hardware leider nutzlos. Damit kann die Konfiguration in einen zweiten Speicherbereich im Flash geschrieben werden und man wird mit der neuen Hardware dann zwischen diesen beiden Konfigurationen per Hardware-Schalter hin und her schalten können.)


    Expertenmodus:
    Für diejenigen, die jedes Detail im Griff behalten wollen...


    ConfiGuru_expert.png


    Diagnosefunktion:

    Damit kann man dem FPGASID ein bisschen in die Eingeweide schauen. Zudem werden alle Signalpfade und Funktionen überprüft.


    ConfiGuru_diag.png


    Firmware Flashen:

    Damit kann eine neue FPGA-Firmware geflasht werden. Wer will, kann auf diesem Wege mal probieren die 6er Firmware nochmal zu flashen. Die Firmware-Disk-Images gibts als .D64 files im Release ZIP-File. Wer ein SD2IEC benutzt kann auch gleich alle 8 Firmware Dateien in einen Ordner kopieren - dann muss man zwischendurch nicht die Diskette (virtuell) wechseln.


    ConfiGuru_flash.png



    Das Tool kann man natürlich noch weiter ausbauen - Soundeffekte wären toll, Mouse- und Joystick Unterstützung fehlen auch noch sowie ein toller Splash-Screen am Anfang. Wer Lust hat da etwas beizutragen, der kann mich ansprechen. Die (Assembler-)Sourcen für das Tool sind nicht geheim und ich gebe sie gerne raus, wenn etwas Produktives damit geschieht.


    Ich freue mich über jede Form der Rückmeldung zu ConfiGuru!

  • Wie kann ich im ConfiGuru denn zwischen den aktiven Konfigurationen A oder B hin und her schalten?
    Konfigurieren und speichern ist mir soweit klar, aber wo sage ich denn "A" aktiv, oder "B" aktiv?
    Weiter vermisse ich irgendwie eine Funktion, wo man die derzeit aktive Konfiguration, die man gerade mit "A" oder "B" aktiviert hat, lesen und anzeigen lassen kann, oder denke ich da einfach zu kompliziert?

  • ist mir nicht entgangen;) habe es auch schon genutzt, und dabei sind mir zwei Dinge aufgefallen. Eins hat damit zu tun, dass das Tool vielleicht nicht immer die Konfiguration korrekt zurück liest oder anzeigt. Das hat mich kurz verwirrt.


    Das andere hat mit dem Digifix zu tun. Der führt mitunter beim Endpart von Comalight 13 zu massiven Störungen der Ausgabe. Ich habe aber noch nicht mit echtem 8580+Digifix oder Firmware5+Digifix gegen getestet.

  • Eins hat damit zu tun, dass das Tool vielleicht nicht immer die Konfiguration korrekt zurück liest oder anzeigt. Das hat mich kurz verwirrt.

    Ohh, das kann auch der Grund meiner Verwirrung sein. Evtl. liest er bei mir die aktuelle Konfig nicht korrekt und deshalb meine Frage zum aktivem Lesen der Konfig im Tool.

  • Wie kann ich im ConfiGuru denn zwischen den aktiven Konfigurationen A oder B hin und her schalten?


    Dazu darf ich mich mal selbst zitieren:


    (Hinweis: Der zweite Knopf 'save B' ist mit der aktuellen Hardware leider nutzlos. Damit kann die Konfiguration in einen zweiten Speicherbereich im Flash geschrieben werden und man wird mit der neuen Hardware dann zwischen diesen beiden Konfigurationen per Hardware-Schalter hin und her schalten können.)

    Oder ganz kurz: Gar nicht!


    Die Funktionsweise ist wie folgt:


    Beim Starten von ConfiGuru wird die aktuelle Konfiguration aus den Registern des FPGASID gelesen. Also genau das, was gerade aktiv Anwendung findet. Wenn man also irgend was konfiguriert und dann Configuru verlässt und danach wieder startet, sollte genau das wieder angezeigt werden (bis zum Beweis des Gegenteils). Jede Konfiguration, die man im Tool macht findet sofort Anwendung im FPGASID, vollkommen unabhängig davon, ob man 'save A' gedrückt hat oder nicht. Man kann also kurz mal ins Tool gehen, am digifix drehen, wieder raus gehen und die Einstellung überprüfen. Reset belässt die Konfiguration so wie sie war (wie bereits üblich). Erst das Ausschalten löscht die Einstellungen.
    Und jetzt kommt 'save A' ins Spiel: Damit speichert man nämlich die aktuelle Konfiguration permanent im Flash ab, so dass diese nach dem nächsten Einschalten aktiv wird. 'save A' dient also 'nur' dazu die aktuelle Einstellung auch wirklich permanent zu machen. Es ist keineswegs so eine Art 'OK'-Button. Mit 'save A' kann man den FPGASID also stets im 8580 Modus aufwachen lassen, statt ihn immer erst von 6581 nach 8580 umschalten zu müssen.


    Ausblick: Die neue Hardware (leider nicht die aktuelle) wird dann noch einen Anschluss für einen Hardwareschalter haben. Damit kann man dann zwischen A und B umschalten, und zwar sowohl beim Einschalten des Rechners, also auch später zur Laufzeit. Aber wie gesagt, das ist Zukunftsmusik und natürlich auch ein unschlagbares Kaufargument für die neue Hardware ;-)


    Eure Probleme sind wertvoller Input für mich - evtl sollte das Programm in dieser Hinsicht die Funktion klarer erklären. Wie auch immer... (Vorschläge?)

  • Danke Andi,


    ich gebe zu, den Part hatte ich ueberlesen, danke fuer die Karstellung! ;)
    Das Lesen der aktuellen Einstellungen werde ich mal beobachten und schauen, ob es da Regelmaessigkeiten gibt und ob das reproduzierbar ist. Evtl. hat es ja auch mit einer bestimmten Hardware Kombination zu tun, die Du noch nicht selbst getestet hat? Mal sehen, das werden wir schon finden. :D

  • Ausblick: Die neue Hardware (leider nicht die aktuelle) wird dann noch einen Anschluss für einen Hardwareschalter haben. Damit kann man dann zwischen A und B umschalten, und zwar sowohl beim Einschalten des Rechners, also auch später zur Laufzeit. Aber wie gesagt, das ist Zukunftsmusik und natürlich auch ein unschlagbares Kaufargument für die neue Hardware ;-)
    Eure Probleme sind wertvoller Input für mich - evtl sollte das Programm in dieser Hinsicht die Funktion klarer erklären. Wie auch immer... (Vorschläge?)

    Ganz großartige Sache Andi ! Vielen Dank für die wertvolle Zeit die du in das Projekt steckst :verehr:


    Zum Thema, richtig, unschlagbares Kaufargument ...da werde ich doch demnächst eine finale version noch dazu ordern :thumbup: . Ich bin noch garnicht dzau gekommen das Tool zu testen geschweige denn zu mehr, möchte unbendingt diese Woche endlich den A600 fertig basteln welcher längts überfällig ist.

  • Irgendwie komme ich damit nicht so ganz klar...


    Ich hatte heute mal endlich Zeit, die neusten CPLD- und FPGA-Files zu flashen und das Konfigtool zu testen. Aber so ganz rund arbeitet das Tool bei mir noch nicht:


    Ich kann mit dem Tool mir meine Konfig (SID1 soll 8580 sein) erstellen und auch als "Save A" speichern. Im Diagnose-Screen kriege ich unter SID1: 64003F, was m.E. auch gut aussieht.


    Wenn ich jetzt allerdings den C64 aus- und wieder einschalte, dann steht bei "easy" unter "SID1" wieder der 6581...


    Liegt das vielleicht an der Ultimate II+? Denn ich habe auch öfters Resets nach dem Starten des Konfigtools...


    Ich glaube, ich grabe mal mein SD2IEC-Laufwerk aus und probiere es damit. Aber mit der Ultimate II+ sollte das schon laufen...



    Gruß
    Thomas


    PS: Die Versionsnummer schwankt bei mir zwischen 0.1 und 0.9... Hmmm... (Ab und zu blitzt 0.1 kurz auf...)

  • Liegt das vielleicht an der Ultimate II+? Denn ich habe auch öfters Resets nach dem Starten des Konfigtools...

    Alles nochmal mit dem SD2IEC-Kaufwerk ausprobiert. Fast gleiches Ergebnis. Die Resets sind weg, aber die liegen bestimmt an der Ultimate II+ (bzw. am $DE00-Chip Enable).


    Aber ich vermute mal, die aktuelle Konfig des FPGASIDs wird beim Starten des Konfigtools nicht geladen und es wird praktisch jedes Mal mit der "Basis-Konfiguration" begonnen.


    @andi6510: Kannst Du das bestätigen?


    Gruß
    Thomas

  • @Freak, hast Du Revision 6 oder Revision 7 benutzt?


    Das im Tool kurz mal die 0.1 aufblitzt ist unschön aber erklärbar. Das kann ich bei Gelegenheit fixen.


    Die Resets könnten am Addresscheck liegen. Dort wird versucht nach DE00 zu schreiben, was der UII+ eventuell nicht gut bekommt.
    Gibt es wohl irgendwo eine Doku, auf welchen Adressen die UII+ genau lauscht?


    Beim Starten von ConfiGuru wird einfach die momentan gesetzte Konfiguration angezeigt. Bei 'easy' sollte daher auch 8580 angezeigt werden, wenn Du das vorher eingeschaltet hast. Ebenso bei 'expert'. Wenn nicht ist das ein Bug oder es wurde eben vorher nicht 8580 gesetzt.


    SAVE A dient einzig alleine dazu, die Einschaltkonfiguration festzulegen. Es wird wird damit die aktuelle Konfig im Flash gespeichert. Sie wird dann beim EINSCHALTEN aus dem Flash geladen und sollte dann aktiv sein. Wenn das nicht der Fall ist, ist das ebenfalls ein Bug.


    Was zeigt er bei 'active config' an? Sollte immer auf A stehen. Das ist nämlich der Pin, der zukünftig am JTAG raus kommt und zum Umschalten der Konfigurationen benutzt werden soll.


    Die Konfiguration im Flash wird gelöscht wenn man den FPGASID per JTAG programmiert. Evtl war es das bei Dir?


    Ich teste das morgen mal. Die geflashte Konfiguration hatte bei Revision 6 definitiv einen Powerzyklus überlebt. Aber mit der 7er habe ich das nicht noch mal getestet.

  • OK, habe eine womöglich etwas veraltete UII+ Doku gefunden. Demnach benutzt die UII+ die Adressen DF1C...DF1F.
    FPGASID benutzt DE00 bis DE1F. Sollte also eigentlich kein Problem sein...


    Aber wir haben ja schon in der Vergangenheit Probleme damit gehabt.

  • OK, das hat mir jetzt doch keine Ruhe gelassen. Leider muss ich bestätigen, dass da irgend etwas nicht richtig funktioniert. Die Konfiguration im Flash wird beim Einschalten offensichtlich nicht (mehr) geladen. Das scheint auch bei Revision 6 so zu sein...
    Ich schau gelegentlich danach...

  • Die Resets könnten am Addresscheck liegen. Dort wird versucht nach DE00 zu schreiben, was der UII+ eventuell nicht gut bekommt.

    Das denke ich auch. Ist es aber überhaupt nötig, gleich zu Anfang nach DE00 zu schreiben? Reicht es nicht, die Konfig nur aus dem D400-Bereich zu lesen und dann darzustellen?



    Was zeigt er bei 'active config' an? Sollte immer auf A stehen. Das ist nämlich der Pin, der zukünftig am JTAG raus kommt und zum Umschalten der Konfigurationen benutzt werden soll.

    Steht bei mir ständig auf A.



    hast Du Revision 6 oder Revision 7 benutzt?

    Die Konfiguration im Flash wird gelöscht wenn man den FPGASID per JTAG programmiert. Evtl war es das bei Dir?

    Ich habe die Revision 6 übersprungen und per JTAG die Version 7 geflasht. Danach fing ich an mit dem ConfiGuru zu spielen. Zuerst mit der Ultimate II+ im Expansionport, später dan per SD2IEC-Laufwerk. Bei letzterem hatte ich zumindest schon mal keine Abstürze...


    Ich habe dann beobachtet, dass sich im "Diagnostic"-Screen nach "Save A" die Werte unter "Configuration" ändern. Also wird wohl eine Konfiguration gespeichert. Ob sie auch wirklich wieder geladen wird, habe ich nur mit dem ConfiGuru getestet, nicht mit anderen Programmen. Zumindest im ConfiGuru wird jedenfalls nach dem Starten (nach einem Powercycle) wieder die Grundkonfiguration angezeigt, während die Werte unter "Configuration" immer noch eine geänderte Konfiguration anzeigen, also den Powercycle überlebt haben...


    Gruß
    Thomas

  • Die Zugriffe auf DE00 kommen von der Diagnosefunktion. Dort wird getestet ob dieser Bereich verfügbar ist, um entsprechende Diagnoseinformationen anzuzeigen. Das geschieht unter anderem gleich zu Anfang.


    Außerdem kann ich, wie bereits schon geschrieben bestätigen, dass das Laden der Konfiguration beim Einschalten nicht funktioniert. Da muss ich mich noch drum kümmern. :(