<acronym id="s8ci2"><small id="s8ci2"></small></acronym>
<rt id="s8ci2"></rt><rt id="s8ci2"><optgroup id="s8ci2"></optgroup></rt>
<acronym id="s8ci2"></acronym>
<acronym id="s8ci2"><center id="s8ci2"></center></acronym>
0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

簡談PCIe的軟件配置方式

FPGA學習交流 ? 2018-07-27 19:16 ? 次閱讀

大家好,又到了每日學習的時間了,今天我們來聊一聊PCIe的軟件配置方式。

關于PCIe的軟件配置和初始化

PCIe設計出來考慮了和pci兼容問題。所以PCIe的軟件配置方式可以沿用PCI的配置方式。當然,由于特殊性,也有自身獨特的配置方式。所以PCIe模塊的訪問方式有如下兩種:
1、 PCI 兼容的配置方式。
2、 PCI Express enhanced 配置機制。

PCI兼容方式是在PCI章節已經提過,PCIe與其完全兼容。這里主要描述PCIE高級配置機制。

PCIe的配置空間

PCIe的配置空間是兼容PCI的,但是在PCI的基礎上增加了不少register。從256增加到4Kbytes的大小。如下圖所示,PCIe的配置空間。

134606xdnsfah77dfs5f6l.png



其中,PCIe的配置空可以分成PCI兼容部分和擴展部分。PCI兼容部分在前面256byte區域,完全可以使用PCI配置機制來訪問。而擴展部分的register,使用PCI配置方式無法實現,則可以通過PCIe 高級配置方式完成。

PCIe高級配置機制

PCIe enhanced configuration mechanism的主要原理是將pcie的所有4K bytes 映射到memory地址上,這樣,通過訪問memory的方式即可讀寫PCIE的配置空間。當然,通過此方式讀memory時候,最好考慮到4字節對齊的問題,否則有可能出錯。

在正常的訪問過程中,可以訪問這一部分的memory來配置pcie,而這部分memory在哪里呢?芯片組中會定義一個base address,而base address開始的256MB的空間內則是總線上所有PCIe設備的配置空間對應的register。

134606orlmsr5trsrxzrsq.png


上圖是PCIE總線高級配置結構圖,很明顯可以看出是PCIE配置空間映射的memory空間為[XbaseAddress +0 àXbaseAddress +FFFFFFFh]。那么實際的地址線如何對應呢?如下圖所示:

134607rx76keoxqbji84xu.png


在程序中的表達和操作是這樣的:

1、計算出PCIe設備配置空間中寄存器的地址:Register address = PCIe_Base + (BusNO * 1MB) + (DeviceNO * 32KB) + (FuncNO* 4KB) + (Reg).

2、使用memory 讀寫周期完成register的讀寫。

PCIE配置空間register

詳細的register解讀,請閱讀PCIe spec或者參考一份X86架構的芯片組datasheet。

今天就聊到這里,各位,加油。


聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
收藏 人收藏

    評論

    相關推薦

    Xilinx Zynq-7000嵌入式系統設計與實現

    今天給大俠帶來Xilinx Zynq-7000嵌入式系統設計與實現,話不多說,上貨。 Xilinx的ZYNQ系列FPGA是二種看上去對立面的思想的融合,ARM處理器的串行執行+FPGA
    發表于 05-08 16:23

    Xilinx Zynq-7000嵌入式系統設計與實現

    今天給大俠帶來Xilinx Zynq-7000嵌入式系統設計與實現,話不多說,上貨。 Xilinx的ZYNQ系列FPGA是二種看上去對立面的思想的融合,ARM處理器的串行執行+FPGA
    發表于 04-10 16:00

    8路SDI/HDMI/MIPI/PCIe-DMA音視頻采集,V4L2驅動應用介紹

    、個數、大?。?b class='flag-5'>軟件可配置11.8個視頻顯示隊列參數(隊列元素的地址、個數、大?。?b class='flag-5'>軟件可配置12.支持超帶寬視頻采集和超帶寬視頻顯示13.支持MSI中斷,16個DMA中斷和16個User
    發表于 03-13 13:59

    PCIe可以添加哪些定位手段?PCIe需要的debug設計

    如圖所示,PCIe IP作為endpoint與RC對接,用戶實現了應用邏輯,與PCIe IP進行交互,交互信號中data格式為TLP報文格式,且交互信號包含相應的控制信號,例如PCIe配置
    的頭像 發表于 02-26 18:19 ?955次閱讀

    FPGA的片內資源

    FPGA的片內資源
    發表于 01-08 22:12

    AD采集卡設計原理圖:630-基于PCIe的高速模擬AD采集卡

    =94%] [tr][td] 三、應用軟件 2路AD采集PCIe傳輸(453 + 536) 軟件實現FPGA邏輯 AD采集,PCIe XDMA傳輸,寄存器
    發表于 12-11 11:36

    體驗紫光PCIE之使用WinDriver驅動紫光PCIE

    不同系列的PCIE IP并不通用,不同的系列都需要安裝不同的PCIE IP包。 (3)參數配置,PCIE 的gen1是2.5GT/s,gen2是5GT/s,芯片集成的是gen2的硬核,
    發表于 11-17 14:35

    Banana Pi BPI-W3 RK3588平臺驅動調試篇 [ PCIE篇一 ] - PCIE的開發指南

    RK3588共有5個PCIe的控制器,硬件IP是?樣的,配置不?樣,其中?個4Lane DM模式可以?持作為EP使?,另外?個2Lane和3個1Lane控制器均只能作為RC使?。RK3588有兩種
    的頭像 發表于 11-02 09:22 ?692次閱讀
    Banana Pi BPI-W3 RK3588平臺驅動調試篇 [ <b class='flag-5'>PCIE</b>篇一 ] - <b class='flag-5'>PCIE</b>的開發指南

    STM32使用GPIO配置的5種方式

    STM32使用GPIO配置的5種方式 STM32是常見的一種微控制器,其GPIO模塊可以實現對外部設備的控制和數據傳輸,包括數字I/O口、模擬輸入口和輸出口等。在STM32中,GPIO模塊的配置可以
    的頭像 發表于 10-26 17:42 ?853次閱讀

    PCIe相關問題解答

    CPU 發起的,訪問PCIe設備配置空間的數據流。這種數據流主要是BIOS/Linux PCIe driver 對設備進行初始化、資源分配時,讀寫配置空間的。包括
    的頭像 發表于 09-15 09:39 ?1041次閱讀
    <b class='flag-5'>PCIe</b>相關問題解答

    訪問PCI/PCIe設備的流程

    訪問 PCI/PCIe 設備的流程 PCI/PCIe 設備的配置信息 PCI/PCIe 設備上有配置空間(
    的頭像 發表于 07-30 09:44 ?1099次閱讀

    9FGV1005 PhiClock PCIe Timing Commander 軟件 用戶指南

    9FGV1005 PhiClock PCIe Timing Commander 軟件 用戶指南
    發表于 07-07 19:27 ?0次下載
    9FGV1005 PhiClock <b class='flag-5'>PCIe</b> Timing Commander <b class='flag-5'>軟件</b> 用戶指南

    什么是PCIe?

    PCIe是一種高速串行計算機擴展總線標準,自2003年推出以來,已經成為服務器(Server)和PC上的重要接口。今天為大家簡單介紹一下PCIe的發展歷史以及它的工作原理。 一、PCIe的由來
    的頭像 發表于 07-04 18:15 ?1.3w次閱讀

    如何讀寫PCIe?

    我是一名PCIe新手,想了解以下問題: 1、如何測試PCIe? 2、如何讀寫PCIe(兩塊開發板通過PCIe線互連,分別配置為RC和EP)?
    發表于 06-12 06:05

    PCIe系統復位方式

    PCIe Spec中,Reset總共分為兩類:Conventional Reset和Function Level Reset.
    的頭像 發表于 06-05 17:30 ?2838次閱讀
    <b class='flag-5'>PCIe</b>系統復位<b class='flag-5'>方式</b>
    亚洲欧美日韩精品久久_久久精品AⅤ无码中文_日本中文字幕有码在线播放_亚洲视频高清不卡在线观看
    <acronym id="s8ci2"><small id="s8ci2"></small></acronym>
    <rt id="s8ci2"></rt><rt id="s8ci2"><optgroup id="s8ci2"></optgroup></rt>
    <acronym id="s8ci2"></acronym>
    <acronym id="s8ci2"><center id="s8ci2"></center></acronym>