Link Equalization
当Retimer处于Execution Mode下的Link Equalization过程时,Retimer的两个伪端口和常规的port一样,会产生自己的Symbols,而不是简单的把数据从一个伪端口转发到另一个伪端口。当Retimer处于Execution Mode的时候,它使用的Link Number和Lane Number来自RT_captured_lane_number和RT_captured_link_number。
当Upstream Port和Downstream Port经过链路协商进入EQ Phase2的时候,Retimer会切换到Execution Mode模式下。
Downstream Lanes
如果Downstream的伪端口B想要调节USP(EP)的Tx端,那么在USP(EP)的EQ phase1的期间,伪端口B需要将USP(EP)通过TS1/2发送过来的LF和FS数值存储起来,方便EQ Phase3的时候使用。
Phase2
除了原有PCIe SPEC4.2.6.4.2.1.2中关于EQ Phase2的规定,还有以下的行为:
1 如果Retimer的速率为16.0GT/s或者以上,当Upstream的伪端口A处于Phase2 Active状态时,发送的TS1/2需要将Retimer Equalization Extend bit置为1;当Upstream的伪端口A处于Phase2 Passive状态时,发送的TS1/2需要将Retimer Equalization Extend bit置为0。
2 如果所有配置的Lane收到了两个连续的带有EC=11b的TS1,则进入Phase3 Active;否则32~36ms timeout后,进入Force Timeout状态。
Phase3 Active
如果当前的速率是8.0GT/s,Tx的行为要符合PCIe SPEC中4.2.6.4.2.1.3的描述除了24ms换成2.5ms,以下的一些行为也是Retimer特有的:
1 如果所有配置的Lane上的设置都达到了最佳,则进入Phase3 Passive状态。
2 否则在2.5ms~2.6ms timeout后进入Force Timeout状态。
如果当前的速率是16.0GT/s或者以上,Tx的行为要符合PCIe SPEC中4.2.6.4.2.1.3的描述除了24ms换成22ms,以下的一些行为也是Retimer特有的:
1 TS1中的Retimer Equalization Extend bit需要设置成0。
2 如果所有配置的Lane上的设置都达到了最佳并且都收到了两个连续的带有Retimer Equalization Extend bit为0的TS1,则进入Phase3 Passive状态。
3 否则,在22ms~23ms timeout后,进入Force Timeout状态。
Phase3 Passive
1 Tx发送EC=11b并且Retimer Equalization Extend = 0b的TS1,并且携带的Preset和Coefficients数值必须和Phase3 Active期间最后协商的数值保持一致。
2 当Upstream的伪端口A退出Phase3的时候,Tx切换到Forwarding Mode。
Upstream Lanes
如果Upstream的伪端口A想要调节DSP(RC)的Tx端,那么在DSP(RC)的EQ phase1的期间,伪端口A需要将DSP(RC)通过TS1/2发送过来的LF和FS数值存储起来,方便EQ Phase2的时候使用。
Phase2 Active
如果当前的速率是8.0GT/s,Tx的行为要符合PCIe SPEC中4.2.6.4.2.2.3的描述除了24ms换成2.5ms,以下的一些行为也是Retimer特有的:
1 如果所有配置的Lane上的设置都达到了最佳,则进入Phase2 Passive状态。
2 否则在2.5ms~2.6ms timeout后进入Force Timeout状态。
如果当前的速率是16.0GT/s或者以上,Tx的行为要符合PCIe SPEC中4.2.6.4.2.2.3的描述除了24ms换成22ms,以下的一些行为也是Retimer特有的:
1 TS1中的Retimer Equalization Extend bit需要设置成0。
2 如果所有配置的Lane上的设置都达到了最佳并且都收到了两个连续的带有Retimer Equalization Extend bit为0的TS1,则进入Phase2 Passive状态。
3 否则,在22ms~23ms timeout后,进入Force Timeout状态。
Phase2 Passive
1 Tx发送EC=10b并且Retimer Equalization Extend = 0b的TS1,并且携带的Preset和Coefficients数值必须和Phase2 Active期间最后协商的数值保持一致。
2 如果Retimer的速率为8.0GT/s,当Downstream的伪端口B完成了Phase3 Active则进入Phase3。
3 如果Retimer的速率为16.0GT/s及以上,当Downstream的伪端口B开始Phase3 Active则进入Phase3。
Phase3
当Retimer Upstream的Lane Tx处于Phase3的时候,Tx除了满足PCIe SPEC4.2.6.4.2.2.4规定,还需要满足以下情况:
1 如果当前的速率为16.0GT/s及以上,当Downstream的伪端口B处于Phase3 Active状态时,此时发送的TS1的Retimer Equalization Extend bit设为1;当Downstream的伪端口B处于Phase3 Passive状态时,此时发送的TS1的Retimer Equalization Extend bit设为0。
2 如果所有配置的Lane上都收到了两个连续的带有EC=00b的TS1,Retimer切换到Forwarding Mode。
3 否则,在32ms~36ms timeout时间后,则进入Force Timeout状态。
Force Timeout
1 当Retimer处于此状态时,两个伪端口需要在当前速率下发送EIEOS,持续时间最少1ms。
2 如果在任何一条Lane,Rx没有检测到EIEOS,而是接收到了EIOS或者infers Electrical Idle,两个伪端口的Tx发送EIOS并且将链路置于电气空闲状态。
3 如果Upstream Path和Downstream Path都将Tx处于电气空闲状态并且两个伪端口A和B的RT_next_data_rate和RT_error_data_rate都设置为2.5GT/s,则Retimer进入Forwarding Mode(两个伪端口处于电气空闲状态的时间至少为6us)。
4 否则48ms timeout之后,RT_next_data_rate和RT_error_data_rate设置为2.5GT/s,Retimer切换到Forwarding Mode。
注:Force Timeout这个状态的作用是确保链路两端的设备同时处于Recovery.Speed状态,方便它们返回先前的速率。
参考书籍
- PHY Interface For the PCI Express, SATA, USB 3.1, DisplayPort, and Converged IO Architectures 5.2
- PCI Express® Base Specification Revision 5.0 Version 1.0
- PCI Express Technology Comprehensive Guide to Generations 1.x, 2.x, 3.0