shirullan
驱动牛犊
驱动牛犊
  • 注册日期2008-06-14
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分46分
  • 威望352点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:2802回复:7

望解答:PCI驱动开发中的几个空间概念和问题!!!

楼主#
更多 发布于:2009-05-20 17:39
本人着手PCI9054驱动程序开发有一段时间,在阅读PCI9054手册和相关文献时对几个概念一直不是很了解。

1、PCI的配置空间和PCI的地址空间的关系,是不是配置空间属于地址空间的一段,PCI的地址空间是不是已经可以看做是系统地址空间的一部分呢?

2、本地端也有自己的配置空间,里面定义了一些寄存器,如范围、基地址等等,那么如何对局部配置空间进行访问?

3、设备内存,也就是Local端的内存,如何将Local端的内存映射到系统地址空间,更疑惑的是Local端的内存和Local端的配置空间是个什么关系,从地址逻辑的角度看?

望知道的前辈说说自己的想法,感激不尽。。。
zlf1110
驱动牛犊
驱动牛犊
  • 注册日期2002-11-10
  • 最后登录2016-01-09
  • 粉丝1
  • 关注0
  • 积分39分
  • 威望365点
  • 贡献值0点
  • 好评度30点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2009-05-22 22:51
配置空间属于地址空间的一部分,只是表示该地址段的内容比较特殊,在使用驱动程序过程中不能该表。
本地端的配置空间与PCI端的配置空间不尽相同,有的是独立的,有的是共享的。共享的可以在两端交换数据。本地端的FPGA逻辑要实现对本地端配置空间的操作。
本地端的内存地址是在配置空间中指定的。两者不一样。
本地端做好地址译码,和访问之后,计算机可以像操作内存一样,操作本地端的内存,但是块状访问可能受限。
zlf1110
shirullan
驱动牛犊
驱动牛犊
  • 注册日期2008-06-14
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分46分
  • 威望352点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2009-05-23 20:11
回 1楼(zlf1110) 的帖子
谢谢楼上的回答
teg_sunzy
驱动牛犊
驱动牛犊
  • 注册日期2009-01-04
  • 最后登录2009-06-16
  • 粉丝0
  • 关注0
  • 积分10分
  • 威望81点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地板#
发布于:2009-05-31 21:05
回 1楼(zlf1110) 的帖子
看了楼主的回答我还是不太明白。PCI9054的配置寄存器中的PCIBAR0\PCIBAR1是PCI配置寄存器中其他所有寄存器在内存和I/O空间的基地址吗?楼主能否将上面的解答给出个例子呢?谢谢!!
zlf1110
驱动牛犊
驱动牛犊
  • 注册日期2002-11-10
  • 最后登录2016-01-09
  • 粉丝1
  • 关注0
  • 积分39分
  • 威望365点
  • 贡献值0点
  • 好评度30点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2009-06-07 00:18
不是。
PCIBAR0是指配置空间中的地址,对于9054来说就是其操作寄存器的地址,9054负责地址译码。
PCIBAR1-4是用户自定义的地址,可以定义IO空间和Memory空间,定义之后使用的操作方式要一致,IO空间使用IO访问方式,Memory空间使用Memory访问方式。Memory空间不一定能一次访问很大的连续区域,比如一次要读取512字节的数据,可能就不会成功。
zlf1110
zlf1110
驱动牛犊
驱动牛犊
  • 注册日期2002-11-10
  • 最后登录2016-01-09
  • 粉丝1
  • 关注0
  • 积分39分
  • 威望365点
  • 贡献值0点
  • 好评度30点
  • 原创分0分
  • 专家分0分
5楼#
发布于:2009-06-07 00:19
顺便说一下,我使用的S5935,没有使用过9054,我的回答不一定正确。
zlf1110
duppies
驱动牛犊
驱动牛犊
  • 注册日期2009-04-15
  • 最后登录2009-08-25
  • 粉丝0
  • 关注0
  • 积分8分
  • 威望61点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
6楼#
发布于:2009-06-08 15:19
回 4楼(zlf1110) 的帖子
问下 IO和Memory空间配置是要向配置eeprom写入配置文件还是在可以在DriverStudio的开发向导里面自己根据需要添加的啊?
feihangdan
驱动牛犊
驱动牛犊
  • 注册日期2010-04-01
  • 最后登录2011-05-19
  • 粉丝0
  • 关注0
  • 积分4分
  • 威望31点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
7楼#
发布于:2011-03-27 22:17
zlf1110的回答很深入,谢谢!
游客

返回顶部