前回は、PetaLinux 2018.2 のプロジェクトを作成して、ビルドを行い、BOOT.BIN の作成したものに、PL のIP(DMA_pow2)のUIO を追加し、さらに udmabuf.ko をビルドした。そして、DMApow2Test2.c を作成し、ビルドして、Ultra96 のPetaLinux 上でテストしたところ成功した。そしてそのPetaLinux のRootFS をUbuntu 18.04.2 に変更したところうまく起動した。今回は、Ubuntu 18.04.2 のUIOの状況を見ていこう。
/sys/class を見ると uio ディレクトリがある。
しかし、uio ディレクトリの下には、uio0 のみだった。 uio1 がない。
/sys/devices/platform/amba_pl@0/80000000.DMA_pow2 はあったので、デバイスツリーは認識されているが、UIO には入っていないようだ。
aster_ism さんのように devmem2 やスーパーバイザのコードでやる方法もあるが、できればUIO でやりたい。
デバイスツリーを使わずにUIOを使用する方法もあるようだが、PetaLinux から外れてきてしまっているので、もし使うならば ikwzm さんの実装のほうが良さそうだ。