Ich habe ein FPGA (Wie die meisten Leute, die diese Frage stellen), die konfiguriert wird, nachdem mein Linux Kernel den ersten PCIe Bus scannt und nummeriert. Wie Sie sich vorstellen können, implementiert der FPGA einen PCIe-Endpunkt.Wie man einen TRUE Rescan des PCIe Busses macht
Ich möchte den PCIe-Kern haben, den gesamten PCIe-Bus neu aufzählen, so dass mein FPGA dann angezeigt wird und ich mein Treibermodul laden kann. Ich würde auch gerne die Möglichkeit haben den FPGA für eine andere Konfiguration zu laden. Damit meine ich, würde ich in der Lage sein mag:
- Boot-Linux
- Configure FPGA
- Aufzählen PCIe-Endpunkt und Lademodul
- entfernen PCIe-Endpunkt
- Neukonfigurierung der FPGA
- Numerieren Sie den PCIe-Endpunkt erneut
Alle ohne Neustart Linux
Hier sind Lösungen, die anderswo vorgeschlagen wurden, aber das Problem nicht lösen.
echo 1 > /sys/bus/pci/rescan
Dies scheint zu funktionieren (nur manchmal) und es funktioniert nicht, wenn ich die FPGA laden möchte, nachdem es zuerst aufgezählt wurde.
Hier ist eine ziemlich invasive Methode (die ich nicht getestet habe), die jemand anderswo auch vorgeschlagen hat. https://community.freescale.com/thread/305355
Können die Hotplug/Power-Management-Funktionen von PCIe verwendet werden, um dies zu ermöglichen? Wenn ja, gibt es gute Ressourcen für die Verwendung des Hotplug-Systems mit PCIe? (LDD deckt es nicht gründlich genug)
Sehen Sie sich den PCIe-Hotplug-Mechanismus an. Es wird in neueren Kernel unterstützt. Eigentlich, wie wird deiner Meinung nach Thunderbolt funktionieren? Es ist das gleiche hier. – 0andriy
Führen Sie Rescan auf dem Host-Computer oder in einer Xen-VM aus? Xen hatte Probleme, den PCIe-Baum erneut zu scannen und stürzte in der Vergangenheit ab. Ich weiß nicht, ob es gelöst ist. – Paebbels
Ich frage mich, welche Basis-Hardware verwenden Sie. Nach meiner Erfahrung mit kommerziellen Motherboards hat die 'Rescan'-Methode selten funktioniert. Ich ging die teilweise Neukonfigurationsroute, um das Problem zu lösen (indem ich nicht wieder aufzählte). @Paebbels @ whh4000 kannst du dein Setup teilen? – Claudio