Hallo, ich hab hier eine FPGA Platine mit PCIe Gen2x4. Im Design habe ich den XDMA eingebaut und einen 1 MByte BRAM daran angeschlossen. Ich möchte da erstmal nur Daten hinschreiben und wieder lesen. Aber unter Windows. Klar, Linux könnte ich testen, aber es gibt ja auch Windowstreiber von Xilinx. Windows ist im Testmodus und ich konnte den Treiber installieren. Der XDMA wird auch erkannt wenn ich das Board mit dem Rechner verbinde. Aber im Gerätemanager ist ein gelbes Ausrufezeichen und es steht Code 10 da. Die Testprogramme von Xilinx wie z. B. xdma_info.exe finden den XDMA nicht. Was ist denn die Ursache für den Code 10 und wie muss ich den XDMA konfigurieren, dass der nicht nur im Gerätemanager auftaucht, sondern auch korrekt funktioniert? Im Anhang sind Bildchen der aktuellen Konfiguration. Vielen Dank!
https://www.xilinx.com/support/answers/65444.html Ist vll was dabei zur Loesung des Problems? Evtl. wird dir auch hier geholfen: https://www.xilinx.com/member/xdma_windows_driver.html
Danke! Den Treiber aus dem 1. Link habe ich installiert, also den aktuellsten vom 5.12.2020. Ich https://www.xilinx.com/Attachment/Xilinx_Answer_65444_Windows.pdf steht etwas zum Treiberdebugging mittels Windows Driver Development Kit (WDK), das werde ich mal probieren. Den zweiten Link kann ich nicht öffnen, weil ich keine Design Lizenz habe. Die braucht man für den XDMA auch nicht. Ich frage hier im Forum, weil es die Frage schon bei Xilinx gibt, https://forums.xilinx.com/t5/PCIe-and-CPM/Latest-XDMA-driver-update-issues-with-Windows-10/td-p/1184174 aber dort keine Antwort kommt.
Hmmm, ok. Das sieht mal wieder nach schwachem Xilinx Support aus. Leider bin ich da auch raus, Windows ist einfach nicht meine Welt. Im Zweifel vll. eine VM aufsetzen und das erstmal mit den Linux Treibern zum laufen bekommen? Ich hab mich gerade mal fuer die XDMA Windows Driver Lounge registriert. Falls ich da rein komme, schaue ich mal ob es da irgendwelche Infos gibt die weiterhelfen.
Vielen Dank! Ich werde das mit dem Treiberdebugging mal versuchen und dann mal mit Linux testen, da reicht ja ein USB Stick. Ob ich PCIe in eine VM hereingereicht bekomme weiß ich nicht. Ich dachte nur, dass ich da in den IP Einstellungen vielleicht einfach irgendwas falsch gemacht habe.
Moin, Wuerde mich nicht wundern, wenn Fehler 10 irgendsowas sinnvolles waere wie: "Oh, es ist leider ein Problem aufgetreten, vielleicht arbeitet ja schon jemand dran; fragen sie doch mal ihren Administrator. Falls das Problem bestehen bleibt, rebooten sie bitte. Hilft ihnen das weiter J/N/Vielleicht/LMAA" Iirc hab ich auch schon mal Fehler 10 kassiert, als ich mit (schwindeligem) USB-OTG an einem USB-Port unter Windows hing... Gruss WK
Was mich halt wundert ist, dass das von Windows korrekt erkannt wird. Da muss PCIe ja quasi laufen. Aber ich habe gerade Visual Studio und das Windows Driver Development Kit installiert. Traceview sagt mir das was im Bildchen steht. PCIe kann ich unter Windows weder in die VirtualBox noch in den VMwarePlayer hineinreichen.
Und ich habe noch ein paar sehr einfache Fragen zum Block Design generell: Im Address Editor: Ist der eingestellte Wert immer in Bytes oder ist das in der verwendeten Busbreite? Ich habe im Design einen AXI BRAM Controller und einen Block Memory Generator. Bei beiden kann ich nur die Busbreite, aber nicht die Tiefe einstellen. Meine Vermutung ist also, dass wenn ich im Address Editor einen Wert einstelle, sich automatisch die Tiefen in den anderen Komponenten ändern damit das passt. Jetzt habe ich im Address Editor mal 128K eingestellt und vermute das große K bedeutet kByte. Der angeschlossene AXI BRAM Controller hat 64 Bit Data Width, und die Memory Depth ist mit 16384 angegeben. Was bedeutet das? Ist da Platz für 16384 * 64 Bits = 128 kByte? Dann passt das. Daran, an den AXI BRAM Controller, ist noch der Block Memory Generator. Und da steht drinnen, alles ausgegraut, Read Width 32, Write Width 32 und Write Depth 262144. Was bedeutet das? 262144 * 32 Bits = 1 MByte. Und das passt natürlich nicht. Und in der Tat, ich hatte mal im Address Editor 1M eingestellt. Aber warum wird die neue Einstelung, 128K nicht übernommen? Ich kann machen was ich will, speichern, aufmachen, schließen, nix, der Wert bleibt stehen. Zum Testen habe ich die Blöcke gelöscht und neu eingefügt. Dann standen überall die korrekten Zahlen drinnen - aber die AXI Breite passte nicht. Aber kaum stelle ich die AXI Breite um, passt sich die Tiefe nicht automatisch an. Ich bin ja neu beim Blockdesign, aber ist so ein krudes Verhalten normal? Gibt es einen Befehl oder so mit dem man die Berechnung von Parametern neu anstoßen kann? Ich lade gerade Vivado 2020.2.1 runter, vielleicht ist das da gefixt.
:
Bearbeitet durch User
So, scheint tatsächlich gefixt zu sein. Habe jetzt Vivado 2020.2.1. Wenn ich jetzt im Address Editor einnen Wert ändere, dann wird der zwar auch nicht übernommen in den Komponenten, aber wenn ich dann das Blockdesign validieren lasse, dann gibt es nicht wie in Vivado 2020.1 einen Fehler dass die Größen nicht passen, sondern das sagt jetzt einfach OK und danach sind in den Komponenten die richtigen Größen eingestellt. Also dieses Design validieren aktualisiert jetzt irgendwie die Werte in den Komponenten.
Gustl B. schrieb: > Ich habe im Design einen AXI BRAM Controller und einen Block Memory > Generator. Bei beiden kann ich nur die Busbreite, aber nicht die Tiefe > einstellen. Meine Vermutung ist also, dass wenn ich im Address Editor > einen Wert einstelle, sich automatisch die Tiefen in den anderen > Komponenten ändern damit das passt. Ja, die Tiefe stellst du immer im Address Editor ein. Die Tiefe ist immer in Byte. 128K sind 128kByte. Das müsste auch logisch am Adressraum zu sehen sein. Es ist unabhängig von der Busbreite.
So, Linux (Ubuntu 20.04) aufgesetzt, Treiber geladen, Testskripte gestartet, funktioniert. Man man man ... Dann gucke ich mir den Windowstreiber mal genauer an wenn offensichtlich der das Problem ist.
Tobias B. schrieb: > Ich hab mich gerade mal fuer die XDMA Windows Driver Lounge registriert. > Falls ich da rein komme, schaue ich mal ob es da irgendwelche Infos gibt > die weiterhelfen. Also, ich hab jetzt Zugang zu der XDMA Windows Driver Lounge. Da steht im Software Guide drinnen: "The following operating system is supported: - Windows 7 Enterprise 64-bit" Die Treiber Version ist 2018.2. Scheint als waere Windows 10 evtl. nicht wirklich supported. Hab mich jetzt aber auch nicht tiefer eingelesen. Das Dokument bezieht sich auf den Answer Record 65444: https://www.xilinx.com/support/answers/65444.html
:
Bearbeitet durch User
Kleines Update: Im Readme zum Source Code steht: "### Dependencies * Target machine running Windows 7 or Windows 10 * Development machine running Windows 7 (or later)" "This driver project configurations support 32bit/64bit, Windows7/Windows10 OS. In order to target a different Windows OS, go to the driver project *Properties->Driver Settings->General* and change Target OS Version to the desired OS." Scheint also doch dass Windows 10 irgendwie supported wird. Ist dann halt die Frage wie sauber, vll wurde beim letzten Win 10 Build auch geschlampt. :-/
Vielen Dank! Ja das ist alles eher seltsam. Der Treiber vom 5.12.2020 ( https://www.xilinx.com/support/answers/65444.html Datei https://www.xilinx.com/Attachment/xdma_driver_win_bin_x64_12052020.zip ) ist definitiv für Windows 10. Aber funktioniert zumindest bei mir nicht während der Linuxtreiber läuft. Ich werde mir den Treiber mal genauer angucken und sonst abwarten, ist sowieso nur ein Bastelprojekt weil es aktuell sehr günstig PCIe Hardware mit FPGA drauf gibt.
:
Bearbeitet durch User
Gustl B. schrieb: > PCIe kann ich unter Windows weder in die VirtualBox noch in den > VMwarePlayer hineinreichen. KVM kann das. Welche VMware Variante so etwas kann weiss ich nicht (Die können auch so Spass wie eine dicke GPU virtualisiert an mehrere Gäste weiterzureichen). Willst du aber nicht um Hardware und Treiber zu entwickeln/debuggen, weil es einfach viele zusätzliche Fehlerquellen hinzufügt. Habe in einem anderen Thread mal aufgeführt, was gegeben sein muss um eine PCIe Karte im Gast zu haben: Beitrag "Re: Virtuelle Maschine"
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.