跳转到主要内容
--## 电子创新网图库均出自电子创新网,版权归属电子创新网,欢迎其他网站、自媒体使用,使用时请注明“图片来自电子创新网图库”,不过本图库图片仅限于网络文章使用,不得用于其他用途,否则我们保留追诉侵权的权利。 ##--

本网站转载的所有的文章、图片、音频视频文件等资料的版权归版权所有人所有,本站采用的非本站原创文章及图片等内容无法一一联系确认版权者。如果本网所选内容的文章作者及编辑认为其作品不宜公开自由传播,或不应无偿使用,请及时通过电子邮件或电话通知我们,以迅速采取适当措施,避免给双方造成不必要的经济损失。
judy 提交于

本文作者:AMD 工程师 Stephenm

本文将讨论如何使用 Lopper 实用工具为目标处理器生成 DTB。

Lopper 概述

Lopper 是一个基于 Python 的框架,用于从系统设备树中抽取系统元数据,例如,处理器地址映射上的处理器和 IP。

目前,Lopper 框架 API 不会通过 AMD Vitis™ 统一软件平台直接向用户公开。相反,Vitis Python API(例如平台、域、系统工程和应用组件创建)使用底层 Lopper 框架 API。Lopper 框架还用于生成 xparameters.h、连接器脚本以及驱动程序和库初始化文件。

Lopper 还可用于从系统设备树 (SDT) 中为目标处理器“剪裁”设备树二进制对象 (DTB)。

系统设备树 (SDT) 概述

系统设备树 (SDT) 是 AMD Vitis Unified 流程中新引入的概念。原先在 Vitis 传统流程中,硬件元数据是根据 Vitis 工具的要求通过“特殊处理”方式使用 HSI API 从 XSA 直接抽取的,例如,抽取处理器用于创建平台或者抽取 IP 用于创建 BSP。

在 Vitis Unified 流程中,我们现在会在生成平台时创建 SDT,并通过 Lopper 实用工具将硬件元数据提供给 Vitis。这与 Linux 中使用的设备树概念类似,但顾名思义,SDT 是一个系统级设备树,包含所有 CPU 集群(及其各自的地址映射)和系统级存储器。典型的 Linux 设备树专用于目标处理器(例如 Cortex A53 #0)的地址映射。

所有组件都派生自 SDT,例如平台、应用、域等。SDT 也将用于创建面向处理器的设备树。它还用于派生系统级元数据,例如地址映射中的 IP 和处理器。

SDT 在 Vitis Unified 中用于描述硬件元数据,但它也可用于为目标处理器“剪裁”DTB。

生成 SDT

SDT 是使用 SDTgen 生成的,它是来自 XSCT 的基于 Tcl 的实用工具:

sdtgen set_dt_param -dir sdt_out -xsa design_1_wrapper.xsa -board_dts versal-vck190-rev1.1 sdtgen generate_sdt

设置 -board_dts 选项来传递 VCK190 评估板的 .dtsi 文件。这样做是因为 XSA 只包含 AMD Vivado™ 设计套件 IP integrator 块设计 (BD) 中 IP 的硬件元数据。

但是,如果想生成能够在 Linux 或 U-Boot 中工作的 DTB,则需要传递 PHY 的板级 DT 节点和 I2C 器件。在 SDTgen 中可以查看开发板列表 :

https://github.com/Xilinx/system-device-tree-xlnx/tree/master/device_tree/data/kernel_dtsi/2024.1/BOARD 

这将把 SDT 文件(.dts 和 .dtsi 文件的集合)生成到 sdt_out 中。现在可以在此 SDT 文件夹上使用 Lopper 来抽取和“剪裁”DTB。

使用 Lopper 获取处理器

要从 SDT 获取处理器列表,请运行以下命令:

source lopper_settings.sh export LOPPER_DTC_FLAGS="-b 0 -@" lopper -f -i ./lopper/lopper/lops/lop-cpulist.dts ./sdt_out/system-top.dts
从 Lopper 为 Cortex A72 # 0 生成 DTB

从 Lopper 为 Cortex A72 # 0 生成 DTB

lopper -f --enhanced -i ./lopper/lopper/lops/lop-a72-imux.dts ./sdt_out/system-top.dts system.dtb -- gen_domain_dts psv_cortexa72_0 linux_dt

为分段流程生成 DTB 和 PL DTBO

lopper -f --enhanced ./sdt_out/system-top.dts ./sdt_out/system.dts  -- xlnx_overlay_dt cortexa72-versal full; \ lopper -f --enhanced -O . -i ./lopper/lopper/lops/lop-a72-imux.dts ./sdt_out/system.dts ./$(SDT_OUT)/system.dtb -- gen_domain_dts psv_cortexa72_0 linux_dt; \ dtc -I dts -O dtb -o ./sdt_out/pl.dtbo pl.dtsi


精彩推荐

2026英伟达GTC大会专题

CES 2026(国际消费类电子产品展览会)专题

第四届南渡江智慧医疗与康复产业高峰论坛

第十五届松山湖中国IC创新高峰论坛

第四届滴水湖中国RISC-V产业论坛

Recent comments

  • 1873774516_516738
  • 2460440665_516737
  • 1457585548_516736
  • 780289498_516735
  • 2283262460_516734