2022/12/03

create vitis plarform in kv260 -2

XILINX   

の続きです。以下の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:~$ 

うごいた!

Prev:«

Next: »