Electronic – PCIe link training

high speedpcieserial

I got few questions about PCIe link training procedure.

  1. For Gen3, will the host and device link to each other with Gen1 speed first, and when link up, host will look for device's capability register bit to see if it supports higher speed, and then issue the speed change process, until the host and device are all running at Gen3 speed. Is that correct?

  2. For preset setting, is it true that the host and device will automatically choose a best preset when link training?

Best Answer

Yeah, that's pretty much right. The PCIe link will come up as gen 1 and detect the number of available lanes. Then the operating system can look at what the devices are capable of and request a speed change by writing to a control register. The actual retraining is mediated by hardware. The autonegotiation process will attempt to get to the highest supported speed and the largest supported link width (not just supported at the end points, but also by the backplane connections).