Linuxカーネルが最初のPCIeバススキャンと列挙を行った後に構成されるFPGA(この質問をしているほとんどの人たちと同様)があります。ご想像のとおり、FPGA は PCIe エンドポイントを実装しています。
FPGA が表示され、ドライバー モジュールをロードできるように、PCIe コアに PCIe バス全体を再列挙させたいと考えています。また、FPGA ロードアウトを別の構成にスワップする機能も必要です。これにより、次のことができるようになりたいと考えています。
- Linux を起動する
- FPGA を構成する
- PCIe エンドポイントとロード モジュールを列挙する
- PCIe エンドポイントを削除する
- FPGA を再構成する
- PCIe エンドポイントを再列挙する
Linuxを再起動することなくすべて
他の場所で提案されているが、問題を解決しない解決策を次に示します。
echo 1 > /sys/bus/pci/rescan
これは機能しているように見えますが (時々のみ)、最初に列挙された後に FPGA ロードをホットスワップしたい場合は機能しません。
PCIe のホットプラグ/電源管理機能を使用してこれを機能させることはできますか? その場合、PCIe で Hotplug システムを使用する方法に関する適切なリソースはありますか? (LDD では十分にカバーされていません)