Eine mögliche, weitere Ursache: USB-Karten sind meist Multi-Function-Devices, d.h. auf einer Karte sind mehrere Funktionen, die im PCI-Scan wie mehrere Karten auftauchen. NEC- (oder besser OHCI-/EHCI-, die sind alle mehr oder weniger identisch) USB-Karten haben meist 4 Functions (also praktisch wie 4 Karten in einem Slot).
Grafik- und Netzwerkkarten haben üblicherweise nur eine Function. Ich weiss, dass frühe Versionen des PCI-BIOS Multifunction-Devices nicht unterstützt haben (im Milan möglicherweise auch?), weil ich den Teil, der die abhandelt, für Didier Mequignon's CTPCI TOS beigesteuert habe.
Allerdings habe ich das so in Erinnerung, dass in dem Fall zumindest die erste Function auf der Karte im Scan auftauchen müsste - das scheint aber auch nicht der Fall zu sein?
Grundsätzlich kann die PCI-Enumeration auch nachträglich (z.B. im AUTO-Ordner) ablaufen. Dazu ist aber eine sehr genaue Kenntnis des (PCI-) Chipsatzes. der Speicherkonfiguration und ein Testsystem notwendig. Es ist ja (auch wenn's so aussieht) nicht so, dass da nur die Geräte aufgelistet würden (das wäre einfach): jede Karte wird (in einem speziellen Modus) abgefragt: "wer bist du, was kannst du", "wieviele Functions", "welche Speicheradressen", "welche I/O-Adressen", "welches Alignment", "Interrupts?", "Bus Master?", usw., ihre Konfigurationsregister entsprechend gesetzt sowie die Einstellungen gespeichert, damit sie später von den Treibern abgefragt werden können.
USB-Karten sind insofern nochmal speziell, dass sie Bus-Master sind (sie übernehmen temporär den PCI-Bus und schreiben "rückwärts" Daten in den Speicher des Hosts, der dafür natürlich entsprechend vorbereitet sein muss). Das macht's noch ein wenig komplizierter.