最近、別の人からデバイスドライバーの保守の仕事を引き継いだ。
ドライバーは、PCI-E ボードで動作します。システムの起動時に、ドライバは 128Mb のメモリを割り当て、ボード上のいくつかのレジスタを設定して、割り当てられたメモリに関する情報を渡します。後でボードが動作すると、メモリにデータが書き込まれ、他のアプリケーションがドライバを介してそれらのデータにアクセスします。
ボードは、スタンドアロン アダプターによって給電されます (PCI-E スロットではなく、デモまたは開発ボードです)。そのため、ボードの fpga プログラムに問題が発生した場合は、ボードの電源を入れ直し (これは高速です)、PC も再起動します (これは低速です。そうしないと、ボードはドライバーが割り当てたメモリについて何も認識しません)。
Here comes my problem: is it possbile for driver to know the board has been re-powered on? if it can detect the event and do something like those done when the system starts up, it will save us much time.
I haven't got much knowledge about driver development before, it would be helpful if there is any not-too-complicated tutorial/article for this kind of job. Or maybe I must find some thick books to learn from scratch?
Hope I've made myself understood and any suggestions would be greatly appreciated:-)