PCI匯流排介紹(四)

2021-05-28 07:33:21 字數 1172 閱讀 1381

8. pci裝置的配置空間

所有除主橋之外的裝置功能,必須實現配置位址空間,目前有三種型別的首部格式:首部型別0,用於全部除pci橋之外的裝置;首部型別1,用於pci-pci橋;首部型別2,用於card bus橋。

每個pci裝置的配置空間大小為256位元組,用來存放pci配置檔案,其中檔案頭標識區佔64位元組,下圖為type0型別首部。

1).廠家id(vender id):用來區別每個pci裝置生產商,由pci-sig組織分配,0xffff表示無效。

2).裝置id:用來標識裝置型別。

3).命令暫存器:為發出pci和響應pci匯流排命令提供粗略控制。

4).狀態暫存器:用於記錄pci匯流排的事件狀態資訊。

5).版本標識:標識pci裝置的版本。

6).分類**:用來表示pci裝置的功能分類和特定的程式設計介面,為唯讀儲存器。

7).cache行大小:指定系統中快取記憶體cache一行的長度,以dword為單位,可讀寫。

8).持有定時器:指定pci匯流排主裝置的延時計時值,以pci匯流排的時鐘為單位。

9).配置型別:表示頭標區型別,以及是否為多功能裝置。

10).自測能力bist:built-in self test,支援自測的pci裝置為1,不支援的為0。

11).基位址0~5:實現pci裝置所有使用位址空間的再定位。

13).中斷線:報告pci裝置與系統中斷連線情況。

14).中斷引腳:表示pci裝置使用了哪些中斷引腳。

9.pci匯流排小案例

在測試pci匯流排的trdy訊號時,發現該訊號從低電平拉公升到高電平時太緩慢,如下圖所示。

問題分析:

trdy是s/t/s訊號,在前面已經講過了,s/t/s訊號有如下特點:

1).在某乙個時刻只能由乙個裝置驅動;

2).在釋放之前必須將該訊號驅動到高電平,並且至少保持乙個時鐘週期;

3).其它裝置必須等到該訊號釋放至少乙個時鐘週期後才能重新驅動它。

4).該訊號必須進行外部上拉處理。

經過分析該pci匯流排的邏輯**得知,該邏輯在處理s/t/s 訊號時沒有完全按照規範要去來做,在將trdy訊號置為低電平有效後直接釋放到高阻態,沒有將它驅動到高電平後再釋放,因此,trdy在低電平位置被釋放到高阻態後,完全依靠外部的上拉電阻將其拉到高電平位置,由於外部上拉比較弱,導致我們上面見到的trdy電平上公升緩慢現象。修改邏輯**後,問題消失。

PCI匯流排操作四 PCI配置週期

pci匯流排操作 之 pci配置週期 pci匯流排協議中定義了256位元組的配置空間,用來驅動和配置pci裝置。配置空間的暫存器在匯流排第六章有描述,這裡主要討論訪問pci配置空間的匯流排命令的具體操作。在pci匯流排的拓撲結構中,每個pci裝置都有乙個固定唯一的位址,我們稱之為config add...

PCI匯流排學習(二) PCI匯流排仲裁

幻燈片 9 在一定時間內,可能有多個bus master請求使用匯流排傳輸資料,每個請求匯流排的master都會assert它的req 訊號,來告訴仲裁器他要申請使用匯流排,仲裁器一般整合於晶元組中。幻燈片 10 如果仲裁器是可程式設計的,啟動配置軟體可以通過讀取max lat配置暫存器來決定每個b...

PCI匯流排(二)

pci網絡卡驅動程式分析 針對 gnic ii 的千兆乙太網卡,源程式檔案 drivers net hamachi.c 1 初始化 static int init hamachi init void 進入bus add driver int bus add driver struct device ...