您的位置:首页 > 运维架构

PCIE协议解析 synopsys IP Receive TLP Processing 读书笔记(4)

2015-08-27 16:10 639 查看

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的接口中)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: