关于驱动--多块pci板卡识别的问题(收集到的一个资料)
2010-10-01 14:55
288 查看
板卡插入机箱,通过CPU(PCI总线的中央资源)在系统初始化阶段(POST)为各个PCI设备(包括插入的板卡)进行资源分配(IO/MEM/中
断),资源分配完毕后,PCI设备的驱动程序进行PCI总线搜索,看是否有符合本驱动的板卡存在(根据PCI Vendor Id和Device
Id,以及Revison Id),找到设备后驱动程序则根据板卡的硬件设计情况进行相应的寄存器初始化和中断挂载工作。
所以有几点需要注意:
因为PCI总线的资源分配是在POST《
上电自检(Power On Self Test)
》过程中动态分配的,根据系统配置不同,各板卡所获得的IO/MEM/中断资源会不相同,即所谓PnP,即插即用。
一个驱动程序应该是对应一种PCI硬件设备(板卡)的,不同的PCI设备(板卡)应该通过PCI Vendor Id和Device Id来区分。不管你是采用的现成桥片还是可编程逻辑实现的PCI桥接,修改和设置这些只读寄存器都好实现。
驱动程序能够确定的有:有几个PCI设备是本驱动程序可以驱动的(在总线上找到几个各Id符合的PCI设备),这些PCI设备的资源(包括IO,MEM地址,IRQ,以及这些设备所在的总线位置--PCI总线x,Device y,Function z)。
资源分配不是固定的,但是,一个槽位对应的PCI总线位置是固定的。
PCI总线搜索通常是按深度优先的顺序搜索。
如果有同一种型号的PCI设备存在于PCI总线上,那么驱动应依次进行初始化,多个板卡实例采用同一驱动,但是资源不同,这时候,通常驱动程序对各个板卡
的区分仅仅是其总线位置,在应用中就要特别注意不能混淆各个板卡,最好是在应用程序中做总线位置的核对-因为总线位置是主板布线布死了的,以免搞错。
目前还在研究,搞定了,再写心得了。
断),资源分配完毕后,PCI设备的驱动程序进行PCI总线搜索,看是否有符合本驱动的板卡存在(根据PCI Vendor Id和Device
Id,以及Revison Id),找到设备后驱动程序则根据板卡的硬件设计情况进行相应的寄存器初始化和中断挂载工作。
所以有几点需要注意:
因为PCI总线的资源分配是在POST《
上电自检(Power On Self Test)
》过程中动态分配的,根据系统配置不同,各板卡所获得的IO/MEM/中断资源会不相同,即所谓PnP,即插即用。
一个驱动程序应该是对应一种PCI硬件设备(板卡)的,不同的PCI设备(板卡)应该通过PCI Vendor Id和Device Id来区分。不管你是采用的现成桥片还是可编程逻辑实现的PCI桥接,修改和设置这些只读寄存器都好实现。
驱动程序能够确定的有:有几个PCI设备是本驱动程序可以驱动的(在总线上找到几个各Id符合的PCI设备),这些PCI设备的资源(包括IO,MEM地址,IRQ,以及这些设备所在的总线位置--PCI总线x,Device y,Function z)。
资源分配不是固定的,但是,一个槽位对应的PCI总线位置是固定的。
PCI总线搜索通常是按深度优先的顺序搜索。
如果有同一种型号的PCI设备存在于PCI总线上,那么驱动应依次进行初始化,多个板卡实例采用同一驱动,但是资源不同,这时候,通常驱动程序对各个板卡
的区分仅仅是其总线位置,在应用中就要特别注意不能混淆各个板卡,最好是在应用程序中做总线位置的核对-因为总线位置是主板布线布死了的,以免搞错。
目前还在研究,搞定了,再写心得了。
相关文章推荐
- 关于驱动--多块pci板卡识别的问题(收集到的一个资料)
- 关于驱动--多块PCI(peripheral component interconnect )板卡识别的问题
- 开始做一个优秀的软件测试工程师----------我收集的网友的资料关于DEFECT LIFE CYCLE
- 关于SQL server 内容乱码问题的资料收集
- 关于图像识别的一些资料收集
- 想问一个关于camera驱动的技术问题
- 一个关于驱动加载的时序问题
- 关于2000系统资料共享的一个小问题
- 一个关于Unicode字符编码的奇怪问题
- 问一个关于反射中,属性字段的问题
- struts2关于多用户同时请求一个action会不会报错问题
- Android 关于重写一个居中的Dialog时,背景图片显示不全的问题。Dialog的style属性介绍
- h2 DB的一个问题,关于类型--Numeric value out of range
- 关于多列(复合)索引使用时的一个小问题
- 关于置顶问题的一个小算法
- 关于视频+音频APP,存在一个用户播放,其他用户就卡死的问题。视频分发?
- 关于Java构造方法的一个问题
- 一个朋友收集的神经网络相关资料