PCIe InitFC1 and update-FC packets credit values

Comments and questions related to the "Down to the TLP" pages

PCIe InitFC1 and update-FC packets credit values

Postby Guest » Mon Feb 02, 2015 7:46 pm

Thanks for great simplified explanation,

I have two question. For example if Root Complex is directly connected to endpoint, At the time of initialization, InitFC packets exchanged by both parties (RC & Endpoint), If we look at initFC packets, does that contains maximum value of credits available? and other question is after initialization, update-FC packet can contain higher values of credits compared to what was seen on InitFC(initialized Flow control credits) packets?

Re: PCIe InitFC1 and update-FC packets credit values

Postby support » Tue Feb 03, 2015 7:29 am


Credits is just a way to announce to the other side how much it may transmit. It usually reflects the amount of storage available on the receiver's side, so it makes sense that the initial credits will be represent the highest allowed breathing space ever seen on the link.

As for the actual numbers in the credit packets -- yes, they will increase. The credits don't state the amount of data allowed for transmission at a given point ("how much memory is left"), but what the total amount, from the initialization, is allowed to reach (subject to a modulo). So update packets will have higher numbers than the initial ones, as data goes through the link and is cleared from the receiver's internal buffers.

In essence, there is no difference between initial credits and update packets. They both tell the transmitter that the total number of elements, modulo-something, is now allowed to reach the number X.

Posts: 760
Joined: Tue Apr 24, 2012 3:46 pm

Return to General PCIe