訪問 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;
val = *p;
| 本文參考 百問網(wǎng)-韋東山驅(qū)動(dòng)大全 |
聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。
舉報(bào)投訴
相關(guān)推薦
(version 10.20)掃描設(shè)備,發(fā)現(xiàn)設(shè)備地址0x4(對應(yīng)PCI control register)為0x0,意味著總線訪問未使能。無法正常訪
發(fā)表于 12-13 11:30
的配置方式如下:1、RM_DEFAULT_RSTCTRL:0x7f2、CM_DEFAULT_PCI_CLKSTCTRL: 0x23、CM_DEFAULT_PCI_CLKCTRL: 0x2按照以上配置之后還是不能訪問
發(fā)表于 05-25 08:39
有大佬能分享一下PCI總線轉(zhuǎn)PCIe(PCIe轉(zhuǎn)PCI)的PCB原理圖嗎?
發(fā)表于 01-25 11:38
在設(shè)計(jì)和使用PCI設(shè)備時(shí),經(jīng)常要在PC機(jī)的軟件中訪問和控制硬件設(shè)備,但Windows操作系統(tǒng)(包括Windows 95/98、Windows NT、Windows 2000)為了保證系
發(fā)表于 09-17 08:12
嘗試訪問兩塊 s32v234 板上的 PCIe 設(shè)備,但未成功。在 U-Boot 中,pci 命令(例如枚舉)會(huì)收到“pci_bus_to_
發(fā)表于 03-31 06:40
我在訪問 PCIe BAR 空間時(shí)遇到 Async Serror。很奇怪。能幫忙看看是什么原因嗎?謝謝。 ?#dmesg | grep pcie [0.000000] 內(nèi)核命令行:console
發(fā)表于 04-03 06:06
本文檔為調(diào)用方(如操作系統(tǒng)或系統(tǒng)管理程序)定義了訪問PCI配置空間的標(biāo)準(zhǔn)固件接口。
該接口可用作增強(qiáng)配置訪問機(jī)制(ECAM)硬件機(jī)制的替代方案,該機(jī)制在PCIe規(guī)范[1]中進(jìn)行了定義。
發(fā)表于 08-11 07:55
在開發(fā)PCI設(shè)備驅(qū)動(dòng)程序時(shí),需要訪問配置空間來控制設(shè)備。研究了PC平臺(tái)和Windows系統(tǒng)下訪問PCI
發(fā)表于 11-24 18:22
?0次下載
硬盤是大家都很熟悉的設(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
?3.9w次閱讀
PCIe(Peripheral Component Interconnect Express)是繼ISA和PCI總線之后的第三代I/O總線。一般翻譯為周邊設(shè)備高速連接標(biāo)準(zhǔn)。
發(fā)表于 07-03 16:20
?2.1w次閱讀
硬盤是大家都很熟悉的設(shè)備,一路走來,從HDD到SSD,從SATA到NVMe,作為NVMe SSD的前端接口,PCIe再次進(jìn)入我們的視野。作為x86體系關(guān)鍵的一環(huán),PCIe標(biāo)準(zhǔn)歷經(jīng)PCI
發(fā)表于 12-09 10:04
?4625次閱讀
最容易訪問的設(shè)備是什么 是內(nèi)存! 要讀寫內(nèi)存,知道它的地址就可以: volatile unsigned int *p = 某個(gè)地址; unsigned int val;*p = val; /* 寫
發(fā)表于 07-30 09:35
?595次閱讀
理解 PCI 和 PCIE 的關(guān)鍵 地址空間轉(zhuǎn)換 PCI 接口速覽 PCI 是并行口,引腳多。其中 Address 和 Data 復(fù)用 PIN 腳,因此引腳命名為 AD。 隨著速率的提
發(fā)表于 07-30 09:44
?1365次閱讀
CPU 發(fā)起的,訪問PCIe設(shè)備配置空間的數(shù)據(jù)流。這種數(shù)據(jù)流主要是BIOS/Linux PCIe driver 對設(shè)備進(jìn)行初始化、資源分配時(shí)
發(fā)表于 09-15 09:39
?1727次閱讀
PCI Express(PCIe)是一種高速串行計(jì)算機(jī)擴(kuò)展總線標(biāo)準(zhǔn),主要用于計(jì)算機(jī)內(nèi)部硬件設(shè)備之間的連接。以下是PCIe接口的工作原理的簡要概述: 串行通信 :與傳統(tǒng)的并行
發(fā)表于 11-06 09:19
?1378次閱讀
評論