pcie receiver error
Link Error(未完)
- 8b/10b下包括:
- 8b/10 decode Errors
- Non-Flit Mode Framing相关的错误
- Symbol Lock丢失
- Elasticity Buffer Overflow/Underflow
- Lane-to-Lane de-skew丢失
Receiver Error
发生Receiver Error的行为
- Receiver Error需要跟port绑定
- Receiver Error是一种可纠正的错误,会发送ERR_COR Message给RC
8b/10b编解码时会触发Receiver Error的行为
- 下面是会触发Receiver Error的行为,也就是错误的行为,而不是协议规定的正确的行为,错误的行为基本就是正确的行为取反
- Non-Flit模式,接受到的symbol不在8b/10b编码表中,或者接受到的symbol在8b/10b编码表中,但是running disparity跟编码表中的不一致,即8b/10b解码错误,且LTSSM需要处于特定的状态,在Flit模式,可以通过FEC逻辑纠正
- 8b/10b Decode Error,只会在
Configuration
,Disable
(可选)和Hot Reset
(可选)状态是触发Receiver Error
- 8b/10b Decode Error,只会在
- 如果检测下面这些规则,不符合就是
Receiver Error
,但是可以选择不检查- STP和END或者STP和EDB之间的symbol小于18个symbols,gen1/2 TLP的最小长度为18个Symbols(在STP和END或者STP或者EDB之间)
- 大于x1的链路,当准备从Logical Idle状态过渡到传输TLP时,STP Symbol没有在lane0上
- 重点在于从logical idle到传第一个TLP的STP Symbol
- 大于x1的链路,当准备从logical idle状态过渡到传输TLP是,SDP Symbol没有在lane0上
- 重点在于从logical idle到传第一个DLLP的SDP Symbol
- 一个Symbol Time(Symbol Timed的解释)之内出现了2个或更多个STP Symbol
- STP在多lane的link上不能同时出现在多条lane上
- 一个Symbol Time之内出现了2个或者更多个SDP Symbol
- 如果链路宽度大于x4,STP或者SDP Symbol不在4*N(N为正整数)上,例如,x8的链路,STP和SDP不再lane 0 和 lane 4
- 对于xN的链路,END或者EDB在K(K不等于N-1)上且Lane K+1不是STP或者SDP Symbol时且lanes K+1到lane N-1不为PAD
- 如果TLP不再lane N-1上结束,则lane K+1dao lane N-1必须用PAD填充,eg. x8的link,如果END或者EDB在lane 3,则lane 4到lane 7必须用PAD填充
link Error
- 如果TLP不再lane N-1上结束,则lane K+1dao lane N-1必须用PAD填充,eg. x8的link,如果END或者EDB在lane 3,则lane 4到lane 7必须用PAD填充
128b/130b编解码时会触发Receiver Error的行为
- 接收机处理数据流时检测到了
Framing Error
且LTSSM在特定的状态时TODO会触发Receiver Error
128b/130b编解码,non-flit模式出现Framing Error的行为
- 128b/130b编码,non-Flit时触发
Framing Error
的行为(128b/130b Framing Token)
触发条件 | Framing Error行为 |
---|---|
处理Symbol时 | 期望是一个Faming Token,但实际上跟Framing Token定义不一致为Framing Error – 推荐记录到lane error status寄存器中 |
收到STP Token后 |
|
收到EDB Token之后 |
|
收到EDS Token之后 | 在链路上,数据块的最后四个symbol收到EDS Token之后,在下一个Block开始时,如果不是SKPOS,EIOS或者EIEOS,则是Framing Error – EDS Token出现在最后,其它lane没有发送idle data的机会。 |
收到SDP Token之后 | 接收机可以检查一个symbol time之内是否收到了超过1个SDP Token,如果检查且一个Symbol Time之内收到的SDP Token大于1,则是Framing Error |
收到IDL Token之后,强烈推荐记录到Lane Error Status寄存器中 |
|
在处于数据流时,接收机必须检查数据块类型 |
|
128b/130b编解码,flit模式出现Framing Error的行为
触发条件 | Framing Error行为 |
---|---|
处理数据流时 |
|
处理数据流时,针对L0p过程中不需要退出或者进入EI状态的lane – 发生错误时强烈建议记录到Lane Error Status中 |
|
1b/1b编解码时会触发Receiver Error的行为
1b/1b编解码,触发Framing Error的行为
- 在处理数据流中结束的Ordered Set或者数据流中的Ordered Set
触发条件 | Framing Error行为 |
---|---|
在每条active lane,第一个对其的8byte中,只有4个或者更少的byte跟SKP,EIOS或者EIEOS相匹配是Framing Error |
|
从第一个8bytes中推断是SKPOS |
求receiver error总结
@znn 了解,周末加急处理