⑴ 概念
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