Hi ,all:
I use DM8168 as RC and C6678 as EP. Now I can transfer data between EP and RC.But when EP sends MSI to RC,the RC cannot response to the MSI Interupt. this is the configure of RC and EP .
when the link is up, the MSI associated Registers in EP side is:
[C66xx_0] Status Command register is 0x100540
[C66xx_0] MSI_CAP raw is 0x817005
[C66xx_0] MSI_LOW32 raw is 0x51000054
[C66xx_0] MSI_UP32 register is 0x0
[C66xx_0] MSI_DATA register is 0x0
RC:
BAR0 is 0x51000000
MSI0_IRQ_ENABLE_SET is 0xFFFFFFFF and MSI0_IRQ_ENABLE_CLR is 0x0;
then insmod ep driver,lspic -v,the infomation is :
00:00.0 Class 0604: Device 104c:b800 (rev 01)
Flags: bus master, fast devsel, latency 0
Memory at <ignored> (32-bit, non-prefetchable)
Memory at <ignored> (32-bit, prefetchable)
Bus: primary=00, secondary=01, subordinate=01, sec-latency=0
Memory behind bridge: 20000000-200fffff
Prefetchable memory behind bridge: 20100000-201fffff
Capabilities: [40] Power Management version 3
Capabilities: [50] MSI: Enable- Count=1/1 Maskable- 64bit+
Capabilities: [70] Express Root Port (Slot-), MSI 00
Capabilities: [100] Advanced Error Reporting
01:00.0 Class 0000: Device 104c:8888 (rev 01)
Flags: bus master, fast devsel, latency 0, IRQ 368
Memory at 21800000 (32-bit, non-prefetchable) [size=2K]
Memory at 20000000 (32-bit, prefetchable) [size=2K]
Memory at <unassigned> (32-bit, prefetchable)
Memory at <unassigned> (32-bit, prefetchable)
Capabilities: [40] Power Management version 3
Capabilities: [50] MSI: Enable+ Count=1/32 Maskable- 64bit-
Capabilities: [70] Express Endpoint, MSI 00
Capabilities: [100] Advanced Error Reporting
then I send MSI from EP to RC: *((volatile uint32_t *) 0x60000054) = 0x00,though Outbound Address Translation,I am sure that the address of the TLP is 0x51000054, and I check the the MSI associated Registers in RC side,
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 f
the IRQ_ENABLE_CLR value is f
the MSI0_IRQ_STATUS Register is 0, which indicates the MSI interrupt is not triggered.
Is there anything wrong in my configurations? and how can I resolve it?
Sincerely,
sichang