阅读:1287回复:1
fpga实现pci基址寄存器如何作?
在网上下了一个代码,发现是这样做的,
ba0和ba1在读的时候返回固定的数字,表明设备需求的内存或者io的大小, 而对ba0和ba1进行些的时候,数据写道内部的地址比较单元但是系统读此 寄存器的时候并不返回修改后的数据值, 后来发现这样作的话,系统不能正确的为设备分配合适的空间, 我想是不是应该这样,在系统刚启动的时候(冷启动或者热启动)读ba0 和ba1应该返回表示设备实际需要的空间大小的值,但是一旦当 系统正常运行的时候再读这两个寄存器的话应该返回bios分配空间的时候写进这两个寄存器的值, 偶看了pci的协议,不是很懂,请教大侠了,呵呵 在我的fpga里如何判断现在是不是系统重启,也就是bios在查询设备需要的空间大小的时候, 谢谢~! |
|
沙发#
发布于:2004-12-20 11:36
先在FPGA里实现你的基址寄存器(地址大小),计算机一旦开始工作,它就会扫描历遍PCI槽,一旦发现你的卡在上面,就会根据历遍PCI槽的情况,自动根据你的PCI卡设置好的基址寄存器,给你的PCI卡分配地址空间,这样你的卡在计算机工作过程中就存在了配置空间了。
|
|