admin管理员组

文章数量:1642241

Link Command Usage for Flow Control, Error Recovery, and Power Management

1、Header Packet Flow Control and Error Recovery

  header packet flow control应用于所有的Header Packet

1.1、Initialization

  Link initial指从Polling, Recovery, or Hot Reset状态跳转到U0,port发送header packet前进行初始化,包括Header Sequence Number Advertisement and the Rx Header Buffer Credit Advertisement。
  port遵循以下规则:
    1、两个Tx Header Sequence Numbers,一个用于发送 header packet,另一个用于接收ack响应;
    2、一个Rx Header Sequence Number,用于接收header packet;
    3、两个Rx Header Buffer Credit Counts(SuperSpeedPlus是4个,区分Type1、Type2),其中一个称Local (Type 1/2 )Rx Buffer Credit Count,定义接收端的有效Rx Header Buffer Credits数,另一个称Remote (Type 1/2 )Rx Header Buffer Credit Count,定义远端link层有效Rx Header Buffer Credits数,当Remote (Type 1/2 )Rx Header Buffer Credit Count为0,发送端不会发送任何header packet;
    4、足够的(Type 1/Type 2) Tx Header Buffers,gen1和gen2x1可以缓存4个未响应的header packet,gen2x2可以缓存7个未响应的header packet;
    5、足够的(Type 1/Type 2) Rx Buffers,SuperSpeed Rx Header Buffers缓存4和header packet,SuperSpeedPlus Rx Buffers缓存4或者7个DPP(max)
    6、进入U0状态,开始PENDING_HP_TIMER and CREDIT_HP_TIMER 计数,初始化Header Sequence Number Advertisement和Rx Header Buffer(Rx Buffer);
  Header Sequence Number Advertisement Rules
  通过在两个port间交换Header Sequence Numbers初始化ACK Tx Header Sequence Number。发送端根据ACK Tx Header Sequence Number移除/重发Tx Header Buffers中的缓存。
    1、初始化Rx Header Sequence Number。从Polling or Hot Reset 进入U0,清0;从Recovery进入U0,下一个header packet的Sequence Number;
    2、初始化Tx Header Sequence Number。从Polling or Hot Reset 进入U0,清0;从Recovery进入U0,设置为进入Recover前的值;
    3、通过发送LGOOD_n初始化Header Sequence Number。n为Rx Header Sequence Number-1;
    4、初始化ACK Tx Header Sequence Number,在Rx Header Sequence Number Advertisement期间接收到的Sequence Number+1;
    5、直到完成Header Sequence Number Advertisement,且Remote Rx Header Buffer Credit有效,才能发送header packet;
    6、在接收且发送Header Sequence Number Advertisement前,port不能请求进入低功耗状态;
    7、刷新缓存中的header packet。从Polling or Hot Reset 进入U0,清除所有缓存;从Recovery进入U0,更具进入Recover状态前接收到的Sequence Number来清除缓存;
  Rx Header Buffer Credit Advertisement Rules
  通过在两个port间交换Local Rx Header Buffer Credits来初始化Remote Rx Header Buffer Credit Count。以下规则同样应用于SSP
    1、在Header Sequence Number Advertisement期间,port发送LGOOD_n后初始化Rx Header Buffer Credit Advertisement;
    2、在发送Rx Header Buffer Credit前需要
     a、初始化Tx/Rx Header Buffer Credit index to A;
     b、清除Remote Rx Header Buffer Credit Count;
     c、继续处理在进入Recovery前用LGOOD_n响应、或者在Recovery状态仍有效的header packet,并更新Local Rx Header Buffer Credit Count;
     d、设置Local Rx Header Buffer Credit Count,从Polling or Hot Reset 进入U0,置4;从Recovery进入U0,设置为Rx Header Buffers中有效的header packet数;
    3、port通过发送LCRD_x给远端来完成Rx Header Buffer Credit Advertisement。
     Local Rx Header Buffer Credit Count =0,发送LCRD_A;
     Local Rx Header Buffer Credit Count =1,发送LCRD_A、LCRD_B;
     Local Rx Header Buffer Credit Count =2,发送LCRD_A、LCRD_B、LCRD_C;
     Local Rx Header Buffer Credit Count =3,发送LCRD_A、LCRD_B、LCRD_C、LCRD_D;
     SSP Local Type 1/Type 2 Rx Buffer Credit Count最大为7,LCRD_A~LCRD_G
    4、port每接收到一个LCRD_x,Remote Rx Header Buffer Credit Count+1,最多接收4个LCRD_x;SSP最多为4个或者7个
    5、当Remote Rx Header Buffer Credit Count=0,发送端不能发送任何header packet;
    6、Rx Header Buffer Credit Advertisement期间,在port没有接收且发送LCRD_x前,不能请求进入低功耗状态;
  当port从Recovery进入U0时
    1、在进入Recovery前发送LBAD的port进入U0时,不希望在远端重新发送header packet前接收到LRTY;
    2、在进入Recovery前接收到LBAD的port进入U0时,不会在重新发送header packet前发送LRTY;

1.2、General Rules of LGOOD_n and LCRD_x/LCRD1_x/LCRD2_x Usage

  1、LCRD_x,for SuperSpeed USB, the Rx Header Buffer Credit,LCRD_A—>LCRD_B—>LCRD_C—>LCRD_D—>LCRD_A;
        for SuperSpeedPlus USB, the Type n Rx Buffer ,Credit,LCRDn_A—>LCRDn_B—>LCRDn_C—>LCRDn_D—>LCRDn_E—>LCRDn_F—>LCRDn_G—>LCRDn_A;接收到的LCRD_x顺序出错,则link command丢失,进入Recovery状态
  2、Header Sequence Number从0开始累积到最大值7(SSP是15)再回到0,LGOOD_n从LGOOD_0—>LGOOD_1…—>LGOOD_7(LGOOD_15)—>LGOOD_0;接收到的LGOOD_n顺序出错,则link command丢失,进入Recovery状态
  3、DL bit,以下情况下置位:DL仅在ITP有效,当设备使用ITP同步内部时钟时忽略DL bit
   a、header packet重发;
   b、Link处于Recovery状态;
   c、(Type 1/Type 2)Remote Rx Header Buffer Credit Count = 0;
   d、(Type 1/Type 2)Tx Header Buffer is not empty;

1.3 Transmitting Packets

  
  
  
  
  
                          Folw Control Error Recovery Power Management

本文标签: LayerFlowcontrolLINKpowerError