Part Number: AM5728
Tool/software: TI-RTOS
Hi,
I have a setup where AM572x DSP core side runs RC and FPGA runs EP. Now FPGA sends MSI interrupts and in RC i need to handle it.
I am provided some details of FPGA MSI capability as below
Descriptor name offset value
CapID 0x50 0x5
Next Pointer 0x51 0x78
Message Control 0x52 0xA5
Message Address 0x54 0xFEE0F00C
Message Upper Address 0x58 0x0
Message Data 0x5C 0x49B4
From this I understand that FPGA is MSI enabled, the MMC[19-17] of Message control field is 2 which means FPGA can send 2 MSI interrupts over the address 0xFEE0F00C and data 0x49B4
How should i configure MSI address in my RC code. MSI messsages are handled through any PCIE INBOUND address region? Which address space MSI messages are exchanged.
Is it sufficient if I program MsiCtrlAddr register with address 0xFEE0F00C?
How do i differentiate the 2 MSI interrupts from the RC FPGA?
In the Ti Example code for PCIE, in the PlatformSetupMSIAndINTX function, RC msiCtrlAddr is programmed PCIE_WINDOW_MSI_ADDR and EP MsiLowAddress is PCIE_WINDOW_MSI_ADDR>>2
and in the PlatformMsiIntxIsr isr function if (msiBits[0].msiCtrlIntStatus == 1) means that RC has received MSI interrupt
MSI Controller Interrupt #N Status Register (RC-mode MSI receiver) with
N = MSI data [7:5] and STATUS[i] = status of MSI vector #i, with i = MSI data [4:0]
I am assuming that MSI vector differentiates the MSI interrupts 1 & 2