您將在這篇博客中了解系統設備樹 (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 接口,再與處理器相連。

使用自定義 DTSI 文件把該節點追加到 amba_pl 節點上。這里創建了 axi_gpio_0 節點。
隨后,把該節點添加到 CPU 地址映射中。

然后,將其作為用戶 DTS 文件傳遞給 SDT。
注釋:此處不需要該 Repo。對于此用例,僅需作為用戶 DTS 文件傳入的 DTSI 文件即可。

如果隨后構建或重新生成 BSP,那么會看到在 BSP 中已添加 AXI GPIO 驅動程序。

同樣,如前所述,如果您使用 Versal VCK190 或 AMD Zynq UltraScale+ ZCU102 等開發板,只需將開發板 DTS 文件添加到 SDT 即可實現“板感知”。
注釋:此處不需要該 Repo。對于此用例,僅需開發板 DTS 文件即可。

我們可以看到生成的 SDT 文件集(包括開發板文件),如下所示:

總結
總結而言,我們了解了 XSA 文件中包含哪些元數據,以及 Vitis Unified IDE 如何通過系統設備樹提取并維護這些元數據。
我們還學習了在何處使用 Lopper 實用工具來按需提取這些元數據。最后,我們討論了如何操縱 SDT,以解鎖諸如使用外部 IP 和讓 SDT 具備“板感知”能力等用例。
-
amd
+關注
關注
25文章
5682瀏覽量
139933 -
設備樹
+關注
關注
0文章
45瀏覽量
3572 -
Vitis
+關注
關注
0文章
157瀏覽量
8345
原文標題:開發者分享|在 AMD Vitis? Unified IDE 中釋放系統設備樹 (SDT) 的潛力
文章出處:【微信號:gh_2d1c7e2d540e,微信公眾號:XILINX開發者社區】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
使用AMD Vitis Unified IDE創建HLS組件
如何在AMD Vitis Unified 2024.2中連接到QEMU
Vitis2023.2使用之—— classic Vitis IDE
Vitis2023.2使用之—— updata to Vitis Unified IDE
如何在Vitis HLS GUI中使用庫函數?
在Windows 10上創建并運行AMD Vitis?視覺庫示例
如何在AMD Vitis Unified IDE中使用系統設備樹
評論