FC2カウンター FPGAの部屋 ”Docker 上のUbuntu 16.04 のPetaLinux 2018.2でuioとudmabufの動作をテストする(DMA_pow2_testを使用)”にudmabufを追加する
FC2ブログ

FPGAやCPLDの話題やFPGA用のツールの話題などです。 マニアックです。 日記も書きます。

FPGAの部屋

FPGAの部屋の有用と思われるコンテンツのまとめサイトを作りました。Xilinx ISEの初心者の方には、FPGAリテラシーおよびチュートリアルのページをお勧めいたします。

”Docker 上のUbuntu 16.04 のPetaLinux 2018.2でuioとudmabufの動作をテストする(DMA_pow2_testを使用)”にudmabufを追加する

”Docker 上のUbuntu 16.04 のPetaLinux 2018.2でuioとudmabufの動作をテストする(DMA_pow2_testを使用)”にPLのIPのUIOを追加する”の続き。

PetaLinux 2018.2 のプロジェクトを作成して、ビルドを行い、BOOT.BIN の作成したものに、PL のIP(DMA_pow2)のUIO を追加した。今回は、それに udmabuf を追加する。

udmabufをPetaLinux 2018.2でビルドする”を参考にする。

PetaLinux のプロジェクトのディレクトリで、udmabuf をカーネルモジュールとして作成しよう。
petalinux-create -t modules --name udmabuf --enable
PetaLinux_174_190427.png

DMA_pow2_test/project-spec/meta-user/recipes-modules ディレクトリの下に udmabuf ディレクトリが作成され、その下の files ディレクトリの下に udmabuf.c が生成された。
PetaLinux_175_190427.png

自動生成された DMA_pow2_test/project-spec/meta-user/recipes-module/udmabuf/files/udmabuf.c を開いて、ikwzm さんの udmabuf.c の内容をコピペして入れ替えた。
PetaLinux_176_190427.png

LANG=en_US.UTF-8 petalinux-build -c udmabuf
で udmabuf をビルドしたところ成功した。
PetaLinux_177_190427.png

~/Docker/vivado182ub16/masaaki/PetaLProj/DMA_pow2_test/build/tmp/sysroots-components/ultra96_zynqmp/udmabuf/lib/modules/4.14.0-xilinx-v2018.2/extra/ ディレクトリの下に udmabuf.ko が生成されていた。
PetaLinux_178_190427.png

ホストパソコンのターミナルで udmabuf.ko の生成されているディレクトリに行って、udmabuf.ko をUltra96 のMicroSD カードの /home/root の下にコピペする。
cd ~/Docker/vivado182ub16/masaaki/PetaLProj/DMA_pow2_test/build/tmp/sysroots-components/ultra96_zynqmp/udmabuf/lib/modules/4.14.0-xilinx-v2018.2/extra/
sudo cp udmabuf.ko /media/masaaki/rootfs/home/root/

PetaLinux_179_190427.png

Ultra96 ボードの電源をON して、Ultra96 のPetaLinux 上で udmabuf.ko をinsmod したところ成功した。
/dev/udmabuf0/ が生成されている。
insmod udmabuf.ko udmabuf0=0x1000
ls -l /dev/udmabuf0

PetaLinux_180_190427.png

root@xilinx-ultra96-reva-2018_2:~# ls
udmabuf.ko
root@xilinx-ultra96-reva-2018_2:~# insmod udmabuf.ko udmabuf0=0x1000
[   57.543694] udmabuf udmabuf0: driver version = 1.4.0
[   57.548596] udmabuf udmabuf0: major number   = 243
[   57.553366] udmabuf udmabuf0: minor number   = 0
[   57.557962] udmabuf udmabuf0: phys address   = 0x000000006fc8e000
[   57.564038] udmabuf udmabuf0: buffer size    = 4096
[   57.568895] udmabuf udmabuf0: dma coherent   = 0
[   57.573499] udmabuf udmabuf.0: driver installed.
root@xilinx-ultra96-reva-2018_2:~# ls -l /dev/udmabuf0
crw------- 1 root root 243, 0 Apr 25 20:22 /dev/udmabuf0

  1. 2019年04月27日 04:08 |
  2. PetaLinux
  3. | トラックバック:0
  4. | コメント:0

コメント

コメントの投稿


管理者にだけ表示を許可する

トラックバック URL
https://marsee101.blog.fc2.com/tb.php/4508-c927c85f
この記事にトラックバックする(FC2ブログユーザー)