Ich habe eine Problem damit, die Netzwerkschnittstelle auf meinem ML410er Board zum laufen zu bewegen. Hintergrund des ganzen ist, dass ich später eine Anwendung schreiben möchte, die mittels lwIP Daten verschickt. Nun stehe ich aber primär vor dem Problem, mit dem Xilinx Platform Studio ein passendes Design für das Board zu erstellen. In dem PPC 405 Chip ist ja ein hard TEMAC (Tri-mode Ethernet MAC) integriert, also ein Stück Silizium extra dafür, und laut Xilinx soll die Nutzung des xps_ll_temac (Wrapper?), was scheinbar der Nachfolger des PLB_TEMAC Soft-core's ist, in Verbindung mit dem hard TEMAC kostenlos sein. Nun stehe ich aber deutlich auf dem Schlauch wenn es darum geht, beides ordentlich und lauffähig in mein Design zu integrieren. Aus den Dokumentationen und Datenblättern geht leider nicht eindeutig hervor, welche Ports ich wie belegen muss, um beides miteinaner zum laufen zu bewegen. Auch die Application Notes, die es leider nur vereinzelt und in recht schlechter Qualität bzw. mit zu geringer Aussagekraft seitens Xilinx gibt, haben mir bis jetzt nicht wirklich weiter geholfen. Meist beziehen sie sich auf andere Boards, was noch das kleinere Übel wäre, oder auf andere EDK Versionen und da sind die Probleme dann schon viel größer. Ich selber habe hier die EDK 10.1 SP3. Ich würde mich sehr über eure Hilfe freuen und wenn noch irgendwelche Informationen benötigt werden, dann bitte einfach fragen. Schon mal danke.
Also XPS_LL_TEMAC ist schon richtig. In dessen optionen kann man dann "Hard" einstellen, dann wird der kostenlose Hard-IP genommen. LL steht für Local Link, das schnelle DMA Interface. Der xps_ll_temac arbeitet nur sinnvoll mit dem mpmc zusammen. Am dem erstellst du noch einen SDMA Port (LocalLink) und dann kannst du daran den temac anschließen. Der DatenTransfer läuft dann über den DMA des MPMC. Die Steuerung des Temac erfolg über den PLB. Beim 10.x ist die Sache mit den Lizenzen allerdings bissl komisch, kann sein, der verweigert dir die BitStream Generierung, weil die mitgelieferte Lizenz für den Hard-IP im Sommer 2009 ausgelaufen ist. Ich hatte dann auf Anfrage von Xilinx eine unbegrenzte Lizenz bekommen. Bei 11.x ist dieser Bug behoben, die Hard-IP Lizenzen laufen nie aus.
Christian R. schrieb: > Also XPS_LL_TEMAC ist schon richtig. In dessen optionen kann man dann > "Hard" einstellen Wo genau kann ich das einstellen? Ich habe mich schon im Platform Studio umgeschaut, vielleicht aber nicht an der richtigen Stelle Christian R. schrieb: > Der xps_ll_temac arbeitet > nur sinnvoll mit dem mpmc zusammen. Der ist, soweit ich das überblicke, im Design durch den BSB bereits integriert. Christian R. schrieb: > Am dem erstellst du noch einen SDMA > Port (LocalLink) und dann kannst du daran den temac anschließen. Geht das auch über das XPS oder müsste ich dafür HDL-mäßig Hand anlegen? Meine Kenntnisse in VHDL sind leider eher beschränkt, ebenso meine FPGA Kenntnisse...typische Praktikumsaufgabe ;-) Christian R. schrieb: > Beim 10.x ist die Sache mit den Lizenzen allerdings bissl komisch, kann > sein, der verweigert dir die BitStream Generierung, weil die > mitgelieferte Lizenz für den Hard-IP im Sommer 2009 ausgelaufen ist. Ich > hatte dann auf Anfrage von Xilinx eine unbegrenzte Lizenz bekommen. Bei > 11.x ist dieser Bug behoben, die Hard-IP Lizenzen laufen nie aus. Bis jetzt habe ich mir erstmal mit einer Eval. Lizenz ausgeholfen. Sollte das klappen, kann ich Xilinx immer noch anschreiben. Evtl. kommt in absehbarer Zeit auch noch ein Versionswechsel auf die 11.x. Dann wird das Problem eh geklärt sein. Hauptsache ich bekomm die ganze Geschichte so langsam zum laufen. EDIT: Mit der Eval. Lizenz meine ich den xps_ll_temac core. Bei dem hard_temac core nörgelt er nicht wegen der Lizenz. EDIT2: Den hard TEMAC kann ich leider nicht über den BSB einbinden, so dass ich das nachträglich machen muss. Daher muss ich auch händisch die Verbindungen herstellen. Wie muss ich da vorgehen bzw. was habe ich zu beachten? Danke für deine hilfreiche Antwort
Einstellen auf Hard einfach indem du das doppelklickst in der System View Liste da, nachdem du den hinzugefügt hast. Genauso beim MPMC, doppelklicken und bei Ports dann einfach einen SDMA hinzufügen. Hab hier zu Hause x64, daher kein XPS, kann keine Screenshots machen. Aber geht alles über die grafische Oberfläche.
Christian R. schrieb: > Einstellen auf Hard einfach indem du das doppelklickst in der System > View Liste da, nachdem du den hinzugefügt hast. Genauso beim MPMC, > doppelklicken und bei Ports dann einfach einen SDMA hinzufügen. Hab hier > zu Hause x64, daher kein XPS, kann keine Screenshots machen. Aber geht > alles über die grafische Oberfläche. Danke für deine Antwort. War bis jetzt alles sehr hilfreich. Einige Details müsste ich aber noch beantwortet haben. Ich habe in meinem Design zwei MPMC Instanzen, einmal für den DDR Speicher (64 MB) und einmal für den DDR2 Speicher (256 MB). Ich habe jetzt einfach mal die MPMC Instanz des DDR Speichers angezapft und dort einen freien Port als SDMA definiert und dem auch mittels "Generate Addresses" einen Adressraum gegeben. Kann ich so vorgehen oder sollte ich für den TEMAC lieber eine neue Instanz des MPMC's einbinden? Die nächste Frage ist dann, neben den beiden EDITS aus meinem letzten Beitrag, über welchen Port ich dann die xps_ll_temac Instanz mit dem SDMA Port verbinden soll? Schöne Grüße und vielen Dank für die Hilfe
Nee, brauchst keine extra Instanz. Der DMA ist ja dazu da, um zwischen dem Hauptspeicher und z.B. dem Temac Daten direkt auszutauschen. Das ginge mit 2 Instanzen ja nicht. Wir hatten damals den TEMAC und den DDR-SDRAM auf dem ML405 auch am gleichen MPMC. Verbunden wird das dann über die LL-Ports, die tauchen doch automatisch in der System Assembly View auf. Das sind Punkt-zu-Punkt Verbindungen, die "passen" dann nur da dran.
Mh, also irgendwie ist das bei mir ne schwere Geburt. Ich habe einfach mal zwei Screenshots von den zur Verfügung stehenden Ports gemacht, um das ganze eindeutig zu machen. Denn LL-Ports tauchen dort leider nicht auf.
Das ist die falsche Ansicht. Du musst bei Bus Interfaces die interne Bus-Verdrahtung ansehen und bearbeiten. Da wo links die ganzen Busse stehen (PLB, IPLB, DPLB...). Diese Ansicht, in der du bist, ist hauptsählich dazu da, um die Ports, die ganz nach außen an die Pins des FPGA gelegt werden, zu bearbeiten. Übrigens kannst du den xps_ll_temac doch beim Base System Builder gleich auswählen, dann werden auch die richtigen Pins des FPGA angeschlossen, die Constraints richtig gesetzt usw. Das ist nämlich nicht ganz ohne, der generiert einige IDELAYs und sowas....in der Liste vom BSBS heißt der Tri Mode Mac irgendwie. Erst wenn man ihn hinzufügt, steht xps_ll_temac da und dann muss/kann man gleich den DMA aktivieren. Dann sind auch die LL-Busse gleich da.
Ah, jetzt geht mir ein Licht auf. Danke für die Antwort und den sehr hilfreichen Screenshot. Ich werde damit jetzt mal mein Glück versuchen. Hast du evtl. noch eine Lösung für das Dilemma bezüglich der xps_ll_temac Lizenzgeschichte? In Verbindung mit dem hard TEMAC soll dieser Core ja kostenlos sein, trotzdem läuft die Geschichte bis jetzt nur mit einer Eval. Lizenz. Ist die Geschichte auch schon unter der 10.1 so konzipiert oder wirds erst in der 11.x umsonst in der Verbindung?
Naja, wie gesagt, das war bei uns auch. Dummerweise ging nach Sommer 2009 dann auf einmal die Eval-Lizenz auch nicht mehr. Da hat mir auf Anfrage Xilinx eine unbegrenzte zur Verfügung gestellt. In der 11.x ist das behoben, da steht zwar immer noch Eval drin, aber ich hatte mal probiert, das Datum vorgestellt vom Rechner, da lief´s immer noch. Bei der 10.x ging konnte man das mit Datum vorstellen schön testen.
Der hard TEMAC funktioniert scheinbar ueberhaupt nicht richtig. Ich wuerde nicht zuviel Zeit drauf verschwenden. Wird seinen Grund haben warum die Dokumentation etwas sparse ist... Die soft version funktioniert wunderbar.
Hm, bei uns ging der sehr gut, wenn man einmal kapiert hat, wie der bemuttelt werden will. Vor allem mit dem ScatterGather DMA und CheckSum Offloading wunderbar, da kann man sich nämlich vom DMA die ganzen Frames zusammen bauen lassen. Und Doku is ja genügend dran. Was allerdings nicht sinnvoll klappt, ist der LwIP Stack, den kann man in der Pfeife rauchen.
Christian R. schrieb: > Was allerdings > nicht sinnvoll klappt, ist der LwIP Stack, den kann man in der Pfeife > rauchen. Da machst du mir jetzt aber Mut ;-) Denn eigentlich "wollte" ich den benutzen, um dann über TCP/IP Daten an einen Host zu senden. Was mir bis jetzt daran aber aufgefallen ist, war einfach dieses schreckliche gewurstel von Xilinx...die haben selber ne Implementierung oder sowas in der Art auf die Beine gestellt und das ist sowas von undurchsichtig...
Genau so ist es. Außerdem ist der extrem langsam, nutzt kein DMA und kein CheckSum Offloading. Wir hatten das damals als Diplomarbeit und der Diplomand hat den Stack dann doch selber geschrieben dann. Damit konnten wir in UDP dann auch etwas über 100MB/s erreichen aus dem SDRAM zum PC. Ich glaub der LwIP is nur zur Demonstration....muss man mindestens erweitern, oder als Anregeung nehmen.
Christian R. schrieb: > Genau so ist es. Außerdem ist der extrem langsam, nutzt kein DMA und > kein CheckSum Offloading. Wir hatten das damals als Diplomarbeit und der > Diplomand hat den Stack dann doch selber geschrieben dann. Damit konnten > wir in UDP dann auch etwas über 100MB/s erreichen aus dem SDRAM zum PC. > Ich glaub der LwIP is nur zur Demonstration....muss man mindestens > erweitern, oder als Anregeung nehmen. Mh, selber schreiben fällt bei mir wohl eher weg, da ich sowas zum einen noch nie gemacht habe, zum anderen der Schwerpunkt der Aufgabenstellung woanders liegt. Netzwerkfähigkeit ist sehr wichtig, aber stellt nicht den Kernpunkt der Aufgabe dar. Gibt es sonst noch bessere Alternativen?
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.