免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12下一页
最近访问板块 发新帖
查看: 10119 | 回复: 12
打印 上一主题 下一主题

linux启动后添加pci设备问题(非hotplug) [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2011-01-17 15:51 |只看该作者 |倒序浏览
碰到一个特殊的情形,现在x86上开发个fpga的驱动。PCI设备。
平台启动后将芯片的逻辑下载到芯片中,但此时linux早已完成pci的扫描和初始化工作。
于是再加载驱动,会找不到设备。pci_scan_child_bus和pci_bus_add_devices解决这个总题。

但它的存储资源却无法分配了。pci_bus_assign_resources显示无法分配。碰设此设备所在PCI桥的PCI_MEMORY_BASE又会显示冲突。


请教,有什么合适办法能将这个设备加到系统中?
或者能有什么样的思路?
多谢。

论坛徽章:
3
金牛座
日期:2014-06-14 22:04:062015年辞旧岁徽章
日期:2015-03-03 16:54:152015年迎新春徽章
日期:2015-03-04 09:49:45
2 [报告]
发表于 2011-01-17 22:03 |只看该作者
你是想热插拔吗?可能设备驱动不支持该设备

论坛徽章:
0
3 [报告]
发表于 2011-01-18 13:58 |只看该作者
楼主烧完程序以后再重启下Linux系统,然后加载驱动,是不是就可以找到设备了。

论坛徽章:
0
4 [报告]
发表于 2011-01-18 16:21 |只看该作者
回复 3# wenzhouyip


    重启后不用加载驱动也可以lspci到设备。加载驱动就可以正常使用了。

昨天又试了下,先将设备所在的pci桥设置了PCI_MEMORY_BASE和PCI_MEMORY_LIMIT
虽然在调用pci_bus_assign_resources时会有冲突,但不重启也可以加载驱动了。
只是不能正常工作,访问设备内存设备会重启


分析应该还是桥上的配置不对,所以事务下发(或返回)不到fpga上。
看看能不能有新的思路?

论坛徽章:
0
5 [报告]
发表于 2011-01-18 16:28 |只看该作者
回复 2# dreamice


    这应该不算是热插拔。内核里没有对它的支持。内核起来后完全不知道这个东东。
然后在这种情况下,能设备运行起来。呵,比较个特的需求。需要大家滴智慧了。

论坛徽章:
3
金牛座
日期:2014-06-14 22:04:062015年辞旧岁徽章
日期:2015-03-03 16:54:152015年迎新春徽章
日期:2015-03-04 09:49:45
6 [报告]
发表于 2011-01-18 16:42 |只看该作者
回复 5# smr


    内核能支持,那就是这个设备自身驱动的问题了

论坛徽章:
0
7 [报告]
发表于 2011-01-18 17:03 |只看该作者
回复 6# dreamice


    内核对标准的PCI是支持的。开机扫描到的设备也都可以被驱动操作(所以带电重启之后,我的驱动就可以正常工作了)

而现在我不做重启,是什么也做不了的。
于是手动查找,初始化桥和设备的空间。(pci_scan_child_bus和pci_bus_add_devices等操作)
结果是可以访问到设备了,但操作还有问题。

所以我就不能确定,机器启动后重新扫描和初始化PCI子系统来添加这个PCI设备,是不是个合理的方法?
或者有别的更好的方案。

论坛徽章:
0
8 [报告]
发表于 2011-01-18 23:23 |只看该作者
本帖最后由 garyv 于 2011-01-18 23:24 编辑

回复 7# smr


    貌似BIOS对该PCI设备配置有些问题,也许是PCI设备BAR空间分配冲突等原因导致无法正常配置这个设备,你能进BIOS界面查看吗?你说X86不知是啥产品

论坛徽章:
3
金牛座
日期:2014-06-14 22:04:062015年辞旧岁徽章
日期:2015-03-03 16:54:152015年迎新春徽章
日期:2015-03-04 09:49:45
9 [报告]
发表于 2011-01-19 09:15 |只看该作者
回复  dreamice


    内核对标准的PCI是支持的。开机扫描到的设备也都可以被驱动操作(所以带电重启之 ...
smr 发表于 2011-01-18 17:03



    你这个和我遇到的网卡问题可能很相似。
我之前用一块realtek 8169的网卡,执行lspci的时候是能看到网卡的,包括型号;但是网卡就是起不来。最后重新下载了最新的网卡驱动,编译加载,就可以了。
所以,我猜测你这个还是设备自身驱动的问题,和pci关系不大。

论坛徽章:
0
10 [报告]
发表于 2011-01-19 09:18 |只看该作者
楼主有没试过这样:
1.先烧写FPGA程序;
2.再带电重启;
3.加载驱动,能够正常执行驱动程序功能;
4.然后再卸载驱动;
5.再次重新烧写FPGA程序(这时就不再重启);
6.最后再次加载驱动,看这次加载的驱动能否正常运行?
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP