の続きです。以下のQiitaの記事を参考にしています。自分用のメモです。
https://qiita.com/basaro_k/items/e83128c265ae86801bbc
https://qiita.com/lp6m/items/df1b87b11f8275ee6210
Vitis プラットフォームの作成
プラットフォーム用にディレクトリを作成します。
mkdir pfm
mkdir pfm/boot
mkdir pfm/sd_dir
vitisを起動する
Create Platform Projectを選択します。
Project nameをいれる
xsaは、Vivadoで作成したファイルを指定する。
Operating systemはLinuxを選択する。Boot Componentsはチェックを外す。
Finishをクリックする
kv260_customのタブのlinux on psu_cortex53をクリックする
Bif FileのBrowseをクリックして、Generate Bifを選択する
Boot Componets DirectoryとFAT32 Partition Directoryに、先ほど作ったディレクトリを指定する
ハンマーのアイコンをクリックしてビルドする
このファイルがVitisのプラットフォームらしい
プラットフォームの確認
platforminfo kv260_custom/export/kv260_custom/kv260_custom.xpfm
==========================
Basic Platform Information
==========================
Platform: kv260_custom
File: /home/y/work/kv260/2022.1/WorkSpace/kv260_vitis_platform/kv260_custom/export/kv260_custom/kv260_custom.xpfm
Description:
kv260_custom
=====================================
Hardware Platform (Shell) Information
=====================================
Vendor: xilinx
Board: kv260_hardware_platform
Name: kv260_hardware_platform
Version: 0.0
Generated Version: 2022.1
Hardware: 1
Software Emulation: 1
Hardware Emulation: 1
Hardware Emulation Platform: 0
FPGA Family: zynquplus
FPGA Device: xck26
Board Vendor: xilinx.com
Board Name: xilinx.com:kv260_som:1.3
Board Part: XCK26-SFVC784-2LV-C
=================
Clock Information
=================
Default Clock Index: 1
Clock Index: 0
Frequency: 99.999000
Clock Index: 1
Frequency: 199.998000
Clock Index: 2
Frequency: 399.996000
==================
Memory Information
==================
Bus SP Tag: HP0
Bus SP Tag: HP1
Bus SP Tag: HP2
Bus SP Tag: HP3
Bus SP Tag: HPC0
Bus SP Tag: HPC1
=============================
Software Platform Information
=============================
Number of Runtimes: 1
Default System Configuration: kv260_custom
System Configurations:
System Config Name: kv260_custom
System Config Description: kv260_custom
System Config Default Processor Group: linux_domain
System Config Default Boot Image: standard
System Config Is QEMU Supported: 1
System Config Processor Groups:
Processor Group Name: linux on psu_cortexa53
Processor Group CPU Type: cortex-a53
Processor Group OS Name: linux
System Config Boot Images:
Boot Image Name: standard
Boot Image Type:
Boot Image BIF: kv260_custom/boot/linux.bif
Boot Image Data: kv260_custom/linux_domain/image
Boot Image Boot Mode: sd
Boot Image RootFileSystem:
Boot Image Mount Path: /mnt
Boot Image Read Me: kv260_custom/boot/generic.readme
Boot Image QEMU Args: kv260_custom/qemu/pmu_args.txt:kv260_custom/qemu/qemu_args.txt
Boot Image QEMU Boot:
Boot Image QEMU Dev Tree:
Supported Runtimes:
Runtime: OpenCL
アプリケーションの作成
ディレクトリを作成します。
mkdir kv260_vitis_application
vitisを起動します。
Create Application Projectを指定します
Platformの画面で、+Addをクリックして、先ほど生成したVitis プラットフォームを指定します。
kv260_customが入力されましたので、クリックして、Nextをクリックします。
アプリケーション名を入れます。今回は、vaddとします。
Domainの画面では、Sysroot pathに、先ほど作ったsysrootのディレクトリを指定します。
Templatesでは、Simple Vector Additionを選択します。
Hardwareのビルド
プロジェクトが生成されたらvaddのタブ Active build configurationで、Hardwareを選択します。
vadd_system->vadd_system_hw_link->vadd_system_hw_link.prjをクリックしてから、ハンマーをクリックしてビルドします。
30分ぐらいかかりました。
Softwareのビルド
vadd_system->vadd->vadd.prjをクリックしてから、ハンマーをクリックしてビルドします。
kv260にデータを転送
shell.jsonを作成します。
cat shell.json
{
"shell_type" : "XRT_FLAT",
"num_slots": "1"
}
次のファイルをkv260に転送します。
binary_container_1.xclbinは、binary_container_1.binに名前を変更します。
shell.json
dtg_output/pl.dtbo
kv260_vitis_application/vadd_system_hw_link/Hardware/binary_container_1.xclbin
kv260_vitis_application/vadd/Hardware/vadd
kv260に転送します。
scp shell.json pl.dtbo binary_container_1.bin vadd petalinux@192.168.1.89:/home/petalinux/
アプリの実行
アプリの実行の準備をする
sudo mkdir /lib/firmware/xilinx/vadd
cd /home/petalinux
sudo cp pl.dtbo binary_container_1.bin shell.json /lib/firmware/xilinx/vadd/
sudo xmutil listapps
sudo xmutil unloadapp
sudo xmutil loadapp vadd
sudo xmutil loadapp vaddのときにワーニングが出た。メモしておく。
Nov 19 09:22:26 xilinx-kv260-starterkit-20221 kernel: OF: overlay: WARNING: memory leak will occur if overlay removed, property: /fpga-full/firmware-name
Nov 19 09:22:26 xilinx-kv260-starterkit-20221 kernel: OF: overlay: WARNING: memory leak will occur if overlay removed, property: /fpga-full/resets
Nov 19 09:22:26 xilinx-kv260-starterkit-20221 kernel: OF: overlay: WARNING: memory leak will occur if overlay removed, property: /__symbols__/overlay0
Nov 19 09:22:26 xilinx-kv260-starterkit-20221 kernel: OF: overlay: WARNING: memory leak will occur if overlay removed, property: /__symbols__/overlay1
Nov 19 09:22:26 xilinx-kv260-starterkit-20221 kernel: OF: overlay: WARNING: memory leak will occur if overlay removed, property: /__symbols__/afi0
Nov 19 09:22:26 xilinx-kv260-starterkit-20221 kernel: OF: overlay: WARNING: memory leak will occur if overlay removed, property: /__symbols__/clocking0
Nov 19 09:22:26 xilinx-kv260-starterkit-20221 kernel: OF: overlay: WARNING: memory leak will occur if overlay removed, property: /__symbols__/clocking1
Nov 19 09:22:26 xilinx-kv260-starterkit-20221 kernel: OF: overlay: WARNING: memory leak will occur if overlay removed, property: /__symbols__/overlay2
Nov 19 09:22:26 xilinx-kv260-starterkit-20221 kernel: OF: overlay: WARNING: memory leak will occur if overlay removed, property: /__symbols__/axi_intc_0
Nov 19 09:22:26 xilinx-kv260-starterkit-20221 kernel: irq-xilinx: mismatch in kind-of-intr param
Loaded to slot 0
Nov 19 09:22:26 xilinx-kv260-starterkit-20221 kernel: zocl-drm axi:zyxclmm_drm: IRQ index 32 not found
アプリを実行する
xilinx-kv260-starterkit-20221:~$ chmod +x ./vadd
xilinx-kv260-starterkit-20221:~$ ./vadd binary_container_1.bin
INFO: Reading binary_container_1.bin
Loading: 'binary_container_1.bin'
Trying to program device[0]: edge
Device[0]: program successful!
TEST PASSED
xilinx-kv260-starterkit-20221:~$
うごいた!