标签:ica 并且 bsp 必须 physical 后退 flow 退出 ann
在powerup之后,如果要开始进行正常的传输操作,需要先对默认的virtual channel(VC0)进行Flow control的初始化,如果enable了新的virtual channel,也需要对这个新的channel进行初始化。
Virtual Channel的初始化分为两步:
FC_INIT1
FC_INIT2
当VC0进入DL_Init状态后,或VC1-VC7被enable后,就会进入FC_INIT1。
进入FC_INIT1之后,TL层必须停止使用该VC上发送TLP;
按照1. InitFC1-P, 2. InitFC1-NP, 3. InitFC1-Cpl的顺序发送InitFC1 DLLP,并且每34us至少发送一遍;在Recovery或Configuration状态中所消耗的时间不计入34us内;强烈建议在没有其他TLP或DLLP发送的情况下,尽量多发送InitFC1 DLLP;
除非为了保证最低所需的InitFC1 DLLP的发送,Data Link层不能停止其他包的发送,包括所有Physical Layer发起的包(OS),ACK/NAK DLLP,使用已完成初始化的VC来发送的TLP;
如果收到InitFC1和InitFC2 DLLP,记录FC unit的值,如果P/NP/Cpl都已被记录,则将FI1置1,然后进入FC_INIT2。
在FC_INIT2时:
TL层必须停止在该VC上发送TLP;
按照1. InitFC2-P, 2. InitFC2-NP, 3. InitFC2-Cpl的顺序发送InitFC2 DLLP,并且每34us至少发送一遍;在Recovery或Configuration状态中所消耗的时间不计入34us内;强烈建议在没有其他TLP或DLLP发送的情况下,尽量多发送InitFC2 DLLP;
除非为了保证最低所需的InitFC2 DLLP的发送,Data Link层不能停止其他包的发送,包括所有Physical Layer发起的包(OS),ACK/NAK DLLP,使用已完成初始化的VC来发送的TLP;
如果收到InitFC1和InitFC2 DLLP,忽略FC unit的值,只要收到任意InitFC2 DLLP,则将FI2置1,然后退出FC_INIT2。
标签:ica 并且 bsp 必须 physical 后退 flow 退出 ann
原文地址:https://www.cnblogs.com/lybinger/p/10334028.html