TI中文支持网
TI专业的中文技术问题搜集分享网站

DM8168 C6678 pcie msi 中断不能触发

Hi all:

        我们现在使用的DM8168做为RC端,C6678作为EP,现在RC和EP直接数据收发都是可以的,现在主要在调试PCIE的msi中断上碰到一个问题,

具体问题描述如下:

        RC端配置:

BAR0: 0x51000000

IB 00 : IB_BAR: 0x1   IB_START0_LO: 0x70000000   IB_START0_HI: 0x0   IB_OFFSET: 0x70000000

IB 01 : IB_BAR: 0x0   IB_START0_LO: 0x0   IB_START0_HI: 0x0   IB_OFFSET: 0x0

IB 02 : IB_BAR: 0x0   IB_START0_LO: 0x0   IB_START0_HI: 0x0   IB_OFFSET: 0x0

IB 03 : IB_BAR: 0x0   IB_START0_LO: 0x0   IB_START0_HI: 0x0   IB_OFFSET: 0x0

 

       EP端配置:

                         BAR0 = 0X10000000

                         obAddrLo = 0x70000000 

          通过DSP的demo程序中的pcieObTransCfg 这个函数来进行配置。

 之后在EP端向0X60000054 这个地址写入0x00  这个值, *((volatile uint32_t *) 0x60000054) = 0x00 ;

然后我在RC端检查   MSI0_IRQ_STATUS (0x51000104) 和 MSI0_IRQ_ENABLE_SET (0x51000108) 两个

寄存器是否为1 ,结果是都不为1 。

       请问我上面配置哪里出错啦? 然后又没有相关的demo可以给我参考参考? 谢谢!!

                                                                                                                                                 谢健 

       

sichang fu:

你好,你的问题解决了吗?我也遇到了同样的问题。我的EP端 输出配置如下:OB_OFFSET_INDEX1=0x51000000,

[C66xx_0] MSI_CAP register is 0xb7005 

[C66xx_0] MSI_LOW32 raw is 0x51000054 [C66xx_0] MSI_UP32 register is 0x0 [C66xx_0] MSI_DATA register is 0x0

发送命令为:

*((volatile uint32_t *) 0x60800054) = 0x00;

然后检测RC端MSI寄存器,如下:

the MSI_IRQ value is 0 the MSI0_IRQ_STATUS value is 0 the MSI0_IRQ_ENABLE_SET value is ffffffff the MSI0_IRQ_ENABLE_CLR value is ffffffff the IRQ_STATUS value is 0 the IRQ_ENABLE_SET value is ffffffff the IRQ_ENABLE_CLR value is ffffffff

是不是还有别的地方没有设置?求回复

赞(0)
未经允许不得转载:TI中文支持网 » DM8168 C6678 pcie msi 中断不能触发
分享到: 更多 (0)