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

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

3天內不再提示

簡談PCIe的軟件配置方式

FPGA學習交流 ? 2019-07-29 09:26 ? 次閱讀

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

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

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

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

PCIe的配置空間

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

1.png

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

PCIe高級配置機制

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

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

2.png

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

3.png

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

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

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

PCIE配置空間register

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

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

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

    關注

    1620

    文章

    21510

    瀏覽量

    598938
收藏 人收藏

    評論

    相關推薦

    FPGA的片內資源

    FPGA的片內資源
    發(fā)表于 01-08 22:12

    關于dm8168的PRCM使能pcie寄存器區(qū)域,需要PRCM配置打開pcie,為什么配置之后還是不能訪問pcie的寄存器?

    本帖最后由 一只耳朵怪 于 2018-5-25 15:02 編輯 系統(tǒng):dm8168作為ep,啟動方式為spi現(xiàn)在想仿真器訪問8168的pcie寄存器區(qū)域,需要PRCM配置打開pcie
    發(fā)表于 05-25 08:39

    關于PCIE中BAR配置的問題。

    \drv\exampleProjects\PCIE_exampleProject 里面的例子 這個工程可以成功跑起來,并且在PC端通過用WinDriver可以看到設備,但是目前有一個關于例程中BAR配置
    發(fā)表于 06-19 00:50

    PCIE MSI中斷的配置

    小弟學習K1_STK(從官網下的最新的例程keystone軟件開發(fā)包)里面的PCIE(例程),這個是例程里面RC端和EP端用的是MSI中斷。PCIE
    發(fā)表于 06-21 03:49

    PCIe總線的復位方式是什么?

    PCIe總線規(guī)定了兩個復位方式:conventional Reset和FLR(FunctionLevel Reset),而Conventional Reset由進一步分為兩大類:Fundamental Reset和Non-Fundamental Reset。
    發(fā)表于 10-16 08:19

    pcie

    pcie虛擬化技術中,一端pcie的虛擬通道又睡指定,是通過軟件配置
    發(fā)表于 11-11 10:34

    PCIe軟件配置方式

    發(fā)表于 07-06 14:58

    太陽能電池的原理

    太陽能電池的原理       當太陽光照射到太陽電池上時,電池吸收光能,產生光生電子—空穴對。在電池的內
    發(fā)表于 11-13 15:42 ?540次閱讀

    電容傳感器與測控技術

    電容傳感器與測控技術        傳感器作為太陽能熱水器電子控制系統(tǒng)中的感覺器官,承載系統(tǒng)的信息源
    發(fā)表于 11-23 14:32 ?870次閱讀

    PCB設計軟件對比

    大家好,又到了每日學習的時間了,今天咱們來聊一聊PCB設計軟件。 一、原理圖軟件 原理圖設計軟件:會ORCAD就可以了,支持的Netlist超多,基本是業(yè)界標準。 二、PCB Layout
    的頭像 發(fā)表于 06-20 10:41 ?4983次閱讀

    PCIe軟件配置方式

    ? ? ? ?大家好,又到了每日學習的時間了,今天我們來聊一聊PCIe軟件配置方式。? ? ? ?關于PCIe
    的頭像 發(fā)表于 07-27 19:16 ?3577次閱讀
    <b class='flag-5'>簡</b><b class='flag-5'>談</b><b class='flag-5'>PCIe</b>的<b class='flag-5'>軟件</b><b class='flag-5'>配置</b><b class='flag-5'>方式</b>

    PCIe總線的兩種復位方式

    傳統(tǒng)的復位方式分為Cold、Warm和Hot Reset。PCIe設備可以根據(jù)當前的設備的運行狀態(tài)選擇合適的復位方式,PCIe總線提供多種復位方式
    的頭像 發(fā)表于 12-30 09:37 ?2.3w次閱讀

    二維碼(QRcode)的C語言生成,在單片機平臺的實現(xiàn)

    二維碼(QRcode)的C語言生成,在單片機平臺的實現(xiàn)
    發(fā)表于 11-13 20:21 ?18次下載
    <b class='flag-5'>簡</b><b class='flag-5'>談</b>二維碼(QRcode)的C語言生成,在單片機平臺的實現(xiàn)

    FPGA和USB3.0通信-FX3硬件設計

    FPGA和USB3.0通信-FX3硬件設計本次演示用的是USB3.0芯片-CYPRESS CYUSB3014(下稱 FX3),該芯片是標準的USB3.0 PHY,可以大大簡化使用USB...
    發(fā)表于 12-01 20:06 ?24次下載
    FPGA和USB3.0通信-FX3硬件設計<b class='flag-5'>簡</b><b class='flag-5'>談</b>

    圖解PCIE原理(從軟件角度)

    1 PCIE基本概念1.1 PCIE拓撲架構圖1.2 PCIE Switch內部結構圖1.3 PCIE協(xié)議結構圖2 PCIE枚舉原理2.1
    發(fā)表于 12-17 18:29 ?28次下載
    圖解<b class='flag-5'>PCIE</b>原理(從<b class='flag-5'>軟件</b>角度)