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