SEM IP 的主要任務就是掃描 PL Configuration RAM, IP 自身也是在 PL 里面運行。其實 AMD MPSoC 器件同樣可以運行 SEM IP。
但 SEM IP “默認”情況下在 MPSoC 上跑不起來,原因是 PCAP 和 ICAP 的控制權移交問題。ICAP 是 FPGA 控制配置相關操作的接口,SEM IP 的工作是建立在 ICAP 的基礎上,它必須擁有 ICAP 的訪問權限才能夠正常工作。PCAP 和 ICAP 類似,它是 PS 訪問配置控制端的接口。ICAP 和 PCAP 不能同時工作,否則會有沖突。在 MPSoC 剛剛 Boot 起來的時候,配置控制權的接口默認分配給了 PS 和 PCAP。此時 ICAP 不能訪問,IP 也就無法工作起來。下面兩個文檔,以及本文介紹的簡單指令,都是為了解決這個問題。
https://docs.xilinx.com/v/u/en-US/xapp1303-integrating-sem-ip-with-axi
https://docs.xilinx.com/v/u/en-US/xapp1298-integrating-sem-ip
我們先來看指令解決方法。
如果你在 MPSoC 上運行一個 SEM IP,觀察到的 log 如下(此處以 ZCU102 為例):
IP 在初始化階段就卡住了。從 Uart 口的 log 看 ‘ICAP’后續無字符輸出,這是典型的 IP 無法通過 ICAP 訪問控制端的狀態。此時需要把控制權從默認的 PCAP 切換到 ICAP 去。我們需要利用 pcap_ctrl 這個寄存器。UG1087 對其定義如下:
https://docs.xilinx.com/r/en-US/ug1087-zynq-ultrascale-registers/pcap_rdwr-CSU-Register
地址為 0xffca3008, Bit 0 的 pcap_pr 就是控制位。其上電默認值為 0x1。
打開 XSCT,連接到 ZCU102 的器件 XCZU9。
根據地址查詢一下 pcap_ctrl 寄存器的值,返回值為 0x1, 說明確實 PCAP 在控制:
xsct% mrd -force 0xffca3008
FFCA3008: 00000001
把 Bit 0 清零:
xsct% mwr -force 0xffca3008 0x0
此時可以看到 Uart 窗口里 ICAP 立即變為可以訪問的狀態,并繼續打印出了完整的 Initialization log:
隨意操作一下 IP,根據 IP 的響應情況,可以看到其已經完全正常開始工作了:
如果 PCB 上有 JTAG 控制接口,那么通過上述方法,直接修改 pcap_ctrl 寄存器就可以了。但是如果 PCB 上沒有 JTAG 口,或者是外場的產品應用,我們就要使用 XAPP1298 或者1303的方法,利用 PS 來做控制權的移交。后續文檔中我們會解析一下其使用方法并更新一下參考文件。
AMD 自適應SOC 及 FPGA中文技術支持社區
審核編輯:黃飛
-
amd
+關注
關注
25文章
5564瀏覽量
135889 -
寄存器
+關注
關注
31文章
5421瀏覽量
123350 -
SEM
+關注
關注
0文章
256瀏覽量
14785 -
MPSoC
+關注
關注
0文章
200瀏覽量
24617 -
PCAP
+關注
關注
0文章
12瀏覽量
12706
原文標題:開發者分享|在 AMD MPSoC 器件中使能 SEM IP (一)
文章出處:【微信號:gh_2d1c7e2d540e,微信公眾號:XILINX開發者社區】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
抓取SEM IP的串口log的詳細步驟
參加搜索引擎營銷SEM培訓的好處?
Zynq UltraScale + MPSoC USB 3.0 CDC器件類設計
有什么方法可以使用SEM和CAPTURE原語嗎?
如何調試Zynq UltraScale+ MPSoC VCU DDR控制器
SoC中IP核互連的不同策略
AMD-Xilinx MPSoC的Watchdog在Linux中使用的簡明教程
Zynq UltraScale+ MPSoC中的隔離方法

Zynq UltraScale+ MPSoC中的隔離方法應用筆記

AMD/Xilinx Zynq? UltraScale+ ? MPSoC ZCU102 評估套件

AMD Versal自適應SoC器件Advanced Flow概覽(下)

評論