PCIE-变量及参数总结

变量

1.changed_speed_recovery:

表示链路双方已经将链路速率协商为更高的速率。

configuration.complete状态下此变量会reset成0;

当前状态在recovery.rcvrlock状态:

在经过24ms的timeout之后,任何一个已经configured的lane(收到过TS1/TS2)收到了和自己发送的link/lane num匹配的TS1/TS2,并且速率自从进入recovery状态之后没有切到协商的速率后,下个状态是configuration状态,directed_speed_change也会被reset成0

当前状态在recovery.speed状态:

如果tx在如下条件下(此时不在需要处于Electrical Idle),那么下一个状态是Recovery.RcvrLock状态。

(1)如果当前状态是从Recovery.RcvrCfg状态进入的,并且link的两侧均切速成功的话(速率是两侧协商的最高公共速率,successful_speed_negotiation = 1),那么changed_speed_recovery被设为1;

(2)没有速率成功切换的情况下,如果当前子状态是自从L0/L1进入recovery状态下第二次进入该状态(changed_speed_recovery = 1b),那么速率将会切到最初的从L0/L1进入recovery状态下的速率,changed_speed_recovery被设为0;

(3)否则其他情况下新的工作速率将是2.5GT/s,changed_speed_recovery被设为0;

当前状态在recovery.rcvrcfg:

在往Recovery.Idle状态跳转时,changed_speed_recovery,directed_speed_change变量需要reset为0(idle_to_rlock_transitioned小于’hff);

在往Configuration状态跳转时,changed_speed_recovery,directed_speed_change变量需要reset为0

在往recovery.speed状态跳转时如果当前速率自从L0/L1进入recovery状态没有切到双方协商的速率(changed_speed_recovery = 0b),并且EIOS已经被检测到了/Electrical Idle的条件在任意config的lane被检测到了,并且当前工作速率高于2.5GT/s,并且自从进入Recovery.RcvrCfg状态后没有config的lane收到了TS2,那么状态跳转到recovery.speed注意此时changed_speed_recovery将会变为0

2.direct_speed_change:

If greater than 2.5 GT/s data rate support has been noted, the Downstream Port must set the directed_speed_change variable to 1b if the Retrain Link bit of the Link Control Register is set to 1b and the Target Link Speed field in the Link Control 2 Register is not equal to the current Link speed. (l1也会存在)

3.successful_speed_negotiation

Recovery.Speed状态下,

Recovery.RcvrCfg状态下,会将其设为1;具体细节??

4.use_modified_TS1_TS2_Ordered_Set:

使用Modified TS1/TS2

5.Flit_Mode_Enabled

6.L0p_capable

7.SRIS_Mode_Enabled

8.upconfigure_capable:

支持带宽从小变大

9.idle_to_rlock_transitioned:

该变量记录了因为配置过程没有起作用,从而导致状态机从 Configuration.Idle 状态跳转到 Recovery 状态的次数。这可能是因为均衡设置不合适,或者当前选择的速率无法正常工作导致的,Recovery 状态内会采取措施尝试解决这些问题。该变量限制了从本状态跳转至 Recovery 状态的尝试次数,从而避免了永久的无限循环。如果链路在 256 次尝试后(变量计数至 FFh)仍然没法正常工作,那么跳转回 Detect 状态重新开始,并希望这次能有更好的结果。

10.start_equalization_w_preset:

为1表示使用预设值,这个变量仅仅在Recovery状态下使用:

(1)Recovery.Equalization: dsp进入phase1后start_equalization_w_preset设为0;usp进入phase0之后start_equalization_w_preset设为0;

(2)Recovery.RcvrCfg:

进入该子状态之后该变量reset为0;

对于usp来说,如果当前速率工作在2.5GT/s或者5.0GT/s下,8个TS2已经进行彼此之间的advertising(8.0 GT/s是支持的最高速率),那么必须要将start_equalization_w_preset设定为1,并且执行一些更新(这些更新包含:1. 用收到的连续的8个EQ TS2去更新更新tx的preset值,也就是Lane Equalization Control Register Entry寄存器中的域,2.用收到的连续的8个EQ TS2去更新8.0GT/s的Lane Equalization Control Register Entry中的Receiver Preset Hint fields);

对于usp来说,当前速率工作在2.5GT/s或者5.0GT/s下 -> 32.0 GT/s是支持的最高速率,并且equalization bypass to the highest NRZ rate在彼此之间已经协商成功(configuration阶段),那么start_equalization_w_preset设定为1,执行一些更新(仅更新tx preset,Lane Equalization Control Register Entry寄存器中的);
 

对于usp来说,当前速率工作在8.0GT/s下 -> 16.0 GT/s是支持的最高速率,收到的连续的TS2是128b/130b EQ TS2,那么start_equalization_w_preset设定为1,执行一些更新(仅更新tx preset,Lane Equalization Control Register Entry寄存器中的);

对于usp来说,当前速率工作在16.0GT/s下 -> 32.0 GT/s是支持的最高速率,收到的连续的TS2是128b/130b EQ TS2,那么start_equalization_w_preset设定为1,执行一些更新(仅更新tx preset,Lane Equalization Control Register Entry寄存器中的);

对于usp来说,当前速率工作在32.0GT/s下 -> 64.0 GT/s是支持的最高速率,收到的连续的TS2是128b/130b EQ TS2,那么start_equalization_w_preset设定为1,执行一些更新(仅更新tx preset,Lane Equalization Control Register Entry寄存器中的);

对于dsp来说,在如下条件之一满足的情况下,start_equalization_w_preset设定为1:

(1)equalization_done_8GT_data_rate 为0;

(2)彼此双方支持16.0 GT/s的速率,但是equalization_done_16GT_data_rate变量为0;

(3)彼此双方支持16.0 GT/s的速率,但是equalization_done_16GT_data_rate变量为0;

(4)彼此双方支持32.0 GT/s的速率,但是equalization_done_32GT_data_rate变量为0;

(5)彼此双方支持64.0 GT/s的速率,但是equalization_done_64GT_data_rate变量为0;

(6)link control3中的Perform Equalization bit被设定为1;

11.select_deemphasis:

a:detect.quit:The select_deemphasis variable must be set to either 0b or 1b based on platform specific needs for an Upstream Port and identical to the Selectable Preset/De-emphasis bit in the Link Control 2 Register for a Downstream Port.

b:recovery.speed:If the negotiated data rate is 5.0 GT/s, and if operating in full swing mode, -6 dB de-emphasis level must be selected for operation if the select_deemphasis variable is 0b and -3.5 dB de-emphasis level must be selected for operation if the select_deemphasis variable is 1b.

c:recovery.cfg:On entry to this substate, a Downstream Port must set the select_deemphasis variable equal to the Selectable De-emphasis field in the Link Control 2 Register or adopt some implementation specific mechanism to set the select_deemphasis variable, including using the value requested by the Upstream Port in the eight consecutive TS1 Ordered Sets it received. A Downstream Port advertising 5.0 GT/s data rate support must set the Selectable De-emphasis bit (Symbol 4 bit 6) of the TS2 Ordered Sets it transmits identical to the select_deemphasis variable.

Upstream Ports must register the Selectable De-emphasis bit (bit 6 of Symbol 4) advertised in these eight consecutive TS2 Ordered Sets in the select_deemphasis variable.

12.select_preset:仅仅用在Polling.Compliance状态中

13.equalization_done_8GT_data_rate

14.equalization_done_16GT_data_rate

15.equalization_done_32GT_data_rate

16.equalization_done_64GT_data_rate

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值