在我的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調試界的新手,所以我可能會在這裏錯過一些明顯的東西。
在此先感謝。
這個問題似乎是題外話,因爲它應該問上http://superuser.com/ – hivert
我不認爲這將是對超級用戶任何減少OT。 COM。如果有一個用於嵌入式系統開發的Stackoverflow,我想這可能更合適。 – Jacob