本文將討論如何使用 Lopper 實(shí)用工具為目標(biāo)處理器生成 DTB。
Lopper 概述
Lopper 是一個(gè)基于 Python 的框架,用于從系統(tǒng)設(shè)備樹中抽取系統(tǒng)元數(shù)據(jù),例如,處理器地址映射上的處理器和 IP。
目前,Lopper 框架 API 不會(huì)通過 AMD Vitis統(tǒng)一軟件平臺(tái)直接向用戶公開。相反,Vitis Python API(例如平臺(tái)、域、系統(tǒng)工程和應(yīng)用組件創(chuàng)建)使用底層 Lopper 框架 API。Lopper 框架還用于生成 xparameters.h、連接器腳本以及驅(qū)動(dòng)程序和庫初始化文件。
Lopper 還可用于從系統(tǒng)設(shè)備樹 (SDT) 中為目標(biāo)處理器“剪裁”設(shè)備樹二進(jìn)制對(duì)象 (DTB)。
系統(tǒng)設(shè)備樹 (SDT) 概述
系統(tǒng)設(shè)備樹 (SDT) 是 AMD Vitis Unified 流程中新引入的概念。原先在 Vitis 傳統(tǒng)流程中,硬件元數(shù)據(jù)是根據(jù) Vitis 工具的要求通過“特殊處理”方式使用 HSI API 從 XSA 直接抽取的,例如,抽取處理器用于創(chuàng)建平臺(tái)或者抽取 IP 用于創(chuàng)建 BSP。
在 Vitis Unified 流程中,我們現(xiàn)在會(huì)在生成平臺(tái)時(shí)創(chuàng)建 SDT,并通過 Lopper 實(shí)用工具將硬件元數(shù)據(jù)提供給 Vitis。這與 Linux 中使用的設(shè)備樹概念類似,但顧名思義,SDT 是一個(gè)系統(tǒng)級(jí)設(shè)備樹,包含所有 CPU 集群(及其各自的地址映射)和系統(tǒng)級(jí)存儲(chǔ)器。典型的 Linux 設(shè)備樹專用于目標(biāo)處理器(例如 Cortex A53 #0)的地址映射。
所有組件都派生自 SDT,例如平臺(tái)、應(yīng)用、域等。SDT 也將用于創(chuàng)建面向處理器的設(shè)備樹。它還用于派生系統(tǒng)級(jí)元數(shù)據(jù),例如地址映射中的 IP 和處理器。
SDT 在 Vitis Unified 中用于描述硬件元數(shù)據(jù),但它也可用于為目標(biāo)處理器“剪裁”DTB。
生成 SDT
SDT 是使用 SDTgen 生成的,它是來自 XSCT 的基于 Tcl 的實(shí)用工具:
sdtgen set_dt_param -dir sdt_out -xsa design_1_wrapper.xsa -board_dts versal-vck190-rev1.1 sdtgen generate_sdt
設(shè)置 -board_dts 選項(xiàng)來傳遞 VCK190 評(píng)估板的 .dtsi 文件。這樣做是因?yàn)?XSA 只包含 AMD Vivado設(shè)計(jì)套件 IP integrator 塊設(shè)計(jì) (BD) 中 IP 的硬件元數(shù)據(jù)。
但是,如果想生成能夠在 Linux 或 U-Boot 中工作的 DTB,則需要傳遞 PHY 的板級(jí) DT 節(jié)點(diǎn)和 I2C 器件。在 SDTgen 中可以查看開發(fā)板列表 :
https://github.com/Xilinx/system-device-tree-xlnx/tree/master/device_tree/data/kernel_dtsi/2024.1/BOARD
這將把 SDT 文件(.dts 和 .dtsi 文件的集合)生成到 sdt_out 中。現(xiàn)在可以在此 SDT 文件夾上使用 Lopper 來抽取和“剪裁”DTB。
使用 Lopper 獲取處理器
要從 SDT 獲取處理器列表,請(qǐng)運(yùn)行以下命令:
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
-
處理器
+關(guān)注
關(guān)注
68文章
20248瀏覽量
252143 -
設(shè)備樹
+關(guān)注
關(guān)注
0文章
45瀏覽量
3572 -
Vitis
+關(guān)注
關(guān)注
0文章
157瀏覽量
8340
原文標(biāo)題:開發(fā)者分享 | 使用 Lopper 從系統(tǒng)設(shè)備樹生成設(shè)備樹二進(jìn)制對(duì)象
文章出處:【微信號(hào):gh_2d1c7e2d540e,微信公眾號(hào):XILINX開發(fā)者社區(qū)】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
matlab的實(shí)用工具命令
申請(qǐng)實(shí)用工具軟件版主!【申請(qǐng)通過】
LabVIEW實(shí)用工具***寶典課件
LabVIEW實(shí)用工具詳解簡版.pdf
調(diào)整線條寬度的實(shí)用工具
uartassist串口調(diào)試助手_實(shí)用工具
電阻色環(huán)的識(shí)別實(shí)用工具應(yīng)用程序免費(fèi)下載
windows啟動(dòng)修復(fù)實(shí)用工具免費(fèi)下載
LLC計(jì)算的實(shí)用工具應(yīng)用程序免費(fèi)下載
頻率電感電容計(jì)算的實(shí)用工具免費(fèi)下載
如何使用Lopper實(shí)用工具為目標(biāo)處理器生成DTB
評(píng)論