QEMU の Zynq UltraScale+ MPSoC PS および PMU 引数 - 2023.2 日本語

Vitis 統合ソフトウェア プラットフォームの資料: アプリケーション アクセラレーション開発 (UG1393)

Document ID
UG1393
Release Date
2023-12-13
Version
2023.2 日本語

Zynq UltraScale+ MPSoC PS(a53) は qemu-system-aarch64 で、PMU はqemu-system-microblazeel でエミュレートされます。PS の一般的なコマンド ライン オプションのほとんどは、qemu_args.txt に、PMC コマンド ライン オプションは pmu_args.txt に記述されます。

ヒント: pmc_args.txtqemu_args.txtpmu_args.txt ファイルには、行頭に # 記号を使用してコメントを追加できます。
表 1. qemu_args.txt の Zynq UltraScale+ MPSoC オプション
オプション名 [Value] 説明 コンフィギュレーションのソース 情報の抽出方法
-M arm-generic-fdt 作成する QEMU マシンを指定します。arm-generic-fdt マシン オプションを指定すると、QEMU はマシン生成のために dtb を解析し、-hw-dtb user.dtb で渡します。 スタティック Zynq UltraScale+ MPSoC デバイス用にハード コードされています。
-serial mon:stdio -serial は位置引数です。シリアルポートを指定された char dev (stdio、tcp port、file など) にリダイレクトします。 Zynq UltraScale+ MPSoC の UART コンフィギュレーションに基づきます。

Zynq UltraScale+ MPSoC は UART を 2 つ搭載しています。

UART0 をイネーブルにする場合:
CONFIG.PSU__UART0__PERIPHERAL__ENABLE = 1
CONFIG.PSU__UART1__PERIPHERAL__ENABLE = 0 or 1

次に -serial mon:stdio と指定します。

UART1 のみをイネーブルにする場合:
CONFIG.PSU__UART0__PERIPHERAL__ENABLE = 0 
CONFIG.PSU__UART1__PERIPHERAL__ENABLE = 1

次に -serial null -serial mon:stdio と指定します。

-global xlnx,zynqmp-boot.cpu-num=0 指定した CPU のリセットを解除します。 スタティック Zynq UltraScale+ MPSoC デバイス用にハード コードされています。
-net -net nic -net nic -net nic -net nic -net user

-net は位置引数です。ネットワーク インタフェースの gem3 を初期化します。指定したネットワーク アダプターをユーザー モード ネットワークに接続します。

ヒント: -net none はすべてのイーサネット インターフェイスをディスエーブルにします。
スタティック

イーサネット コンフィギュレーションに基づいた場合:

gem0(eth0) がイネーブルの場合:
CONFIG.PSU__ENET0__PERIPHERAL__ENABLE =1

次に -net nic -net user と指定します。

gem1 がイネーブルの場合:
CONFIG.PSU__ENET1__PERIPHERAL__ENABLE = 1

次に -net nic -net nic -net user と指定します。

gem2 がイネーブルの場合:
CONFIG.PSU__ENET2__PERIPHERAL__ENABLE = 1

次に -net nic -net nic -net nic -net user と指定します。

gem3 がイネーブルの場合:
CONFIG.PSU__ENET3__PERIPHERAL__ENABLE = 1

次に -net nic -net nic -net nic -net nic -net user と指定します。

ヒント: -net (または -netdev のいずれか、もしくは両方とも) が指定されない場合、デフォルトで QEMU は最初のイーサネット (gem0) をイネーブルにし、ユーザー モードのバックエンドにマップします。
-m 4G Zynq UltraScale+ MPSoC で 4 GB DDR をイネーブルにします。 スタティック Zynq UltraScale+ MPSoC で完全な DDR をエミュレートします。
-device loader,file=<bl31.elf>,cpu-num=0 A53 コア 0 に bl31.elf ファイルを読み込みます。 スタティック v++ --packagebl31.elfbl31.elf の絶対パスに置き換える必要があります。
-device loader,file=<u-boot.elf> u-boot.elf. を読み込みます。 スタティック v++ --packagebl31.elfu-boot.elf の絶対パスに置き換える必要があります。
-hw-dtb <ps-dtb-file> QEMU でエミュレートされる PS を記述する dtb ファイルは、-hw-dtb を使用して指定できます。 スタティック

Zynq UltraScale+ MPSoC デバイス用にハード コードされています。

<ps-dtb-file>=/proj/xbuilds/HEAD_daily_latest/installs/lin64/Vitis/HEAD//data/emulation/dtbs/zynqmp/zynqmp-arm-cosim.dtb

表 2. pmu_args.txt の Zynq UltraScale+ MPSoC オプション
オプション名 [Value] 説明 コンフィギュレーションのソース 情報の抽出方法
-M microblaze-fdt 作成する QEMU マシンを指定します。microblaze-fdt は、QEMU に -hw-dtb user.dtb で渡されたマシン生成用の dtb を解析するように指示します。 スタティック Zynq UltraScale+ MPSoC デバイス用にハード コードされています。
-device loader,file=<pmufw.elf> PMU RAM に pmufw.elf ファイルを読み込みます。 スタティック Zynq UltraScale+ MPSoC デバイス用にハード コードされています。
-machine-path <path-to-xsim-dir> -machine-path で共有 RAM とリモート ポート ソケットを作成するフォルダーを指定します。 スタティック launch_emulator コマンドはこのマシン パスを設定します。
-display なし デフォルトでは、QEMU はユーザー I/O のディスプレイを作成します。このオプションは、ディスプレイを無効にします。 スタティック Zynq UltraScale+ MPSoC デバイス用にハード コードされています。
-hw-dtb <pmu-dtb-file> QEMU でエミュレートされる PMU を記述する dtb ファイルは、-hw-dtb を使用して指定できます。 スタティック <pmu-dtb-file>=/proj/xbuilds/HEAD_daily_latest/installs/lin64/Vitis/HEAD//data/emulation/dtbs/zynqmp/zynqmp-pmu.dtb
ヒント: ファイルはここでは pmu_args.txt と記述されていますが、-pmc-args-file コマンドを使用すると、launch_emulator 用に指定されます。