2019.2環境で、Linux起動できるバイナリが作成できることがわかったので、
Wifi含めてUltra96-V2がフルフルに動くOOBプラットフォームを作成する。
これについてもbasaro_kさんのサイトを参考にさせていただく。
ただ、上記サイトではVitis用にカスタマイズしてたけど、
多分、そのまま行けるはずなので若干手順は違ってる。
https://qiita.com/basaro_k/items/066edec6139bcb9d53e5
Contents
Avnet Source
Avnetが公開しているPetaLinuxとHDLのソースを入手する。
https://github.com/Avnet/petalinux
https://github.com/Avnet/hdl
HDL Reference Design
2019.2用のブランチがあるので、それを使用
|
1 2 3 4 5 6 7 8 9 |
$ cd git $ git clone -b 2019.2 https://github.com/Avnet/hdl.git Cloning into 'hdl'... remote: Enumerating objects: 202, done. remote: Counting objects: 100% (202/202), done. remote: Compressing objects: 100% (113/113), done. remote: Total 4308 (delta 140), reused 137 (delta 85), pack-reused 4106 Receiving objects: 100% (4308/4308), 9.27 MiB | 4.35 MiB/s, done. Resolving deltas: 100% (2536/2536), done. |
PetaLinux Project
2019.2用のブランチがあるので、それを使用。
|
1 2 3 4 5 6 7 8 9 |
$ cd git $ git clone -b 2019.2 https://github.com/Avnet/petalinux.git Cloning into 'petalinux'... remote: Enumerating objects: 313, done. remote: Counting objects: 100% (313/313), done. remote: Compressing objects: 100% (178/178), done. remote: Total 2420 (delta 158), reused 241 (delta 115), pack-reused 2107 Receiving objects: 100% (2420/2420), 6.09 MiB | 4.49 MiB/s, done. Resolving deltas: 100% (1242/1242), done. |
カスタマイズ
フォルダ名等が決め打ちなので、自分の環境に合わせて修正する。
ただ、フォルダ構成は変えると面倒となるのでそのままにする。
[path]/
└hdl : HDL Reference Designのgitフォルダ
└petalinux : PetaLinux Projectのgitフォルダ
ただし、スクリプト中のPetaLinuxやVivadoのインストールフォルダは修正が必要。
[path]/petalinux/scripts/make_ultra96v2_oob_bsp.shを修正
|
1 2 3 4 5 |
#APP_PETALINUX_INSTALL_PATH=/tool/petalinux-v2019.2-final #APP_VIVADO_INSTALL_PATH=/tool/Xilinx/Vivado/2019.2 # ↓ 変更 APP_PETALINUX_INSTALL_PATH=/opt/petalinux-v2019.2-final APP_VIVADO_INSTALL_PATH=/opt/Xilinx/Vivado/2019.2 |
スクリプト実行
スクリプトがあるフォルダに移動して実行するだけ。
|
1 2 |
$ cd [path]/petalinux/scripts $ ./make_ultra96v2_oob_bsp.sh |
環境にもよるけど、自分の環境では3〜4時間ほどかかった。
バイナリデータ確認
SDカードに格納するデータは以下に格納される。
|
1 2 3 4 5 |
$ ls petalinux/projects/ultra96v2_oob_2019_2/images/linux/ bl31.bin Image rootfs.cpio rootfs.manifest system.dtb vmlinux bl31.elf image.ub rootfs.cpio.gz rootfs.tar.gz System.map.linux zynqmp_fsbl.elf BOOT.BIN pmufw.elf rootfs.cpio.gz.u-boot rootfs.testdata.json u-boot.bin boot.scr pxelinux.cfg rootfs.jffs2 system.bit u-boot.elf |
ブロック図確認
Vivadoのハードウェアプロジェクトは以下に格納される。
|
1 2 3 |
$ ls hdl/Projects/ultra96v2_oob/ULTRA96V2_2019_2/ buildInfo.log ULTRA96V2.hw ULTRA96V2.runs ULTRA96V2.xpr ULTRA96V2.cache ULTRA96V2.ip_user_files ULTRA96V2.srcs ULTRA96V2.xsa |
実際に作成されたVivadoプロジェクトのブロック図は以下
上の方は_baseでも作成していたクロック。
下の方は96BoardsのIO等がAXI接続されている。

OS起動
いつも通りSDカードをフォーマットして必要ファイルをコピーして起動。
が、起動失敗。上手く行ってない。
手動でやり直してみる。
やり直しのログ
Hardwareを手動で作成して、それを基にPetaLinuxツールでプラットフォームを作成してみる。
|
1 2 3 |
$ cd [path]/hdl/Scripts $ source /opt/Xilinx/Vivado/2019.2/settings64.sh $ vivado -mode batch -source make_ultra96v2_oob.tcl |
Vitis Embedded Platform Source
Ultra96はAvnet社製なので、Xilinx公式のVitis Embedded Platform Sourceのgitリポジトリには入っていない。
なので、zcu102を改造してプラットフォームを作成する。
Xilinxが公開しているVitisのEmbedded Platform Sourceを入手。
https://github.com/Xilinx/Vitis_Embedded_Platform_Source
2019.2用のブランチをgit cloneする。
|
1 2 |
$ cd git $ git clone -b 2019.2 https://github.com/Xilinx/Vitis_Embedded_Platform_Source.git |