I am looking into a situation where there are multiple, identical (National Instruments) PCIe DAQ modules in a PCI/PCIe chassis, connected via either a single or dual chassis controller. In the worst case scenario there can be 8 identical modules on the bus.
I have been led to believe that PCI enumeration is non-deterministic - i.e. that there is no guarantee that, boot to boot, the PCI bus will be enumerated in the same order. Is this true?
Does this also imply that PCI(e) bus/device/function values can change, boot to boot, even if the physical hardware layout does not?
In short, I understand that initial PCI enumeration is done by the BIOS, and that the boot OS (RHEL 6, in my case) uses this enumerated list to service identified hardware. Does this list always contain the found devices in the same order or not?
This is a hint in Red Hat Bugzilla that implies that BIOS ordering is always the same.
Please note that I am not (yet) talking about the order in which the OS handles the devices (e.g. for, in Linux, determining the /dev/ name order).