PCIE 調試過程記錄


遇到的問題

  • PCIE link不穩定
  • 配置空間讀寫正常,Memory mapping空間讀寫異常

緣由

之前對PCIE的認識一直停留在概念的階段,只知道是一個高速通訊協議,主要用於板內、板間的高速BUS。正好公司最近在調試一個PowerPC平台的PCIE BUS的BSP。需要一些PCIE的硬件、軟件知識。下面通過解決實際問題過程的方法來進一步理解PCIE總線協議。但也僅僅限於工程應用(實際產品中調試、應用)層面。

具體解決過程

啟動u-boot后,可以看到PCIE link status信息log 
u-boot下的pcie link status 
從log上分析:系統啟動了3個PCIE controller,PCIE 號為:0.0.0 2.0.0 4.0.0。 
三個數字的具體含義為:0.0.0 :Bus Number Device Number Function Number。 
這三個Host Bridge 下面分別掛了一個EP設備,PCIE 號為:1.0.0 、3.0.0 、5.0.0。 
正常看到這些PCIE bridge 和EP說明PCIE 讀PCIE的配置空間是正確的,PCIE在physical 的link狀態是OK的。 
可以使用pci header + PCIE號的方式查看Bridge和EP的Config 信息。 
pci config space 
若出現讀取配置信息不穩定的情況,則說明PCIE link 不穩定。需要進一步排查硬件,軟件輔助查看link status的方法是查看PCIE Host Bridge的link status的寄存器值。PCIE 規范里有一個LTSSM(Link Training and Status State Machine),各種status的code規范里都有定義。 
這個LTSSM在PCIE Extend Config Space里面。在P3041中的offset為0x404。 
可以使用命令:pci display.b 0.0.0 404查看LTSSM狀態。 
正常情況下的輸出: 
LTSSM 
PCIE 初始化完成后會進入L0狀態。異常狀態見PCIE link 異常log。 
物理層link 不穩定,懷疑以下原因: 
- 高速串行信號質量問題 
- Serdes電源問題 
- 時鍾問題

Serdes電源經過測量后,基本排除。 
高速信號完整性問題經過示波器測量后,也基本排除。 
時鍾問題,最開始只是簡單測試了下時鍾的頻率和幅值。沒有實質性去分析時鍾的jitter等時鍾質量問題。后分析原理圖發現,pcie的Host和EP端使用了不同的pcie時鍾IC,也就是說使用了非同源時鍾。在沒有詳細查看pcie specification關於pcie時鍾的情況下,將host和EP端的時鍾改為同源時鍾(當然是選擇飛線嘍),pcie物理層link問題解決。 
項目沒有那么緊張的時候,反思此事,仔細查看pcie specification中關於時鍾的要求,並沒有要求Host和EP端必須使用同源時鍾。只是對同源、非同源時鍾的精度做了要求。 
同源情況下要求100M. +-600ppm 
非同源時鍾要求100M. +-300ppm 
哦,原來是這樣,接着去看原理圖中選用的PCIE時鍾IC,發現EP端的pcie時鍾IC為25M輸入然后倍頻出來100M時鍾的,且使用了一個帶有SSC功能的IC,原理配配置上打開了該功能。根據pcie規范中介紹的,該功能 
為pcie一項技術,該功能為了減少板級EMI對時鍾做了特殊能量擴散處理。有SSC功能的時鍾超出300ppm的抖動,但在600ppm內。 
這樣得出一個結論,我們使用了非同源的設計,EP端使用的pcie時鍾IC的jitter超出了300ppm。看來不能穩定的link也是情理之中。這樣看來就有另一種解決方法,把EP端PCIE側的SSC功能關閉,去實踐發現將SSC功能關閉后,可以正常穩定link。 
我們使用的pcie時鍾芯片支持SSC且配置打開,時鍾ppm在300到600之間。又非同源,因此link不穩定。將此功能關閉,時鍾在300ppm,因此可以穩定link。

解決方法: 
- 飛線統一成同一時鍾源。 
- 將EP端的時鍾IC的SSC功能關閉。

PCIE memap空間讀寫異常

問題:

  • pcie可以正常讀寫配置空間,但無法正常讀寫memap 空間

最后定位問題: 
一個address是36bit的,但軟件定義為一個32bit的變量,從而導致軟件讀寫pcie memap空間失敗(讀錯了位置)。 
解決方法:fixed the software bug。☺

這個問題定位主要需要一些關於PICE的一些地址的知識,要理解他們之間的關系。

  • PCIE空間的BAR
  • CPU訪問PCIE設備的高速外設(IO)的地址
  • 應用層訪問PCIE memap的地址

    來張圖吧, 
    PCIE addresses

    上圖中,有幾個關鍵的Address,Virtual Address這個大家比較好理解,但凡有一點在linux下開發經驗的程序員都知道linux下的應用程序只能訪問Virtual Address,那如果我們需要訪問一些指定的Physical Address怎么辦,這在driver開發當中十分常見。linux提供了mamap系統調用,用於Virtual Address和Physical Address的轉換。另外,PICE設備在讀寫時使用PCIE的BAR地址,BAR地址是PCIE控制器以memap 方式讀寫PCIE EP設備時使用的地址,是PCIE協議使用的地址。

    我們以寫PCIE EP的memap空間為例子說明一下地址之間的轉換是怎么做的。PCIE的memap空間是OS分配的,一般是一個固定的地址和大小,然后OS啟動后,PCIE的應用程序將PCIE的memap的Physical Address通過mamap系統調用映射為Virtual Address,然后應用程序就會通過此地址讀寫EP設備的memap空間,當CPU發出寫EP設備的memap空間時,PCIE控制器會根據設置的BAR地址轉換成相應的PICE協議要求的地址。BAR是在PCIE枚舉的過程中設置的,一般通過枚舉方式設置成合理的地址值,EP這一側會根據配置的值將自身的memap地址空間映射到設置的地址上去。

舉一個具體的例子: 
CPU分配的PCIE Physical Address為0xc20000000,設置的BAR地址為0xe0000000。應用層APP實際使用的Virtual Address和OS有關系,不同的進程調用mamap映射為同一個Physical Address可能會產生不同的Virtual Address值。

總結

應用層調試方法,config space配置、memap空間的理解 
Pcie控制器的配置、使用 
從實際調試PCIE設備的過程看,設備調試和使用主要涉及到兩個方面:config space和MMIO space。配置空間主要是用於配置PCIE設備。很多PCI設備僅僅支持64字節的配置空間。PCI和PCIe配置空間的區別如下: 
PCI/PCI-X和PCIe設備還擴展了0x40和0xFF這段配置空間,這段空間主要存放一些與MSI或者MSI-X 中斷機制相關的Capability結構。其中所有能夠提交中斷請求的PCIe設備,必須支持MSI或者MSI-X 中斷機制相關的Capability結構。 
PCIe設備還支持0x100 -0xFFF這段擴展配置空間。PCIe設備的擴展配置空間最大為4KB,在PCIe總線的擴展配置空間中,存放PCIe所獨有的一些Capability結構,而PCI設備不能使用這段空間。 
在x86處理器中,使用CONFIG_ADDRESS寄存器與CONFIG_DATA寄存器訪問0x00-0xFF,而使用ECAM方式訪問0x000-0xFFF這段空間;而在PowerPC處理器中,可以使用CFG_DATA和CFG_ADDR寄存器訪問0x000-0xFFF。 
MMIO(Memory mapping I/O)即內存映射I/O,它是PCI規范的一部分,I/O設備被放置在內存空間而不是I/O空間。從處理器的角度看,內存映射I/O后系統設備訪問起來和內存一樣。這樣訪問AGP/PCI-E顯卡上的幀緩存,BIOS,PCI設備就可以使用讀寫內存一樣的匯編指令完成,簡化了程序設計的難度和接口的復雜性。I/O作為CPU和外設交流的一個渠道,主要分為兩種,一種是Port I/O,一種是MMIO(Memory mapping I/O)。 
底層使用pcie接口的軟件移植需要考慮以下方面:

  1. 確定address bus的寬度,是32bit還是64bit或者其他。
  2. 確定CPU的大小端,以及PCIE的大小端問題。
  3. check下PICE max payload問題。

附錄


$$$develop from single control storeage based on P3041
$$$Hit any key to stop autoboot:  0 
=> pci display.b 0.0.0 400 00000400: 00 00 00 00 33 00 00 00 e2 04 00 00 00 00 00 00 00000410: 01 00 00 00 19 00 00 00 00 00 00 00 40 40 96 96 00000420: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00000430: 00 00 00 00 00 00 00 00 5c 41 c2 00 00 00 00 00 => pci display.b 0.0.0 400 00000400: 00 00 00 00 02 00 00 00 e2 04 00 00 00 00 00 00 00000410: 01 00 00 00 19 00 00 00 00 00 00 00 40 40 96 96 00000420: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00000430: 00 00 00 00 00 00 00 00 5c 41 c2 00 00 00 00 00 => pci display.b 0.0.0 400 00000400: 00 00 00 00 06 00 00 00 e2 04 00 00 00 00 00 00 00000410: 01 00 00 00 19 00 00 00 00 00 00 00 40 40 96 96 00000420: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00000430: 00 00 00 00 00 00 00 00 5c 41 c2 00 00 00 00 00 => pci display.b 0.0.0 400 00000400: 00 00 00 00 16 00 00 00 e2 04 00 00 00 00 00 00 00000410: 01 00 00 00 19 00 00 00 00 00 00 00 40 40 96 96 00000420: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00000430: 00 00 00 00 00 00 00 00 5c 41 c2 00 00 00 00 00 => pci display.b 0.0.0 400 00000400: 00 00 00 00 49 00 00 00 e2 04 00 00 00 00 00 00 00000410: 01 00 00 00 19 00 00 00 00 00 00 00 40 40 96 96 00000420: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00000430: 00 00 00 00 00 00 00 00 5c 41 c2 00 00 00 00 00 => pci display.b 0.0.0 400 00000400: 00 00 00 00 49 00 00 00 e2 04 00 00 00 00 00 00 00000410: 01 00 00 00 19 00 00 00 00 00 00 00 40 40 96 96 00000420: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00000430: 00 00 00 00 00 00 00 00 5c 41 c2 00 00 00 00 00 => pci display.b 0.0.0 400 00000400: 00 00 00 00 49 00 00 00 e2 04 00 00 00 00 00 00 00000410: 01 00 00 00 19 00 00 00 00 00 00 00 40 40 96 96 00000420: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00000430: 00 00 00 00 00 00 00 00 5c 41 c2 00 00 00 00 00 => pci display.b 0.0.0 400 00000400: 00 00 00 00 33 00 00 00 e2 04 00 00 00 00 00 00 00000410: 01 00 00 00 19 00 00 00 00 00 00 00 40 40 96 96 00000420: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00000430: 00 00 00 00 00 00 00 00 5c 41 c2 00 00 00 00 00 => pci display.b 0.0.0 400 00000400: 00 00 00 00 49 00 00 00 e2 04 00 00 00 00 00 00 00000410: 01 00 00 00 19 00 00 00 00 00 00 00 40 40 96 96 00000420: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00000430: 00 00 00 00 00 00 00 00 5c 41 c2 00 00 00 00 00 => pci display.b 0.0.0 400 00000400: 00 00 00 00 37 00 00 00 e2 04 00 00 00 00 00 00 00000410: 02 00 00 00 19 00 00 00 00 00 00 00 40 40 96 96 00000420: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00000430: 00 00 00 00 00 00 00 00 5c 41 c2 00 00 00 00 00 => pci display.b 0.0.0 400 00000400: 00 00 00 00 02 00 00 00 e2 04 00 00 00 00 00 00 00000410: 01 00 00 00 19 00 00 00 00 00 00 00 40 40 96 96 00000420: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00000430: 00 00 00 00 00 00 00 00 5c 41 c2 00 00 00 00 00 => pci display.b 0.0.0 400 00000400: 00 00 00 00 02 00 00 00 e2 04 00 00 00 00 00 00 00000410: 01 00 00 00 19 00 00 00 00 00 00 00 40 40 96 96 00000420: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00000430: 00 00 00 00 00 00 00 00 5c 41 c2 00 00 00 00 00 => pci display.b 0.0.0 400 00000400: 00 00 00 00 49 00 00 00 e2 04 00 00 00 00 00 00 00000410: 01 00 00 00 19 00 00 00 00 00 00 00 40 40 96 96 00000420: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00000430: 00 00 00 00 00 00 00 00 5c 41 c2 00 00 00 00 00 => pci display.b 0.0.0 400 00000400: 00 00 00 00 02 00 00 00 e2 04 00 00 00 00 00 00 00000410: 01 00 00 00 19 00 00 00 00 00 00 00 40 40 96 96 00000420: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00000430: 00 00 00 00 00 00 00 00 5c 41 c2 00 00 00 00 00 => pci display.b 0.0.0 400 00000400: 00 00 00 00 16 00 00 00 e2 04 00 00 00 00 00 00 00000410: 01 00 00 00 19 00 00 00 00 00 00 00 40 40 96 96 00000420: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00000430: 00 00 00 00 00 00 00 00 5c 41 c2 00 00 00 00 00 => pci display.b 0.0.0 400 00000400: 00 00 00 00 49 00 00 00 e2 04 00 00 00 00 00 00 00000410: 01 00 00 00 19 00 00 00 00 00 00 00 40 40 96 96 00000420: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00000430: 00 00 00 00 00 00 00 00 5c 41 c2 00 00 00 00 00 => pci display.b 0.0.0 400 00000400: 00 00 00 00 16 00 00 00 e2 04 00 00 00 00 00 00 00000410: 00 01 00 00 19 00 00 00 00 00 00 00 40 40 96 96 00000420: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00000430: 00 00 00 00 00 00 00 00 5c 41 c2 00 00 00 00 00 => pci display.b 0.0.0 400 00000400: 00 00 00 00 02 00 00 00 e2 04 00 00 00 00 00 00 00000410: 01 00 00 00 19 00 00 00 00 00 00 00 40 40 96 96 00000420: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00000430: 00 00 00 00 00 00 00 00 5c 41 c2 00 00 00 00 00 => pci display.b 0.0.0 400 00000400: 00 00 00 00 02 00 00 00 e2 04 00 00 00 00 00 00 00000410: 01 00 00 00 19 00 00 00 00 00 00 00 40 40 96 96 00000420: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00000430: 00 00 00 00 00 00 00 00 5c 41 c2 00 00 00 00 00 => pci display.b 0.0.0 400 00000400: 00 00 00 00 02 00 00 00 e2 04 00 00 00 00 00 00 00000410: 02 01 00 00 19 00 00 00 00 00 00 00 40 40 96 96 00000420: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00000430: 00 00 00 00 00 00 00 00 5c 41 c2 00 00 00 00 00 => pci display.b 0.0.0 400 00000400: 00 00 00 00 06 00 00 00 e2 04 00 00 00 00 00 00 00000410: 01 00 00 00 19 00 00 00 00 00 00 00 40 40 96 96 00000420: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00000430: 00 00 00 00 00 00 00 00 5c 41 c2 00 00 00 00 00 => pci display.b 0.0.0 400 00000400: 00 00 00 00 35 00 00 00 e2 04 00 00 00 00 00 00 00000410: 00 01 00 00 19 00 00 00 00 00 00 00 40 40 96 96 00000420: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00000430: 00 00 00 00 00 00 00 00 5c 41 c2 00 00 00 00 00 => pci display.b 0.0.0 400 00000400: 00 00 00 00 35 00 00 00 e2 04 00 00 00 00 00 00 00000410: 01 00 00 00 19 00 00 00 00 00 00 00 40 40 96 96 00000420: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00000430: 00 00 00 00 00 00 00 00 5c 41 c2 00 00 00 00 00 => pci display.b 0.0.0 400 00000400: 00 00 00 00 49 00 00 00 e2 04 00 00 00 00 00 00 00000410: 01 00 00 00 19 00 00 00 00 00 00 00 40 40 96 96 00000420: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00000430: 00 00 00 00 00 00 00 00 5c 41 c2 00 00 00 00 00 => pci display.b 0.0.0 400 00000400: 00 00 00 00 01 00 00 00 e2 04 00 00 00 00 00 00 00000410: 01 00 00 00 19 00 00 00 00 00 00 00 40 40 96 96 00000420: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00000430: 00 00 00 00 00 00 00 00 5c 41 c2 00 00 00 00 00 => pci display.b 0.0.0 400 00000400: 00 00 00 00 49 00 00 00 e2 04 00 00 00 00 00 00 00000410: 01 00 00 00 19 00 00 00 00 00 00 00 40 40 96 96 00000420: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00000430: 00 00 00 00 00 00 00 00 5c 41 c2 00 00 00 00 00 => pci display.b 0.0.0 400 00000400: 00 00 00 00 49 00 00 00 e2 04 00 00 00 00 00 00 00000410: 01 00 00 00 19 00 00 00 00 00 00 00 40 40 96 96 00000420: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00000430: 00 00 00 00 00 00 00 00 5c 41 c2 00 00 00 00 00 => pci display.b 0.0.0 400 00000400: 00 00 00 00 49 00 00 00 e2 04 00 00 00 00 00 00 00000410: 01 00 00 00 19 00 00 00 00 00 00 00 40 40 96 96 00000420: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00000430: 00 00 00 00 00 00 00 00 5c 41 c2 00 00 00 00 00 => pci display.b 0.0.0 400 00000400: 00 00 00 00 49 00 00 00 e2 04 00 00 00 00 00 00 00000410: 01 00 00 00 19 00 00 00 00 00 00 00 40 40 96 96 00000420: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00000430: 00 00 00 00 00 00 00 00 5c 41 c2 00 00 00 00 00 => pci display.b 0.0.0 400 00000400: 00 00 00 00 02 00 00 00 e2 04 00 00 00 00 00 00 00000410: 01 00 00 00 19 00 00 00 00 00 00 00 40 40 96 96 00000420: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00000430: 00 00 00 00 00 00 00 00 5c 41 c2 00 00 00 00 00 => pci display.b 0.0.0 400 00000400: 00 00 00 00 16 00 00 00 e2 04 00 00 00 00 00 00 00000410: 01 00 00 00 19 00 00 00 00 00 00 00 40 40 96 96 00000420: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00000430: 00 00 00 00 00 00 00 00 5c 41 c2 00 00 00 00 00 => pci display.b 0.0.0 400 00000400: 00 00 00 00 02 00 00 00 e2 04 00 00 00 00 00 00 00000410: 01 00 00 00 19 00 00 00 00 00 00 00 40 40 96 96 00000420: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00000430: 00 00 00 00 00 00 00 00 5c 41 c2 00 00 00 00 00 => pci display.b 0.0.0 400 00000400: 00 00 00 00 02 00 00 00 e2 04 00 00 00 00 00 00 00000410: 01 00 00 00 19 00 00 00 00 00 00 00 40 40 96 96 00000420: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00000430: 00 00 00 00 00 00 00 00 5c 41 c2 00 00 00 00 00 => pci display.b 0.0.0 400 00000400: 00 00 00 00 49 00 00 00 e2 04 00 00 00 00 00 00 00000410: 01 00 00 00 19 00 00 00 00 00 00 00 40 40 96 96 00000420: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00000430: 00 00 00 00 00 00 00 00 5c 41 c2 00 00 00 00 00 => pci display.b 0.0.0 400 00000400: 00 00 00 00 49 00 00 00 e2 04 00 00 00 00 00 00 00000410: 01 00 00 00 19 00 00 00 00 00 00 00 40 40 96 96 00000420: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00000430: 00 00 00 00 00 00 00 00 5c 41 c2 00 00 00 00 00 => pci display.b 0.0.0 400 00000400: 00 00 00 00 02 00 00 00 e2 04 00 00 00 00 00 00 00000410: 01 00 00 00 19 00 00 00 00 00 00 00 40 40 96 96 00000420: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00000430: 00 00 00 00 00 00 00 00 5c 41 c2 00 00 00 00 00 => pci display.b 0.0.0 400 00000400: 00 00 00 00 06 00 00 00 e2 04 00 00 00 00 00 00 00000410: 01 00 00 00 19 00 00 00 00 00 00 00 40 40 96 96 00000420: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00000430: 00 00 00 00 00 00 00 00 5c 41 c2 00 00 00 00 00 => pci display.b 0.0.0 400 00000400: 00 00 00 00 02 00 00 00 e2 04 00 00 00 00 00 00 00000410: 01 00 00 00 19 00 00 00 00 00 00 00 40 40 96 96 00000420: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00000430: 00 00 00 00 00 00 00 00 5c 41 c2 00 00 00 00 00 => pci display.b 0.0.0 400 00000400: 00 00 00 00 02 00 00 00 e2 04 00 00 00 00 00 00 00000410: 01 00 00 00 19 00 00 00 00 00 00 00 40 40 96 96 00000420: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00000430: 00 00 00 00 00 00 00 00 5c 41 c2 00 00 00 00 00 => pci display.b 0.0.0 400 00000400: 00 00 00 00 49 00 00 00 e2 04 00 00 00 00 00 00 00000410: 01 00 00 00 19 00 00 00 00 00 00 00 40 40 96 96 00000420: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00000430: 00 00 00 00 00 00 00 00 5c 41 c2 00 00 00 00 00 => pci display.b 0.0.0 400 00000400: 00 00 00 00 16 00 00 00 e2 04 00 00 00 00 00 00 00000410: 01 00 00 00 19 00 00 00 00 00 00 00 40 40 96 96 00000420: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00000430: 00 00 00 00 00 00 00 00 5c 41 c2 00 00 00 00 00 => pci display.b 0.0.0 400 00000400: 00 00 00 00 49 00 00 00 e2 04 00 00 00 00 00 00 00000410: 01 00 00 00 19 00 00 00 00 00 00 00 40 40 96 96 00000420: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00000430: 00 00 00 00 00 00 00 00 5c 41 c2 00 00 00 00 00 => pci display.b 0.0.0 400 00000400: 00 00 00 00 02 00 00 00 e2 04 00 00 00 00 00 00 00000410: 01 00 00 00 19 00 00 00 00 00 00 00 40 40 96 96 00000420: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00000430: 00 00 00 00 00 00 00 00 5c 41 c2 00 00 00 00 00 => pci display.b 0.0.0 400 00000400: 00 00 00 00 49 00 00 00 e2 04 00 00 00 00 00 00 00000410: 01 00 00 00 19 00 00 00 00 00 00 00 40 40 96 96 00000420: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00000430: 00 00 00 00 00 00 00 00 5c 41 c2 00 00 00 00 00 => pci display.b 0.0.0 400 00000400: 00 00 00 00 02 00 00 00 e2 04 00 00 00 00 00 00 00000410: 01 00 00 00 19 00 00 00 00 00 00 00 40 40 96 96 00000420: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00000430: 00 00 00 00 00 00 00 00 5c 41 c2 00 00 00 00 00 => pci display.b 0.0.0 400 00000400: 00 00 00 00 02 00 00 00 e2 04 00 00 00 00 00 00 00000410: 01 00 00 00 19 00 00 00 00 00 00 00 40 40 96 96 00000420: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00000430: 00 00 00 00 00 00 00 00 5c 41 c2 00 00 00 00 00 => pci display.b 0.0.0 400 00000400: 00 00 00 00 02 00 00 00 e2 04 00 00 00 00 00 00 00000410: 01 00 00 00 19 00 00 00 00 00 00 00 40 40 96 96 00000420: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00000430: 00 00 00 00 00 00 00 00 5c 41 c2 00 00 00 00 00 => pci display.b 0.0.0 400 00000400: 00 00 00 00 06 00 00 00 e2 04 00 00 00 00 00 00 00000410: 01 00 00 00 19 00 00 00 00 00 00 00 40 40 96 96 00000420: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00000430: 00 00 00 00 00 00 00 00 5c 41 c2 00 00 00 00 00 => pci display.b 0.0.0 400 00000400: 00 00 00 00 02 00 00 00 e2 04 00 00 00 00 00 00 00000410: 01 00 00 00 19 00 00 00 00 00 00 00 40 40 96 96 00000420: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00000430: 00 00 00 00 00 00 00 00 5c 41 c2 00 00 00 00 00 => pci display.b 0.0.0 400 00000400: 00 00 00 00 49 00 00 00 e2 04 00 00 00 00 00 00 00000410: 01 00 00 00 19 00 00 00 00 00 00 00 40 40 96 96 00000420: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00000430: 00 00 00 00 00 00 00 00 5c 41 c2 00 00 00 00 00 => pci display.b 0.0.0 400 00000400: 00 00 00 00 33 00 00 00 e2 04 00 00 00 00 00 00 00000410: 01 00 00 00 19 00 00 00 00 00 00 00 40 40 96 96 00000420: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00000430: 00 00 00 00 00 00 00 00 5c 41 c2 00 00 00 00 00 => pci display.b 0.0.0 400 00000400: 00 00 00 00 02 00 00 00 e2 04 00 00 00 00 00 00 00000410: 01 00 00 00 19 00 00 00 00 00 00 00 40 40 96 96 00000420: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00000430: 00 00 00 00 00 00 00 00 5c 41 c2 00 00 00 00 00 

 

版權聲明:本文為博主原創文章,未經博主允許不得轉載。 https://blog.csdn.net/zhanglianpin/article/details/77650241


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM