PCIE協議解析 synopsys IP Receive TLP Processing 讀書筆記(4)

4.1   Receive TLP Processing

4.1.1    Receive Filtering

Filter module 主要完成以下幾個任務:

Ø  制定TLP過濾的規則

Ø  通過filtering status決定接收的TLP的去向

Ø  指示輸出的TLP的狀態

Ø  基於filter的結果向AER register 報告錯誤,當有多個類型的錯誤被檢測到時,Section 6.2.3.2.3, “Error Pollution”, of the PCI ExpressBase 3.1 Specification, revision 1.0 is followed.

Core 對TLP的filter和route的規則由兩個方面決定,一個是PCI Express Base 3.1Specification, revision 1.0的規定,另一方面是用戶的filtering的配置選項。(目前不清楚該配置選項是否需要配置)。Filtering 的rules 受configuration 的parameter、IO signal、register values影響。


以下是對所有輸入的TLP的普遍規則,而對於malformed的TLP,可以參見see “ErrorDetection for Received TLPs” on page 77.默認情況下規則如下:

Ø  在device power state D1、D2和D3hot階段(什麼是D1/2/3??),內核值接收CFG和MSG的請求TLP,而對與其他的TLP將被以unsupported request(UR)處理。

Ø  當core在接收的TLP包中檢測到error,處理流程如下:

l  丟棄該TLP

l  生成一個completion,該報文的狀態爲CA(????)或者UR(unsupported requests)。

l  置位PCI-compatible Status register

l  置位AER registers,如果AER寄存器被使能

l  生成一個error的message,(只存在upstream的接口中)

所有的正常的MSG request將會在core內部完成解析,並通過SIIinterface通知用戶,然後被丟棄。當你想要將被內部解析的MSG發送到應用的接口上,可以參考see “Routing of Received Messages” on page 126.

4.1.2    Receive Routing

Routing的功能將不同類型的TLP發送給不同的接口,而當系統中接入了AHB/AXI橋,TRGT1將會被AHB/AXI替代,TRGT0接口面向內部的CDM寄存器或者ELBI接口。

EPMode Routing Overview

在endpoint模式下,TLP的能夠到達的destination有3種情況:TRGT1、TRGT0或者丟棄。

Ø  CFG會被髮送到TRGT0接口上,並通過LBC進入CDM

Ø  BAR-Mathced MEM 和IO request 將會通過TRGT1接口給到用戶的應用程序。

Ø  MSG 的request將在內部被解析,通過SIIinterface通知。


RC Mode Routing Overview

而在RC模式下,TLP的destination只有兩種情況:TRGT1和丟棄,而在RC模式下,CDM是不允許EP訪問的。

Ø  MEM requests outside ofthe memory range and prefetchable memory range as determined by the

corresponding Base and Limit fields in theType-1 header are routed to TRGT1.(目前不理解??)

Ø  MSG 的request將在內部被解析,通過SIIinterface通知。

Ø  RC模式不接收CFG和IOrequest

Ø  BAR(BaseAddress Register)也會被disable



4.1.3    Error Handling

錯誤處理機制可以參考PCI Express Base 3.1 Specification,revision 1.0.

Ø  當core在接收的TLP包中檢測到error,處理流程如下:

l  丟棄該TLP

l  生成一個completion,該報文的狀態爲CA(????)或者UR(unsupported requests)。

l  置位PCI-compatible Statusregister

l  置位AER registers,如果AER寄存器被使能

生成一個error的message,(只存在upstream的接口中)
發佈了42 篇原創文章 · 獲贊 47 · 訪問量 22萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章