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

DM8168 C6678 pcie msi 中断不能触发

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

具体问题描述如下:

 RC端配置:

BAR0 is 51000000 

BAR1 is 80000008

EP端配置:

OB_SIZE is  3

OB_OFFSET_INDEX1:0x51000000,通过pcieObTransCfg 这个函数来进行配置

连接完成后EP端MSI相关寄存器如下:

[C66xx_0] Link is up.
[C66xx_0] Read MSI Configure.
[C66xx_0] Status Command register is 0x100546[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

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

 在RC端检测相关寄存器:

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

MSI0_IRQ_STATUS一直为0说明没有接收到中断,请问这个问题该怎么解决?我是不是缺少了别的配置?期待您的回复。

另外,插入驱动之后,显示如下信息:

01:00.0 Class 0000: Device 104c:8888 (rev 01) Flags: bus master, fast devsel, latency 0, IRQ 368 Memory at <unassigned> (32-bit, non-prefetchable) [size=8M] Memory at 20000000 (32-bit, non-prefetchable) [size=8M] Memory at <unassigned> (32-bit, prefetchable) [size=1M] Memory at <unassigned> (32-bit, prefetchable) [size=64K] Memory at <unassigned> (32-bit, prefetchable) [size=4K] Memory at <unassigned> (32-bit, prefetchable) [size=64K] Capabilities: [40] Power Management version 3 Capabilities: [50] MSI: Enable+ Count=1/1 Maskable- 64bit+   //说明MSI 已经打开
Capabilities: [70] Express Endpoint, MSI 00 Capabilities: [100] Advanced Error Reporting

Eason Wang:

move to the right forum

sichang fu:

回复 Brighton Feng:

问题已解决,是地址搞错了,谢谢回答

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