91欧美超碰AV自拍|国产成年人性爱视频免费看|亚洲 日韩 欧美一厂二区入|人人看人人爽人人操aV|丝袜美腿视频一区二区在线看|人人操人人爽人人爱|婷婷五月天超碰|97色色欧美亚州A√|另类A√无码精品一级av|欧美特级日韩特级

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

雙Zynq MPSoC PS側(cè)PCIe高速DMA互連解決方案

安富利 ? 來源:安富利 ? 2025-10-22 13:53 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

引言

在涉及Xilinx Zynq UltraScale+ MPSoC的項目中,實現(xiàn)設(shè)備間高速、低延遲的數(shù)據(jù)傳輸往往是核心需求之一。PCIe(尤其PS側(cè))結(jié)合DMA(直接內(nèi)存訪問)正是滿足這類需求的理想技術(shù)方案。

在近期支持的客戶項目中,其核心需求在于:在一款PCB單板上,集成兩顆Zynq MPSoC器件,并利用其PS側(cè)的PCIe控制器,直接構(gòu)建點對點DMA數(shù)據(jù)傳輸鏈路,從而避免引入額外的PCIe交換芯片。為了驗證該方案的可行性并積累經(jīng)驗,我們使用兩塊ZCU102開發(fā)板成功搭建并測試了一個工作Demo。

這篇文章將聚焦這一實戰(zhàn)過程,手把手帶你完成:環(huán)境搭建、硬件配置、驅(qū)動移植、系統(tǒng)編譯到最終的上板測試驗證,目標(biāo)是幫你快速在你的MPSoC項目上實現(xiàn)類似的高速DMA互連!

一、實戰(zhàn)準(zhǔn)備:軟硬件環(huán)境搭建

1.1硬件準(zhǔn)備

開發(fā)板:兩塊Xilinx ZCU102開發(fā)板。

連接線:一根PCIe公對公延長線纜。

角色分配

板卡1:配置為RC(Root Complex)。

板卡2:配置為EP(Endpoint)。

物理連接:將兩塊板的PS側(cè)PCIe插槽通過延長線纜直接相連(如下圖所示)。

af2f8654-a8dd-11f0-8c8f-92fbcf53809c.png

1.2 軟件準(zhǔn)備

軟件版本

Vivado:2021.2(用于硬件設(shè)計和比特流生成)。

PetaLinux:2021.2(用于嵌入式Linux系統(tǒng)構(gòu)建)。

1.3 驅(qū)動準(zhǔn)備

(Xilinx PCIe Root and EndPoint - Xilinx Wiki - Confluence[1])我們需對其進行交叉編譯以生成適用于ARM64架構(gòu)的內(nèi)核模塊(.ko)。

注:

[1]https://xilinx-wiki.atlassian.net/wiki/spaces/A/pages/85983409/Xilinx+PCIe+Root+and+EndPoint(復(fù)制到瀏覽器打開)

af9b7ab2-a8dd-11f0-8c8f-92fbcf53809c.png

二、詳細(xì)實現(xiàn)過程拆解

2.1 硬件設(shè)計(RC端配置-Vivado)

① 創(chuàng)建block design后,添加“Zynq Ultrascale+ MPSoC” IP。

② 運行Block automation,進行基礎(chǔ)配置。

③ 注意將自動生成的“maxihpm0_fpd_aclk”和“maxihpm1_fpd_aclk”與“pl_clk0”連線,否則會導(dǎo)致后面validate不通過。

④ Vivado通常已自動分配管腳,默認(rèn)模式為RC,使用GT Lane 0。在“IO Configuration”的頁面可以看到,PCIE默認(rèn)配置為Gen2 x1,其他GT Lane分別配置給DP/USB3.0/SATA。本實驗使用默認(rèn)配置。

aff95da8-a8dd-11f0-8c8f-92fbcf53809c.png

⑤ PCIE高級配置,勾選“Switch To Advanced Mode”。

確保Class Code值設(shè)置為0x060400(代表PCI-to-PCI Bridge)。如果使用錯誤的類代碼,Linux在枚舉時可能導(dǎo)致BAR分配失??!其余高級配置一般可用默認(rèn)值。

b056ed60-a8dd-11f0-8c8f-92fbcf53809c.png

⑥ 配置完成后,按照“Generate Output Products” ->“Create HDL Wrapper”->“Generate Bitstream”的流程。成功生成比特流后,導(dǎo)出.xsa文件,用于PetaLinux系統(tǒng)構(gòu)建。

2.2 構(gòu)建Linux系統(tǒng)(RC端-Petalinux)

① petalinux工程創(chuàng)建

petalinux-create --type project -s xilinx-zcu102-v2021.2-final.bsp -n zcu102_rc

② 導(dǎo)入硬件描述(.xsa)

petalinux-config -- get-hw-description = (path of zcu102_rc.xsa)

③ 配置Linux內(nèi)核

petalinux-config -c kernel

由于內(nèi)核配置中默認(rèn)開啟了ps PCIe的DMA,為了避免后面安裝外部驅(qū)動時沖突,這里需要去掉Xilinx PS PCIe DMA support的默認(rèn)勾選。

b0c0316c-a8dd-11f0-8c8f-92fbcf53809c.png

④ 編譯工程

petalinux-build

⑤ 打包文件

petalinux-package --boot --fsbl zynqMP_fsbl --u-boot u-boot.elf --force

生成BOOT.BIN、image.ub、boot.scr等關(guān)鍵啟動文件。將上述生成的啟動文件復(fù)制到SD卡的boot分區(qū)。

2.3 編譯移植PS PCIE DMA驅(qū)動(RC端)

① 獲取并修改驅(qū)動源碼:從Xilinx Wiki獲取驅(qū)動源碼。由于官方提供的驅(qū)動源碼是在X86 host上編譯執(zhí)行的,還需要將其修改為可在ARM上執(zhí)行的ko文件,即交叉編譯。

② 修改Makefile,將KERNEL_DIR指定為本地內(nèi)核代碼所在路徑。內(nèi)核路徑示例(請根據(jù)實際路徑修改):

/home/your_user_name/petalinux_pro/peta_2021/zcu102_rc/build/tmp/work/zynqmp_generic-xilinx-linux/linux-xlnx/5.10+gitAUTOINC+568989d441-r0/linux-zynqmp_generic-standard-build。

③ 在驅(qū)動源碼目錄執(zhí)行make命令,成功編譯后會生成ps_PCIe_dma.ko內(nèi)核模塊文件。

④ 將編譯生成的ko文件、apps路徑下的simple_test應(yīng)用文件以及petalinux打包好的Boot.bin、image.ub和boot.scr都拷貝至SD。

2.4 硬件準(zhǔn)備(EP端)

① vivado配置(類似RC,但關(guān)鍵點不同)

a.在IO configuration中明確將PCIe模式設(shè)置為Endpoint。

b.關(guān)鍵修改,將Device ID修改為“0XA808”。此值必須與驅(qū)動源碼中ZYNQMP_DMA_DEVID1定義的預(yù)期設(shè)備ID嚴(yán)格匹配,否則驅(qū)動無法正常運行。

b120e75a-a8dd-11f0-8c8f-92fbcf53809c.png

② 生成并導(dǎo)出硬件設(shè)計。

③ 創(chuàng)建EP端Boot文件,在vitis中:基于導(dǎo)出的.xsa文件新建Vitis平臺工程。創(chuàng)建一個簡單的Hello World應(yīng)用程序工程(僅用于加載運行基本固件)。將其復(fù)制到EP板SD卡。

2.5上板實測

① 上電啟動:

將準(zhǔn)備好的SD卡(含boot文件)分別插入兩塊ZCU102。

兩塊板均設(shè)置為SD卡啟動模式。

連接RC板的串口到主機終端(如PuTTY或minicom)。

② EP枚舉觀察(RC串口輸出):

給兩塊板上電。

在RC板的串口終端中,你應(yīng)該能看到類似XXX:PCI host bridge /PCIe@fd0e0000 ranges:和XXX:PCIe:Link up的日志信息,這表明PCIe鏈路已成功建立并枚舉到EP設(shè)備。

b1856fb8-a8dd-11f0-8c8f-92fbcf53809c.png

③ 加載驅(qū)動(RC端命令):

在RC板的Linux命令行中,進入存放驅(qū)動的目錄。

執(zhí)行:insmod ps_pcie_dma.ko

檢查設(shè)備節(jié)點:成功加載后,/dev/PCIe(例如/dev/ps_pcie_epdma0)等設(shè)備節(jié)點應(yīng)被創(chuàng)建。

b1e30c54-a8dd-11f0-8c8f-92fbcf53809c.png

④ 運行DMA測試程序(RC端命令):

執(zhí)行命令進行傳輸測試(以下僅為示例命令,具體參數(shù)需看程序說明):./simple_test

b23e9736-a8dd-11f0-8c8f-92fbcf53809c.png

⑤ 測試結(jié)果解讀:

程序運行后,終端會打印傳輸?shù)乃俣葦?shù)據(jù)。

在我們的測試中(Gen2 x1鏈路):

RC -> EP(寫入EP內(nèi)存):傳輸4MB數(shù)據(jù),平均速度約為372MB/s。

EP -> RC(寫入RC內(nèi)存):傳輸4MB數(shù)據(jù),平均速度約為378MB/s。

本文詳細(xì)展示了如何利用兩塊Xilinx Zynq UltraScale+ MPSoC ZCU102開發(fā)板,通過配置其PS側(cè)PCIe控制器分別作為RC和EP,最終實現(xiàn)了兩者之間基于DMA驅(qū)動的高速數(shù)據(jù)互傳功能。該方案驗證了在MPSoC設(shè)計中直接利用片上PCIe資源構(gòu)建高速點對點鏈路的可行性。

關(guān)于安富利

安富利是全球領(lǐng)先的技術(shù)分銷商和解決方案提供商,在過去一個多世紀(jì)里一直秉持初心,致力于滿足客戶不斷變化的需求。通過遍布全球的專業(yè)化和區(qū)域化業(yè)務(wù)覆蓋,安富利可在產(chǎn)品生命周期的每個階段為客戶和供應(yīng)商提供支持。安富利能夠幫助各種類型的公司適應(yīng)不斷變化的市場環(huán)境,在產(chǎn)品開發(fā)過程中加快設(shè)計和供應(yīng)速度。安富利在整個技術(shù)價值鏈中處于中心位置,這種獨特的地位和視角讓其成為了值得信賴的合作伙伴,能夠幫助客戶解決復(fù)雜的設(shè)計和供應(yīng)鏈難題,從而更快地實現(xiàn)營收。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 安富利
    +關(guān)注

    關(guān)注

    6

    文章

    510

    瀏覽量

    63681
  • dma
    dma
    +關(guān)注

    關(guān)注

    3

    文章

    581

    瀏覽量

    105912
  • 開發(fā)板
    +關(guān)注

    關(guān)注

    26

    文章

    6288

    瀏覽量

    117978
  • Zynq
    +關(guān)注

    關(guān)注

    10

    文章

    630

    瀏覽量

    49443

原文標(biāo)題:AMD技術(shù)干貨|雙Zynq MPSoC PS側(cè)PCIe高速DMA互連

文章出處:【微信號:AvnetAsia,微信公眾號:安富利】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關(guān)推薦
    熱點推薦

    基于AMD Versal器件實現(xiàn)PCIe5 DMA功能

    Versal是AMD 7nm的SoC高端器件,不僅擁有比16nm性能更強的邏輯性能,并且其PS系統(tǒng)中的CPM PCIe也較上一代MPSoC PS硬核
    的頭像 發(fā)表于 06-19 09:44 ?1822次閱讀
    基于AMD Versal器件實現(xiàn)<b class='flag-5'>PCIe</b>5 <b class='flag-5'>DMA</b>功能

    看門狗在Zynq MPSoC上的使用技巧

    Zynq MPSoC的器件里,PS (Processing System )集成了三個看門狗,分別是CSU SWDT,LPD SWDT和FPD SWDT。
    的頭像 發(fā)表于 06-30 09:47 ?3195次閱讀
    看門狗在<b class='flag-5'>Zynq</b> <b class='flag-5'>MPSoC</b>上的使用技巧

    如何利用ZYNQ MPSoC玩DOOM?

    賽靈思和 DornerWorks 的系統(tǒng)軟件團隊在賽靈思的 Zynq? Ultrascale+? MPSoC 上啟動 Xen Project 管理程序時,我們發(fā)現(xiàn)可通過運行當(dāng)年叱詫一時的流行電子游戲
    發(fā)表于 10-09 06:21

    請問Zynq Ultrascale + MPSOC本身是否存在問題?

    你好我們正在考慮在我們的新設(shè)計中使用Zynq Ultrascale + MPSOC。我們想在我們的電路板設(shè)計中加入HDMI接口。 Zynq Ultrascale + MPSOC
    發(fā)表于 10-14 09:17

    如何調(diào)試Zynq UltraScale+ MPSoC VCU DDR控制器

      如何調(diào)試Zynq UltraScale+ MPSoC VCU DDR控制器  Zynq UltraScale+ MPSoC VCU DDR 控制器是一款專用 DDR 控制器,只支持
    發(fā)表于 01-07 16:02

    ZYNQ Ultrascale+ MPSOC FPGA教程

    ZYNQ Ultrascale+ MPSOC FPGA教程
    發(fā)表于 02-02 07:53

    ZYNQ中不同應(yīng)用的DMA總結(jié)

    不同類型的DMAHigh performance w/DMA幾種DMA的總結(jié)ZYNQ中不同應(yīng)用的DMA幾個常用的 AXI 接口 IP 的功能(上面已經(jīng)提到):AXI-
    發(fā)表于 03-31 11:39

    Ti推出面向Zynq UltraScale+ MPSoC的電源參考設(shè)計

    本篇文章將與大家討論的是Xilinx Zynq UltraScale+ MPSoC的電源解決方案參考設(shè)計。
    發(fā)表于 03-14 02:24 ?4184次閱讀
    Ti推出面向<b class='flag-5'>Zynq</b> UltraScale+ <b class='flag-5'>MPSoC</b>的電源參考設(shè)計

    Zynq UltraScale MPSOC數(shù)據(jù)手冊免費下載

    Zynq UltraScale+? MPSOC系列基于Xilinx UltraScale?MPSOC體系結(jié)構(gòu)。該系列產(chǎn)品在單個設(shè)備中集成了功能豐富的64位四核或核ARM?Cortex
    發(fā)表于 02-21 16:48 ?22次下載
    <b class='flag-5'>Zynq</b> UltraScale <b class='flag-5'>MPSOC</b>數(shù)據(jù)手冊免費下載

    米爾科技Zynq UltraScale+ MPSoC技術(shù)參考手冊介紹

    Zynq UltraScale+ MPSoC是Xilinx推出的第二代多處理SoC系統(tǒng),在第一代Zynq-7000的基礎(chǔ)上做了全面升級,在單芯片上融合了功能強大的處理器系統(tǒng)(PS)和用
    的頭像 發(fā)表于 11-18 11:03 ?4246次閱讀
    米爾科技<b class='flag-5'>Zynq</b> UltraScale+ <b class='flag-5'>MPSoC</b>技術(shù)參考手冊介紹

    FPGA、ZynqZynq MPSoC三種器件的特點介紹

    FPGAs,ZynqZynq MPSoC! Zynq MPSoCZynq-7000 So
    的頭像 發(fā)表于 04-02 17:20 ?1.9w次閱讀
    FPGA、<b class='flag-5'>Zynq</b>和<b class='flag-5'>Zynq</b> <b class='flag-5'>MPSoC</b>三種器件的特點介紹

    FPGAs,ZynqZynq MPSoC器件的特點

    Zynq MPSoCZynq-7000 SoC(之后簡稱Zynq)的進化版本。Zynq是賽靈思發(fā)布的集成PL(FPGA)和
    的頭像 發(fā)表于 08-15 09:16 ?3933次閱讀

    Zynq UltraScale ZU19EG MPSOC評估板

    設(shè)計解決方案、IP 驗證、圖形、視頻、數(shù)據(jù)包處理和早期的軟件開發(fā)。 Xilinx Zynq UltraScale+ ZU19EG-FFVB1517 MPSoC 與其他 Zynq
    發(fā)表于 09-26 11:28 ?7次下載

    AMD MPSoC PS PCIe使用要點

    有客戶需要通過PCie從Windows系統(tǒng)訪問MPSoC的DDR,從而使X86和A53通過共享DDR內(nèi)存的方式交互大量數(shù)據(jù)
    的頭像 發(fā)表于 07-10 16:52 ?2055次閱讀
    AMD <b class='flag-5'>MPSoC</b> <b class='flag-5'>PS</b> <b class='flag-5'>PCIe</b>使用要點

    Amphenol PCIe? Gen 6 Mini Cool Edge IO連接器:下一代高速互連解決方案

    Amphenol PCIe? Gen 6 Mini Cool Edge IO連接器:下一代高速互連解決方案高速
    的頭像 發(fā)表于 12-10 11:10 ?469次閱讀