工具/软件:TI-RTOS
您好!
我有一个设置、其中 AM572x DSP 内核侧运行 RC、FPGA 运行 EP。 现在、FPGA 发送 MSI 中断、在 RC 模式下、我需要处理它。
下面提供了有关 FPGA MSI 功能的一些详细信息
描述符名称 偏移 值
CapID 0x50 0x5
下一个指针 0x51 0x78
消息控制 0x52 0xA5
消息地址 0x54 0xFEE0F00C
消息高位地址0x58 0x0
消息数据 0x5C 0x49B4
从这一点我了解到 FPGA 已启用 MSI、消息控制字段的 MMC[19-17]为2、这意味着 FPGA 可以通过地址0xFEE0F00C 和数据0x49B4发送2个 MSI 中断
如何在我的 RC 代码中配置 MSI 地址。 MSI 消息通过任何 PCIe 入站地址区域处理? 交换哪个地址空间 MSI 消息。
用 地址0xFEE0F00C 对 MsiCtrlAddr 寄存器进行编程是否足够?
如何区分2个 MSI 中断与 RC FPGA?
在 TI 的 PCIe 示例代码中,在 PlatformSetupMSIAndINTX 函数中,对 RC msiCtrlAddr 进行了编程 ,PCIe_window_MSI_ADDR 和 EP MsiLowAddress 是 PCIe_window_MSI_ADDR>>>2.
在 PlatformMsiIntxIsr ISR 函数 中(msiBits[0].msiCtrlIntStatus = 1)表示 RC 已接收 MSI 中断
MSI 控制器中断#N 状态寄存器(RC 模式 MSI 接收器)
N = MSI 数据[7:5]且 STATUS[i]= MSI 矢量#I 的状态、其中 i = MSI 数据[4:0]
我假设 MSI 矢量区分 MSI 中断1和2