Tool/software: Code Composer Studio
We have a C6674 DSP and a FPGA (Cyclone IV) with PCIE hard ip core on board. When we use CORE0 to access the PCIE with SYS/BIOS, everything is ok, we can use DMA in FPGA to transmit data through PCIE. If we use CORE1 to do the work, we can see the PCIE trainning and configuration is ok, however, CORE1 cannot receive the MSI interrupt.
In PCIE_Interrupts_Init(), i made same change: (changing the event num from 33 to 44)
void PCIE_Interrupts_Init(void)
{
/* Disable Global host interrupts. */
gpCIC0_regs->GLOBAL_ENABLE_HINT_REG= 0;
uiPCIE_pend_host_event_num= 44; //33
/*map PCIE Interrupt events to CIC0 out33*/
KeyStone_CIC_event_map(gpCIC0_regs, CSL_INTC0_PCIEXPRESS_ERR_INT, 44);//33
KeyStone_CIC_event_map(gpCIC0_regs, CSL_INTC0_PCIEXPRESS_PM_INT, 44);//33
/* Enable the host interrupt */
//squwal added
gpCIC0_regs->HINT_ENABLE_SET_INDEX_REG = uiPCIE_pend_host_event_num;
/* Enable Global host interrupts. */
gpCIC0_regs->GLOBAL_ENABLE_HINT_REG= 1;
//clear all interrupt status registers of PCIE
KeyStone_PCIE_clear_interrupts();
/*on Nyquist, CIC0 out64 event number are 22 on core 0; on Shannon,
CIC0 out33 event number are 22 on core0. Map this event 22 to INT5.
Map PCIE MSI event to INT4*/
//CIC0 out44 event number are 22 on core1.
gpCGEM_regs->INTMUX1 = (22<<CSL_CGEM_INTMUX1_INTSEL5_SHIFT)
|(CSL_GEM_PCIEXPRESS_MSI_INTN<<CSL_CGEM_INTMUX1_INTSEL4_SHIFT);
//enable INT4 and INT5
CPU_interrupt_enable((1<<4)|(1<<5));
}
And in HWI, i change the Event ID from 33 to 44. And what else should i do? Is there anyting need to do in FPGA? Any suggestion is appreciated.