whitecat
驱动牛犊
驱动牛犊
  • 注册日期2002-04-08
  • 最后登录2002-05-18
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:1363回复:4

斑竹,帮帮我

楼主#
更多 发布于:2002-04-12 15:06
我是一个初学者,正在学习关于9052的驱动编写,对于配置空间不很理解.什么叫内存映射,什么叫i/o映射.9052的手册里写PCI配置空间寄存器从00h开始,后来又说LOCAL配置寄存器,这两个什么关系呢?还有,它说的local address space 1 range register是个什么寄存器?它的[27:4]是这么说的:specifies PCI address bits used to decode PCI access to local bus space2.这里的local bus space指的是什么呢?
jst7792
论坛版主
论坛版主
  • 注册日期2001-12-10
  • 最后登录2006-11-16
  • 粉丝0
  • 关注0
  • 积分3分
  • 威望1点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2002-04-12 21:10
1.PCI设备使用3种空间,内存空间,IO空间,配置寄存器空间。目前的计算机32位提供了4G的内存空间,64K的IO空间,每块PCI板卡有256字节的配置寄存器空间(实际仍然是以IO映射的方式)。从本质上讲,intel体系计算机使用Memmory RD/WR指令访问的就是内存空间,IO RD/WR指令访问的就是IO空间。并没有专用的配置寄存器空间,配置寄存器空间可以理解为一种特殊映射的IO空间。
2.PCI配置寄存器是每块PCI板卡都必须提供的,系统的即插即用和其他的基本信息都必须靠这里获得。LOCAL配置寄存器是9052这块芯片为实现自身的功能所提供的寄存器。这种寄存器你可以像理解8255等可编程芯片一样去理解。
3.空间映射需要提供两个基本信息:起始地址,空间大小。range register就是空间的大小。
4.local bus space也就是板卡上的地址空间,他和系统的空间存在互相映射的关系
5.9052的地址映射算法实际上是根据你的range register中从MSB开始为1的位,这些位和PCI地址的相应位如果相同,则被选中
兄弟们,给点分吧
whitecat
驱动牛犊
驱动牛犊
  • 注册日期2002-04-08
  • 最后登录2002-05-18
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2002-04-14 15:38
万分感谢!马上送分!
whitecat
驱动牛犊
驱动牛犊
  • 注册日期2002-04-08
  • 最后登录2002-05-18
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地板#
发布于:2002-04-15 19:49
如果我想让windows能认9052,应该向哪些寄存器写东西呢?
squirrel
驱动牛犊
驱动牛犊
  • 注册日期2002-03-16
  • 最后登录2002-08-05
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2002-04-15 19:58
vendor id
device id
classid
revision
the type of header...
详情见任何一本写pci的书籍(虽然很是不多)
游客

返回顶部