本文将讨论如何使用 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 -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
-
处理器
+关注
关注
68文章
20381浏览量
255629 -
设备树
+关注
关注
0文章
45浏览量
3611 -
Vitis
+关注
关注
0文章
160浏览量
8443
原文标题:开发者分享 | 使用 Lopper 从系统设备树生成设备树二进制对象
文章出处:【微信号:gh_2d1c7e2d540e,微信公众号:XILINX开发者社区】欢迎添加关注!文章转载请注明出处。
发布评论请先 登录
如何使用Lopper实用工具为目标处理器生成DTB
评论