Linux下怎么实现两块pcie板卡的驱动?

xiaogeng04 2015-02-06 04:00:19
大家好:

请教大家一个问题:
现在的情况是,有一块FPGA的PCIE板卡,插在centos5.10系统的PC上,已经实现了PCI驱动和设备驱动,可以正常工作了,现在需要再插一块一模一样的FPGA板卡到PC上,即需要同时支持两块FPGA板卡,怎么用以前的驱动程序扩展成同时支持两个设备的驱动程序?

我的理解如下:两块xilinx的FPGA板卡,其Vendor ID是0x10ee,device ID是0x7082,唯一的不同在于两个板卡插在不同的PCIE插槽上,比如第一板卡的信息为:0000:06:00.0,第二块板卡的信息为:0000:06:01.0,但是在驱动中貌似用不到这个信息,那我在驱动程序中,除了增加一个次设备号外,还需要做哪些工作?请多多赐教,不甚感激!!!
...全文
803 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
qq_39695119 2019-02-26
  • 打赏
  • 举报
回复
楼主您好,我也用的是赛灵思的板卡,我现在刚准备开发pcie的linux驱动,可不可以把源码给我看看,万分感谢
草根大哥 2015-06-24
  • 打赏
  • 举报
回复
一个驱动,两个设备,这很正常啊。
xqq2225 2015-06-18
  • 打赏
  • 举报
回复
这样当系统自动扫描所有的pci设备的时候就会发现这两个设备,然后根据id来匹陪情况调用驱动中的probe函数完成一些初始化。
我爱你我的菜 2015-06-18
  • 打赏
  • 举报
回复
次设备号不同后,打开设备的时候查看下,哪个设备的此设备号和打开的相同就知道是哪个设备了,probe函数的确要打开多次,每个pci设备都要打开一次,所以你要在里面++次设备号,还要++你对应的pci 设备结构体
我爱你我的菜 2015-06-18
  • 打赏
  • 举报
回复
次设备号不同后,打开设备的时候查看下,哪个设备的此设备号和这个相同就知道谁哪个设备了,probe函数的确要打开多次,所以你要在里面++次设备号
我爱你我的菜 2015-06-18
  • 打赏
  • 举报
回复
什么都不用做,只要加载一个驱动,此设备号加1,下次加载又加1这样就行了,两个卡功能都一样。
蓝玉 2015-03-16
  • 打赏
  • 举报
回复
驱动里面是根据I2C地址识别设备,然后发送和接收数据。如果两个板子相同,则其I2C地址也必然相同,因此也只能匹配一个设备发送数据。如果要对两个设备都能发送数据,则需要再注册一个不一样的I2C地址,或者根据别的table_id不同来判别发送数据。此处有一各巧妙的方法就是,在probe里根据设备的某个ID不同,注册一个错误的I2C地址,当判别到这个错误的I2C地址时,就对这个设备进行数据传送
炽热恒星 2015-03-11
  • 打赏
  • 举报
回复
pci设备是根据设备的ID数据来匹配驱动的。如果你两个设备用的驱动是一样的, 你可以在驱动程序中将你两个设备的id都加到驱动程序的id_table 中。这样当系统自动扫描所有的pci设备的时候就会发现这两个设备,然后根据id来匹陪情况调用驱动中的probe函数完成一些初始化。
xiaogeng04 2015-02-06
  • 打赏
  • 举报
回复
源码都有的,需要怎么来实现?是不是同样的两个PCI设备,对应的probe函数会被自动调用两次?
LouisScola 2015-02-06
  • 打赏
  • 举报
回复
两个一样的模块确实麻烦些,需要需要linux源码驱动应该
falloutmx 2015-02-06
  • 打赏
  • 举报
回复
先说说你的驱动实现了哪些层的功能?

1,318

社区成员

发帖
与我相关
我的任务
社区描述
主要是开发驱动技术
社区管理员
  • 驱动程序开发区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧