Linux(debian7)操作基礎(三)之PCI/PCI-E設備配置空間

⑴ 概念

PCI和PCI Express,是計算機常使用的一種高速總線。操作系統中的PCI/PCI-E設備驅動以及操作系統內核,都需要訪問PCI及PCI-E配置空間。PCI/PCI-E設備的正常運行,離不開PCI/PCI-E配置空間。

① PCI Express 1.1
使用兩對低電壓的差位訊號排線(low-voltage differential signaling pairs),分別各跑2.5GBit/s速度,下面的速度是以單對的速度而言. x1 有兩對 2.5 G x 2 = 5Gbps 的頻寬.
x1 2.5Gbps(20% overhead - PCI-e 在每八個位元的資料串上用十位元來加以編碼) 2Gbps (250 MB/sec)
x4 10Gbps 8Gbps (1 GB/sec)
x8 20Gbps 16Gbps (2GB/sec)
x16 40Gbps 32Gbps (4GB/sec)

② PCI Express 2.0
PCI-SIG 的 PCI Express 2.0規格,新版每條Lane的單向頻寬從2.5Gbps倍增到5Gbps.
x1 5Gbps(20% overhead-PCIe並且在每八個位元的資料串上用十位元來加以編碼) 4Gbps (500 MB/sec)
(5G*0.8)Mb/8=500MB
x4 20Gbps 16Gbps (2 GB/sec)
x8 40Gbps 32Gbps (4 GB/sec)
x16 80Gbps 64Gbps (8 GB/sec)

例如:09:00.0 0c04: 1077:2432 (rev 03)
09:00.0 就是 bus number = 09 ,device number = 00 function = 0 .
這3個編號會組合成一個 16-bits 的識別碼,

匯流排(bus number) 8bits 2^8 至多可連接 256 個匯流排(0 to ff),  
裝置(device number) 5bits 2^5 至多可接 32 種裝置(0 to 1f) 以及  
功能(function number) 3bits 2^3 至多每種裝置可有 8 項功能(0 to 7).
0c04 : class 0c04 表示是 "Fiber Channel controller"
1077 : vendor ID 1077 製造廠商 "Qlogic Corp"
2432 : device ID 2432 產品名稱 "ISP2432-based 4Gb Fiber Channel to PCI Express HBA"

使用指令:#lspci -n -d 1077:2432 -vvv |grep -i width 就可以得知 PCI-Express 的速度了.

⑵ PCI-E設備配置空間讀取

讀取PCI-E設備配置空間命令:lspci [options]

常用參數:

-v 顯示設備的詳細信息。

-vv 顯示設備更詳細的信息。

-vvv 顯示設備所有可解析的信息。

-x 以16進制顯示配置空間的前64字節,或者CardBus橋的前128字節。

-xxx 以16進制顯示整個PCI配置空間(256字節)。

-xxxx 以16進制顯示整個PCI-E配置空間(4096字節)。

-s [[[[]:]]:][][.[]]:

顯示指定設備。

示例: lspci -vvvxxxx -s 00:14.0

⑶ PCI-E設備配置空間修改

修改PCIE配置空間命令:setpci [options] devices

主要的參數如下:

-s [[[[]:]]:][][.[]]

常用命令格式和參數如下:

setpci -s BUSID:DEVID.FUNCID REGISTEROFFSET.B=NEWVALUE

setpci -s BUSID:DEVID.FUNCID REGISTEROFFSET.W=NEWVALUE

setpci -s BUSID:DEVID.FUNCID REGISTEROFFSET.L=NEWVALUE

示例:setpci -s 0:14.0 60.B=6
將設備0:14.0設備,PCI配置空間偏移量爲0×60,寫入新的字節值爲6。查看PCI配置空間修改是否生效,可以通過lspci命令來查看,如設置0:14.0後,讀取命令爲lspci –s 0:14.0 –xxx。

⑷ 掃描PCI設備

掃描或探測PCI/PCI-E設備的命令爲:scanpci [-v12OfV]

常用參數:

-v 打印所有設備的配置空間信息。

-1 使用PCI配置Type 1。

-2 使用PCI配置Type 2。

-f 與-1或-2參數結合,強制使用某種類型。

-O:使用OS的PCI配置空間訪問方式訪問。

原文參考:http://blog.chinaunix.net/uid-1829236-id-3188434.html
原文參考:http://blog.sina.com.cn/s/blog_720c3ccf0101en7p.html

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章