by Guest »
I was reading the standard again and the following sections are still unclear to me and would like your help.
Section 6.11. in PCI EXPRESS BASE SPECIFICATION, REV. 3.0
Link Speed Management says the following:
The Target Link Speed field in the Link Control 2 register sets the upper bound for the Link speed.
Except as described below, the Upstream component must attempt to maintain the Link at the
Target Link Speed, or at the highest speed supported by both components on the Link (as reported
by the values in the training sets – see Section 4.2.4.1), whichever is lower.
If the reliability of the Link is unacceptably low, then either component is permitted to lower the
Link speed by removing the unreliable Link speed from the list of supported speeds advertised in
the training sets the component transmits. The criteria for determination of acceptable Link
reliability are implementation specific, and are not dependent on the setting of the Hardware
Autonomous Speed Disable bit
When a component’s attempt to negotiate to a particular Link speed fails, that component is not
permitted to attempt negotiation to that Link speed, or to any higher Link speed, until 200 ms has
passed from the return to L0 following the failed attempt, or until the other component on the Link
advertises support for the higher Link speed through its transmitted training sets (with or without a
request to change the Link speed), whichever comes first.
the spec doesn't mention that it's not okay for EP to re-initiate or negotiate speed change after failing the first link
speed at 5.0 GT/s. so does it mean that it's okay to try to set it manually? will this violate the standard?