如何在AMD Vitis Unified IDE中使用系统设备树

描述

本文作者:AMD 工程师 Stephen MacMahon

您将在这篇博客中了解系统设备树 (SDT) 以及如何在 AMD Vitis Unified IDE 中使用 SDT 维护来自 XSA 的硬件元数据。本文还讲述了如何对 SDT 进行操作,以便在 Vitis Unified IDE 中实现更灵活的使用场景。

什么是 XSA,它包含什么

XSA 是在 AMD Vivado 设计套件中根据 Vivado IP integrator 使用的块设计 (BD) 而生成的容器文件。 

这意味着只有 BD 中包含的 IP 才会出现在 XSA 中。如果用户拥有 BD 外部的 IP,或者举例来说,如果使用 Chip2Chip 解决方案,那么在创建 XSA 时将使用主 BD。 

系统设备树 (SDT)

如果用户不了解 SDT,我们可以在此快速回顾一下。SDT 是 Vitis Unified IDE 2023.2 版本中引入的一个新概念。 

SDT 是使用 SDTGEN 实用工具创建的 .dts/.dtsi 文件集合,而平台组件则是使用从 Vivado 导出的 XSA 生成。

系统设备树 (SDT) 采用与 Linux 领域使用的设备树相同的概念。然而,Linux 中使用的设备树是针对特定目标处理器的,并且只包含与目标处理器的存储器映射上的 IP 对应的节点。顾名思义,系统设备树具有系统感知能力。这意味着所有 CPU 集群以及每个处理器的地址映射都包含在系统设备树中。SDT 还包含所有顶层存储器节点。虽然可以从 SDT 中提取目标处理器的设备树二进制对象 (DTB),但这并非 Vitis 中 SDT 的设计用途。在 Vitis 中,SDT 单纯用于维护硬件元数据。

如何在 Vitis 中使用 SDT?

当需要硬件元数据时,Vitis 就会使用 SDT。 其中包括创建 xparameters.h 文件、动态生成驱动程序配置文件、获取目标处理器上的驱动程序列表、生成连接器脚本以及创建 BSP。

这些流程都使用基于 Python 的 Lopper 实用工具来读取 SDT,并提取执行任务所需的特定元数据。

用户如何释放系统设备树的潜力

如上所述,Lopper 的用例之一即返回目标处理器上的驱动程序列表。这意味着如果您拥有 BD 外部的 IP,系统设备树不会自动填充该元数据。然而,您可以通过操纵 SDT 文件集来包含此元数据。 

如上所述,XSA 只能识别 Vivado IP integrator 的块设计内的 IP。这意味着如果您使用诸如 AMD Versal 自适应 SoC VCK190 或 AMD Zynq UltraScale+ ZCU111 等开发板,那么板级信息(例如 PHY 或 I2C 总线上的时钟)将会丢失。

在系统设备树中,您可以通过传入 SDTGEN 提供的板级 .dtsi 文件,使 SDT 具备“板感知”能力。 

在 Vitis Unified IDE 中为 SDT 添加外部 IP

在 Vitis 2024.1 中,您在创建平台组件时可以使用一个高级选项来释放 SDT 的潜力。

例如,这里有一个外部 IP (axi_gpio),通过外部 AXI 接口连接到 LPD CIPS 接口,再与处理器相连。

Vitis

使用自定义 DTSI 文件把该节点追加到 amba_pl 节点上。这里创建了 axi_gpio_0 节点。

随后,把该节点添加到 CPU 地址映射中。

Vitis

然后,将其作为用户 DTS 文件传递给 SDT。

注释:此处不需要该 Repo。对于此用例,仅需作为用户 DTS 文件传入的 DTSI 文件即可。

Vitis

如果随后构建或重新生成 BSP,那么会看到在 BSP 中已添加 AXI GPIO 驱动程序。

Vitis

同样,如前所述,如果您使用 Versal VCK190 或 AMD Zynq UltraScale+ ZCU102 等开发板,只需将开发板 DTS 文件添加到 SDT 即可实现“板感知”。

注释:此处不需要该 Repo。对于此用例,仅需开发板 DTS 文件即可。

Vitis

我们可以看到生成的 SDT 文件集(包括开发板文件),如下所示:

Vitis

总结

总结而言,我们了解了 XSA 文件中包含哪些元数据,以及 Vitis Unified IDE 如何通过系统设备树提取并维护这些元数据。

我们还学习了在何处使用 Lopper 实用工具来按需提取这些元数据。最后,我们讨论了如何操纵 SDT,以解锁诸如使用外部 IP 和让 SDT 具备“板感知”能力等用例。

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分