![]() Versal カスタム プラットフォーム作成チュートリアル |
手順 3: Vitis プラットフォームの作成¶
Vitis プラットフォームは、Vitis GUI または XSCT コマンド ラインを使用して作成できます。このチュートリアルでは、GUI フローに焦点を当てます。
プラットフォーム パッケージの準備¶
Vitis プラットフォームの作成フローに必要なすべてのファイルを 1 つのディレクトリに保存します。
| コンポーネント| 従来のパスまたはファイル名| 内容 |———-|———-|———- | BIF ファイル| boot/linux.bif| ブート イメージ生成記述ファイル | BOOT.BIN 内のブートコンポーネント| boot/bl31.elfboot/u-boot.elfboot/system.dtb| linux.bif で参照されるすべてのコンポーネントは、このフォルダーに含まれます。 | FAT32 パーティションのブート コンポーネント| image/boot.scr| U-Boot コンフィギュレーション ファイル
Vitis アプリケーションをビルドする際には、Linux カーネル イメージ、ルート ファイル システム、sysroot などのソフトウェア コンポーネントも必要です。では、こららをすべて準備します。
Vitis プラットフォームの作成フローに必要なすべてのファイルを保存します。このディレクトリを step3_pfm ディレクトリと呼びます。サンプル ファイルは、このリポジトリの ref_files/step3_pfm ディレクトリにあります。
次の内容を含む BIF ファイル (linux.bif) を step3_pfm/boot ディレクトリに追加します。ファイル名は、ブート ディレクトリの内容と同じにする必要があります。
/* linux */ the_ROM_image: { { load=0x1000, file=<system.dtb> } { load=0x8000000, file=<u-boot.elf> } { core=a72-0, exception_level=el-3, trustzone, file=<bl31.elf> } }
linux.bif で参照されるすべてのファイルが同じディレクトリに保存されていることを確認します。これらは PetaLinux によって生成され、もともと <your_petalinux_dir>/images/linux ディレクトリにあります。理解しやすいように、これらのファイルを step3_Pfm/boot にコピーしておきます。ここでは、これらのファイルを <your_petalinux_dir>/images/linux ディレクトリに保存しています。これは、PetaLinux 設定をアップデートして PetaLinux をビルドし直す必要がある場合は、プラットフォームをクリーンにして Vitis でビルドし直し、新しいプラットフォームを生成する必要があるからです。毎回手動でコピーする必要はありません。これらのファイルは、アプリケーションをパッケージする際に最終的な BOOT.BIN を作成するためのソースです。プラットフォームを作成すると、これらのファイルはプラットフォーム出力ディレクトリにコピーされます。この例の場合、これらのファイルは BIF ファイルで参照されます。
bl31.elf
u-boot.elf
system.dtb
step3_pfm/image ディレクトリを準備します。このディレクトリの内容は、v++ パッケージ ツールにより、SD カード イメージの FAT32 パーティションにパッケージされます。
<your_petalinux_dir>/images/linux ディレクトリの boot.scr を step3_pfm/image ディレクトリにコピーします。これは、U-Boot を初期化するスクリプトです。U-Boot は、ブート プロセス中に fat32 パーティションから読み出されます。
アプリケーション作成用のソフトウェア コンポーネントを準備します。プラットフォーム パッケージでは、これらを追加したり除外したりできます。これらのコンポーネントは、ソフトウェア コンポーネントのサイズにより通常はプラットフォーム外に保持されるので、同じアーキテクチャを持つ複数のプラットフォーム間で再利用できます。
# Create sw_comp directory cd step3_pfm mkdir sw_comp cd sw_comp # Copy Linux kernel image cp <your_petalinux_dir>/images/linux/Image . # Copy EXT4 Root Filesystem cp <your_petalinux_dir>/images/linux/rootfs.ext4 . # Install sysroot to this directory <your_petalinux_dir>/images/linux/sdk.sh -d ./ -y
プラットフォーム パッケージ¶
まず、Vivado で生成された XSA ファイルを使用して、Vitis プラットフォーム プロジェクトを作成します。
Vitis を起動します。
source <Vitis_Install_Directory>/settings64.sh cd pfm vitis -workspace ./platform_repo &
プラットフォーム プロジェクトを作成します。
Vitis IDE で [File] → [New] → [Platform Project] をクリックして、プラットフォーム プロジェクトを作成します。
プロジェクト名を入力します。この例では、
vck190_custom
と入力して [Next] をクリックします。[Platform] ページで [Browse] ボタンをクリックし、Vivado で生成された XSA ファイルを選択します。この場合、
vivado/vck190_custom.xsa
にあります。[Next] をクリックします。オペレーティング システムに [linux] を設定します。
プロセッサに [psv_cortexa72] を設定します。
[Finish] をクリックします。
[Platform Settings] ビューで Linux ドメイン設定を指定します。
[linux on psv_cortexa72] ドメインをクリックします。
[Bif file]: [step3_pfm/boot/linux.bif] ファイルを選択して [OK] をクリックします。
[Boot Components Directory]: step3_pfm/boot/ を選択し、[OK] をクリックします。
[Linux Image Directory]: step3_pfm/image を選択し、[OK] をクリックします。
注記: [Linux Rootfs] と [Sysroot Directory] はオプションです。これらは、プラットフォームまたはアプリケーションのいずれかで提供できます。このチュートリアルでは、アプリケーション作成段階で追加します。これにより、複数のプラットフォーム間での再利用が容易になります。
(オプション) Linux ドメイン エミュレーションを設定します。
[QEMU Arguments] および [PMC QEMU Arguments] 設定が、 Vitis インストールディレクトリ内のファイルに設定されていることを確認します。これらのデフォルト設定はそのまま使用できます。引数をアップデートする必要がある場合は、引数をローカルにコピーし、その新しいパスを Linux ドメイン コンフィギュレーションで設定できます。
[QEMU Data] を step3_pfm/boot ディレクトリに変更します。
AI エンジン ドメインを追加します。
[Add domain] アイコンをクリックします。
[Name] を aiengine に設定します。
OS を aie_runtime に変更します。
ほかの設定をデフォルトのままにして、[OK] をクリックします。
注記: Vitis IDE と XSCT は AI エンジン ドメイン用の QEMU 引数を自動的に追加します。
Vivado の [Explorer] ビューで vck190_custom プロジェクトを選択し、[Build] ボタンをクリックしてプラットフォームを生成します。
注記: 生成されたプラットフォームがエクスポート ディレクトリに保存されます。FSBL および PMU を再構築するのに必要な場合は、BSP およびソース ファイルも提供され、プラットフォームと関連付けられます。プラットフォームがアプリケーション開発に使用できるようになりました。
スクリプトを使用した実行¶
Vitis プラットフォームをパッケージするスクリプトが提供されています。
これらのスクリプトを使用するには、次の手順を実行します。
ビルドを実行します。
# cd to the step directory, e.g. cd step3_pfm make
生成されたファイルをクリーンアップするには、次を実行します。
make clean
次に、手順 4 に進んで、このプラットフォーム上でいくつかのアプリケーションをビルドし、テストします。
Copyright© 2020 Xilinx
この資料は 2021 年 2 月 8 日時点の表記バージョンの英語版を翻訳したもので、内容に相違が生じる場合には原文を優先します。資料によっては英語版の更新に対応していないものがあります。 日本語版は参考用としてご使用の上、最新情報につきましては、必ず最新英語版をご参照ください。