SEM IP 的主要任務(wù)就是掃描 PL Configuration RAM, IP 自身也是在 PL 里面運行。其實 AMD MPSoC 器件同樣可以運行 SEM IP。
但 SEM IP “默認(rèn)”情況下在 MPSoC 上跑不起來,原因是 PCAP 和 ICAP 的控制權(quán)移交問題。ICAP 是 FPGA 控制配置相關(guān)操作的接口,SEM IP 的工作是建立在 ICAP 的基礎(chǔ)上,它必須擁有 ICAP 的訪問權(quán)限才能夠正常工作。PCAP 和 ICAP 類似,它是 PS 訪問配置控制端的接口。ICAP 和 PCAP 不能同時工作,否則會有沖突。在 MPSoC 剛剛 Boot 起來的時候,配置控制權(quán)的接口默認(rèn)分配給了 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’后續(xù)無字符輸出,這是典型的 IP 無法通過 ICAP 訪問控制端的狀態(tài)。此時需要把控制權(quán)從默認(rèn)的 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 就是控制位。其上電默認(rèn)值為 0x1。
打開 XSCT,連接到 ZCU102 的器件 XCZU9。
根據(jù)地址查詢一下 pcap_ctrl 寄存器的值,返回值為 0x1, 說明確實 PCAP 在控制:
xsct% mrd -force 0xffca3008
FFCA3008: 00000001
把 Bit 0 清零:
xsct% mwr -force 0xffca3008 0x0
此時可以看到 Uart 窗口里 ICAP 立即變?yōu)榭梢栽L問的狀態(tài),并繼續(xù)打印出了完整的 Initialization log:
隨意操作一下 IP,根據(jù) IP 的響應(yīng)情況,可以看到其已經(jīng)完全正常開始工作了:
如果 PCB 上有 JTAG 控制接口,那么通過上述方法,直接修改 pcap_ctrl 寄存器就可以了。但是如果 PCB 上沒有 JTAG 口,或者是外場的產(chǎn)品應(yīng)用,我們就要使用 XAPP1298 或者1303的方法,利用 PS 來做控制權(quán)的移交。后續(xù)文檔中我們會解析一下其使用方法并更新一下參考文件。
AMD 自適應(yīng)SOC 及 FPGA中文技術(shù)支持社區(qū)
審核編輯:黃飛
-
amd
+關(guān)注
關(guān)注
25文章
5466瀏覽量
134087 -
寄存器
+關(guān)注
關(guān)注
31文章
5336瀏覽量
120230 -
SEM
+關(guān)注
關(guān)注
0文章
216瀏覽量
14436 -
MPSoC
+關(guān)注
關(guān)注
0文章
198瀏覽量
24271 -
PCAP
+關(guān)注
關(guān)注
0文章
12瀏覽量
12612
原文標(biāo)題:開發(fā)者分享|在 AMD MPSoC 器件中使能 SEM IP (一)
文章出處:【微信號:gh_2d1c7e2d540e,微信公眾號:XILINX開發(fā)者社區(qū)】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
相關(guān)推薦
評論