Kev*_*inM 8 bios pci-express pci
我正在研究在 PCI/PCIe 机箱中有多个相同(National Instruments)PCIe DAQ 模块的情况,这些模块通过单机箱控制器或双机箱控制器连接。在最坏的情况下,总线上可能有 8 个相同的模块。
我一直相信 PCI 枚举是非确定性的 - 即不能保证从引导到引导,PCI 总线将以相同的顺序枚举。这是真的?
这是否也意味着 PCI(e) 总线/设备/功能值可以更改,引导到引导,即使物理硬件布局没有?
简而言之,我知道初始 PCI 枚举是由 BIOS 完成的,并且引导操作系统(在我的情况下为 RHEL 6)使用此枚举列表来为已识别的硬件提供服务。此列表是否始终包含按相同顺序找到的设备?
这是Red Hat Bugzilla中的一个提示,暗示 BIOS 顺序始终相同。
请注意,我(尚未)谈论操作系统处理设备的顺序(例如,在 Linux 中,确定 /dev/ 名称顺序)。
谢谢!
简短的回答是“是”,如果 BIOS(执行初始枚举)符合 PCI 规范。
根据:“PCI Express 系统架构”R. Budruk、D. Anderson、T. Shanley,ADDISON-WESLEY DEVELOPER´S PRESS,2003 年。 ISBN:0-321-15630-7,第 743 页:
规范规定枚举软件必须执行深度优先搜索,因此在继续发现总线 0 上的其他功能/设备之前,它必须继续搜索总线 1。
对于RHEL 6:
9. 设备和设备驱动程序
PCI 设备订购
在 Red Hat Enterprise Linux 6 中,PCI 设备排序基于 PCI 设备枚举。PCI 设备枚举基于 PCI 枚举算法(深度优先然后广度)并且每个系统类型都是常数。此外,一旦发现设备,模块加载过程就会按顺序进行,从而提供接口的持久命名。
但是,(某些版本?)Linux 支持内核参数“pci=bfsort”,它将 Linux 枚举算法更改为“广度优先”。这将改变 Linux 内核加载和初始化 PCI 设备的顺序,这与 BIOS 的工作方式相同。
在任何情况下,从引导到引导,枚举列表仍将以相同的顺序包含检测到的项目。
归档时间: |
|
查看次数: |
9472 次 |
最近记录: |