Versal カスタム プラットフォーム作成チュートリアル

手順 3: Vitis プラットフォームの作成

Vitis プラットフォームは、Vitis GUI または XSCT コマンド ラインを使用して作成できます。このチュートリアルでは、GUI フローに焦点を当てます。

プラットフォーム パッケージの準備

Vitis プラットフォームの作成フローに必要なすべてのファイルを 1 つのディレクトリに保存します。

必須のプラットフォーム作成のソース ファイル

コンポーネント 従来のパスまたはファイル名 内容
BOOT.BIN 内のブートコンポーネント boot/bl31.elf
boot/u-boot.elf
boot/system.dtb
linux.bif で参照されるすべてのコンポーネントは、このフォルダーに含まれます。
SD カードの FAT32 パーティションのブート コンポーネント image/boot.scr U-Boot コンフィギュレーション ファイル

オプションのプラットフォーム作成ソース ファイル

コンポーネント 従来のパスまたはファイル名 内容
ブート イメージ記述ファイル (BIF) boot/linux.bif BIF は、BOOT.BIN のレイアウトを記述します。Vitis では、汎用的に使用するデフォルトの BIF を生成できます。ユーザーは必要に応じてカスタマイズされた BIF を提供できます。
Linux ソフトウェア コンポーネント sw_comp/Image
sw_comp/rootfs.ext4
sw_comp/sysroots
アプリケーション作成および Linux ブート用の Linux コンポーネント。これらは、プラットフォームにパッケージすることも、スタンドアロンのままで使用することもできます。また、アプリケーション作成プロセス中にリンクすることもできます。

Linux ソフトウェア コンポーネントは、プラットフォームのハードウェア デザインが変更されるほとんどの場合に再利用できます。そのため、これらはプラットフォームにはパッケージしません。ここでは、次の手順のアプリケーション作成の準備をします。

Vitis プラットフォームの作成フローに必要なすべてのファイルを保存します。このディレクトリを step3_pfm ディレクトリと呼びます。サンプル ファイルは、このリポジトリの ref_files/step3_pfm ディレクトリにあります。

  1. ブート コンポーネントを準備し、同じディレクトリに格納します。これらは PetaLinux によって生成され、もともと <your_petalinux_dir>/images/linux ディレクトリにあります。理解しやすいように、これらのファイルを step3_Pfm/boot にコピーしておきます。ここでは、これらのファイルを <your_petalinux_dir>/images/linux ディレクトリに保存しています。これは、PetaLinux 設定をアップデートして PetaLinux をビルドし直す必要がある場合は、プラットフォームをクリーンにして Vitis でビルドし直し、新しいプラットフォームを生成する必要があるからです。毎回手動でコピーする必要はありません。これらのファイルは、アプリケーションをパッケージする際に最終的な BOOT.BIN を作成するためのソースです。プラットフォームを作成すると、これらのファイルはプラットフォーム出力ディレクトリにコピーされます。

    • bl31.elf

    • u-boot.elf

    • system.dtb

  2. step3_pfm/sd_dir ディレクトリを準備します。このディレクトリの内容は、v++ パッケージ ツールにより、SD カード イメージの FAT32 パーティションにパッケージされます。

    • <your_petalinux_dir>/images/linux ディレクトリの boot.scrstep3_pfm/sd_dir ディレクトリにコピーします。これは、U-Boot を初期化するスクリプトです。U-Boot は、ブート プロセス中に fat32 パーティションから読み出されます。

  3. アプリケーション作成用の Linux ソフトウェア コンポーネントを準備します。プラットフォーム パッケージでは、これらを追加したり除外したりできます。これらのコンポーネントは、ソフトウェア コンポーネントのサイズにより通常はプラットフォーム外に保持されるので、同じアーキテクチャを持つ複数のプラットフォーム間で再利用できます。その一方で、Linux ソフトウェア コンポーネントをプラットフォームに保持しておくと、プラットフォームをチーム間で提供する際に、さまざまな組み合わせが発生するのを回避できます。ここでは、 Linux ソフトウェア コンポーネントをスタンドアロンのままにします。

    # 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

準備したディレクトリ構造は、次のようになります。

tree -L 3 --charset ascii . |-- boot | |-- bl31.elf | |-- system.dtb | `-- u-boot.elf |-- sd_dir | `-- boot.scr |-- sw_comp | |-- environment-setup-cortexa72-cortexa53-xilinx-linux | |-- Image | |-- rootfs.ext4 | |-- site-config-cortexa72-cortexa53-xilinx-linux | |-- sysroots | | |-- cortexa72-cortexa53-xilinx-linux | | `-- x86_64-petalinux-linux | `-- version-cortexa72-cortexa53-xilinx-linux

注記: スクリプトを実行する場合、プラットフォーム作成スクリプト (xsct_create_pfm.tcl) が BIF ファイルのコンポーネントのブート ディレクトリとして <petalinux_project>/images/linux ディレクトリを使用するので、ブート ディレクトリには linux.bif ファイルのみが含まれます。GUI フローを簡単にするため、これらのコンポーネントをブート ディレクトリにコピーしておきます。

プラットフォーム パッケージ

まず、Vivado で生成された XSA ファイルを使用して、Vitis プラットフォーム プロジェクトを作成します。

  1. Vitis を起動します。

    # You are still in step3_pfm directory # Setup Vitis environment source <Vitis_Install_Directory>/settings64.sh # Launch Vitis, using ./platform_repo directory as workspace vitis -workspace ./platform_repo & 
  2. プラットフォーム プロジェクトを作成します。

    • Vitis IDE で [File][New][Platform Project] をクリックして、プラットフォーム プロジェクトを作成します。

    • プロジェクト名を入力します。この例では、vck190_custom と入力して [Next] をクリックします。

    • [Platform] ページで [Browse] ボタンをクリックし、Vivado で生成された XSA ファイルを選択します。この場合、<Your Vivado Project Directory>/vck190_custom.xsa にあります。[Next] をクリックします。

    • オペレーティング システムに [linux] を設定します。

    • プロセッサに [psv_cortexa72] を設定します。

    • [Finish] をクリックします。

    Created Vitis Platform

  3. [Platform Settings] ビューで Linux ドメイン設定を指定します。

    • [linux on psv_cortexa72] ドメインをクリックします。

    • この行の右側にある編集ボタンをクリックして、[Display Name]xrt に更新します。これで、XRT がインストールされ、アクセラレーション アプリケーションを実行できる Linux ドメインであることを示します。

    • [Bif file] の設定: ドロップダウンボタンをクリックして、[Generate BIF] を選択します。BIF ファイルは、bin リソース ディレクトリに生成されます。

    • [Boot Components Directory]: step3_pfm/boot/ を選択し、[OK] をクリックします。Bootgen は、このディレクトリの BIF で参照されるブート コンポーネントを探し、BOOT.BIN を生成します。

    • [Linux Image Directory]: step3_pfm/sd_dir を選択し、[OK] をクリックします。このディレクトリのファイルは、SD カード イメージの FAT32 パーティションにコピーされます。

    注記: [Linux Image Directory] オプションの名前は、Linux の起動に initramfs を使用したときに定義されたものです。この場合、Linux カーネル イメージ、またはカーネル イメージを含む image.ub、rootfs、およびデバイス ツリーが、すべて SD カードの FAT32 パーティションに含まれます。EXT4 rootfs を使用するようにしたので、boot.scr のみを FAT32 パーティションに含める必要があります。Vitis IDE でのこのオプションの表示名は、今後変更される可能性があります。

    注記: [Linux Rootfs][Sysroot Directory] は Linux ドメインの場合はオプションです。これらは、プラットフォームまたはアプリケーションのいずれかで提供できます。これらのコンポーネントは複数のプラットフォーム間で簡単に再利用できるため、アプリケーション作成段階で追加します。

  4. (オプション) Linux ドメイン エミュレーション設定を更新します。

    • Vitis IDE または XSCT は、QEMU 引数と PMC QEMU 引数を、Vitis インストール ディレクトリのデフォルト ファイルに設定します。これらのデフォルト設定を使用すると、QEMU で Linux を正しく起動できるはずです。引数をアップデートする必要がある場合は、引数をローカルにコピーし、その新しいパスを Linux ドメイン コンフィギュレーションで設定できます。

    • QEMU がいくつかのブート コンポーネントを使用する可能性があるため、QEMU Data を step3_pfm/boot ディレクトリに設定します。

  5. AI エンジン ドメインを追加します。

    • [Add domain] アイコンをクリックします。

    Vitis add domain to the platform

    • [Name] を aiengine に設定します。

    • OS を aie_runtime に変更します。

    • ほかの設定をデフォルトのままにして、[OK] をクリックします。

    Vitis add AIE domain

    注記: Vitis IDE と XSCT は AI エンジン ドメイン用の QEMU 引数を自動的に追加します。

  6. Vivado の [Explorer] ビューで vck190_custom プロジェクトを選択し、[Build] ボタンをクリックしてプラットフォームを生成します。

Vitis Build Platform

注記: 生成されたプラットフォームがエクスポート ディレクトリに保存されます。FSBL および PMU を再構築するのに必要な場合は、BSP およびソース ファイルも提供され、プラットフォームと関連付けられます。プラットフォームがアプリケーション開発に使用できるようになりました。

Vitis Platform Output

スクリプトを使用した実行

Vitis プラットフォームをパッケージするスクリプトが提供されています。

これらのスクリプトを使用するには、次の手順を実行します。

  1. ビルドを実行します。

    # cd to the step directory, e.g. cd step3_pfm make 
  2. 生成されたファイルをクリーンアップするには、次を実行します。

    make clean

次に、手順 4 に進んで、このプラットフォーム上でいくつかのアプリケーションをビルドし、テストします。

Copyright© 2021 Xilinx