bbstmp
驱动牛犊
驱动牛犊
  • 注册日期2010-01-05
  • 最后登录2010-12-30
  • 粉丝1
  • 关注1
  • 积分29分
  • 威望281点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:9524回复:5

请教:PCIE Chaining DMA(链式DMA) 与 MSI 中断(消息信号中断)

楼主#
更多 发布于:2010-12-03 10:53
PCIE 消息信号中断(MSI)在Windows XP及以前版本系统,根据MSDN上描述好像不支持,只有Vista及以后版本才支持

那么现在很多PCIE设备是如何在XP系统下工作的?是默认采用中断线方式吗?还是需要手动如何设置?


看资料显示,PCIE 链式DMA采用中断描述符表形式,若中断方式使用中断线方式的话,那么如何控制中断描述表呢?


向大家请教了!谢谢!
fanzi
驱动小牛
驱动小牛
  • 注册日期2004-12-09
  • 最后登录2013-12-19
  • 粉丝1
  • 关注0
  • 积分1004分
  • 威望754点
  • 贡献值0点
  • 好评度93点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2010-12-03 15:54
MSI Message Singal Interrupt的中断不是靠中断管脚上的中断,而是靠消息的传递。就是内存中有个地址,只要往这个地址写数据,就会产生中断。
不过对于驱动程序员来说,你不用关系太底层,微软的ACPI驱动会帮你解析好这些。


------------------------------------------------------------------
张帆的驱动开发论坛 http://bbs.kerneldev.com/
张帆的驱动开发QQ群1# 49944346(满)
张帆的驱动开发QQ群2# 64778681(目前开放中...)
张帆的内核学习论坛 http://bbs.kerneldev.com
bbstmp
驱动牛犊
驱动牛犊
  • 注册日期2010-01-05
  • 最后登录2010-12-30
  • 粉丝1
  • 关注1
  • 积分29分
  • 威望281点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2010-12-03 17:57
引用第1楼fanzi于2010-12-03 15:54发表的 :
MSI Message Singal Interrupt的中断不是靠中断管脚上的中断,而是靠消息的传递。就是内存中有个地址,只要往这个地址写数据,就会产生中断。
不过对于驱动程序员来说,你不用关系太底层,微软的ACPI驱动会帮你解析好这些。


------------------------------------------------------------------
.......

谢谢 fanzi 的回复与解答!

现在我是在Windows XP 下开发,查的资料显示 XP 不支持 MSI 中断(不知道是否有补丁之类的),既然系统部支持MSI中断,

那么现在那些在XP上使用的PCI-E设备,其DMA与中断是如何工作的?


另: 你签名档中的链接,好像打不开。。。
bbstmp
驱动牛犊
驱动牛犊
  • 注册日期2010-01-05
  • 最后登录2010-12-30
  • 粉丝1
  • 关注1
  • 积分29分
  • 威望281点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地板#
发布于:2010-12-03 18:59
链接终于打开了哈,呵呵
sinister
驱动牛犊
驱动牛犊
  • 注册日期2005-03-02
  • 最后登录2013-01-24
  • 粉丝0
  • 关注0
  • 积分3分
  • 威望38点
  • 贡献值0点
  • 好评度8点
  • 原创分0分
  • 专家分1分
地下室#
发布于:2011-03-02 08:53
对 PCIe 的 MSI/MSI-X 的使用是需要你手动设置 MSI/MSI-X 的 Message Control、
Message Address、Message Data 等字段的。一般 OS 都会对以上一系列动作提供
相关的 Kernel API,也就是说,所谓支持 MSI/MSI-X 中断的 OS 也一样还是需要
你显示的调用相关 Kernel API 的。在默认情况下 PCIe 为向前兼容使用 Assert_INTx
消息报文,即“虚拟中断线”的方式通过 APIC 方式进行中断分派和提交,既然
是虚拟也就是说没有物理上的中断线和 INTx 信号。这种设计主要考虑的一点是在
PCIe Bridge 下挂接的那些 Legacy PCI 设备,他们只支持 INTx 信号方式提交中断,
这就需要 PCIe 将这些 INTx 转换成 Assert INTx 的消息报文进行提交。
jhljs
驱动牛犊
驱动牛犊
  • 注册日期2002-03-20
  • 最后登录2012-02-24
  • 粉丝0
  • 关注0
  • 积分23分
  • 威望42点
  • 贡献值0点
  • 好评度2点
  • 原创分0分
  • 专家分0分
5楼#
发布于:2011-03-26 17:14
我在WIN7上做了msi中断和DPC处理,效果不错,特别是MIS-X支持多个MessageID,赫赫
microsoft从vista开始可以用IoConnectInterruptEx来适应多种不同需求,从传统的INTx 方式的中断到MSI,MSI-X 都行
游客

返回顶部