ZynqのPLにJPEG Decoderを組み込んだが、今度はそのドライバ製作をしていた。
最初はUserSpace I/Oで済ましてしまおうと思ったんだけど、最終的にはちゃんとしたドライバを作ることにした。
制御はアプリからioctlで回路まで接続する。
PL部のJPEG Decoderはmmapでダミーデータを流し込むアプリでテストしたらそれなりに動作していたのでPLのJPEG Decoderは問題ないだろう。
問題が出るとすれば、AXI Streamの部分だな。
JPEG Decoderの本体自体は単体でSimしてるし、他で実績があるけど、AXI Stream部分は今回の新設だ。
ドライバもUserSpace I/Oでなくて、ちゃんとしたドライバで、Linaroに組み込んでいるのでメタファイルで構成している。
メタ構造も確認しながらドライバを組み込んでいるのでちょっと進捗が悪い。
ただ、Kernelだけの更新なら、ZedBoardをLANで接続していればSDのBOOT領域にuImageをsshで送り込んでrebootするといいだけ。
これはこれでデバッグが便利。
アプリからドライバを通じて、JPEG Decoderが動くのが確認できたら、今回の作業を図示してみよう。