訪問(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 地址空間。
把地址空間首地址寫入設(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ī)像讀寫內(nèi)存一樣訪問(wèn)設(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èn)網(wǎng)-韋東山驅(qū)動(dòng)大全 |
- 
                                PCI
                                +關(guān)注
關(guān)注
5文章
684瀏覽量
133490 - 
                                設(shè)備
                                +關(guān)注
關(guān)注
2文章
4758瀏覽量
73122 - 
                                PCIe
                                +關(guān)注
關(guān)注
16文章
1408瀏覽量
87313 
發(fā)布評(píng)論請(qǐng)先 登錄
windows xp無(wú)法正常掃描和安裝驅(qū)動(dòng)PCIE設(shè)備
關(guān)于dm8168的PRCM使能pcie寄存器區(qū)域,需要PRCM配置打開(kāi)pcie,為什么配置之后還是不能訪問(wèn)pcie的寄存器?
怎么實(shí)現(xiàn)PC機(jī)的軟件對(duì)PCI設(shè)備的訪問(wèn)?
無(wú)法訪問(wèn)s32v234板中的PCIe是怎么回事?
LX2160A訪問(wèn)64位PCIe BAR時(shí)出現(xiàn)異步SError怎么解決?
Arm PCI配置空間訪問(wèn)固件接口1.0BET1平臺(tái)設(shè)計(jì)文檔
PCI設(shè)備配置空間研究
    
PCIe的技術(shù)原理詳細(xì)說(shuō)明
PCIe與PCI之間的區(qū)別
聊聊PCIe設(shè)備在系統(tǒng)如何發(fā)現(xiàn)與訪問(wèn)?
PCI/PCIe最容易訪問(wèn)的設(shè)備是什么
    
理解PCI和PCIE的關(guān)鍵
    
PCIe相關(guān)問(wèn)題解答
    
          
        
        
訪問(wèn)PCI/PCIe設(shè)備的流程
                
 
           
            
            
                
            
評(píng)論