niggasmokey
驱动牛犊
驱动牛犊
  • 注册日期2004-03-05
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分5分
  • 威望1点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:1079回复:3

stephen_young,请问你是怎样..

楼主#
更多 发布于:2004-11-16 21:32
请问你是怎样读出pci配置寄存器的值的。比如说9054的vid和did
分别为9054和10b5是如何才能读出的?
万分感谢
stephen_young
驱动牛犊
驱动牛犊
  • 注册日期2002-08-19
  • 最后登录2008-02-17
  • 粉丝0
  • 关注0
  • 积分20分
  • 威望2点
  • 贡献值0点
  • 好评度2点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2004-11-17 09:33
我用的板子的cpld里面写的这些id,在NTDDK的文件夹里有个\NTDDK\tools\pcitool工具,用来列举pci设备,装上以后会在控制面板上有个快捷方式,用它可以看到设备的各个id。

另外,我对硬件的制作不是很清楚,我觉得好像你说的id是可写的(我用的板子使用的是cpld)。

9054的手册上面提到了了这两个id,他们是固定的。
三人行必有我师!
niggasmokey
驱动牛犊
驱动牛犊
  • 注册日期2004-03-05
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分5分
  • 威望1点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2004-11-17 10:42
多么热情的stephen啊!我已经搞清出我的问题了。我的是9030,9054基本同理。
我主要是没有分清如下两种寄存器的概念:
bar0和bar1是给本地配置寄存器(local configuration registers)
分配的空间,因此我通过初始化过的m_iorange0.ind(0x00)读出的是本地配置寄存器偏移量为0x00上的值(值为0x0ff00000,之前一直以为这个数值是读错的值)。
而pci配置寄存器(pci configuration registers)的读使用的是
KPciConfiguration类下的ReadHeader方法.读出的值为我想要的
0x903010B5。
再次感谢stephen同志的热情帮助!!
stephen_young
驱动牛犊
驱动牛犊
  • 注册日期2002-08-19
  • 最后登录2008-02-17
  • 粉丝0
  • 关注0
  • 积分20分
  • 威望2点
  • 贡献值0点
  • 好评度2点
  • 原创分0分
  • 专家分0分
地板#
发布于:2004-11-17 16:15
多么热情的stephen啊!我已经搞清出我的问题了。我的是9030,9054基本同理。
我主要是没有分清如下两种寄存器的概念:
bar0和bar1是给本地配置寄存器(local configuration registers)
分配的空间,因此我通过初始化过的m_iorange0.ind(0x00)读出的是本地配置寄存器偏移量为0x00上的值(值为0x0ff00000,之前一直以为这个数值是读错的值)。
而pci配置寄存器(pci configuration registers)的读使用的是
KPciConfiguration类下的ReadHeader方法.读出的值为我想要的
0x903010B5。
再次感谢stephen同志的热情帮助!!
 


噢,你用了ReadHeader.我还是头一次听说这个函数.
长见识.
三人行必有我师!
游客

返回顶部