本文將從硬件設(shè)計(jì)和驅(qū)動(dòng)使用兩個(gè)方面介紹基于 CPM5 QDMA 的 AMD Versal 自適應(yīng) SoC 的 Tandem 設(shè)計(jì)和啟動(dòng)流程。
Versal QDMA 的兩個(gè) PCIe 控制器都支持不同方式的 Tandem (Tandem PROM ? Tandem PCIe)。和其他系列的 Tandem 選項(xiàng)一樣,Tandem PROM 是 Tandem 配置的簡(jiǎn)化模式,只是其中兩個(gè)階段都包含在同一個(gè) pdi 里面,用戶可以把這個(gè) pdi 文件存到 PROM 中,系統(tǒng)會(huì)先配置 CPM 然后再去配置其他部分這樣就能比較容易的滿足120ms 啟動(dòng)時(shí)間的要求。
而 Tandem PCIe 則更為復(fù)雜,它第二部分的加載基于 PCIe 鏈路,在 BD 設(shè)計(jì)中必須包含從 CPM MASTER 到 PMC Slave 的路徑。而在 PMC 中需要使用特定的加載到的接口 Slave Boot Interface(SBI),其位于 AMD Versal設(shè)備地址 0x102100000。
Tandem PCIe 的軟硬件流程
首先在 CPM 生成界面選擇 DMA,把 Tandem mode 選擇為 Tandem PCIE。第二頁(yè)選擇 QDMA,其他都可以用默認(rèn)選項(xiàng)。
CIPS 的 PCIE Reset 復(fù)位選擇和板上一致。
按照下圖連接 BD,需要連上復(fù)位 sys_reset ,連接 NOC, 并且把 CPM 的 Master 和 PMC 的 Slave 連上, 按照下圖把地址分配到 0x102100000 (slave boot stream), 這樣 QDMA 的傳輸目標(biāo)地址就設(shè)置為從 0x102100000 開(kāi)始。NOC 另一側(cè)可以連接 BRAM 和其他需要的用戶側(cè) PL 邏輯。
由于工具并不會(huì)自動(dòng)拉低 PL 的復(fù)位管腳所以用戶必須寫(xiě) XSDB (0xF1260330) 地址來(lái)拉低復(fù)位或者把 PL Reset 管腳從 CDO 中直接拉低并且重新生成 PDI。 如果 PL 的復(fù)位在 CIPS 外面,需要自己去控制這個(gè)復(fù)位保證加載完 pdi2 后 PL 可以工作。
生成 pdi 文件后,開(kāi)始清除原來(lái)的驅(qū)動(dòng)和加載新的驅(qū)動(dòng),以下為步驟。
首先可以通過(guò) JTAG 或者 RPOM 的方式,把第一階段的pdi 文件下載進(jìn)去 并且重啟主機(jī)。這個(gè)時(shí)候可以通過(guò) lspci 看到 AMD Xilinx 的 bdf。然后準(zhǔn)備好驅(qū)動(dòng)和應(yīng)用程序并運(yùn)行以下程序。
獲取最新的驅(qū)動(dòng)程序, 驅(qū)動(dòng)可以從網(wǎng)站下載:
https://github.com/Xilinx/dma_ip_drivers/tree/master/QDMA
從內(nèi)核中刪除舊模塊(僅在必要時(shí))。 $> rmmod qdma-pf
編譯驅(qū)動(dòng)程序和應(yīng)用程序。 $> make -DTANDEM_BOOT_SUPPORTED
安裝(復(fù)制)驅(qū)動(dòng)程序和應(yīng)用程序到標(biāo)準(zhǔn)位置。$> make install
載入內(nèi)核模塊。#> modprobe qdma-pf
產(chǎn)生 H2C 的隊(duì)列。 $> dma-ctl qdma10000 q add idx 0 dir h2c mode mm
啟動(dòng)一個(gè)隊(duì)列, aperture size 是4k $> dma-ctl qdma10000 q start idx 0 dir h2c aperture_size 4096
傳輸 pdi2,這里的大小和名字需要按照實(shí)際情況修改:
$> dma-ctl qdma10000_MM_0-f design_wrapper.pdi -s 1384992 -a 0x102100000
卸載驅(qū)動(dòng)沖 i 性能加載驅(qū)動(dòng)重復(fù)2-5。
用 xsdb 去寫(xiě) o 0xF1260330,如果 pl_reset 連到了stag2 的邏輯上, 如果沒(méi)有這步可以省略。
完成其他測(cè)試 ,比如 BD design 后面連了 ddr 或者 bram,可以用 dma_to_device 來(lái)測(cè)試 PL 是否能正確接收數(shù)據(jù)。
-
amd
+關(guān)注
關(guān)注
25文章
5537瀏覽量
135502 -
控制器
+關(guān)注
關(guān)注
113文章
16811瀏覽量
182027 -
soc
+關(guān)注
關(guān)注
38文章
4289瀏覽量
220924 -
硬件
+關(guān)注
關(guān)注
11文章
3444瀏覽量
66976 -
PCIe
+關(guān)注
關(guān)注
16文章
1296瀏覽量
84306
原文標(biāo)題:開(kāi)發(fā)者分享|AMD Versal? 自適應(yīng) SoC CPM5 QDMA 的 Tandem PCIe 啟動(dòng)流程介紹
文章出處:【微信號(hào):gh_2d1c7e2d540e,微信公眾號(hào):XILINX開(kāi)發(fā)者社區(qū)】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
【ALINX 技術(shù)分享】AMD Versal AI Edge 自適應(yīng)計(jì)算加速平臺(tái)之準(zhǔn)備工作(1)

【ALINX 技術(shù)分享】AMD Versal AI Edge 自適應(yīng)計(jì)算加速平臺(tái)之 Versal 介紹(2)

Versal CPM AXI Bridge模式的地址轉(zhuǎn)換

Versal自適應(yīng)SoC系統(tǒng)和解決方案規(guī)劃方法指南

Versal 自適應(yīng)SoC設(shè)計(jì)指南

Versal自適應(yīng)SoC硬件、IP和平臺(tái)開(kāi)發(fā)方法指南

Versal自適應(yīng)SoC系統(tǒng)集成和 確認(rèn)方法指南

AMD率先推出符合DisplayPort? 2.1 8K視頻標(biāo)準(zhǔn)的FPGA和自適應(yīng)SoC
AMD發(fā)布第二代Versal自適應(yīng)SoC,AI嵌入式領(lǐng)域再提速
AMD Versal? Adaptive SoC CPM PCIE PIO EP設(shè)計(jì)CED示例

第二代AMD Versal Prime系列自適應(yīng)SoC的亮點(diǎn)

AMD推出第二代Versal Premium系列
AMD Versal自適應(yīng)SoC DDRMC如何使用Micron仿真模型進(jìn)行仿真

AMD Versal自適應(yīng)SoC器件Advanced Flow概覽(上)

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

評(píng)論