caorr
驱动牛犊
驱动牛犊
  • 注册日期2005-03-24
  • 最后登录2007-10-24
  • 粉丝1
  • 关注1
  • 积分131分
  • 威望19点
  • 贡献值0点
  • 好评度6点
  • 原创分0分
  • 专家分0分
阅读:1097回复:3

求助!PCI初始化的问题(给分)

楼主#
更多 发布于:2005-05-04 14:04
我知道PCI有三种空间:配置空间,I/O空间和内存空间,系统在查询到PCI插槽上有一个PCI设备,并且VendorID和DeviceID都符合的时候,是通过读取相应空间的基址寄存器来分配资源的吧,至于I/O空间和内存空间的资源分配我可以理解,可是配置空间是什么时候分配,以及怎样分配的呢?系统在查询到PCI设备之后,是怎么知道它的配置空间在哪里呢?
因为按我的理解,系统首先要知道配置空间的起始地址,然后才能读配置寄存器的吧,可是系统在刚刚查询到PCI设备的时候还没有分配资源,它又从什么地址去读PCI协议中定义的那64Byte的寄存器呢?但是从另一个方面来说,系统还没读取PCI协议中定义的配置寄存器(主要是基址寄存器),那它怎么来分配资源(也就是配置空间的start地址)?对了,PCI设备的VendorID和DeviceID也是属于PCI协议定义的那64Byte寄存器中的,那系统又是怎么读到呢?因为在刚开始的时候,系统还没有为配置空间分配地址啊。
是不是我理解有错误?或者,那64Byte寄存器不用系统分配地址,可以直接读的?

另外,我经常看到有PCI BIOS一说,那请问一下,PCI BIOS是在PC机上的,跟主板BIOS差不多的;还是在PCI设备上,需要在设计PCI卡时自行设计的?那64Byte寄存器又是不是由PCI BIOS来读取的呢?
aiwadgj
驱动老牛
驱动老牛
  • 注册日期2004-11-13
  • 最后登录2020-12-24
  • 粉丝0
  • 关注0
  • 积分119分
  • 威望84点
  • 贡献值0点
  • 好评度14点
  • 原创分0分
  • 专家分0分
  • 社区居民
沙发#
发布于:2005-05-04 22:21
配置空间就是指配置寄存器了吧(256B),,设计硬件的时候实现的。。系统配置软件读取它相应寄存器内容决定分配IO或者内存资源的喽。。。。



总之一句吧“配置空间是设备硬件自己拥有的,不是系统分配的”你的所有问题就解决了。。。


PCI BIOS在系统上的了。。由它完成对PCI配置空间的读写。。不用自己设计的了。。
酒也在沉溺,何时麻醉我抑郁。过去了的一切会平息。。。。。。。
caorr
驱动牛犊
驱动牛犊
  • 注册日期2005-03-24
  • 最后登录2007-10-24
  • 粉丝1
  • 关注1
  • 积分131分
  • 威望19点
  • 贡献值0点
  • 好评度6点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2005-05-05 14:57
谢谢,已给分
arcticzoo
驱动牛犊
驱动牛犊
  • 注册日期2005-01-09
  • 最后登录2005-05-24
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地板#
发布于:2005-05-24 12:03
PCI BIOS是属于设备的,但不是每个设备都必须实现的
游客

返回顶部