求教xtang及各路高手,系统无法识别PCI板卡

我用的是QNX641系统,为PCI板卡开发了驱动,但我将板卡插到工控机时却找不到设备。

驱动中最先调用的是pci_find_device(厂商号和设备号是厂商提供),但该函数始终返回“PCI_DEVICE_NOT_FOUND”,请
问各路高手我该如何继续查。

ps:为了验证厂商号和设备号,我在ubuntu系统上为该板卡也开发了一个驱动,识别、访问均正常。但实在是不知QNX下为何
返回找不到设备,请各位高手帮帮忙啊,小弟感激不尽!

用 pci -vvv的命令看看能不能找到硬件,
如果这个命令都不能找到,那你得升级你的pci-bios了
如果能找到,只能说明你写的驱动有点点问题。

多谢回复。
曾用pci -vvv | less 命令查看,列表中没有该设备。
今天试一下您说的升级pci-bios的方案。

如果这个命令都不能找到,那你得升级你的pci-bios了

你好,我在QNX官网上没有找到能够更新的pci-bios,请问您指的升级是怎么升级?

Hi,all:
这个问题的原因我找到了。 QNX系统在6.3.2版本以后的一个变更是拒绝无效的PCI class code,因此我的板卡在6.3.2以前的版本
上可以正确识别,在6.4.1或6.50上却识别不到,因此驱动无法使用。
解决办法是运行命令“pci-bios -c”,-c选项的意思是忽略class code的检测,现在系统可正确识别板卡,驱动可以正常使用。

这个问题困扰我将近一周了,装了好多版本的系统进行尝试,最后终于解决了,跟大家分享一下 :smiley:

恭喜恭喜
有耐心就能搞定