PCIe中断路由 [英] PCIe interrupt routing

查看:191
本文介绍了PCIe中断路由的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我目前正在xilinx PFGA中实现PCIE端点设备,并且对该中断有一些问题.

I am currently implementing a PCIE endpoint device in xilinx PFGA, and have some problem regards to the interrupt.

驱动程序初始化时,它将中断映射到IRQ 32

when the driver init, it map the interrupt to IRQ 32

[ 1078.938669]   alloc irq_desc for 32 on node -1
[ 1078.938670]   alloc kstat_irqs on node -1
[ 1078.938675] pci 0000:06:00.0: PCI INT A -> GSI 32 (level, low) -> IRQ 32

但是,当中断触发时,

[ 1134.850064] irq 16: nobody cared (try booting with the "irqpoll" option)
[ 1134.850067] Pid: 0, comm: swapper Tainted: P           2.6.32-5-amd64 #1
[ 1134.850069] Call Trace:
[ 1134.850070]  <IRQ>  [<ffffffff81095d89>] ? __report_bad_irq+0x30/0x7d
                          .
                          .
                          .
[ 1134.850119] handlers:
[ 1134.850120] [<ffffffffa0e7935e>] (azx_interrupt+0x0/0x11d [snd_hda_intel])
[ 1134.850124] Disabling IRQ #16

irq似乎被路由到另一个引脚IRQ#16.我使用了PCIe msi中断.什么原因可能导致此问题?

The irq seems to be routed to to another pin IRQ #16. And I used the PCIe msi interrupt. What could cause this problem?

推荐答案

我遇到了类似的问题.

1)克里斯在评论中说,确保在PCI配置空间中实现MSI寄存器.这些寄存器由BIOS/OS写入,以告知硬件将哪个值写入MSI中断的哪个地址.

1) Chris said in his comment, make sure you implement the MSI registers in PCI configuration space. These registers are written by the BIOS/OS to tell the hardware what value to write to which address for the MSI interrupt.

2)确保PCIE端点(pcie_7x?)已配置了那些寄存器的地址.每个中断需要4个寄存器.给coregen的地址是一个16位的字地址.

2) Make sure that the PCIE endpoint (pcie_7x?) has the address of those registers configured. 4 registers are required per interrupt. The address given to coregen is a 16-bit word address.

希望这会有所帮助.

这篇关于PCIe中断路由的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆