适用于 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 进行仿真。在 qemu_args.txt 中捕获大部分常用的 PS 命令行开关,在 pmu_args.txt 中捕获 PMC 命令行开关。

提示:pmc_args.txtqemu_args.txtpmu_args.txt 文件中,您可在行首使用“#”符号来添加注释。
表 1. 适用于 qemu_args.txt 的 Zynq UltraScale+ MPSoC 选项
开关名称 描述 配置源 如何提取信息
-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 具有 2 个 UART。

启用 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

如果启用 gem 3:
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++ --package 应将 bl31.elf 替换为 bl31.elf 的绝对路径
-device loader,file=<u-boot.elf> 加载 u-boot.elf. 静态 v++ --package 应将 bl31.elf 替换为 u-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 选项
开关名称 描述 配置源 如何提取信息
-M microblaze-fdt 用于指定要创建的 QEMU 机器。microblaze-fdt 会告知 QEMU 解析 dtb 用于机器生成,由 -hw-dtb user.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 创建 display。该选项用于禁用 display。 静态 对于 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 指定的。