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的接口中)