本文將從硬件設(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 配置的簡化模式,只是其中兩個(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。第二頁選擇 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 開始。NOC 另一側(cè)可以連接 BRAM 和其他需要的用戶側(cè) PL 邏輯。
由于工具并不會(huì)自動(dòng)拉低 PL 的復(fù)位管腳所以用戶必須寫 XSDB (0xF1260330) 地址來拉低復(fù)位或者把 PL Reset 管腳從 CDO 中直接拉低并且重新生成 PDI。 如果 PL 的復(fù)位在 CIPS 外面,需要自己去控制這個(gè)復(fù)位保證加載完 pdi2 后 PL 可以工作。
生成 pdi 文件后,開始清除原來的驅(qū)動(dòng)和加載新的驅(qū)動(dòng),以下為步驟。
首先可以通過 JTAG 或者 RPOM 的方式,把第一階段的pdi 文件下載進(jìn)去 并且重啟主機(jī)。這個(gè)時(shí)候可以通過 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 去寫 o 0xF1260330,如果 pl_reset 連到了stag2 的邏輯上, 如果沒有這步可以省略。
完成其他測試 ,比如 BD design 后面連了 ddr 或者 bram,可以用 dma_to_device 來測試 PL 是否能正確接收數(shù)據(jù)。
-
amd
+關(guān)注
關(guān)注
25文章
5466瀏覽量
134083 -
控制器
+關(guān)注
關(guān)注
112文章
16332瀏覽量
177800 -
soc
+關(guān)注
關(guān)注
38文章
4161瀏覽量
218152 -
硬件
+關(guān)注
關(guān)注
11文章
3312瀏覽量
66200 -
PCIe
+關(guān)注
關(guān)注
15文章
1234瀏覽量
82575
原文標(biāo)題:開發(fā)者分享|AMD Versal? 自適應(yīng) SoC CPM5 QDMA 的 Tandem PCIe 啟動(dòng)流程介紹
文章出處:【微信號(hào):gh_2d1c7e2d540e,微信公眾號(hào):XILINX開發(fā)者社區(qū)】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論