本文將討論如何使用 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文章
20250瀏覽量
252218 -
設備樹
+關注
關注
0文章
45瀏覽量
3572 -
Vitis
+關注
關注
0文章
157瀏覽量
8347
原文標題:開發者分享 | 使用 Lopper 從系統設備樹生成設備樹二進制對象
文章出處:【微信號:gh_2d1c7e2d540e,微信公眾號:XILINX開發者社區】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
如何使用Lopper實用工具為目標處理器生成DTB
評論