Hallo, Ich habe mein Lattice FPGA durchmit 8 Devices(UART0 ..UART7).Nun möchte ich gern wissen wie sieht die Verbindung aus damit der CPU weißt welcher Device seine Bedienung benötigt. Meine Lattice PCIe Core bietet MSI[0..7] Signale an (Sieh Bild)
MSI ist in der PCI 3.0 Spec ausführlich erklärt. Dir sollte aber bewusst sein, dass MSI nicht auf allen Systemen supported wird. (Bei Windows erst ab Vista, und erst ab Win7 vollständig). Diverse Linuxvarianten haben auch so ihre Probleme.
>Nun möchte ich gern wissen wie sieht die Verbindung aus damit der CPU weißt >welcher Device seine Bedienung benötigt. Habe die Frage nicht verstanden. Kannst du sie nochmal und verständlicher stellen?
Hi , Also ich meine wie werden die MSI[0..7] Signale aus meine Lattice IP Core zu verschiedene PCIe Devices verbunden? MSI heßt Message werden gesendet ich frage mich ob man die Leitungen hier nochmal braucht? Wenn ja welche Leitung zu welchen Devices? oder weißt er automatisch zu welchem Device ein Message gehört?
MSI - Message Interrupts Das sind keine Leitungen, sondern spezielle PCI-Express-Pakete. Du solltest dir mal ein PCI-Express-Buch zulegen, bevor du weitermachst.
Das habe ich schon seit 2 Monate und habe mich sogar mit Memory Write Transaktionen beschäftigt. OK Wenn ich richtig verstanden habe: Mein Treiber hat Message Adresse = 0x000AFE und Message Data=0x0000 festgelegt. Um einen Interrupt zu generieren mache ich einfach ein Memory Write Transaktion mit oben fesgelegte Daten. Bei 8 MSIs : nutze ich 3 letzte Bits um 8 unterschiedliche Messsages zu erzeugen. Message Adresse = 0x000AFE Device1: Message Data1= 0x0000 Device2: Message Data2= 0x0001 Device3: Message Data3= 0x0010 Device4: Message Data4= 0x0011 Device5: Message Data5= 0x0100 Device6: Message Data6= 0x0101 Device7: Message Data7= 0x0110 Device8: Message Data8= 0x0111 Und MSI[0..7] Signale dienen zu Interrupt Controller Implementierung um die Nachfrage von 8 verschiedene Devices zu synchronisieren. bin ich richtig?
Ngii Rayan schrieb: > bin ich richtig? Nein. Aus der Lattice Docu (IPUG75.PDF): How to issue MSI Up to eight MSI interrupts can be issued. The user can use any bit. Assertion to any of bit 0 to 7 of MSI issues an interrupt of the corresponding MSI number. The IP issues the interrupt at the rising edge of MSI input signal. -> Der Lattice PCIE IP Core führt den passenden Schreibzugriff selbständig aus.
Hi, I have sucessfully test multiple MSI on my V6 Integrated Block Board and my concern now is: Do I need an MSI Controller to sychronise all the Interrupts source or it will be handle by the Core automatically. I would really appreciate any response in order to move forward. Regards,
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.