訪問(wèn) PCI/PCIe 設(shè)備的流程
PCI/PCIe 設(shè)備的配置信息
PCI/PCIe 設(shè)備上有配置空間(配置寄存器),用來(lái)表明自己"需要多大的地址空間"。
注意,這是 PCI/PCIe 地址空間。
主機(jī)讀取設(shè)備配置信息、分配空間
主機(jī)上的程序訪問(wèn) PCI/PCIe 設(shè)備,讀出配置信息。
分配地址空間:注意,分配的是 PCI/PCIe 地址空間。
把地址空間首地址寫(xiě)入設(shè)備。
CPU 地址空間和 PCI/PCIe 地址空間怎么轉(zhuǎn)換?
假設(shè) CPU 發(fā)出的 addr_cpu,是用來(lái)訪問(wèn) PCI 設(shè)備的,轉(zhuǎn)換關(guān)系為:
addr_pci = addr_cpu + offset
在 PCI/PCIe 控制器中,有某個(gè)寄存器,有來(lái)保存 offset 值。
主機(jī)像讀寫(xiě)內(nèi)存一樣訪問(wèn)設(shè)備
示例代碼如下:
volatile unsigned int *p = addr_cpu;
unsigned int val;
*p = val; /* 寫(xiě), 硬件會(huì)把a(bǔ)ddr_cpu轉(zhuǎn)換為addr_pci去寫(xiě)PCI/PCIe設(shè)備 */
val = *p; /* 讀, 硬件會(huì)把a(bǔ)ddr_cpu轉(zhuǎn)換為addr_pci去讀PCI/PCIe設(shè)備 */
| 本文參考 百問(wèn)網(wǎng)-韋東山驅(qū)動(dòng)大全 |
聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(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)投訴
-
PCI
+關(guān)注
關(guān)注
5文章
688瀏覽量
133918 -
設(shè)備
+關(guān)注
關(guān)注
2文章
4805瀏覽量
73467 -
PCIe
+關(guān)注
關(guān)注
16文章
1436瀏覽量
87929
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
熱點(diǎn)推薦
windows xp無(wú)法正常掃描和安裝驅(qū)動(dòng)PCIE設(shè)備
(version 10.20)掃描設(shè)備,發(fā)現(xiàn)設(shè)備地址0x4(對(duì)應(yīng)PCI control register)為0x0,意味著總線訪問(wèn)未使能。無(wú)法正常訪
發(fā)表于 12-13 11:30
關(guān)于dm8168的PRCM使能pcie寄存器區(qū)域,需要PRCM配置打開(kāi)pcie,為什么配置之后還是不能訪問(wèn)pcie的寄存器?
的配置方式如下:1、RM_DEFAULT_RSTCTRL:0x7f2、CM_DEFAULT_PCI_CLKSTCTRL: 0x23、CM_DEFAULT_PCI_CLKCTRL: 0x2按照以上配置之后還是不能訪問(wèn)
發(fā)表于 05-25 08:39
怎么實(shí)現(xiàn)PC機(jī)的軟件對(duì)PCI設(shè)備的訪問(wèn)?
在設(shè)計(jì)和使用PCI設(shè)備時(shí),經(jīng)常要在PC機(jī)的軟件中訪問(wèn)和控制硬件設(shè)備,但Windows操作系統(tǒng)(包括Windows 95/98、Windows NT、Windows 2000)為了保證系
發(fā)表于 09-17 08:12
無(wú)法訪問(wèn)s32v234板中的PCIe是怎么回事?
嘗試訪問(wèn)兩塊 s32v234 板上的 PCIe 設(shè)備,但未成功。在 U-Boot 中,pci 命令(例如枚舉)會(huì)收到“pci_bus_to_
發(fā)表于 03-31 06:40
LX2160A訪問(wèn)64位PCIe BAR時(shí)出現(xiàn)異步SError怎么解決?
我在訪問(wèn) PCIe BAR 空間時(shí)遇到 Async Serror。很奇怪。能幫忙看看是什么原因嗎?謝謝。 ?#dmesg | grep pcie [0.000000] 內(nèi)核命令行:console
發(fā)表于 04-03 06:06
Arm PCI配置空間訪問(wèn)固件接口1.0BET1平臺(tái)設(shè)計(jì)文檔
本文檔為調(diào)用方(如操作系統(tǒng)或系統(tǒng)管理程序)定義了訪問(wèn)PCI配置空間的標(biāo)準(zhǔn)固件接口。
該接口可用作增強(qiáng)配置訪問(wèn)機(jī)制(ECAM)硬件機(jī)制的替代方案,該機(jī)制在PCIe規(guī)范[1]中進(jìn)行了定義。
發(fā)表于 08-11 07:55
PCI設(shè)備配置空間研究
在開(kāi)發(fā)PCI設(shè)備驅(qū)動(dòng)程序時(shí),需要訪問(wèn)配置空間來(lái)控制設(shè)備。研究了PC平臺(tái)和Windows系統(tǒng)下訪問(wèn)PCI
發(fā)表于 11-24 18:22
?0次下載
PCIe的技術(shù)原理詳細(xì)說(shuō)明
硬盤是大家都很熟悉的設(shè)備,一路走來(lái),從HDD到SSD,從SATA到NVMe,作為NVMe SSD的前端接口,PCIe再次進(jìn)入我們的視野。作為x86體系關(guān)鍵的一環(huán),PCIe標(biāo)準(zhǔn)歷經(jīng)PCI
發(fā)表于 01-09 10:41
?4.2w次閱讀
PCIe與PCI之間的區(qū)別
PCIe(Peripheral Component Interconnect Express)是繼ISA和PCI總線之后的第三代I/O總線。一般翻譯為周邊設(shè)備高速連接標(biāo)準(zhǔn)。
聊聊PCIe設(shè)備在系統(tǒng)如何發(fā)現(xiàn)與訪問(wèn)?
硬盤是大家都很熟悉的設(shè)備,一路走來(lái),從HDD到SSD,從SATA到NVMe,作為NVMe SSD的前端接口,PCIe再次進(jìn)入我們的視野。作為x86體系關(guān)鍵的一環(huán),PCIe標(biāo)準(zhǔn)歷經(jīng)PCI
PCI/PCIe最容易訪問(wèn)的設(shè)備是什么
最容易訪問(wèn)的設(shè)備是什么 是內(nèi)存! 要讀寫(xiě)內(nèi)存,知道它的地址就可以: volatile unsigned int *p = 某個(gè)地址; unsigned int val;*p = val; /* 寫(xiě)
理解PCI和PCIE的關(guān)鍵
理解 PCI 和 PCIE 的關(guān)鍵 地址空間轉(zhuǎn)換 PCI 接口速覽 PCI 是并行口,引腳多。其中 Address 和 Data 復(fù)用 PIN 腳,因此引腳命名為 AD。 隨著速率的提
PCIe相關(guān)問(wèn)題解答
CPU 發(fā)起的,訪問(wèn)PCIe設(shè)備配置空間的數(shù)據(jù)流。這種數(shù)據(jù)流主要是BIOS/Linux PCIe driver 對(duì)設(shè)備進(jìn)行初始化、資源分配時(shí)
PCIe接口的工作原理 PCIe與PCI的區(qū)別
PCI Express(PCIe)是一種高速串行計(jì)算機(jī)擴(kuò)展總線標(biāo)準(zhǔn),主要用于計(jì)算機(jī)內(nèi)部硬件設(shè)備之間的連接。以下是PCIe接口的工作原理的簡(jiǎn)要概述: 串行通信 :與傳統(tǒng)的并行
訪問(wèn)PCI/PCIe設(shè)備的流程
評(píng)論