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

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

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

簡(jiǎn)談PCIe的軟件配置方式

FPGA學(xué)習(xí)交流 ? 2018-07-27 19:16 ? 次閱讀

大家好,又到了每日學(xué)習(xí)的時(shí)間了,今天我們來(lái)聊一聊PCIe的軟件配置方式。

關(guān)于PCIe的軟件配置和初始化

PCIe設(shè)計(jì)出來(lái)考慮了和pci兼容問(wèn)題。所以PCIe的軟件配置方式可以沿用PCI的配置方式。當(dāng)然,由于特殊性,也有自身獨(dú)特的配置方式。所以PCIe模塊的訪問(wèn)方式有如下兩種:
1、 PCI 兼容的配置方式。
2、 PCI Express enhanced 配置機(jī)制。

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

PCIe的配置空間

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

134606xdnsfah77dfs5f6l.png



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

PCIe高級(jí)配置機(jī)制

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

在正常的訪問(wèn)過(guò)程中,可以訪問(wèn)這一部分的memory來(lái)配置pcie,而這部分memory在哪里呢?芯片組中會(huì)定義一個(gè)base address,而base address開始的256MB的空間內(nèi)則是總線上所有PCIe設(shè)備的配置空間對(duì)應(yīng)的register。

134606orlmsr5trsrxzrsq.png


上圖是PCIE總線高級(jí)配置結(jié)構(gòu)圖,很明顯可以看出是PCIE配置空間映射的memory空間為[XbaseAddress +0 àXbaseAddress +FFFFFFFh]。那么實(shí)際的地址線如何對(duì)應(yīng)呢?如下圖所示:

134607rx76keoxqbji84xu.png


在程序中的表達(dá)和操作是這樣的:

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

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

PCIE配置空間register

詳細(xì)的register解讀,請(qǐng)閱讀PCIe spec或者參考一份X86架構(gòu)的芯片組datasheet。

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


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

    評(píng)論

    相關(guān)推薦

    FPGA的PCIE接口應(yīng)用需要注意哪些問(wèn)題

    決定了其邏輯單元、內(nèi)存塊和輸入/輸出端口的數(shù)量。這些資源的限制會(huì)影響PCIe配置,如通道數(shù)量和速度等級(jí)。 不同F(xiàn)PGA的內(nèi)部架構(gòu)差異可能導(dǎo)致性能不同。例如,數(shù)據(jù)傳輸路徑的寬度、時(shí)鐘頻率以及串行收發(fā)器
    發(fā)表于 05-27 16:17

    示波器的極簡(jiǎn)模式和全功能模式

    設(shè)置怕自己設(shè)置錯(cuò)了。另一些客戶很熟悉示波器軟件的所有功能,但是他使用的場(chǎng)景可能比較簡(jiǎn)單,只需要簡(jiǎn)單的功能即可,不希望顯示過(guò)多的其他功能。所以我們?cè)黾恿艘粋€(gè)選項(xiàng),客戶可以使用極簡(jiǎn)模式,如下圖所示
    發(fā)表于 05-16 11:29

    簡(jiǎn)Xilinx Zynq-7000嵌入式系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)

    今天給大俠帶來(lái)簡(jiǎn)Xilinx Zynq-7000嵌入式系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn),話不多說(shuō),上貨。 Xilinx的ZYNQ系列FPGA是二種看上去對(duì)立面的思想的融合,ARM處理器的串行執(zhí)行+FPGA
    發(fā)表于 05-08 16:23

    高性能NVMe主機(jī)控制器,Xilinx FPGA PCIe 3

    ,從而可實(shí)現(xiàn)更高存儲(chǔ)性能和存儲(chǔ)容量。無(wú)需CPU,NVMe Host Controller IP自動(dòng)執(zhí)行對(duì)PCIe SSD的PCIe設(shè)備枚舉和配置、NVMe控制器識(shí)別和初始化、NVMe隊(duì)列設(shè)置和初始化
    發(fā)表于 04-20 14:41

    簡(jiǎn)Xilinx Zynq-7000嵌入式系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)

    今天給大俠帶來(lái)簡(jiǎn)Xilinx Zynq-7000嵌入式系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn),話不多說(shuō),上貨。 Xilinx的ZYNQ系列FPGA是二種看上去對(duì)立面的思想的融合,ARM處理器的串行執(zhí)行+FPGA
    發(fā)表于 04-10 16:00

    8路SDI/HDMI/MIPI/PCIe-DMA音視頻采集,V4L2驅(qū)動(dòng)應(yīng)用介紹

    、個(gè)數(shù)、大小)軟件配置11.8個(gè)視頻顯示隊(duì)列參數(shù)(隊(duì)列元素的地址、個(gè)數(shù)、大小)軟件配置12.支持超帶寬視頻采集和超帶寬視頻顯示13.支持MSI中斷,16個(gè)DMA中斷和16個(gè)User
    發(fā)表于 03-13 13:59

    看看PCIe設(shè)備之間的通信方式

    PCIe是以包(Packet)為單位傳輸數(shù)據(jù)的。和計(jì)算機(jī)網(wǎng)絡(luò)類似,其協(xié)議也是分層的。
    的頭像 發(fā)表于 03-01 14:18 ?4664次閱讀
    看看<b class='flag-5'>PCIe</b>設(shè)備之間的通信<b class='flag-5'>方式</b>

    PCIe可以添加哪些定位手段?PCIe需要的debug設(shè)計(jì)

    如圖所示,PCIe IP作為endpoint與RC對(duì)接,用戶實(shí)現(xiàn)了應(yīng)用邏輯,與PCIe IP進(jìn)行交互,交互信號(hào)中data格式為TLP報(bào)文格式,且交互信號(hào)包含相應(yīng)的控制信號(hào),例如PCIe配置
    的頭像 發(fā)表于 02-26 18:19 ?1169次閱讀

    簡(jiǎn)FPGA的片內(nèi)資源

    簡(jiǎn)FPGA的片內(nèi)資源
    發(fā)表于 01-08 22:12

    AD采集卡設(shè)計(jì)原理圖:630-基于PCIe的高速模擬AD采集卡

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

    什么是PCIePCIe有什么用途?PCIe 5.0有何不同?

    隨著英特爾Alder Lake CPU的發(fā)布,以及AMD 7000 Ryzen CPU的即將發(fā)布,PCIe 5.0 硬件終于成為現(xiàn)實(shí)。但什么是 PCIe 5.0?
    的頭像 發(fā)表于 11-18 16:48 ?2940次閱讀
    什么是<b class='flag-5'>PCIe</b>?<b class='flag-5'>PCIe</b>有什么用途?<b class='flag-5'>PCIe</b> 5.0有何不同?

    體驗(yàn)紫光PCIE之使用WinDriver驅(qū)動(dòng)紫光PCIE

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

    STM32使用GPIO配置的5種方式

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

    PCIe引腳定義和PCIe協(xié)議層介紹

    本文我們將向大家介紹PCIe引腳定義以及PCIe協(xié)議層。
    發(fā)表于 09-26 11:39 ?1.4w次閱讀
    <b class='flag-5'>PCIe</b>引腳定義和<b class='flag-5'>PCIe</b>協(xié)議層介紹