1

在我的x86 Linux系統上使用setpci從PCI配置空間中的不同位置讀取數據時,與從lspci -xxxx輸出相比,某些寄存器似乎給出了完全不同的答案。爲什麼setpci和lspci -xxxx顯示相同地址的不同數據?

例如,我挑一個任意設備我的公共汽車上,做lspci -s 00:1f.3 -xxxx並獲得:

00: 86 80 22 1e 03 00 80 02 04 00 05 0c 00 00 00 00 
10: 04 40 51 d0 00 00 00 00 00 00 00 00 00 00 00 00 
20: a1 ef 00 00 00 00 00 00 00 00 00 00 28 10 8b 05 

...

e0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
f0: 00 00 00 00 00 00 00 00 87 0f 04 08 00 00 00 00 

現在,從setpci -s 00:1f.3 0x40+0.l輸出02800003這與一致上面的輸出。但是,setpci -s 00:1f.3 0xf8+0.l的輸出是ffffffff,從上面的轉儲我預計將是08040f87

有人可以幫助瞭解一下這裏發生的事情。我是PCI調試界的新手,所以我可能會在這裏錯過一些明顯的東西。

在此先感謝。

+0

這個問題似乎是題外話,因爲它應該問上http://superuser.com/ – hivert

+1

我不認爲這將是對超級用戶任何減少OT。 COM。如果有一個用於嵌入式系統開發的Stackoverflow,我想這可能更合適。 – Jacob

回答

1

人setpci取

setpci取是查詢和配置PCI設備的工具。

幾乎所有的操作都需要root權限,不包括讀取某些操作系統上配置空間的標準頭。有關訪問權限的詳細信息,請參閱lspci(8)。

嘗試爲超級用戶

+0

哇,我不能相信我錯過了!謝謝。 – Jacob

相關問題