TMS320C6657: C6657 PCIe Endpoint Send MSI Interrupt to Root Complex Fails

Part Number: TMS320C6657

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, &regs)) != 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.