1

Is it usually a software, i.e. device driver, responsibility to set up FC credits on PCIe bus? Where could I get familiar with relevant linux API?

Mark
  • 6,052
  • 8
  • 61
  • 129

2 Answers2

1

PCIe 3.0 Specification clearly mentions about Credit Consumed , Credit Limit variables implemented as Counters for each enabled Virtual Channel for Flow Control mechanism.

However you can enable or disable a particular VC through software(Writing to dedicated register in configuration Space). So Flow control mechanism is totally handled by dedicated hardware in PCIe.

0

The credit based flow control is build in hardware.

Paebbels
  • 15,573
  • 13
  • 70
  • 139
  • I don't argue this, but what provides the relevant settings for credit based FC? Is it a software, or the hardware determines it? – Mark Sep 13 '15 at 12:15
  • 1
    The credits are calculated based on FIFO sizes. A transmitter knows the space in the receiver. If he sends a packet, he must decrement the credit score. When the receiver processed the packet and the FIFO is emptied, the receicer sends a flow control packet to update/increment the credits again. All calculation algorithms are defined in the PCIe standard. I don't know any changeable parameters for a software API. If I remember correctly, there is an initial credit exchange after link initialization. – Paebbels Sep 13 '15 at 12:36