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
是不是还有别的地方没有设置?求回复