訪問 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 控制器中,有某個寄存器,有來保存 offset 值。
主機(jī)像讀寫內(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ū)動大全 |
-
PCI
+關(guān)注
關(guān)注
5文章
679瀏覽量
131909 -
設(shè)備
+關(guān)注
關(guān)注
2文章
4665瀏覽量
71715 -
PCIe
+關(guān)注
關(guān)注
16文章
1340瀏覽量
85096
發(fā)布評論請先 登錄
windows xp無法正常掃描和安裝驅(qū)動PCIE設(shè)備
關(guān)于dm8168的PRCM使能pcie寄存器區(qū)域,需要PRCM配置打開pcie,為什么配置之后還是不能訪問pcie的寄存器?
怎么實現(xiàn)PC機(jī)的軟件對PCI設(shè)備的訪問?
無法訪問s32v234板中的PCIe是怎么回事?
LX2160A訪問64位PCIe BAR時出現(xiàn)異步SError怎么解決?
Arm PCI配置空間訪問固件接口1.0BET1平臺設(shè)計文檔
PCI設(shè)備配置空間研究

PCIe的技術(shù)原理詳細(xì)說明
PCIe與PCI之間的區(qū)別
聊聊PCIe設(shè)備在系統(tǒng)如何發(fā)現(xiàn)與訪問?
PCI/PCIe最容易訪問的設(shè)備是什么

理解PCI和PCIE的關(guān)鍵

PCIe相關(guān)問題解答

評論