ドライバー、ユーザーランドユーティリティ、またはカーネルにPCIバスを調べて初期化を完全に再実行するか、特定のシステムコールを初期化するように要求するシステムコールのいずれかを探しています。端末。具体的には、起動後にバスに追加されたデバイスをカーネルが認識し、そのアドレススペース、割り込み、およびその他の構成パラメーターを構成し、最後にデバイスを有効にして、そのドライバーをロードできるようにする必要があります(これがすべての場合を除く)ドライバロードの一部として発生します)。
私はこのために2.4.xシリーズのカーネルに固執しており、現在2.4.20で作業していますが、問題があれば2.4.37に移行する予定です。ディストリビューションは、RAMディスクで実行されているRed Hat 7.3を取り除いたものですが、これを機能させるために必要なツールを追加できます(2.4シリーズでうまく機能する限り)。
何らかの背景が私がやろうとしていることを明確にするのに役立つ場合:コールドブートから、Linuxで一度GPIOを使用してFPGAをプログラムします。FPGAの一部は、プログラムされると、単純なPCIデバイスを実装します。現在、FPGAをプログラミングした後、システムを再起動すると、Linuxは起動後にデバイスを認識し、そのドライバーをロードします。
再起動が必要になる代わりに、起動時にPCIデバイスを見つけるためにカーネルに何でもするように依頼したいと思います(BIOSにその情報を要求する代わりに、カーネルがPCIデバイスを独自に検索するように構成されています。したがって、BIOSはこのデバイスについて知る必要はありません(私は願っています))。
Linuxは、プログラムされた後、再起動する前にデバイスを認識できると思います。scanpci
これは、プログラムした後、デバイスが表示されるためlspci -H 1
です。私はそれを取得し/proc/pci
、構成し、有効にする方法が必要です。