訪問 PCI/PCIe 設(shè)備的流程
PCI/PCIe 設(shè)備的配置信息
PCI/PCIe 設(shè)備上有配置空間(配置寄存器),用來表明自己"需要多大的地址空間"。
注意,這是 PCI/PCIe 地址空間。
主機(jī)讀取設(shè)備配置信息、分配空間
主機(jī)上的程序訪問 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 控制器中,有某個(gè)寄存器,有來保存 offset 值。
主機(jī)像讀寫內(nèi)存一樣訪問設(shè)備
示例代碼如下:
volatile unsigned int *p = addr_cpu;
unsigned int val;
*p = val; /* 寫, 硬件會(huì)把a(bǔ)ddr_cpu轉(zhuǎn)換為addr_pci去寫PCI/PCIe設(shè)備 */
val = *p; /* 讀, 硬件會(huì)把a(bǔ)ddr_cpu轉(zhuǎn)換為addr_pci去讀PCI/PCIe設(shè)備 */
| 本文參考 百問網(wǎng)-韋東山驅(qū)動(dòng)大全 |
-
PCI
+關(guān)注
關(guān)注
4文章
672瀏覽量
130494 -
設(shè)備
+關(guān)注
關(guān)注
2文章
4551瀏覽量
70891 -
PCIe
+關(guān)注
關(guān)注
15文章
1264瀏覽量
83261
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
windows xp無法正常掃描和安裝驅(qū)動(dòng)PCIE設(shè)備
關(guān)于dm8168的PRCM使能pcie寄存器區(qū)域,需要PRCM配置打開pcie,為什么配置之后還是不能訪問pcie的寄存器?
怎么實(shí)現(xiàn)PC機(jī)的軟件對(duì)PCI設(shè)備的訪問?
無法訪問s32v234板中的PCIe是怎么回事?
LX2160A訪問64位PCIe BAR時(shí)出現(xiàn)異步SError怎么解決?
Arm PCI配置空間訪問固件接口1.0BET1平臺(tái)設(shè)計(jì)文檔
PCI設(shè)備配置空間研究
![<b class='flag-5'>PCI</b><b class='flag-5'>設(shè)備</b>配置空間研究](https://file.elecfans.com/web2/M00/48/C5/pYYBAGKhtCKAZI3EAAD8MOUP9l4329.jpg)
PCIe的技術(shù)原理詳細(xì)說明
PCIe與PCI之間的區(qū)別
聊聊PCIe設(shè)備在系統(tǒng)如何發(fā)現(xiàn)與訪問?
PCI/PCIe最容易訪問的設(shè)備是什么
![<b class='flag-5'>PCI</b>/<b class='flag-5'>PCIe</b>最容易<b class='flag-5'>訪問</b>的<b class='flag-5'>設(shè)備</b>是什么](https://file1.elecfans.com/web2/M00/8E/62/wKgZomTFvdWAF6g6AACIkIF1IAA538.jpg)
理解PCI和PCIE的關(guān)鍵
![理解<b class='flag-5'>PCI</b>和<b class='flag-5'>PCIE</b>的關(guān)鍵](https://file1.elecfans.com/web2/M00/8E/66/wKgaomTFvyeAYcAdAAEQao_R00Q392.jpg)
PCIe相關(guān)問題解答
![<b class='flag-5'>PCIe</b>相關(guān)問題解答](https://file1.elecfans.com/web2/M00/A3/13/wKgZomUDtiOAGUKSAABJJOTpr44704.png)
評(píng)論