This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

PCIE的MSI中断响应问题

Other Parts Discussed in Thread: TMS320C6655

TI,您好!

目标功能:实现RC(LINUX)向EP(TMS320C6655)发送MSI中断。

现状:

1. RC发送0(4,8也试过,整个中断向量号怎么确定?)到EP端的PCIe应用寄存器MSI_IRQ(0X21800054),没有任何反应。

2. EP端在CCS上查看到的相关寄存器:

MSI_IRQ:0

EP_IRQ_SET:0

EP_IRQ_CLR:0

EP_IRQ_STATUS:0

MSI0_IRQ_STATUS_RAW:0x0000000E

MSI0_IRQ_STATUS:0

MSI0_IRQ_ENABLE_SET:0x00000001

MSI0_IRQ_ENABLE_CLR:0x00000001

MSI(1-7)_IRQ_STATUS_RAW:0x0000000F

MSI(1-7)_IRQ_STATUS:0

MSI(1-7)_IRQ_ENABLE_SET:0

MSI(1-7)_IRQ_ENABLE_CLR:0

MSI_CAP:0x00017005

请论坛里的高手帮忙指导一下,如何调试MSI中断?整个过程中这些寄存器哪些是EP要配置的,哪些会根据RC的情况自动变化?

能帮忙讲解下MSI从RC发到EP过程中,这些寄存器变化的过程更好,不胜感激。

/////////////////////////////////////////////////////////////////////////////////////

以下是MSI事件到硬件中断的映射

void PCIeIntRegister(void)
{

void PCIeIntRegister(void)
{
	Hwi_Handle hwi0;
	Hwi_Params hwiParams;
	Hwi_Params_init(&hwiParams);
	hwiParams.enableInt =FALSE;
       // set the event id of the peripheral assigned to this interrupt
       hwiParams.eventId = 17;//PCIExpress_MSI_INTn+0/2/4/6
       // don't allow this interrupt to nest itself
       // hwiParams.maskSetting = Hwi_MaskingOption_ALL ;
        hwiParams.priority = 4;
	hwi0=Hwi_create(5, PCIE_MSI_ISR, &hwiParams, NULL);
	if(hwi0 == NULL)
	{
		System_printf("hwi0 create fail !!! \n");
		BIOS_exit(0);
	}
	Hwi_enableInterrupt(5);
}

/////////////////////////////////////////////////以下是相关寄存器截图/////////////////////////////////////////////////////////////

谢谢