04-11-2012 08:12 PM
Does somebody familiar with pcie interrupt?In my project, I want to send a interrupt to let the host to fetch the data after I have written a ram space.In SDK drives of pcie ,I can only find some api functions like "void XPcie_EnableInterrupts(XPcie *InstancePtr, u32 EnableMask), void XPcie_DisableInterrupts(XPcie *InstancePtr, u32 DisableMask)".I dont know how to trigger a interrupt to host not to my embedded system.In hardware design setting, the port 'MSI_request' of pcie ip core is netted to net_gnd.
04-12-2012 01:22 PM
To signal an interrupt to the host, you need to hold MSI_request high for at least two clocks so you need to connect this signal to something. Whether a GPIO GPIO_O port or something else.
04-17-2012 08:19 PM
Thank u first.Recently,I have read somedocuments about pcie interrupt.What I have learned is that root assign MSI Address Register a value,address A .What I wander is whether I let the MSI_request high for at least two clocks then the pcie core will send a MSI MemWr TLP to the root.The value of that MSI MemWr TLP 's address and date is genetated and wrote automatically?But where is the data of MSI MemWr TLP from?
Another question is how to notify the pcie device after the host writes some data to the memory space . Because the pcie device doesn't know the data has been updated by host.There is not interrupts which can send from host to device.
04-20-2012 07:43 PM
Check UG185 or equivalent document on the endpoint core. It describes the MSI MemWr TLP.
One way to signal from the root that data has been updated is to add a register (gpio, irq controller etc) to the local system that the root can write to that generates an interrupt or can be polled by the local processor.