Tool/software:
Hi,
I am trying to send a MSI interrupt from the C6657 Endpoint (EP) to a remote root complex PCIe device but the MSI interrupt does not occur on the root complex side.
Here is what I did:
1. On C6657 EndPoint I set the PCIe outbound translation to the BAR0 address (0xE0000000) of the remote PCIe Root Complex device.
2. On C6657 EndPoint I set the MSI_ENABLE = 1 and the MSI Lower Address Register to the BAR0 address (0xE0000000) of the remote PCIe Root Complex device as shown below.
msiCapReg.msiEn = 0x01;
msiLoReg.addr = 0xE0000000;
msiUpReg.addr = 0x00000000;
msiDataReg.data = 0x00;
// Write the updated state back
if ((retVal = Pcie_writeRegs(pcie_handle, pcie_LOCATION_LOCAL, ®s)) != pcie_RET_OK) {
// Error, handle appropriately.
}
3. On the C6657 EndPoint I initiate the MSI interrupt to the PCIe BAR0 base address (0x6000000) + MSI IRQ offset (0x54) as follows:
// Send interrupt.
*((volatile u32*)0x60000054) = 0x00;
Am I doing something wrong what am I missing???
Thanks for the help.
Jan.