無保証・無サポートを決め込むなら、最低限、ハードウェアの仕様くらいは公開して欲しいというのは、おかしい考え方でしょうか?いずれにしても、アイ・オー・データという会社はそういう感覚ではないらしいので、GLANTANKは謎だらけなのです。
それでも、わずかなヒントから、推理し、実装し、試すのは、楽しくないかといわれれば、楽しい部類に入ると答えてしまう私です。でも、そんな楽しみは別に味わう必要はないのですけれど。
スイッチ類(電源スイッチとリセットボタン)の操作に伴い、IRQ30(シリアルと共用)に割り込みがあがるのは、btndrvがIRQ30をひっかけているので分かります。CPLD_INTMASK というレジスタがカーネルのソースで定義されているので、これで、この割り込みの制御ができそうなのもわかります。でも割り込みがかかると、刺さってしまうのです。ということで、あれこれ調べて、どうやらCPLD_SDRST_CTRL(シャットダウンとリセットの制御用レジスタ)に特定の値を出力して、割り込み要因を消してやらないといけないらしいことがわかりました。早速実装するとすっきり。割り込みを拾って、適切に、イベントが処理されるようになりました(^^)/
それにしても……こんなことして、ハードの仕様を推測しなければならないって、ホント、どうかしている……と、思います。
コメント