Frage

Ich versuche, etwas seltsames Problem in dem Gerätetreiber für das PCIe FPGA-Gerät zu debuggen. Sowohl die Gerätetreiber und das FPGA-Bild werden im Hause entwickelt.

Das Zielsystem ist x86, und das Betriebssystem Fedora 9. Es hat eine PCIe-Karte hat mit dem FPGA angeschlossen es nur PCIe-Steckplatz ist. Das FPGA Bild wird nach dem Boot aus dem EEPROM geladen.

Der Treiber ist in einer solchen Art und Weise geschrieben, dass es die /sys/bus/pci/devices/0000:02:00.0/ Ressourcendateien verwendet (wo 0000: 02: 00.0 ist der PCI-Steckplatz der Karte, um die FPGA enthält) das FPGA zu konfigurieren.

Wenn das System startet (oder wenn es aus dem Ruhezustand zurückkehrt), die FPGA-Link Nähte verloren, und die Ressource-Dateien fehlen. Wenn die FPGA gebootet wird, funktioniert alles einwandfrei (die Ressource-Dateien sind dort). Wenn das System den Ruhezustand eintritt, wird der FPGA ausgeschaltet. Wenn es aus dem Ruhezustand zurückkehrt, wird die FPGA eingeschaltet wird, bevor die Fahrer der Initialisierung zu starten.

ich bei der nächsten Dingen bin Verdacht:

  • ein Fehler in der Firmware - etwas zu PCI-Steck Zusammenhang in
  • ein Fehler im Kernel - am wenigsten wahrscheinlich, weil anderen PCI-Karten werden erkannt Ordnung. nur
    Diese PCI-Karte macht Probleme

Und die Fragen sind:

  • Hat jemand ähnliche Probleme gehabt?
  • Was könnte falsch sein?
  • Haben Sie Vorschläge, wie dieses Problem zu debuggen?

Bearbeiten

Ich habe gerade diesen Fehler , die das Problem, das ich sehr ähnlich ist sehe.

War es hilfreich?

Lösung

Eine PCIe-Karte hat zu einer „Ist jemand da“ Nachricht innerhalb einer bestimmten Zeit zu antworten. Ist es möglich, dass Ihre Karte nicht schnell genug nach dem Winterschlaf / Reset reagiert?

Ohne weitere Details des Designs, ist es schwer, etwas zu tun, aber erraten.

Kann listen Sie die Unterschiede zwischen dem System arbeiten und nicht arbeiten, das heißt, was tun Sie anders machen die Karte zu Arbeit zu bekommen?

Andere Tipps

ich es endlich geschafft, mein Problem zu debuggen. Kurz vor dem Ruhezustand eintritt, werden alle Prozesse, die noch über die Ressourcen-Dateien werden getötet werden. Aus unbekannten Gründen, lassen Sie ein Prozessressourcen nicht, und wurde getötet. Wir haben einen Watchdog, der respawns alle Prozesse, die nicht ausgeführt werden.

Wenn wieder aus dem Winterschlaf kommt, ist dieser Prozess respawned, und da es nicht die Ressourcendateien öffnen konnte, starb wieder, und dann ein kritischer Fehler erklärt wurde. Nach einiger sehr kleinen Zeit wurden die Ressourcen-Dateien durch das Betriebssystem hinzugefügt, und dieser Prozess wird normalerweise fortgesetzt werden kann.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top