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

fpga实现pci基址寄存器如何作?

楼主#
更多 发布于:2004-12-16 16:29
在网上下了一个代码,发现是这样做的,
ba0和ba1在读的时候返回固定的数字,表明设备需求的内存或者io的大小,
而对ba0和ba1进行些的时候,数据写道内部的地址比较单元但是系统读此
寄存器的时候并不返回修改后的数据值,

后来发现这样作的话,系统不能正确的为设备分配合适的空间,

我想是不是应该这样,在系统刚启动的时候(冷启动或者热启动)读ba0
和ba1应该返回表示设备实际需要的空间大小的值,但是一旦当
系统正常运行的时候再读这两个寄存器的话应该返回bios分配空间的时候写进这两个寄存器的值,

偶看了pci的协议,不是很懂,请教大侠了,呵呵

在我的fpga里如何判断现在是不是系统重启,也就是bios在查询设备需要的空间大小的时候,
谢谢~!
niwenchuan
驱动牛犊
驱动牛犊
  • 注册日期2003-06-05
  • 最后登录2005-08-11
  • 粉丝0
  • 关注0
  • 积分1分
  • 威望1点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2004-12-20 11:36
先在FPGA里实现你的基址寄存器(地址大小),计算机一旦开始工作,它就会扫描历遍PCI槽,一旦发现你的卡在上面,就会根据历遍PCI槽的情况,自动根据你的PCI卡设置好的基址寄存器,给你的PCI卡分配地址空间,这样你的卡在计算机工作过程中就存在了配置空间了。
游客

返回顶部