About PCI interruption

发布于 2022-09-18 19:18:04 字数 155 浏览 6 评论 0

PCI有8个中断,分别map到传统中断的10 ,11。当一个pci设备发生中断后,cpu接收到这个中断后要怎么知道这个中断是此设备发生的呢!
还有就pci的8个中断是怎么map到传统中断上的!主要是我们要怎么知道是哪一个pci设备发生了中断。。!
   thanks

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(6

南城旧梦 2022-09-25 19:18:05

没太明白,PCI有8个中断?你是不是指一个设备上最多有8个Function,每一个都有中断的话最多8个?这个CPU本身是无法区分的吧,一般要驱动去实现,通常是在设备的Function中设置一个可以视别此设备是否发生了中断的“寄存器”,中断来了之后在其Handler中读这个寄存器来判断是否发生了中断,并且这个寄存器一般好像是设计为“读-清”或“读-减”。

当梦初醒 2022-09-25 19:18:05

一个pci device最多有8个functions, 但是最多有4个interrupts。

传统pci中断是硬连线的,最多有abcd这4条线,不可能达到8。

━╋う一瞬間旳綻放 2022-09-25 19:18:05

是的,不过不同的Function可以共用一个INTx#的:

For a
multi-function device, all functions may use the same INTx# line or each may have its own
(up to a maximum of four functions) or any combination thereof.  A single function can
never generate an interrupt request on more than one INTx# line.

丶情人眼里出诗心の 2022-09-25 19:18:05

呵呵
首先哈,先谢谢大家的讨论.虽然没完全回答我的问题,但是至少我知道了当发生中断时要向每一个pci设备查,是不是它发生了中断。
但是
1:对于pci设备有4条中断引脚,也就是上面大家说到的,当然,这个也只有bios或者硬件设计者才知道了,我们编程是不需要了解
2:对于pci总线,有8条中断线。这8条中断线就map到传统的int 9-11。
  
   我只是想知道关于这8条map到传统的int9-11中间到底是咋回事,是怎么map到int9-11的。

   note:上面说的只是在没启用acpi的时候。在启用acpi 的时候暂时不说。我也不清楚!

无边思念无边月 2022-09-25 19:18:05

这个,呵呵,可能我们两个人一开始都会错意了。不过你说的PCI总线8条中断线好像不是规范里的吧?规范好像只定义了Device的4个PIN,和系统如何连接给了一些说明,但之前已经说过是System specific。

难如初 2022-09-25 19:18:05

所有的pci设备最多支持4个中断输出:INT A#, INT B#, INT C#, INT D#,最多占用系统4个中断源,这是pci设备规范里面讲的东西,都是标准化的东西。。。

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文