gpt4 book ai didi

linux-kernel - Linux PCI 设备驱动程序 - 总线与内核 IRQ

转载 作者:行者123 更新时间:2023-12-04 18:10:24 25 4
gpt4 key购买 nike

我正在为 Linux 中的 PCIe 卡编写设备驱动程序。我正在尝试在我的驱动程序中使用中断。

读取 PCI 配置寄存器(偏移量 0x3C)的“IRQ 线”部分报告为设备分配的 IRQ 线是 11 . lspci -b -vv还报告我设备的中断号是 11 .

这就是奇怪的地方... cat /sys/bus/pci/devices/<my_device>/irq报告中断号为 19 . lspci -vv还报告中断号是 19。

索取 11 在我的驱动程序中不起作用。如果我要求 19 在驱动程序中,我捕获中断就好了。

是什么赋予了?

谢谢!!!

最佳答案

我相信这与“物理”和“虚拟”IRQ 线之间的区别有关。由于处理器具有有限数量的物理 IRQ 线,它分配虚拟 IRQ 线以允许 PCI 设备的总数超过物理线的数量。

在本例中,19 是您的虚拟 IRQ 线(由处理器识别),而 11 是物理线(由 PCI 设备识别)。

顺便说一下,您可能真的应该从该设备的 struct pci_dev 中获取 IRQ 编号,因为它们是动态生成的。

关于linux-kernel - Linux PCI 设备驱动程序 - 总线与内核 IRQ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15510810/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com