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