




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、PCI Express總線基礎及 FPGA設計實戰1. PCI Express 基礎PCIe總線是基于PCI總線發展起來的,很多基本概念都來自于PCI總線,有必要在介紹 PCIe之前了解PCI總線。1.1 PCI基礎pci總線作為處理器系統的局部總線,其主要目的是為了連接外部設備,而不是作為處理器系統的系統總線連接Cache和主存儲器。PCI總線作為系統總線的延伸,其設計考慮了許多與處理器相關的內容,孤立的研究PCI總線并不可取,因此需要將PCI作為存儲器系統的一個 部分來研究。1.1.1幾個重要概念1) PCI總線空間與處理器空間隔離PCI設備具有獨立的地址空間,即PCI總線地址空間,該空間
2、與存儲器地址空間通過HOST主 橋隔離。處理器需要通過HOST主橋才能訪問PCI設備,而PCI設備需要通過HOST主橋 才能方位主存儲器。要注意區分存儲器地址空間和PCI總線地址。在一個處理器系統中,存儲器域、PCI總線域與HOST主橋的關系如下圖。圖2-1存儲器域對PCI總線域的劃分圖中的處理器系統由一個CPU、一個DRAM控制器和兩個 HOST主橋組成。在這個處理器系統屮,包含CPU域、DRAM域、存儲器域和PCI總線域地址空間。其屮HOST主橋x和HOST主橋y分別管理PCI總線x域與PCI總線y域。CPU訪問PCI設備,必須通過 HOST主橋進行地址轉換,而PCI設備訪問存儲器設備,也
3、需要HOST主橋進行地址轉換。HOST主橋的一個重要作用就是將存儲器訪問的存儲器地址轉換成PCI總線地址。CPU域地址空間是指CPU所能直接訪問的地址空間集合。DRAM域地址空間是指 DRAM控制器所能訪問的地址空間集合,又稱為主主存儲器域。存儲器域是CPU域和DRAM域的集合。存儲器域包括 CPU內部的通用寄存器、存儲器 映射尋址的寄存器、主存儲器空間和外部設備空間。在 IMC1的X86處理系統中,外部設備 空間與PCI總線域地址空間等效。因為在X86處理器系統屮,使用PCI總線同一管理全部外部設 備。值得注意的是,存儲器域的外部設備空間,在PCI總線域屮還有一個地址映射。當處理器訪問PCI
4、設備時,首先訪問的是這個設備在存儲器域上的PCI設備空間,之后 HOST主橋將這個存儲器域的PCI總線地址轉換成PCI總線域的物理地址,然后通過PCI總線事務訪問PCI 總線域的地址空間。2)可擴展性PCI總線具有很強的擴展性。在PCI總線中,HOST主橋可以直接推出一條 PCI總線,這條總線也是該HOST主橋管理的第一條 PCI總線,該總線還可以通過 PCI橋擴展一系列PCI 總線,并以HOST主橋作為根節點,形成 1棵PCI總線樹。這些PCI總線都可以連接 PCI設 備,但是一棵PCI設備樹上,最多只能掛接 256個PCI設備(包括PCI橋)。3)動態配置機制PCI設備使用的地址可以根據需
5、要由系統軟件動態分配。PCI總線使用這種方式合理地解決設備間的地址沖突,從而實現了 “即插即用”功能。每一個PCI設備都有獨立的配置空間,在配置空間中包含該設備在PCI總線屮使用的基地址即 BAR地址,從而保證每一個 PCI設備使用的物理地址并不相同。PCI橋的配置空間屮包含有其下 PCI子樹所能使用的地址范圍。X86系統的工作流程是:主板上的 BIOS程序會掃描PCI/PCIE設備,讀取其BAR空間的 大小,動態地為PCI/PCIE設備分配地址空間。在調試過屮發現,假如將BAR空間設置成 2G, x86系統會報no bootable device的錯誤,原因應該是BIOS給PCIE設備分配了
6、 2G的地址空 間,暫用了硬盤的地址空間,導致無法加載操作系統。4)總線帶寬PCI總線與之前的局部總線相比,極大提高了數據傳送帶寬,32位/33MHz的PCI總線可以提供132MB/S的峰值帶寬,而64位/66MHz的PCI總線可以提供的峰值帶寬為532MB/S。雖然PCI總線所能提供的峰值帶寬遠不能和PCIe總線相比,但是與之前的局部總線 ISA、EISA和MCA總線相比,仍然具有極大的優勢。ISA總線的最高主頻為8MHz ,位寬為16,其峰值帶寬為 16 MB/s ; EISA總線的最高主頻 為8.33MHz,位寬為32,其峰值帶寬為 33MB/S ;而MCA總線的最高主頻為10MHz ,
7、最高 位寬為32,其峰值帶寬為40MB/S。PCI總線提供的峰值帶寬遠高于這些總線。 和"PCI總帶庫與負裁之®|的關承6歿奧蟲(MR/.)ft fl fit 力PCI13266i-a tMHpci-x二竺 一12661335332個捕用2665332131I WlW 一5)共享總線機制PCI設備通過仲裁獲得PCI總線的使用權后,才能進行數據傳送,在 PCI總線上進行數據傳送,并不需要處理器進行干預。PCI總線仲裁器不在PCI總線規范定義的范圍內,也不一定是HOST主橋和PCI橋的一部分,雖然絕大多數HOST主橋和PCI橋都包含PCI總線仲裁 器,但是在某些處理器系統設計屮
8、也可以使用獨立的PCI總線仲裁器。PCI設備使用共享總線方式進行數據傳遞,在同一條總線上,所有PCI設備共享同一總線帶寬,這將極大地影響 PCI總線的利用率。這種機制顯然不如 PCIe總線采用的交換結構。6) 中斷機制PCI總線上的設備可以通過四根屮斷請求信號INTAD#向處理器提交中斷請求。與ISA總線上 的設備不同,PCI總線上的設備可以共享這些屮斷請求信號,不同的PCI設備可以將這些中斷請求 信號線與后,與中斷控制器的中斷請求引腳連接。PCI設備的配置空間記錄了該設備使用這四根屮 斷請求信號的信息。PCI總線還進一步提出了 MSI ( Message Signal Interrupt )
9、機制,該機制使用存儲器寫總線事務傳遞屮斷請求,并可以使用x86處理器FSB (Front Side Bus )總線提供的InterruptMessage總線事務,從而提高了 PCI設備的中斷請求效率。1.1.2 PCI總線的組成結構。處埋器內部Cache舸端總線Cachti性槨致 E塊外 SFpC'acbeHOST主橋yHOST主橋kf篇當 "DR巧DRAMPCI總蠅yO1一PCI 總線?_ 1 11 11 設&yO2j I PH橋xlI PC設備01 | | PCH5&O2 |PCIglSA橋KI總線xl| fC設備1PC設備12ISA設備ISA設備2 圖1
10、“堆F PCI總線的處理器系統圖屮與PCI總線相關的模塊包括:HOST主橋、PCI總線、PCI橋和PCI設備。PCI總線是由HOST主橋和PCI橋推出,HOST主橋與主存儲器控制器在同一級總線上,因此PCI設備可以方便通過HOST主橋訪問存儲器,即進行 DMA操作。在一些簡單的處理器系統中,可能 不包含PCI橋,此時所有PCI設備都是連接再 HOST主橋上推出的PCI總線上。在一些處理 器系統屮有可能有多個 HOST主橋,如圖所示處理器系統中含有 HOST主橋x和HOST 主橋y。X86處理器的HOST主橋X86處理器使用南北橋結構連接 CPU和PCI設備。其中北橋連接快速設備,如顯卡和內存條
11、,并推出PCI總線,HOST主橋包含在北橋中。而南橋連接慢速設備。圖2-6廟6處理器的南北橋結構1.2 PCDE總線概述PCI總線使用并行總線結構,在同一條總線上的所有外部設備共享總線帶寬,而PCle總線使用高速查分總線,采用端對端的連接方式,因此在每一條PCle鏈路中只能連接兩個設備。這使得PCle與PCI總線采用的拓撲結構有所不同。PCle總線除了在連接方式上與 PCI總線不同之外,還使用一些在網絡通信中使用的技術,如支持多種數據路由方式,基于多通路的數據傳遞方式,和基于報文的數據傳送方式,并充分考慮在數據傳送中出現的服務質量 QoS (Quality of Service )問題。1.2
12、.1基于PCle的系統結構前期的Intel主板中會集成單獨的南北橋芯片,北橋負責連接速度較快的CPU、主存儲器以及顯卡等元件,南橋負責連接速度較慢的設備,包括硬盤、USB、網卡等。只要CPU讀取主存儲器,還需要北橋的支持,也就是CPU與主存儲器的交流,會占用北橋的帶寬。因此新一代的Intel主板架構,大多將北橋存儲控制器整合到CPU封裝中,CPU直接與主存儲器交互,速度較快。txIGIaresPC3 如f 3JUp to 3 jcFOEwrek主記憶體DWWlUpto 1600 HHi"Up¥$htrT FUpii Stooge To tvMilnjy Mth RAM)1
13、耳VfitoOwUWl.OPurO MKUSfi.Ocrls WaiKATW甘ln*rr Imcgralrd KMion/ioaiHArGx SAlAports, eSATA PortOuMtie即 So r-晞krterW南搞DDR 3/31*ftt*tf 料襯hfeniTion 陽ch*1討 gift CmriKtT«fw«ifogy,Intel* Rlwnrf (bnaecfBA«iifktrkd sunIfcrwicdo4h«er Ht 9,ai-«iTiwtAieonaBiuSSuppcnintjol* £Ttj<ir
14、wlurairK Support基于PCIe總線的Intel處理器架構主存儲器的速度SDRAM/DDR型號數據位寬內部時鐘頻率速度帶寬SDRAMPC 10064100100800MBytes/secSDRAMPO64MBytes/secDDRDDR-266641332662.lGBytes/secDDRDDR-400642004003.2GBytes/secDDRDDR2-900642008006.4GBytes/secDDRDDR3-1600642001600l2.8GBytes/secPCIe總線帶寬規格lx帶寬I6x帶寬PCIe l.0250Mb ytes/se
15、c4GBytes/secPCIe2.0500Mb ytes/sec8GBytes/secPCIe3.0l GBytes/secl6GBytes/secPCIe4.02GBytes/sec32GBytes/secSATA總線帶寬版本帶寬SATAI .0150Mb ytes/secSATA2.0300Mb ytes/secSATA3.0600Mb ytes/secUSB總線帶寬版本帶寬USB1.01.5Mbytes/secUSB2.060Mbytes/secUSB3.0500Mb ytes/secUSB3.11000Mbytes/sec1.2.2端到端的數據傳遞PCI總線不同,PCIe總線采用端到
16、端的連接方式,在一條PCIe鏈路的兩端只能各連接一個 設備,這兩個設備互為數據發送端和數據接收端。發送瑞Daia 1.inker layer d1TX ; RX* tTX RX .IFleet ricalysicl layer m【呂 L 血ket aycr、PC佔總線橇路"TX:RX111TXRXt4I oical圖41 PCk總線的物理鏈路在PCIe總線的物理鏈路的一個數據通路(Lane)中,有兩組查分信號,共4根信號線。其中發送 端的TX部件與接收端的RX部件使用一組差分信號連接,該鏈路也被稱為發送端的發送鏈路,也是接收端的接收鏈路;而發送端的RX部件與接收端 TX部件使用另一
17、組查分信號連接,該鏈路也被稱為發送端的接收鏈路,也是接收端的發送鏈路。一個PCIe鏈路可以由多個數據通路Lane組成,目前PCIe鏈路可以支持1、2、4、8、16 和 32Lane,即 xl、x2、x4、x8、xl6、x32 寬度的 PCIe 鏈路。Uor的峰備帶j1.25-2.S8/lOb境科ZI'11112VI30b 編礎*0"列*1-連填變化時的瀕軋PCIe總線物理鏈路間的數據傳送使用基于時鐘的同步傳送機制,但是在物理鏈路上并沒有時鐘線,PCIE總線的接收端含有時鐘恢復模塊CDR ( Clock Data Recovery) , CDR將從接收報文屮提取接收時鐘,從而進
18、行同步數據傳遞,PCIe設備進行鏈路訓練時將完成時鐘的提取工作。1.2.3 PCIe總線的層次結構PCIe總線采用串行連接方式,并使用數據包(Packet)進行數據傳輸。在PCIe總線中,數據 報文在接收和發送過程中,需要通過多個層次,包括事務層、數據鏈路層和物理層。PCIe總線的層次組成結構與網絡屮的層次結構有類似Z處,但PCIe總線的各個層次都是用硬件邏 輯實現的。在PCIe體系結構屮,根據報文首先在設備的核心層(Device Core)屮產生,然后再經 過該設備的事務層(Transaction Layer)、數據鏈路層(Data Link Layer)和物理 層(Physical Lay
19、er),最終發送出去。而接收端的數據也需要經過物理層、數據鏈路層和 事務層,最終到達核心層。1. 事務層事務層定義了 PCIe總線使用總線事務,其中多數總線事務與PCI總線兼容。這些總線事務可以通過Switch等設備傳送到其他PCIe設備或者RC設備。RC設備也可以使用這些總線事 務訪問PCIe設備。事務層接收來自PCIe設備核心層的數據,并將其封裝成 TLP ( Transaction Layer Packet) 后,發向數據鏈路層。此外事務層還可以從數據鏈路層屮接收數據報文,然后轉發至PCIe設備的核心層。2. 數據鏈路層數據鏈路層保證來自發送端事務層的報文可以可靠、完整地發送到接收端的數
20、據鏈路層。來自事務層的報文在通過數據鏈路層時,被添加Sequence Number前綴和CRC后綴。數據鏈路層使用ACK/NAK協議保證報文的可靠傳遞。PCIe總線的數據鏈路層還定義了多DLLP ( Data Link Layer Packet) , DLLP產生于數據鏈種路層,終止與數據鏈路層。3. 物理層物理層是PCIe的最底層,將PCIe設備連接再一起。PCIe總線的物理電氣特性決定了PCIe鏈路只能使用端到端的連接方式。PCIe總線的物理層為 PCIe設備間的數據通信提供傳送介質,為數據提供可靠的物理環境。1.2.3 PCIe體系結構的組成結構PCIe總線作為處理器系統的局部總線,其作
21、用于PCI總線類似,主要目的是為了連接處理器系統中的外部設備。在大多數處理器系統中,都使用RC Switch和PCIe-to-PCI橋這些基本模塊連接PCIe和PCI設備。在PCIe總線中,基于PCIe總線的設備,也成為EP ( Endpoint )。基于PCIe總線的通用處理器系統如下圖圖4-9基于PO,總線的通用處理器系統圖中所示的結構將 PCIe總線端口、存儲器控制器等一系列與外部設備有關的接口都集 成在一起,并統稱為 RCo RC具有一個或者多個 PCIe端口,可以連接各類 PCIe設備。PCIe 設備包括(網卡、顯卡等設備)、Switch和PCIe橋。PCIe總線采取端到端的連接方式
22、, 每一個PCIe端口只能連接一個EP,當然PCIe端口也 可以連接Switch進行鏈路擴展。通過 Switch擴展出的PCIe鏈路可以繼續掛接 EP或者其它 S witch o2. 基于FPGA的PCIe總線分析2.1硬件系統設計本章將采用xiUnx的FPGA芯片搭建一個 RC端和EP端的硬件平臺,用于仿真學習 PCIe 總線相關的知識包括DMA操作、地址映射等,以及xilinx的AXI Memoy Mapped TO PCI Express、 AXIDMA等IP使用。2.1.1 RC端系統設計RC 端硬件系統由 MicroBlaze 處理器、RC (采用 xilinx 的 AXIMemon
23、y Mapped To PCI Express配置成RC模式)、內存(采用內置BRAM塊)、常用外設包括GPIO、串口。地址分配pcie 地址空間axi_pcie_barOmem 地址空|川axi_mem_00xC000_0000 0xC000_FFFF0x0600_0000-0x0600_FFFF .flIfertfQiQEtl:_WW&4KOMi?5Oi_?IfTL./<n axi.fl3JHJ2ec»4M 匚&i£v加 口1 鼻一 I- = aati.iiLtc.Oa_«JBeC64K*' iSJLUUSVQ*:認乜JXg&am
24、p;a1i"ad pgo:jm c:iCT DOCiE-FYiVe# i> 0伽j© -.血心&<KGf.u./F5T心亨a說:烹-丄綸*t .qjinMX加血嘶一詢沖MXwCxOC Br>fl0 vimMcJJS4Kw-0*4120 ?J?J» aa I J!C 1 ?JJsjinJ:r *工&4XT11皿 sn_pc 1 e_0sNnjzn.Clio3MG-MMK256M>ox59ri_nn«EjiciSet0»4M3_0&00&&*OriDAtJIFIi rz crabluf
25、ijOscaini&»0丿 dlnb Jbrs.:泅PerQxouojmrsRG>rf>Wt.F7F7白)£v F 4負 Q r:=r¥lua Q 二二cal ear兀r/ilnb krwV> LMP 53ForL2SK?T?7MT2.1.2 EP端系統設計EP 端硬件系統由 Micro Blaze 處理器、EP (采用 xilinx 的 AXI Memony Mapped To PCI Express 配置成EP模式)、DMA以及內置BRAM塊。地址分配二-U trijO卜 n anc“.Q huqz.Q一 E Ex cl .de I
26、Adl5r Sogrifiats. S.6QJ;LJ « JaU_2JIM 址 “土.5 :au jMw»_Ui4 r» ssjsciaGL Fid -d 1 AJI1>S8m ayi ova C.y=.-g ui TeteJ?fcj整 W_AI2 C2 nd.L es-s L. Is 4c iu a»iJa-ftjn e ro8013S.il£S AIL5.07/71cnx*S MI UTE環s.AirngS.AIICILCIIXS.QI.LII 目S JJIav£S All LlZfe仏UTTlA£tS Air C
27、ILme加 OSMJJMOO32KSSGCLXW6 tiloxtwojnyGxlKO JjW昭wOxliJJ HJF020-0 MOOaUL<fT2:O0 FF口占09G0JH軸32SOiojn?加世0少e%'*»4:oojnFOilUWW25釧OxlPJJJFJFE2DC0D0O8 AV32XwOiWOGJTJF3ZXOiOWOJFTFQiiOMjWW皿QiiWO ir?F巾 IIXQRW25酬OxlFT? ITTFpcie地址空間 mem地址空間axi_pcie_barOaxi_mem_00x4000_00000x4000_FFFF0x0800_0000-0x080
28、0_FFFF2.2讀寫數據分析2.2.1讀寫MEM數據操作地址為RC端BAR空間存儲器域地址+偏移量例如,往EP端偏移量為0x1000的MEM寫數據,RC端寫地址為 0xC000_000+0xl0000xC000_000為RC端axi_pcie_barO基地址,即EP端PCIe域基地址映射到RC端存儲器地址域 的基地址。將RC端存儲器域地址0xC000_1000,轉換成EP端AXI地址0x0800_1000 ,最終寫入到EP端MEM oRC端存儲器域PCIE總線接口EP端PCIe總線域EP端AXI總線地址域EP CFG BARO=()xFFFF 0000RC_.XIBAR2PCIEBAR_()
29、=()xFFFF_(M)00EP PCIEBAR2AXlBAR()=Ox0800 0000OxCOOO 1000OxFFFF 10000x0000 10000x0800 10002.2.2 DMA 操作DMA在EP端,源地址和目的地址為EP端AXI總線地址RC端存儲器域EP端存儲器域0x06000x06000x06000x06000x0800 10000x0800 20000x0800 00000x0800 3000222讀內存讀內存指將RC端的內存的數據搬移到EP端MEM o數據流圖如下 RC端源地址為0x4000_1000 , RC端存儲器域地址在EP端AXI總線域的映射地址 目標地址為0
30、x0800_2000 , EP端AXI總線域地址EP端AXI總線地址域PCIe總線接口RP端PCIc總線域RP端存儲器域EP_.XlBAR2PCEBAR_0=OxEEEE_0000RP_CFG_BARO=()xEEEE_O()OOEP_PCIEBAR2AXIBAR()=Ox0600_00000x4000_l 0000xEEEE_l 00011 二0x0000_l 0000x0600_l 0002.2.2.2寫內存寫內存將EP端的數據寫入RC端的內存。數據流圖EP端RC端Micro 3kize0.皿1卯甲lu 皿 I r “Bt. .A111 Main-Mb源地址為0x0800_1000 , E
31、P端AXI總線地址目標地址為0x4000_2000 , RC端存儲器域內存地址在 EP端AXI總線地址域的映射地址EP端AXI總線地址域PCIE總線接口RP端PCIE總線域RP端存儲器域EP_AXlBAR2PCIEBAR_0=0xEEEE_000()RP_CFG_BARO=0xEEEE_O00OE P _P C IE B AR 2ARO=Ox0600_()00()0x0600 20000x4000 2000OxEEEE 20000x0000 20003. 設計實戰本章將搭建一個基于 PCIe x4的EP端硬件系統,并在安裝 Windows7的x86電腦上,使 用Win Driver軟件完成驅動
32、開發。3.1 EP端硬件系統搭建地址分配3妬5.4IIc exiJSJLTTjn-ar:5 til5>IILCflI E.-e DdgMaii.Ck L jJ5_airH*S All LLI1-WB.SIL白 U KijriieJs.jirr»jci*J3a m1 > &x: pen QSJLILCILHmCiwRczg閃! .MOD沁0t:391 W?amfirWOD&frcRFF.rHFiILL»23bRLixiiir _jfi?ZOSK-KOD沁*0sB理”理o 疵倔wQaCflOl tftfOw;OW TOD16woxfTFP yw?Ml
33、C710OtflOOtMGO256«仇訂 FF.yfTHWenDQ*為兀一厲誡641*UX-SILJW-Reg0曲妙1JKOOBIX0rr«f)r7F7F RWU)omodgHoo19urfur?Ff?匸口Ox-tooc woo亦樣i-jtITFF TFFFAXI Memony Mapped To PCI Express 參數酉己置1. 將 De vice/Port Type 配置成功 PCI Express Endpoint device2. 將 Lane Width 配置成 x4,將 Link Speed 配置成 5.0GT/S- l«M lH:jhJP_HI
34、F. J-:liJpMgi K& lea.ai RX1LI>U1 MtK K£i &” UH UK. «U AUv<k3<RZ« GJSf U 馳* i站出 Ca KI Uh Ml3 u Mud Lw h»u 詢lihi Ish> «iM ar*i trail taor. fca 七 ac -itJw tfU « d:r : n« »<*l dmi<*Jy ”31*M tUlM «UI 理 MMMb hi 4 j.Lmm BtM 禺UMTa* Ijizm
35、Q-BCai EL«uk 匕a tC laaa *tu a21w>c. 3u“. " twHe Am.X UwU«k 4 "口“5JIH Jhtwrtt aiMi ClV切.o«* x-k L* l*_k 叫iwtH' i枷!IT: re-t-Tjc3. 配置Vendor ID和Device ID,驅動開發時將根據Vendor ID和Device ID來掃描PCIe設備。riFyHI IcflwcfTe KI Kmieii *UL )AfflMMm. & Suu.KCB* JH,Kht.e,<fi n*x«
36、r-n力f.Ua; 4THUM列 界| g二.xti.“rr fit,電1104MWVj W "TttX fr-t _ *! l/l* »ri-.MI: 'hf*r-r*iaiihl.2r5' a«f&rrftriill .皿vra itn A Oml UmS tow«1 uak U.Mi U Ki> WKKU i ' «LiMB »祖X.Uv, L*<4. 配置 BARO 的地址空間為 128K,配置 C_PCIEBAR2AXIBAR_為 0 0x0800.0000Ml forwI
37、4; Pl I I tW«FTw Gt l>*m> Mirm h*H«n 9ATAI ASMlUUOJl (!* "如tH 心 Mu” mm乜:t wbwi ijim ib 0 intf* »»r* Afe. 5 U<4 « Jbwr h J mli U » b« V«m>«i ib hi«7 G« MX-K£ i UU« laraa U.lift S4 I41 Blxt!<Ttt« -t» _£
38、'BUijA-X EM 2 Ftf: ihl !rmMLeiL«. CU£KM&gg4H->3Pi_ wirm2Mm.l3IJUguMt ,.); A I衛誠:n jwlr.b繪=ut.c* ;.<».a# irtzmte till JBIJhnXL”農匚張"_Fuihr? i-;|F>.KIbM丄HUI U!1K* Ul : I 5ff”q4C. m ty :UC-ftCa IU Irwd4 iHffflFfFI5. 配置 C_AXIBAR2PCIEBAR_為 0 OxFFFF_OOOOMlPCI Fivreti (J
39、. 0)U it tra材pMB A 1.LhhAAbah i» ra« nrvuKrm mmratm Mi*<il HdMr: *3 詢九叫n dax.BoK-rj«FH7Il叭«c:.icli_wr f w 5Jf町*P nnxw.w« r.=«.» .«raf 1sU I* Kb機.«mwXa«OriUMfiliS? .g 9a &>) MiOuOMM MB 3. *4"尊 ImaAem“h3lrQ山 gem3.2上板調試記錄1. BARO的地址空間分配過大當
40、將BarO空間配置成2GB時,WINDOWS7的PC機沒有啟動操作系統,報錯no bootable device,原因應該是BIOS需要給BARO分配2G的地址空間,占用了硬盤的地址空間,導致 無法加載操作系統。2. axi_pcie 的 BAR 空間或 C_AXIBAR2PC1EBARO 設置不正確調試時可以使用windriver工具輔助開發,快速獲取 pcie設置的配置寄存器的值以及主機為pcie設備分配的bar空間大小,假設主機為 pcie 設備分配的bar空間為0XF7D000000XF7D1FFFF,總共128KB(注意x86 處理器系統屮存儲器域地址和pcie域地址相等,而arm處
41、理器則不一致)。主機為鎖定的 dma 的物理地址為 OxOOOOOOOOdb361OOO (pDma->pDma->PageO.pPhysicalAddr ),進行 dma 寫內存操作時,源地址為EP 端 bram空間的地址,目標地址位置成主機為鎖定的dma的物理地址,|假設EP端為axi_pcie分配的空間為 0x4000_0000Ox7FFF_FFFF, 0xdb361000 無法順利達到 axi.pcie 的 S_AXI 總線,將 EP端的axi_pcie 的地址空間設置成 0xC000_0000OxFFFF_FFFF時,0xdb361000可以順利達 到 axi_pcie
42、的 S_AXI 總線。但如果C.AXIBAR2PCIEBAR0設置不正確,數據也無法正常返回 PC端。一2r n uu t««r f rm n mi tu: b us am >>i»U«rUUft>Iff MUMl Q ph 2ur tlt#»eMi J詢31S05jn.cu«W1. tJK-in1Z1丿:HUE1 3心 pna.M.id>|i| au.oc3_ixr s化L皿.曲.tfijCrfcM*KLwiil-U-irs- «e.«0tWPi(riiW 6MT »|«
43、;J«MU3 rd Uwl44m MKMW.- Oww-iRi X®m 耳尸 Ji«»4UI>wMH4 T PCI(2. D)L > ZF brcUt Sm tiisMvl r«rta假如EP端的參數配置如下C_AXIBAR_0 = OxCOOO_OOOOC_AXI_HIGHADDR_O = OxFFFF_FFFFC_AXIBAR2PCIEBAR0 = 0x4000_0000axi到pcie地址轉換如下,pcie的最終地址為 Ox5b361OOO ,無法返回PC端。為了獲取正確 的pcie域 地址,需要 將C.AXIBAR2PCEB
44、AR0的 最高2比特設置成全1 ,如C_AXIBAR2PCIEBAR0=0xC000_0000OxFFFF_OOOO 都是可行的。0x4000 0000C AXIBAR2PCIEBAR 0=AXLWADDf0xdb361000C AXIBAR 0=OxCOOO 0000臨時地址0X16361000C_AXI_HIGHADDR_0=v)xrrrrrrrr最終地址Ox5b361OOO3. 調試時發下axi dma每次最大傳輸長度為原16KB-1,假如超過16KB, dma無法工作。因是 Width of Buffer Length Register 配置成了限。14bits , 16KB-l=0x
45、3FFF 剛好達到 buffer 的上 將 Width of Butler Length Regis ter 配置成了17bits 后,dma 可以一次傳輸 64KB 數據。le:wt»tAr.«fr 二礙 Lmmmb羽劃M yeri-Cvrw. P<b* | jiyFT fTF! fiulile ArnciarwuB; flsria 編I蘆!:S« b*. * « Gsthsr EA£4am注血 *iW4 1*1£41 jw:jiTro:工i« .p -LU士 三"朮 rL卜r_«4kc?
46、1;jm 2*4 ijr njo44.JlW.hiF «! I? ' "心&“ IlzdLl CO64J 2?叔 Thsmil|了TzMri5 ChMmlftiabT fti CktlUilaL .*VwiLte hl;tU&r, *$«!» *2山in *; AM©%jit 刑.Em IHUi寧 *Str* >au *litbaa S"護VsNiE=< ihril Stte九e Bpir? iii?lb-£1£m 軽4羊匕話.:AoJa 邊u二:augw-叫 4 張Th 陰幅f
47、ida c! 3u££-«t lia«<h jL«k&b4v *P*Z3> J4bu:i |s23.3 WINDOWS下驅動開發331開發流程WinDriver是Jungo公司提供的一種通用的驅動開發支持軟件,它簡化了用戶的上層驅動開發和應用接口開發,而且易于再封裝,實現商業化應用。該軟件提供了對PCI Express接口設備 的驅動支持,而且也提供了對DMA實現功能的支持。開發流程及使用的函數如下圖所示,使用接口 函數可以分成3大類:WDC庫相關、設備相關以及dma相關。rT設置DMA打開Windriver驅動 并初始化W
48、DC庫獲取PCIe設備關閉PCIe設備關閉Win Driver驅動 以及卸載WDC庫1.WDC庫相關VDC_DriverOpcn()WDC.PcislWDC_PciGe WDC_PciDnDe vices() tDevicelnfoO eviceOpen()WDC_DMAC<WDC_DM>WDC Wri)ntigBufLock()XBufUnlock() teAddr32()fWDC_PciDe vice Close ()fW DC_Drive rC los e ()打開Windriver驅動并初始化 WDC庫DWORD DLLCALLCONV WDC_DriverOpen(WDC_DRV_OPEN_OPTIONS openOptions,constCHAR *sLi
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 山西省晉源區第七小學2025屆三下數學期末學業質量監測試題含解析
- 重慶醫科大學《建筑師職業基礎(含務實與法規)》2023-2024學年第二學期期末試卷
- 山東省聊城莘縣聯考2025屆初三下學期中考試英語試題含答案
- 伊寧縣2025屆五下數學期末調研模擬試題含答案
- 上海市第八中學2025屆中考預測金卷:數學試題(浙江卷)含解析
- 西南科技大學《電視綜藝欄目編導》2023-2024學年第二學期期末試卷
- 接收發展對象大會流程
- 2025數據中心服務器采購與維護工程合同
- 《2025高速數據傳輸接入服務合同》
- 2025設備租賃合同「樣式」
- 國家開放大學畢業生登記表-
- 電腦故障診斷卡說明書
- 企業重組所得稅特殊性處理實務(深圳市稅務局)課件
- 2022年7月2日江蘇省事業單位招聘考試《綜合知識和能力素質》(管理崗客觀題)及答案
- 瓦斯超限事故專項應急預案
- 苗木質量保證措施
- 【公司利潤質量研究國內外文獻綜述3400字】
- 水利工程分部分項劃分表
- 學生班級衛生值日表模板下載
- 責任商業聯盟RBA(CSR)知識培訓
- 放射工作人員培訓考核試題及答案
評論
0/150
提交評論