跳到内容
LinkUp
LinkUp作用
LinkUp置1的情况
LinkUp置0的情况
directed_speed_change
directed_speed_change 作用
pcie2.0新引入的 ,早期设备可以把此变量认为是0,因为pcie1.0只有2.5GT/s,不涉及到切速过程,所以此变量无用
DSP/USP是否想要发起切速
如果directed_speed_change 为1,则在Recovery.RcvrLock
发出去的TS1中speed_change(symbol 4 bit 7)为1
如果directed_speed_change 为1,则在Recovery.RcvrCfg
发出去的TS1中speed_change(symbol 4 bit 7)为1
directed_speed_change 设置为0的情况:
LTSSM进入Detect
状态时
USP在退出Detect
状态后,在Configuration.Complete
或者Recovery.RcvrCfg
时收到的TS中表明DSP不支持高于2.5GT/s的速度,则禁止设置directed_speed_change 为1
LTSSM进入Recovery.Speed
时
LTSSM从Recovery.RcvrLock
跳转到Configuration
时。具体跳转条件为在Recovery.RcvrLock
时,当前工作的速度不等于协商的速度(如changed_speed_recovery 为0)且任意一条lane 收到的TS1中,link number和lane number与该条lane发出去的一直,且还需满足以下其一 :
directed_speed_change 为0且收到的TS1,TS2中speed_change比特为0
当前速度为2.5GT/s且在收发的TS1,TS2中,2.5GT/s是最高建议的速度
DSP在退出Detect
状态后,在Configuration.Complete
或者Recovery.RcvrCfg
时收到的TS中表明USP不支持高于2.5GT/s的速度,则禁止设置directed_speed_change 为1
LTSSM在进入Recovery.Idle
时
LTSSM从Recovery.RcvrCfg
跳转到Configuration
时
在Recovery.RcvrCfg
时,LTSSM 48ms超时进入Recovery.Idle
时
directed_speed_change 设置为1的情况:
在Recovery.RcvrLock
状态时,如果收到8个连续的TS1中speed_change(symbol 4 bit 7),即使本端没打算切速
在L0
或者L1
时,打算切速的一方必须设置为1
DSP在退出Detect
状态后,如果收到的TS中表明USP支持高于2.5GT/s的速度,且Link Control 2寄存器中的Target Link Speed不等于当前速度,且当Link Control寄存器中的Retrain Link为1时,则必须设置directed_speed_change 为1
更高层想要更改速度时且满足其一 :
链路处于DL_Active时,双方都支持高于2.5GT/s的速度
双方都支持高于8.0GT/s或更高速度时,为了在双方都支持的速度做EQ,changed_speed_recovery 设置为0
DSP选择了替换协议(如cxl),且当前速度不是协商的可替换协议(如cxl)的工作速度
LTSSM在L1
时,port可以从L1
退出Recovery
然后再到L0
,到L0
时允许设置为1
changed_speed_recovery
changed_speed_recovery 作用:
追踪在Recovery
状态,速度是否更改为协商的速度,0:没有更改协商的速度,1:更改为了协商的速度
changed_speed_recovery 设置为0的情况:
LTSSM在Configuration.Complete
时
LTSSM在2ms超时后,从Configuration.Complete
跳转到Configuration.Idle
,且变量idle_to_rlock_transitioned 小于ffh,且当前速度在8.0GT/s或者更高
LTSSM从Recovery.Speed
跳转到Recovery.RcvrLock
,且从L0
或L1
进入Recovery
以来,已经是第二次进入Recovery.Speed
了(如changed_speed_recovery 为1)
L0 -> Recovery.RcvrLock -> Recovery.RcvrCfg -> Recovery.Speed -> Recovery.RcvrLock(设置changed_speed_recovery 为1,如新速度下不能实现symbol lock) -> Recovery.Speed -> Recovery.RcvrLock(设置changed_speed_recovery 为0)
changed_speed_recovery 设置为1的情况:
LTSSM从Recovery.Speed
跳转到Recovery.RcvrLock
,且已经进入过Recovery.RcvrCfg
时,且链路速度已经协商好(successful_speed_negotiation 为1)
L0 -> Recovery.RcvrLock -> Recovery.RcvrCfg -> Recovery.Speed -> Recovery.RcvrLock(设置为1)
pcie2.0新引入的 ,早期设备可以把此变量认为是0
是否可以升lane,如果该变量为1,则在链路宽度降低后,允许在升lane
LTSSM进入Detect
状态时
LTSSM在Configuration.Complete
时,且下一个状态是Configuation.Idle
时,且Flit_Mode_Enabled 为0,且发送和收到的8个连续的TS2中,Link Upconfigure/L0p Capability为0
LTSSM在Configuration.Complete
2ms超时后,且发送和收到的8个连续的TS2中,Link Upconfigure/L0p Capability为0。可以更新但是不要求
LTSSM在Configuration.Complete
时,且下一个状态是Configuration.Idle
时,且变量Flit_Mode_Enabled 为0,且发送和收到的8个连续的TS2中,Link Upconfigure/L0p Capability为1
LTSSM在Configuration.Complete
2ms超时后,且发送和收到的8个连续的TS2中,Link Upconfigure/L0p Capability为1。可以更新但是不要求
start_equalization_w_preset
start_equalization_w_preset作用:
eq过程是否基于预设值,即根据非Recovery.Equalization
过程中收到TS来决定发射机的Transmitter Preset
start_equalization_w_preset 设置为1的情况:
USP在Recovery.RcvrCfg
状态,当前链路速度为2.5GT/s或者5.0GT/s,且收到的8个连续的TS2是EQ TS2,且TS2中建议支持8.0GT/s或者及更高的速度
USP在Recovery.RcvrCfg
状态,当前链路速度为2.5GT/s或者5.0GT/s,且收到的8个TS2为EQ TS2,且TS2中建议支持32.0GT/s或者更高的速度,且两端在Configuration
状态协商的EQ模式为Equalization bypass to the highest NRZ rate.
USP在Recovery.RcvrCfg
状态,并且当前链路速度为8.0GT/s,并且收到的TS2是128b/130b EQ TS2,且双方都建议支持16.0GT/s或者更高的速度
USP在Recovery.RcvrCfg
状态,并且当前链路速度为16.0GT/s,并且收到的TS2是128b/130b EQ TS2,且双方都建议支持32.0GT/s或者更高的速度
USP在Recovery.RcvrCfg
状态,并且当前链路速度为32.0GT/s,并且收到的TS2是128b/130b EQ TS2,且双方都建议支持64.0GT/s或者更高的速度
满足下列任意一个 情况下,DSP必须把equalization 设置为1:
变量equalization_done_8GT_data_rate 为0
双方都支持16.0GT/s且变量equalization_done_16GT_data_rate 为0
双方都支持32.0GT/s且变量equalization_done_32GT_data_rate 为0
双方都支持64.0GT/s且变量equalization_done_64GT_data_rate 为0
Link Control 3寄存器中的Performance Equalization为1
基于特定必须要执行EQ过程
start_equalization_w_preset 设置为0的情况:
DSP进入Recovery.Equalization
(进入时为EQ Phase 1)
USP进入Recovery.Equalization
(进入时为EQ Phase 0)
进入Recovery.RcvrCfg
时复位为0
Flit_Mode_Enabled
Flit_Mode_Enabled作用
Flit_Mode_Enabled设置为1的情况
DSP在Configuration.Linkwidth.Accept
满足下面所有 条件
变量LinkUp为0
进入Polling
状态以来,在Polling
和Configuration
阶段传输的TS1和TS2中速度标识符中的Flit_Mode_Supported比特为1(Symbol 4 bit 0) – 表明本端支持Flit Mode
从Polling.Configuration
跳转到Configuration
时所有lane收到的TS2中Flit_Mode_Supported为1(Symbol 4 bit 0) – 表明对方也支持Flit Mode
USP在Configuration.Linkwidth.Accept
时满足下面所有 条件:
变量LinkUp为0
从进入Polling
状态以来,在Polling
状态和Configuration
发送TS1,TS2中速度标识中的Flit_Mode_Supported为1 – 表明本端支持Flit Mode
从Polling.Configuration
跳转到Configuration
时,所有lane收到的TS2中Flit_Mode_Supported为1 – 表明对端支持Flit Mode
Flit_Mode_Enabled设置为0的情况
L0p_capable
L0p_capable作用
L0p_capable置为1的情况
DSP/USP 在Configuration.Complete
状态时满足下面所有 条件,同时把Device Status 3寄存器中的Remote L0p Supported置为1
变量LinkUp=0且Flit_Mode_Supported为1
设备发送TS2时,TS2中的Link Upconfigure/L0p Capability(Symbol 4 bit 6)为1 – 表明本端支持L0p
收到的8个连续的TS2中,TS2中的Link Upconfigure/L0p Capability为1 – 对端支持L0p
L0p_capable置为0的情况
SRIS_Mode_Enabled
文章导航
Insert
滚动到顶部
滚动到顶部