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

关于0xcf8和0xcfc(给分)

楼主#
更多 发布于:2005-05-02 14:13
各位DX,我现正学习用driverworks遍驱动,看到一些资料里说,读写PCI配置空间时要拥到BIOS命令:0xcf8和0xcfc,但是我看了一些driverworks自带的源代码后,却找不到在哪里使用了这两个命令,所以请问一下,是不是driverworks在生成驱动框架的时候,已经将这两个命令封装入它的类中了,比如KPciConfiguration?
请知道的DX指点一下啊,分不多,10分
aiwadgj
驱动老牛
驱动老牛
  • 注册日期2004-11-13
  • 最后登录2020-12-24
  • 粉丝0
  • 关注0
  • 积分119分
  • 威望84点
  • 贡献值0点
  • 好评度14点
  • 原创分0分
  • 专家分0分
  • 社区居民
沙发#
发布于:2005-05-02 15:30
BIOS命令只是访问PCI配置空间的多种方式中的一种方式。。

driverworks中访问配置空间好像是通过封装HAL函数(READ_RORT_XXX,之类的函数)完成的,,

也可以查查driverworks中的类源码看看啊。。
酒也在沉溺,何时麻醉我抑郁。过去了的一切会平息。。。。。。。
caorr
驱动牛犊
驱动牛犊
  • 注册日期2005-03-24
  • 最后登录2007-10-24
  • 粉丝1
  • 关注1
  • 积分131分
  • 威望19点
  • 贡献值0点
  • 好评度6点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2005-05-03 07:03
那么又有一个问题,我知道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来读取的呢?
fight1978
驱动牛犊
驱动牛犊
  • 注册日期2003-04-12
  • 最后登录2005-05-10
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地板#
发布于:2005-05-10 22:24
配置空间的地址在PCI槽就已经决定的了
linac
驱动牛犊
驱动牛犊
  • 注册日期2005-04-25
  • 最后登录2005-11-20
  • 粉丝0
  • 关注0
  • 积分16分
  • 威望3点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2005-05-11 07:15
配置空间由pci控制器在设备插入或加电初始化时完成。可以视为硬件完成。
caorr
驱动牛犊
驱动牛犊
  • 注册日期2005-03-24
  • 最后登录2007-10-24
  • 粉丝1
  • 关注1
  • 积分131分
  • 威望19点
  • 贡献值0点
  • 好评度6点
  • 原创分0分
  • 专家分0分
5楼#
发布于:2005-05-11 14:08
各位大虾,真是不好意思,这论坛不知怎么了,我每次打开这个帖子,都说我没有登陆,因此也找不到那个“给分”的按钮,我已经重登陆了好几次了,每次都这样。
各位请放心,我以后每次来论坛都会到这个帖子来看看,看是否能够给分。
各位,真的很抱歉。
游客

返回顶部